Separate AndroidVideoTrackSource::OnFrameCaptured from adaptation
AndroidVideoTrackSource::OnFrameCaptured currently does adaptation before passing frames on. We want to add video processing between adaptation and delivering the frame to the rest WebRTC C++. This CL prepares for that by splitting OnFrameCaptured() into a separate adaptation step and delivery step. Bug: webrtc:10247 Change-Id: Iab759bac7f3072d4552ece80d0b81fc3e634c64c Reviewed-on: https://webrtc-review.googlesource.com/c/119952 Commit-Queue: Magnus Jedvert <magjed@webrtc.org> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Cr-Commit-Position: refs/heads/master@{#26571}
This commit is contained in:
committed by
Commit Bot
parent
bb87f8a4a4
commit
9025bd5142
@ -36,6 +36,18 @@ class NativeCapturerObserver implements CapturerObserver {
|
||||
|
||||
@Override
|
||||
public void onFrameCaptured(VideoFrame frame) {
|
||||
nativeAndroidVideoTrackSource.onFrameCaptured(frame);
|
||||
final NativeAndroidVideoTrackSource.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);
|
||||
nativeAndroidVideoTrackSource.onFrameCaptured(
|
||||
new VideoFrame(adaptedBuffer, frame.getRotation(), parameters.timestampNs));
|
||||
adaptedBuffer.release();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user