Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(394)

Unified Diff: media/base/decoder_buffer.h

Issue 712593003: Move key frame flag from StreamParserBuffer to DecoderBuffer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/base/decoder_buffer.h
diff --git a/media/base/decoder_buffer.h b/media/base/decoder_buffer.h
index 092b2130c50257c1b0bc1aa31f3869026b4f1396..bc11fac9fdc7d4af8b0b5e967c99f40ab8e7f474 100644
--- a/media/base/decoder_buffer.h
+++ b/media/base/decoder_buffer.h
@@ -42,19 +42,23 @@ class MEDIA_EXPORT DecoderBuffer
};
// Allocates buffer with |size| >= 0. Buffer will be padded and aligned
- // as necessary.
+ // as necessary, and is_keyframe() will default to false.
explicit DecoderBuffer(int size);
// Create a DecoderBuffer whose |data_| is copied from |data|. Buffer will be
// padded and aligned as necessary. |data| must not be NULL and |size| >= 0.
- static scoped_refptr<DecoderBuffer> CopyFrom(const uint8* data, int size);
+ // |is_keyframe| indicates if the buffer is a random access point.
+ static scoped_refptr<DecoderBuffer> CopyFrom(const uint8* data, int size,
+ bool is_keyframe);
xhwang 2014/11/10 20:14:12 We don't set a lot of variables in CopyFrom, e.g.
wolenetz 2014/11/11 22:39:41 Done. This makes the change less extensive, too. K
// Create a DecoderBuffer whose |data_| is copied from |data| and |side_data_|
// is copied from |side_data|. Buffers will be padded and aligned as necessary
- // Data pointers must not be NULL and sizes must be >= 0.
+ // Data pointers must not be NULL and sizes must be >= 0. |is_keyframe|
+ // indicates if the buffer is a random access point.
static scoped_refptr<DecoderBuffer> CopyFrom(const uint8* data, int size,
const uint8* side_data,
- int side_data_size);
+ int side_data_size,
+ bool is_keyframe);
xhwang 2014/11/10 20:14:12 ditto.
wolenetz 2014/11/11 22:39:41 Done.
// Create a DecoderBuffer indicating we've reached end of stream.
//
@@ -154,6 +158,16 @@ class MEDIA_EXPORT DecoderBuffer
splice_timestamp_ = splice_timestamp;
}
+ bool is_keyframe() const {
+ DCHECK(!end_of_stream());
+ return is_keyframe_;
+ }
+
+ void set_is_keyframe(bool is_keyframe) {
+ DCHECK(!end_of_stream());
+ is_keyframe_ = is_keyframe;
+ }
+
// Returns a human-readable string describing |*this|.
std::string AsHumanReadableString();
@@ -162,9 +176,11 @@ class MEDIA_EXPORT DecoderBuffer
// Allocates a buffer of size |size| >= 0 and copies |data| into it. Buffer
// will be padded and aligned as necessary. If |data| is NULL then |data_| is
- // set to NULL and |buffer_size_| to 0.
+ // set to NULL and |buffer_size_| to 0. |is_keyframe| indicates if the buffer
+ // is a random access point.
DecoderBuffer(const uint8* data, int size,
- const uint8* side_data, int side_data_size);
+ const uint8* side_data, int side_data_size,
+ bool is_keyframe);
xhwang 2014/11/10 20:14:12 ditto
wolenetz 2014/11/11 22:39:41 Done.
virtual ~DecoderBuffer();
private:
@@ -178,6 +194,7 @@ class MEDIA_EXPORT DecoderBuffer
scoped_ptr<DecryptConfig> decrypt_config_;
DiscardPadding discard_padding_;
base::TimeDelta splice_timestamp_;
+ bool is_keyframe_;
xhwang 2014/11/10 20:14:12 It seems to me key and frame should be two words,
wolenetz 2014/11/11 22:39:41 There is much inconsistency on the web about this
// Constructor helper method for memory allocations.
void Initialize();

Powered by Google App Engine
This is Rietveld 408576698