| Index: media/base/decoder_buffer.cc
|
| diff --git a/media/base/decoder_buffer.cc b/media/base/decoder_buffer.cc
|
| index d3acc26687fb69125667317389df212da2727a08..a9249a10e6cf1903abda467e9822bd876dbca128 100644
|
| --- a/media/base/decoder_buffer.cc
|
| +++ b/media/base/decoder_buffer.cc
|
| @@ -5,7 +5,9 @@
|
| #include "media/base/decoder_buffer.h"
|
|
|
| #include "base/logging.h"
|
| +#include "base/pickle.h"
|
| #include "media/base/decrypt_config.h"
|
| +#include "media/base/video_decoder_config.h"
|
|
|
| namespace media {
|
|
|
| @@ -70,6 +72,44 @@ scoped_refptr<DecoderBuffer> DecoderBuffer::CreateEOSBuffer() {
|
| return make_scoped_refptr(new DecoderBuffer(NULL, 0, NULL, 0));
|
| }
|
|
|
| +// static
|
| +const char DecoderBuffer::kFakeVideoBufferHeader[] = "FakeVideoBufferForTest";
|
| +
|
| +// static
|
| +scoped_refptr<DecoderBuffer> DecoderBuffer::CreateFakeVideoBufferForTest(
|
| + const VideoDecoderConfig& config,
|
| + base::TimeDelta timestamp, base::TimeDelta duration) {
|
| + Pickle pickle;
|
| + pickle.WriteString(kFakeVideoBufferHeader);
|
| + pickle.WriteInt(config.coded_size().width());
|
| + pickle.WriteInt(config.coded_size().height());
|
| + pickle.WriteInt64(timestamp.InMilliseconds());
|
| +
|
| + scoped_refptr<DecoderBuffer> buffer = DecoderBuffer::CopyFrom(
|
| + static_cast<const uint8*>(pickle.data()), pickle.size());
|
| + buffer->SetTimestamp(timestamp);
|
| + buffer->SetDuration(duration);
|
| +
|
| + return buffer;
|
| +}
|
| +
|
| +// static
|
| +bool DecoderBuffer::VerifyFakeVideoBufferForTest(
|
| + const scoped_refptr<DecoderBuffer>& buffer,
|
| + const VideoDecoderConfig& config) {
|
| + // Check if the input |buffer| matches the |config|.
|
| + PickleIterator pickle(Pickle(reinterpret_cast<const char*>(buffer->GetData()),
|
| + buffer->GetDataSize()));
|
| + std::string header;
|
| + int width = 0;
|
| + int height = 0;
|
| + bool success = pickle.ReadString(&header) && pickle.ReadInt(&width) &&
|
| + pickle.ReadInt(&height);
|
| + return (success && header == DecoderBuffer::kFakeVideoBufferHeader &&
|
| + width == config.coded_size().width() &&
|
| + height == config.coded_size().height());
|
| +}
|
| +
|
| base::TimeDelta DecoderBuffer::GetTimestamp() const {
|
| DCHECK(!IsEndOfStream());
|
| return timestamp_;
|
|
|