Index: media/filters/ffmpeg_video_decoder.cc |
diff --git a/media/filters/ffmpeg_video_decoder.cc b/media/filters/ffmpeg_video_decoder.cc |
index fdf8dc5841a8085c4831026dd693b6fe3e994acf..a8b0f6f1275eacee57b91a73e4f60b39bde200a4 100644 |
--- a/media/filters/ffmpeg_video_decoder.cc |
+++ b/media/filters/ffmpeg_video_decoder.cc |
@@ -125,14 +125,17 @@ int FFmpegVideoDecoder::GetVideoBuffer(struct AVCodecContext* codec_context, |
return AVERROR(EINVAL); |
} |
+ // FFmpeg expects the initialize allocation to be zero-initialized. Failure |
+ // to do so can lead to unitialized value usage. See http://crbug.com/390941 |
miu
2015/07/09 23:31:34
Instead of ever initializing the memory, why not j
DaleCurtis
2015/07/09 23:34:43
If we're okay with potentially large allocations b
|
scoped_refptr<VideoFrame> video_frame = frame_pool_.CreateFrame( |
- format, coded_size, gfx::Rect(size), natural_size, kNoTimestamp()); |
+ format, coded_size, gfx::Rect(size), natural_size, kNoTimestamp(), true); |
+ |
if (codec_context->colorspace == AVCOL_SPC_BT709) { |
video_frame->metadata()->SetInteger(VideoFrameMetadata::COLOR_SPACE, |
VideoFrame::COLOR_SPACE_HD_REC709); |
} |
- for (int i = 0; i < 3; i++) { |
+ for (size_t i = 0; i < VideoFrame::NumPlanes(video_frame->format()); i++) { |
frame->data[i] = video_frame->data(i); |
frame->linesize[i] = video_frame->stride(i); |
} |