- Jan 20, 2025
-
-
Guillaume LA ROQUE authored
Actually HAL register support of VP8/VP9 and some secure codec but we don't support it actually. Remove declaration of decoder/encoder for unsupported codec and remove all variable and check link to this codec. Fix VTS test : VtsHalMediaC2V1_0TargetMasterTest/PerInstance/Codec2MasterHalTest#ListComponents/0_default VtsHalMediaC2V1_0TargetMasterTest/PerInstance/Codec2MasterHalTest#ListComponents/1_software VtsHalMediaC2V1_0TargetComponentTest Signed-off-by:
Guillaume La Roque <glaroque@baylibre.com>
-
- Nov 26, 2024
-
-
bionic hard-codes the PAGE_SIZE macro as 4096. This is going away as Android begins to support larger page sizes [1] Remove the usage of this hard-coded value by using getpagesize() instead as recommended by the doc [2]. [1] https://source.android.com/docs/core/architecture/16kb-page-size/16kb [2] https://source.android.com/docs/core/architecture/16kb-page-size/getting-page-size Signed-off-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com>
-
Commit 05617941 ("V4L2Device: Refactor querying capabilities") changed behaviour when testing if V4L2_DEC_CMD_STOP is supported by the device. Before, it used VIDIOC_TRY_DECODER_CMD Now, it uses VIDIOC_DECODER_CMD According to the kernel docs [1], VIDIOC_TRY_DECODER_CMD can be used to try a command without actually executing it. In V4L2Decoder::start(), it seems we want to try if V4L2_DEC_CMD_STOP is supported, not actually executing it. Introduce a new helper function, tryV4L2DecoderCmd() to do so and use that instead. [1] https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/vidioc-decoder-cmd.html#description Fixes: 05617941 ("V4L2Device: Refactor querying capabilities") Link: https://android-review.googlesource.com/c/platform/external/v4l2_codec2/+/3301216 Change-Id: I523baa430951c65aa904cdb9f5636bb424ab2dd6 Signed-off-by:
Guillaume La Roque <glaroque@baylibre.com> Signed-off-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com>
-
Since commit [1], bitstream header sequence parsing has been moved earlier. It's now done before setting up the capture queue. With this change, STREAMON on the OUTPUT queue now fails, returning EIO: V4L2Device: (OUTPUT_MPLANE)VIDIOC_STREAMON failed The driver can return EIO on STREAMON whenever the wave5 firmware is not finished parsing the bitstream header. In that case, userspace shall retry to call STREAMON. Add a retry mechanism in V4L2Device so that the wave5 firmware has time enough to finish the bitstream analysis. [1] https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/commit/drivers/media/platform/chips-media/wave5?h=ti-linux-6.6.y&id=98ed806c90ff15caae4585bc985b4b2db8cbeca9 Signed-off-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com> Signed-off-by:
Guillaume La Roque <glaroque@baylibre.com>
-
When using the default (multiplanar) NV12M format, the driver refuses to attach the second plane: D video1 : VIDIOC_S_PARM: type=vid-out-mplane, capability=0x1000, outputmode=0x0, timeperframe=1/60, extendedmode=0, writebuffers=0 I videobuf2_common: [out-0000000008297c50] __prepare_dmabuf: buffer for plane 0 changed I videobuf2_common: [out-0000000008297c50] __prepare_dmabuf: buffer for plane 1 changed I videobuf2_common: [out-0000000008297c50] __prepare_dmabuf: failed to attach dmabuf I videobuf2_common: [out-0000000008297c50] __buf_prepare: buffer preparation failed: -14 E V4L2Device: (OUTPUT_MPLANE)VIDIOC_QBUF failed E V4L2Encoder: Failed to queue input buffer using QueueDMABuf E V4L2Encoder: Failed to enqueue input frame (index: 0, timestamp: 972726916) D CCodec : Component "c2.v4l2.avc.encoder" returned error: 0xe This is because our second dmabuf is invalid. Use NV12 instead, which has one dmabuf that contains both planes. Signed-off-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com> Signed-off-by:
Guillaume La Roque <glaroque@baylibre.com>
-
See: 64021a2e ("TI: add DMABUF_CARVEOUT custom allocator support for decoder") Signed-off-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com> Signed-off-by:
Guillaume La Roque <glaroque@baylibre.com>
-
In 48 bits mode, the wave5 video decoder/encoder has a hardware limitation: For each memory access, the upper 16 bits of the 48 bit address *must* be identical. In order to enforce this addressing limitation, we can use a different dmabuf heap, named carveout[1]. Add support for the carveout heap allocator in plugin_store and make sure that this allocator is used by default for all input buffers. Note: the output allocator still uses gralloc. This requires a custom gralloc implementation which uses the carveout heap whenever the GRALLOC_USAGE_HW_VIDEO_{DECODER,ENCODER} flags are used. To tell the c2 framework that this allocator is available, make sure to set the c2-poolmask property: debug.stagefright.c2-poolmask=0x1f50000 (DMABUF_CARVEOUT is bit 24) [1] https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/dma-buf/heaps/carveout-heap.c?h=ti-linux-6.1.y Signed-off-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com> Signed-off-by:
Guillaume La Roque <glaroque@baylibre.com>
-
Make sure our C2CarveoutDmaBufAllocator gets build as part of the v4l2_codec2 HAL. The functional changes will be done in a later patch. Signed-off-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com> Signed-off-by:
Guillaume La Roque <glaroque@baylibre.com>
-
Since this is version of C2DmaBufAllocator will use a different dmabuf heap, rename it to C2CarveoutDmaBufAllocator to reflect a different usage. Having a different name will be helpful when skimming through logcat. Signed-off-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com> Signed-off-by:
Guillaume La Roque <glaroque@baylibre.com>
-
The C2 DmaBufAllocator provided by libcodec2_vndk does not allow any customization of the dmabuf heap name. Since we need to use a different dmabuf heap (video_carveout) for the wave5 chip, make a copy here that we can customize it. This has been copied over from: //frameworks/av/media/codec2/vndk branch: android-14.0.0_r21 Signed-off-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com> Signed-off-by:
Guillaume La Roque <glaroque@baylibre.com>
-
In V4L2Decoder::start(), we call setupInputFormat() to configure the initial decoding resolution. This is done by passing a default Size() class, which has a size of (-1,-1). According to [1], when calling VIDIOC_S_FMT, the driver can adapt the requested format, which is what the wave5 driver does. By default, the wave5 driver picks up the maximum available resolution: [ 1047.307387][ T3573] wave5_update_pix_fmt 8192x4320 sizeimage: 53084160 Because of that, the initial buffers are too big and connot be allocated by the kernel: [ 1047.981455][ T3573] videobuf2_common: [out-00000000d79789f3] __prepare_dmabuf: failed to attach dmabuf [ 1047.990842][ T3573] videobuf2_common: [out-00000000d79789f3] __buf_prepare: buffer preparation failed: -14 Fix this by using a hard-coding 1080p as an initial input size. [1] https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/vidioc-g-fmt.html#c.V4L.VIDIOC_S_FMT Signed-off-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com> Signed-off-by:
Guillaume La Roque <glaroque@baylibre.com>
-
The AM62P gralloc implementation defaults to NV12 when the YCBCR_420_888 format is requested. This is a requirement for using libcamera. Make sure we configure the video decoder to use the same pixel format. Signed-off-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com> Signed-off-by:
Guillaume La Roque <glaroque@baylibre.com>
-
- Sep 30, 2024
-
-
Treehugger Robot authored
-
Mattijs Korpershoek authored
The client can crash the V4L2EncodeComponent by passing an input with one buffer where buffer==nullptr: F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** F DEBUG : Build fingerprint: 'TI/am62p/am62p:14/UQ1A.240105.002/eng.mkorpe.20240325.115051:userdebug/test-keys' F DEBUG : Revision: '0' F DEBUG : ABI: 'arm64' F DEBUG : Timestamp: 2024-04-09 07:53:02.494446645+0000 F DEBUG : Process uptime: 8s F DEBUG : Cmdline: /vendor/bin/hw/android.hardware.media.c2@1.0-service-v4l2 F DEBUG : pid: 4949, tid: 4955, name: V4L2EncodeCompo >>> /vendor/bin/hw/android.hardware.media.c2@1.0-service-v4l2 <<< F DEBUG : uid: 1013 F DEBUG : tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE) F DEBUG : signal 0 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr -------- F DEBUG : Cause: null pointer dereference F DEBUG : x0 0000000000000000 x1 b400007acbed72e8 x2 b400007a3beda7f0 x3 0000000000000010 F DEBUG : x4 020000797bedb2c0 x5 b400007a2bed1878 x6 0000000000000001 x7 7f7f7f7f7f7fff7f F DEBUG : x8 00000078e68d0710 x9 b40000795bed9990 x10 b40000795bed99a0 x11 0000000000000003 F DEBUG : x12 0000000000000000 x13 0000000000000004 x14 0000000000000276 x15 0000000000000000 F DEBUG : x16 0000007b7c1eac60 x17 0000007b80a6c770 x18 00000078e5aa2000 x19 b400007a0bede5a0 F DEBUG : x20 00000078e68d07e0 x21 0000000000000000 x22 0000000000000000 x23 b400007a9bed6210 F DEBUG : x24 0000000000000000 x25 00000078e68d1000 x26 0000000000000002 x27 0000007b8a387b88 F DEBUG : x28 00000000000fc000 x29 00000078e68d0680 F DEBUG : lr 0000007b7c1cbb20 sp 00000078e68d0680 pc 0000007b80a6c778 pst 0000000080000000 F DEBUG : 12 total frames F DEBUG : backtrace: F DEBUG : #00 pc 0000000000069778 /vendor/lib64/libcodec2_vndk.so (C2Buffer::data() const+8) (BuildId: 1d42f8105aac0515945328329706c2e1) F DEBUG : #01 pc 0000000000042b1c /vendor/lib64/libv4l2_codec2_components.so (android::V4L2EncodeComponent::queueTask(std::__1::unique_ptr<C2Work, std::__1::default_delete<C2Work> >)+348) (BuildId: 2f6128320f05c503e8ee6dc9e05df980) F DEBUG : #02 pc 00000000000470a8 /vendor/lib64/libv4l2_codec2_components.so (base::internal::Invoker<base::internal::BindState<void (android::V4L2EncodeComponent::*)(std::__1::unique_ptr<C2Work, std::__1::default_delete<C2Work> >), base::WeakPtr<android::V4L2EncodeComponent>, std::__1::unique_ptr<C2Work, std::__1::default_delete<C2Work> > >, void ()>::RunOnce(base::internal::BindStateBase*)+120) (BuildId: 2f6128320f05c503e8ee6dc9e05df980) F DEBUG : #03 pc 00000000000acca0 /vendor/lib64/libchrome.so (base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*)+192) (BuildId: 87e214635dddac0ae594ee401576361a) F DEBUG : #04 pc 00000000000cc9ac /vendor/lib64/libchrome.so (base::MessageLoop::RunTask(base::PendingTask*)+348) (BuildId: 87e214635dddac0ae594ee401576361a) F DEBUG : #05 pc 00000000000ccd84 /vendor/lib64/libchrome.so (base::MessageLoop::DoWork()+468) (BuildId: 87e214635dddac0ae594ee401576361a) F DEBUG : #06 pc 00000000000ce080 /vendor/lib64/libchrome.so (base::MessagePumpDefault::Run(base::MessagePump::Delegate*)+96) (BuildId: 87e214635dddac0ae594ee401576361a) F DEBUG : #07 pc 00000000000f1fec /vendor/lib64/libchrome.so (base::RunLoop::Run()+60) (BuildId: 87e214635dddac0ae594ee401576361a) F DEBUG : #08 pc 0000000000111e88 /vendor/lib64/libchrome.so (base::Thread::ThreadMain()+392) (BuildId: 87e214635dddac0ae594ee401576361a) F DEBUG : #09 pc 000000000010f040 /vendor/lib64/libchrome.so (base::(anonymous namespace)::ThreadFunc(void*)+128) (BuildId: 87e214635dddac0ae594ee401576361a) F DEBUG : #10 pc 00000000000d6fb0 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208) (BuildId: 218db69eb66aeb253a34d956906a8bba) F DEBUG : #11 pc 000000000006ad90 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 218db69eb66aeb253a34d956906a8bba) This is tested by VtsHalMediaC2V1_0TargetComponentTest#testInputBuffer(). Fix this by guarding against this condition, as done in SimpleC2Component[1] [1] https://android.googlesource.com/platform/frameworks/av/+/refs/heads/main/media/codec2/components/base/SimpleC2Component.cpp#1141 Test: atest VtsHalMediaC2V1_0TargetComponentTest Change-Id: I407f8f7fb420bd993a665c0a7cb10ad1e224d0fb Signed-off-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com>
-
Mattijs Korpershoek authored
Right now, the reset() operation just calls stop(). When a client calls stop() followed by reset(), reset() returns a C2_BAD_STATE error. (since we are already STOPPED). According to the framework documentation (C2Component.h), reset can *only* return C2_BAD_STATE when the component is in release state. Test if we are already STOPPPED and if so, do a no-op by returning C2_OK. Test: atest VtsHalMediaC2V1_0TargetComponentTest Change-Id: I4095c0a9db43a017d3476224d33534748e2251f5 Signed-off-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com>
-
- Sep 06, 2024
-
-
Xin Li authored
Bug: 357762254 Merged-In: Ieec0794c4bd537a334196f4fb773631fc0cf76b1 Change-Id: Ideb7482713852a769966e68c0ab978250a1c2d3c
-
- Sep 04, 2024
-
-
Michał Krawczyk authored
Original change: https://android-review.googlesource.com/c/platform/external/v4l2_codec2/+/3252909 Change-Id: I322e2c78cd0550cfc9a426d16363e735918592fd Signed-off-by:
Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-
Michał Krawczyk authored
The user app can provide buffers to the encoder directly via MediaCodec API (queueInputBuffer) or via InputSurface. In case the input surface is used, the timestamps of the encoded frames are automatically generated, as they're being considered as a real-time traffic (for example - from screen capture session or the camera input). Also the Component is supposed to dynamically adjust the framerate based on the input frames timestamps (see b/192419592). The dynamic framerate calculation may provide extreme framerate values, which will cause encoder failures because of too high MBPS for the given profile. One such case was detected by test android.media.codec.cts.MediaCodecTest#testAbruptStop after OMX removal. As the CTS test itself can generate such values, the encoder was updated to calculate the maximum allowed framerate for the input frame size and output level. Then this value is used to limit the dynamic framerate calculations. As it can be potentially an app error, the warning is printed whenever this happens. Note: this is currently done only for H264. For other codecs the clamping won't be effective, as the maximum allowed framerate is set to uint32_t::max(). Bug: 295339810 Bug: 362902868 Test: android.media.codec.cts.MediaCodecTest#testAbruptStop Test: com.google.android.media.gts.RtcVideoCodecTest#testDynamicFramerateChangeVp8 Change-Id: I783493453d762886a10996d0ad9821149cafb014
-
- Jun 18, 2024
-
-
Xin Li authored
Bug: 347831320 Merged-In: Ieec0794c4bd537a334196f4fb773631fc0cf76b1 Change-Id: I621bfeb5126c0042624deb2fff96db50fcb8251c
-
- Jun 17, 2024
-
-
Xin Li authored
am skip reason: Merged-In Ie336e0729fb3194f7fb81a26ccbaa3e53f100f35 with SHA-1 e8c76749 is already in history Original change: https://android-review.googlesource.com/c/platform/external/v4l2_codec2/+/3131859 Change-Id: Ia1d98346b8e87dc910bc1771cb8be84035ca99fa Signed-off-by:
Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-
- Jun 13, 2024
-
-
Xin Li authored
Bug: 346855327 Merged-In: Ie336e0729fb3194f7fb81a26ccbaa3e53f100f35 Change-Id: I425af3755c0b231f4f610bf34879c574df894db0
-
- May 29, 2024
-
-
Xin Li authored
[automerger skipped] Merge Android 24Q2 Release (ab/11526283) to aosp-main-future am: e8c76749 -s ours am skip reason: Merged-In I4c2d06da588d2a12a593bbba3461384d8b3dffca with SHA-1 7e15865d is already in history Original change: https://googleplex-android-review.googlesource.com/c/platform/external/v4l2_codec2/+/27273368 Change-Id: Id1fb3f63c0581de824d63da3ae339ad805034e59 Signed-off-by:
Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-
- May 14, 2024
-
-
Garfield Tan authored
Bug: 299845985 Test: They are installed in the ARC++ system image. Change-Id: Ieec0794c4bd537a334196f4fb773631fc0cf76b1
-
- May 06, 2024
-
-
Xin Li authored
Bug: 337098550 Merged-In: I4c2d06da588d2a12a593bbba3461384d8b3dffca Change-Id: Ie336e0729fb3194f7fb81a26ccbaa3e53f100f35
-
- Mar 07, 2024
-
-
Xin Li authored
[automerger skipped] Merge Android 14 QPR2 to AOSP main am: b1539bd8 -s ours am: 033a420e -s ours am skip reason: Merged-In Id57ac546595fde736a32d17f61039b44107f413e with SHA-1 3bde35bb is already in history Original change: https://android-review.googlesource.com/c/platform/external/v4l2_codec2/+/2990909 Change-Id: I80c9d7d883f0787cdfdeea6ed4899af2d04f6b7f Signed-off-by:
Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-
Xin Li authored
am skip reason: Merged-In Id57ac546595fde736a32d17f61039b44107f413e with SHA-1 3bde35bb is already in history Original change: https://android-review.googlesource.com/c/platform/external/v4l2_codec2/+/2990909 Change-Id: I312a86b90b99aa4bfc042a5d8192eadc645e1eb9 Signed-off-by:
Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-
- Mar 06, 2024
-
-
Xin Li authored
Bug: 319669529 Merged-In: Id57ac546595fde736a32d17f61039b44107f413e Change-Id: I2f803594c587ed291e5f86f82779cadc5c1a77e4
-
- Feb 28, 2024
-
-
Hubert Mazur authored
The allocated buffer size for the encoded bitstream is always set to 1MB which might not be always accurate. It is possible to exceed it when high bitrates are used, like 10Mb/s. The encoder might put zeros to the output buffer to meet required bitstream. Also in case of slow devices the encoder might put zeros to meet the time constraints. For the sake of compatibility, set it to the same values as the Chrome browser does for a 1080p stream. Bug: 326164993 Test: CtsMediaCodecTestCases Change-Id: I4c2d06da588d2a12a593bbba3461384d8b3dffca
-
- Jan 31, 2024
-
-
Xin Li authored
am skip reason: Merged-In I25a226b8eb962138489f30cd0fa1a42c3e599bdf with SHA-1 aa357b36 is already in history Original change: https://googleplex-android-review.googlesource.com/c/platform/external/v4l2_codec2/+/25973939 Change-Id: I09d6df84f5344a0e6d2b70c5310c17beec177683 Signed-off-by:
Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-
- Jan 24, 2024
-
-
Xin Li authored
Bug: 319669529 Merged-In: I25a226b8eb962138489f30cd0fa1a42c3e599bdf Change-Id: Id57ac546595fde736a32d17f61039b44107f413e
-
- Jan 23, 2024
-
-
Bartłomiej Grzesik authored
Bug: 320907404 Test: lunch bertha_x86_64-trunk_staging-userdebug && m Change-Id: Ibd77b0db966a296eae166e211c24e7a58a4cc000
-
- Jan 22, 2024
-
-
yangbill authored
Original change: https://android-review.googlesource.com/c/platform/external/v4l2_codec2/+/2897625 Change-Id: I5793eec08472570ecc93403d7d635678890c2b21 Signed-off-by:
Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-
yangbill authored
Original change: https://android-review.googlesource.com/c/platform/external/v4l2_codec2/+/2897625 Change-Id: I568ddf8da4f521b1547ca8abeb8d718b1775fd9c Signed-off-by:
Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-
- Jan 05, 2024
-
-
yangbill authored
Bug: 318786916 Test: lunch aosp_cf_x86_64_phone-trunk_staging-userdebug ; \ m C2E2ETest (Can not find module) Test: Add "PRODUCT_SOONG_NAMESPACES += external/v4l2_codec2" to device/google/cuttlefish/shared/device.mk lunch aosp_cf_x86_64_phone-trunk_staging-userdebug ; \ m C2E2ETest (Build Pass) Change-Id: Ie8ffae13b763b0e1190b46cc7b09daf14d61524c
-
- Dec 06, 2023
-
-
Michał Krawczyk authored
* changes: V4L2Decoder: do not check for DRC for secure codec Reland: "V4L2Decoder: Check if waiting for DRC needed"" V4L2Decoder: Terminate drain if host is not streaming
-
- Dec 05, 2023
-
-
Prameet Shah authored
The original change ag/25539865 was submitted in `main`. Backporting it to this branch to reduce divergence. Bug: 314693926 Bug: 314784915 Test: m Change-Id: I25a226b8eb962138489f30cd0fa1a42c3e599bdf
-
- Dec 04, 2023
-
-
Daichi Hirono authored
The upstream includes these headers after declaring android::base namespace, which resulted in confusing the compiler libchrome's ::base v.s. android::base Bug: 314693926 Test: m Change-Id: I25a226b8eb962138489f30cd0fa1a42c3e599bdf
-
- Nov 28, 2023
-
-
Michał Krawczyk authored
It's not possible to access the frame data if the secure codec is used. An attempt to map() such data will result in an error, and attempt to wait for the DRC will cause a nullptr dereference. This patch adds a workaround, which skips the DRC verification if the secure codec is used. Bug: 280853786 Bug: 274864105 Test: GtsExoPlayerTestCases Change-Id: I5b9d990c87b8afef2817f6bb9b9d8afb42017ca9 (cherry picked from commit 8fce6a632586b49aa23b14235363dca0f1fe0a7c)
-
Zyta Szpak authored
This reverts commit c69b69e501cc928a7bcb1867f26ae9423744c709. Reason for revert: this original commit revealed another bug that got fixed in Chrome and verified by security tests. It can now be safely relanded. Bug: 280853786 Bug: 274864105 Test: android.media.cts.DecoderTest#testEOSBehaviorVP9 Change-Id: I6de423c5b8e6b9d11208d71d279b8ae31cf73f2d (cherry picked from commit ea9b7f077241a75f461f73e292298a6797e72276)
-
Zyta Szpak authored
While testing ARM devices a corner case was discovered that before the first resolution change event is dequeued Chrome output queues and host driver CAPTURE queues are not streaming but ARCVM has no knowledge of it. Drain never finishes because output EOS is expected. Marking that the resolution change was dequeued allows to recognize this state and act accordingly when handling drain. Bug: 280853786 Bug: 232395110 Test: android.mediav2.cts.CodecDecoderTest#testOnlyEos[15(video/avc)] Change-Id: I27d0f73a26d31f32a7e4cb473e685278b07f72a3 (cherry picked from commit 05f380eb88f25cb6d598b01ca80a18860de527c7)
-