summaryrefslogtreecommitdiffstats
path: root/media/webm
diff options
context:
space:
mode:
authorvrk@google.com <vrk@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-02 20:18:07 +0000
committervrk@google.com <vrk@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-02 20:18:07 +0000
commitec57586df7a60d4739426407fe3922b879c55b04 (patch)
tree87ff3edddc9d5f61ed2bb6c2f2d4fd557bd46d56 /media/webm
parentd20a6514672aa08c208e9d7b5708e1de33dd9cf7 (diff)
downloadchromium_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.cc6
-rw-r--r--media/webm/webm_cluster_parser.h4
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,