Move key frame flag from StreamParserBuffer to DecoderBuffer
commit02357c0df3949ee2ec1a9fabf22a8ee6e70cb41f
authorwolenetz <wolenetz@chromium.org>
Wed, 12 Nov 2014 00:55:44 +0000 (11 16:55 -0800)
committerCommit bot <commit-bot@chromium.org>
Wed, 12 Nov 2014 00:56:33 +0000 (12 00:56 +0000)
tree215943ec518162e20fc8bc61eee50246724c8253
parente635738fc37edd57ba55386ee2b3149df457b271
Move key frame flag from StreamParserBuffer to DecoderBuffer

This change is the first in a sequence of changes to enable eventual
removal of the "BrowserSeek" behavior in Chrome for Android by letting
reads from demuxer indicate if the buffer is a key frame or not.

This change
* moves |is_keyframe_| from StreamParserBuffer to DecoderBuffer |is_key_frame_|
* moves StreamParserBuffer::IsKeyframe() to DecoderBuffer::is_key_frame()
* adds DecoderBuffer::set_is_key_frame() to allow updating after buffer
  construction
* populates this field in DemuxerStream subclasses and related code
* updates unit tests, especially ChunkDemuxerTest and FFmpegDemuxerTest,
  to check keyframe expectations in stream read results for most of these tests
* updates media/mojo type DecoderBuffer type converter and unit tests to
  round-trip the key frame flag.

Later change(s) will do the actual removal of Chrome for Android
BrowserSeek logic and tests.

BUG=304234
TEST=Updated unit tests pass, including mojo_media_lib_unittests

Review URL: https://codereview.chromium.org/712593003

Cr-Commit-Position: refs/heads/master@{#303764}
27 files changed:
media/base/decoder_buffer.cc
media/base/decoder_buffer.h
media/base/decoder_buffer_unittest.cc
media/base/decryptor.h
media/base/fake_text_track_stream.cc
media/base/stream_parser_buffer.cc
media/base/stream_parser_buffer.h
media/base/test_helpers.cc
media/filters/audio_decoder_unittest.cc
media/filters/chunk_demuxer_unittest.cc
media/filters/decrypting_demuxer_stream.cc
media/filters/ffmpeg_demuxer.cc
media/filters/ffmpeg_demuxer_unittest.cc
media/filters/frame_processor.cc
media/filters/source_buffer_range.cc
media/filters/source_buffer_range.h
media/filters/source_buffer_stream.cc
media/filters/source_buffer_stream_unittest.cc
media/filters/video_frame_stream_unittest.cc
media/formats/common/stream_parser_test_base.cc
media/formats/mp2t/es_adapter_video.cc
media/formats/mp2t/es_adapter_video_unittest.cc
media/formats/mp2t/mp2t_stream_parser.cc
media/formats/webm/webm_cluster_parser.cc
media/mojo/interfaces/media_types.mojom
media/mojo/services/media_type_converters.cc
media/mojo/services/media_type_converters_unittest.cc