Move frame adaptation inside video processor.

Bug: webrtc:10530
Change-Id: Iba6a91bf3e1ec4b2821b554e9e28fd2ead662723
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131947
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27542}
This commit is contained in:
Sami Kalliomäki
2019-04-10 13:44:58 +02:00
committed by Commit Bot
parent bd167cf140
commit c21cf04618
5 changed files with 86 additions and 59 deletions

View File

@ -59,28 +59,20 @@ public class VideoSource extends MediaSource {
@Override
public void onFrameCaptured(VideoFrame frame) {
final NativeAndroidVideoTrackSource.FrameAdaptationParameters parameters =
final VideoProcessor.FrameAdaptationParameters parameters =
nativeAndroidVideoTrackSource.adaptFrame(frame);
if (parameters == null) {
// Drop frame.
return;
}
final VideoFrame.Buffer adaptedBuffer =
frame.getBuffer().cropAndScale(parameters.cropX, parameters.cropY, parameters.cropWidth,
parameters.cropHeight, parameters.scaleWidth, parameters.scaleHeight);
final VideoFrame adaptedFrame =
new VideoFrame(adaptedBuffer, frame.getRotation(), parameters.timestampNs);
synchronized (videoProcessorLock) {
if (videoProcessor != null) {
videoProcessor.onFrameCaptured(adaptedFrame);
adaptedBuffer.release();
videoProcessor.onFrameCaptured(frame, parameters);
return;
}
}
nativeAndroidVideoTrackSource.onFrameCaptured(adaptedFrame);
adaptedBuffer.release();
VideoFrame adaptedFrame = VideoProcessor.applyFrameAdaptationParameters(frame, parameters);
if (adaptedFrame != null) {
nativeAndroidVideoTrackSource.onFrameCaptured(adaptedFrame);
adaptedFrame.release();
}
}
};