codec2: C2VDAComponent: support dynamic surface switching
Some GTS tests will try to switch surface while decoder is working. In ARC++ decoder case, we need to keep the same set of output buffers. When block pool got the surface (producer) switch request from CCodec, the block pool attaches current buffers to new surface and detaches from old surface, then replace the surface. The component will get noticed from block pool that surface is changed via fetchGraphicBlock() call. The component should stop the dequeue loop and update graphic block informations of new surface from block pool (implemented as updateGraphicBlock()), and restart the dequeue loop then. Bug: 116575263 Test: GtsExoPlayerTestCases on eve-arcnext w/ codec2 enabled Test: com.google.android.exoplayer.gts.DashTest#testH264AdaptiveWithRendererDisabling Test: com.google.android.exoplayer.gts.DashTest#testVp9AdaptiveWithRendererDisabling Change-Id: I0e2cc0af19755c0f6a15d4dfd27ba7f52bb552b6 (cherry picked from commit bdf96463c905cd787be83259e32720ec36412b2a)
Loading
Please sign in to comment