scrubbing video timeline can recreate bunches of MediaCodec instances on android |
|||
Issue descriptionon devices that don't support MediaCodec::Reset, every seek will AVDA::Reset => ResetCodecState => ConfigureCodec. on my n5 with flush turned off, a scrub across 10 second BBB caused ~5 ::Resets, each at about 250msec (100msec in ConfigureMediaCodec). the scrubber didn't track my finger very well.
,
Mar 29 2017
Is this still an issue or was this resolved with the deferred reset?
,
Mar 30 2017
it seems about the same as before. ~3 seconds of seeking around caused ~25 codecs to be created. i also turned off deferred reset, and it didn't seem to affect much. the deferred reset doesn't seem to happen except on a DRAIN_TYPE_FLUSH. i tried including ..._RESET too. this cut it down to ~6 codecs during a 3 second seek. i don't know if i should be happy about a 4x improvement or sad about wasting 83% of the codecs that are still allocated. i also don't know if it's safe to defer on reset. i think so.
,
Mar 30 2017
Not much we can do if we get past the seeked point and are asked to provide a frame. I thought watk@ fixed the defer on reset stuff recently. We previously were creating codecs on destruction too. I agree that it should be safe and though we were deferring...
,
Mar 30 2017
I don't remember if I tried deferring after a Reset(). The only thing I'm wondering is how long after the Reset() does the first frame arrive? Because we Reset() at MSE config changes, and I wouldn't want to introduce any more latency there. I suspect it's just a couple of ms, and doesn't really matter.
,
Mar 31 2017
weird, https://codereview.chromium.org/2789773002/ landed three hours ago and it didn't add an update here. anyway, i don't know how long after a reset does it arrive. i'll measure.
,
Oct 20 2017
|
|||
►
Sign in to add a comment |
|||
Comment 1 by sheriffbot@chromium.org
, Mar 29 2017Status: Untriaged (was: Available)