DescriptionRemove media::VideoFrame from media::VideoCaptureDevice::Client interface
The VideoCaptureDevice::Client interface will have to return buffers that are not
wrapped in media::VideoFrame objects, for upcoming compatibility with capturing
to texture mailboxes. Implement this by making the ReserveForProducer() entry
point return a new Client::Buffer object that caches the memory and size of the
reservation. The lifetime of the reservation is managed by the lifetime of the
Buffer object, not by the media::VideoFrame that we previously returned.
Pursuant to this, VideoCaptureBufferPool is changed to remove entry points that
return pre-constructed media::VideoFrame objects. The responsibility for
managing the rotation/letterboxing state of buffers is also moved out of
VideoCaptureBufferPool into its user, VideoCaptureController.
Also: media::VideoFrame::WrapExternalSharedMemory() is renamed to
media::VideoFrame::WrapExternalPackedMemory(), as not all users will expect to
wrap shared memory. media::VideoFrame::PlaneAllocationSize() is added to
facilitate querying the planar size of just one plane of a packed allocation.
BUG=269312
TEST=local build, run apprtc on CrOS snow, unittests and apprtc on desktop Linux
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=236279
Patch Set 1 : 4969ee91 Initial. #
Total comments: 12
Patch Set 2 : 5b80a5e9 scoped_refptr-ization. #
Total comments: 18
Patch Set 3 : 60d13335 Export buffer_id #
Total comments: 2
Patch Set 4 : 6f1243c3 DCHECK, rebase. #
Total comments: 8
Patch Set 5 : 8c5b9836 Nits. #
Total comments: 6
Patch Set 6 : 64f89b12 More nits. #Patch Set 7 : d0fa6fbe Rebase, final. #Patch Set 8 : ffdbaeb83 Trybot failures. #Messages
Total messages: 29 (0 generated)
|