Add Flush() to VEA interface |
|||||
Issue descriptionJust like VDA, we need a way to flush all pending the video frames and a callback to know when all encoded bitstream has been returned. https://cs.chromium.org/chromium/src/media/video/video_decode_accelerator.h?q=video_decode_accelerator&dr=CSs&l=302 We need the following new interface in VEA VideoEncoderAccelerator::Flush(); and VideoEncoderAccelerator::Client::NotifyFlushDone();
,
Aug 16 2017
Actually most CTS will send the last input buffer with EOS flag. The issue is we don't know when to mark the output stream as EOS. According to an offline discussion with Pawel, Encode() and BitstreamBufferReady() may not be one-to-one mapped. We should have a formal/efficient way to know all pending frames has been processed.
,
Aug 16 2017
A draft CL is uploaded: https://chromium-review.googlesource.com/616525 cc'ed code owners for suggestions.
,
Oct 16 2017
owenlin@ can you comment a bit further on "we need a way to flush..."? What's the use case and/or client ?
,
Oct 16 2017
Android frameworks has an EOS flag to request encoders to return all frames. Owen know more detail.
,
Oct 17 2017
Yes, we need a way to know all the input has been processed by the encoder. (Please also see #2). As wucheng said, BitstreamBufferReady() is an asynchronous call. How should we know there are no more bitstream buffers and we can mark it as EOS in Android?
,
Oct 26 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/84dcd258d0a789dfafebc3ff2fa0a77f10787d27 commit 84dcd258d0a789dfafebc3ff2fa0a77f10787d27 Author: Owen Lin <owenlin@google.com> Date: Thu Oct 26 07:09:10 2017 vea: Add Flush() to the VEA interface. The new method is used to drain the encoder, i.e., make sure all input video frames have been processed and all bitstreams have been returned to the client. BUG= 755889 TEST=None (only interface change, no implementation yet) Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I0c00b06ea905ef13628a2b93fb3094c524847c9a Reviewed-on: https://chromium-review.googlesource.com/616525 Commit-Queue: Owen Lin <owenlin@chromium.org> Reviewed-by: Kuang-che Wu <kcwu@chromium.org> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Reviewed-by: Miguel Casas <mcasas@chromium.org> Reviewed-by: Pawel Osciak <posciak@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#511756} [modify] https://crrev.com/84dcd258d0a789dfafebc3ff2fa0a77f10787d27/media/video/video_encode_accelerator.cc [modify] https://crrev.com/84dcd258d0a789dfafebc3ff2fa0a77f10787d27/media/video/video_encode_accelerator.h
,
Oct 30 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f28762023e8071053bf35d09b42d09c8ad1e5450 commit f28762023e8071053bf35d09b42d09c8ad1e5450 Author: Owen Lin <owenlin@google.com> Date: Mon Oct 30 05:54:38 2017 vaapi_vea: Add Flush() implementation. BUG= 755889 TEST=None Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Ib5a80303c67429b9cc7d69d7e8fd917bc775a903 Reviewed-on: https://chromium-review.googlesource.com/720736 Commit-Queue: Owen Lin <owenlin@chromium.org> Reviewed-by: Kuang-che Wu <kcwu@chromium.org> Cr-Commit-Position: refs/heads/master@{#512445} [modify] https://crrev.com/f28762023e8071053bf35d09b42d09c8ad1e5450/media/gpu/vaapi_video_encode_accelerator.cc [modify] https://crrev.com/f28762023e8071053bf35d09b42d09c8ad1e5450/media/gpu/vaapi_video_encode_accelerator.h
,
Oct 30 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7c673f92b1caf36bfe219e1f265f677f396a4b14 commit 7c673f92b1caf36bfe219e1f265f677f396a4b14 Author: Owen Lin <owenlin@google.com> Date: Mon Oct 30 07:13:01 2017 components/arc: Add Flush() to the video_encode_accelerator interface. BUG= 755889 TEST=None Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I1780b6b54fa6de50594c995170724d888abc64ae Reviewed-on: https://chromium-review.googlesource.com/720737 Commit-Queue: Owen Lin <owenlin@chromium.org> Reviewed-by: Kuang-che Wu <kcwu@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Cr-Commit-Position: refs/heads/master@{#512450} [modify] https://crrev.com/7c673f92b1caf36bfe219e1f265f677f396a4b14/chrome/gpu/gpu_arc_video_encode_accelerator.cc [modify] https://crrev.com/7c673f92b1caf36bfe219e1f265f677f396a4b14/chrome/gpu/gpu_arc_video_encode_accelerator.h [modify] https://crrev.com/7c673f92b1caf36bfe219e1f265f677f396a4b14/components/arc/common/video_encode_accelerator.mojom
,
Nov 28 2017
Is this done?
,
Nov 28 2017
Only implement it on intel platform. Should we track the implementation v4l2_vea with another issue?
,
Nov 28 2017
Yeah. Please file a new bug for v4l2vea implementation.
,
Nov 28 2017
,
Nov 28 2017
Thanks. Let's track the flush() in v4l2_vea vai https://bugs.chromium.org/p/chromium/issues/detail?id=789061 |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by wuchengli@chromium.org
, Aug 16 2017