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:

committed by
Commit Bot

parent
bd167cf140
commit
c21cf04618
@ -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();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user