Index: media/webm/webm_cluster_parser.cc |
diff --git a/media/webm/webm_cluster_parser.cc b/media/webm/webm_cluster_parser.cc |
index 8151ec6b4604a90eb24eef0a72c6921137e69f9a..92f1dc79a9e3192475b43d4c194d7038a88241ae 100644 |
--- a/media/webm/webm_cluster_parser.cc |
+++ b/media/webm/webm_cluster_parser.cc |
@@ -6,13 +6,17 @@ |
#include "base/logging.h" |
#include "media/base/data_buffer.h" |
+#include "media/ffmpeg/ffmpeg_common.h" |
#include "media/webm/webm_constants.h" |
namespace media { |
static Buffer* CreateBuffer(const uint8* data, size_t size) { |
- scoped_array<uint8> buf(new uint8[size]); |
+ // Why FF_INPUT_BUFFER_PADDING_SIZE? FFmpeg assumes all input buffers are |
+ // padded with this value. |
+ scoped_array<uint8> buf(new uint8[size + FF_INPUT_BUFFER_PADDING_SIZE]); |
memcpy(buf.get(), data, size); |
+ memset(buf.get() + size, 0, FF_INPUT_BUFFER_PADDING_SIZE); |
return new DataBuffer(buf.Pass(), size); |
} |
@@ -129,7 +133,7 @@ bool WebMClusterParser::OnSimpleBlock(int track_num, int timecode, |
if (!queue->empty() && |
buffer->GetTimestamp() == queue->back()->GetTimestamp()) { |
DVLOG(1) << "Got SimpleBlock timecode is not strictly monotonically " |
- << "increasing for track " << track_num; |
+ << "increasing for track " << track_num; |
return false; |
} |