diff options
author | vrk@google.com <vrk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-02 20:18:07 +0000 |
---|---|---|
committer | vrk@google.com <vrk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-02 20:18:07 +0000 |
commit | ec57586df7a60d4739426407fe3922b879c55b04 (patch) | |
tree | 87ff3edddc9d5f61ed2bb6c2f2d4fd557bd46d56 /media/webm | |
parent | d20a6514672aa08c208e9d7b5708e1de33dd9cf7 (diff) | |
download | chromium_src-ec57586df7a60d4739426407fe3922b879c55b04.zip chromium_src-ec57586df7a60d4739426407fe3922b879c55b04.tar.gz chromium_src-ec57586df7a60d4739426407fe3922b879c55b04.tar.bz2 |
Add StreamParserBuffer to ChunkDemuxer
This will allow SourceBufferStreams to identify keyframes.
BUG=125680
TEST=NONE
Review URL: https://chromiumcodereview.appspot.com/10269022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134978 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/webm')
-rw-r--r-- | media/webm/webm_cluster_parser.cc | 6 | ||||
-rw-r--r-- | media/webm/webm_cluster_parser.h | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/media/webm/webm_cluster_parser.cc b/media/webm/webm_cluster_parser.cc index c34cd8d..68abec7 100644 --- a/media/webm/webm_cluster_parser.cc +++ b/media/webm/webm_cluster_parser.cc @@ -115,7 +115,11 @@ bool WebMClusterParser::OnSimpleBlock(int track_num, int timecode, base::TimeDelta timestamp = base::TimeDelta::FromMicroseconds( (cluster_timecode_ + timecode) * timecode_multiplier_); - scoped_refptr<DataBuffer> buffer = DataBuffer::CopyFrom(data, size); + // The first bit of the flags is set when the block contains only keyframes. + // http://www.matroska.org/technical/specs/index.html + bool is_keyframe = (flags & 0x80) != 0; + scoped_refptr<StreamParserBuffer> buffer = + StreamParserBuffer::CopyFrom(data, size, is_keyframe); if (track_num == video_track_num_ && video_encryption_key_id_.get()) { buffer->SetDecryptConfig(scoped_ptr<DecryptConfig>(new DecryptConfig( diff --git a/media/webm/webm_cluster_parser.h b/media/webm/webm_cluster_parser.h index 8646289..1d103ff 100644 --- a/media/webm/webm_cluster_parser.h +++ b/media/webm/webm_cluster_parser.h @@ -9,14 +9,14 @@ #include <string> #include "base/memory/scoped_ptr.h" -#include "media/base/buffers.h" +#include "media/base/stream_parser_buffer.h" #include "media/webm/webm_parser.h" namespace media { class WebMClusterParser : public WebMParserClient { public: - typedef std::deque<scoped_refptr<Buffer> > BufferQueue; + typedef std::deque<scoped_refptr<StreamParserBuffer> > BufferQueue; WebMClusterParser(int64 timecode_scale, int audio_track_num, |