• Dan Sanders's avatar
    [media] Maintain DecoderSelector state throughout decoder selection. · 9e96a32b
    Dan Sanders authored
    This CL changes DecoderStream to maintain an instance of DecoderSelector
    continually. This enabled DecoderSelector to maintain
    DecryptingDemuxerStream state and the blacklist internally.
    
    An immediate consequence is that DecoderSelector can now always try the
    full list of potential decoders each time that selection is triggered.
    This fixes the GPU->GPU changeType() transition, and provides a
    foundation to build GPU fallforward on top of.
    
    Another consequence is that fallback can occur more than once for a
    stream. It is no longer possible to loop forever doing fallbacks, so this
    is a robustness improvement in addition to being a requirement for
    changeType().
    
    Bug: 877673
    Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
    Change-Id: I76d1bed1c914e1ec58a6653d7200fbb67f70971a
    Reviewed-on: https://chromium-review.googlesource.com/1188978
    Commit-Queue: Dan Sanders <sandersd@chromium.org>
    Reviewed-by: default avatarDale Curtis <dalecurtis@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#587908}
    9e96a32b
callback_holder.h 1.82 KB