Use the underlying type of Java Video Buffer on Java -> C++ Frame Buffer
Just like the C++ API, add a method in Java VideoFrame.Buffer that describes the underlying implementation. Use this method to properly select AndroidVideoBuffer or AndroidVideoI420Buffer in Java -> C++ Video Frame Conversion. Also, add a test case for WrappedNativeI420Buffer in VideoFrameBufferTest for consistency. Bug: webrtc:12602 Change-Id: I4c0444e8af6f6a1109bc514e7ab6c2214f1f6d60 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/223080 Commit-Queue: Byoungchan Lee <daniel.l@hpcnt.com> Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Xavier Lepaul <xalep@webrtc.org> Cr-Commit-Position: refs/heads/master@{#34545}
This commit is contained in:
committed by
WebRTC LUCI CQ
parent
d2b885fd91
commit
f740c252e7
@ -34,6 +34,15 @@ public class VideoFrame implements RefCounted {
|
||||
* and the buffer needs to be returned to the VideoSource as soon as all references are gone.
|
||||
*/
|
||||
public interface Buffer extends RefCounted {
|
||||
/**
|
||||
* Representation of the underlying buffer. Currently, only NATIVE and I420 are supported.
|
||||
*/
|
||||
@CalledByNative("Buffer")
|
||||
@VideoFrameBufferType
|
||||
default int getBufferType() {
|
||||
return VideoFrameBufferType.NATIVE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolution of the buffer in pixels.
|
||||
*/
|
||||
@ -63,6 +72,11 @@ public class VideoFrame implements RefCounted {
|
||||
* Interface for I420 buffers.
|
||||
*/
|
||||
public interface I420Buffer extends Buffer {
|
||||
@Override
|
||||
default int getBufferType() {
|
||||
return VideoFrameBufferType.I420;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a direct ByteBuffer containing Y-plane data. The buffer capacity is at least
|
||||
* getStrideY() * getHeight() bytes. The position of the returned buffer is ignored and must
|
||||
|
||||
Reference in New Issue
Block a user