summaryrefslogtreecommitdiffstats
path: root/media/formats/webm
diff options
context:
space:
mode:
authorhajimehoshi <hajimehoshi@chromium.org>2015-10-19 01:04:35 -0700
committerCommit bot <commit-bot@chromium.org>2015-10-19 08:05:22 +0000
commit3d5d4e33ef71fecdafaaa920ad5a1b4fe03d13fb (patch)
tree0270e4cd1f2d6f686cb548f1e14c8c7354337e3f /media/formats/webm
parent8cfd9626b3e4ad0fa3822d3ca9da5791d6804247 (diff)
downloadchromium_src-3d5d4e33ef71fecdafaaa920ad5a1b4fe03d13fb.zip
chromium_src-3d5d4e33ef71fecdafaaa920ad5a1b4fe03d13fb.tar.gz
chromium_src-3d5d4e33ef71fecdafaaa920ad5a1b4fe03d13fb.tar.bz2
Revert of Fail playback when VideoDecoderConfig has invalid extra data. (patchset #14 id:260001 of https://codereview.chromium.org/1396583002/ )
Reason for revert: This causes a compile error on Mac (crbug.com/544748). Original issue's description: > Fail playback when VideoDecoderConfig has invalid extra data. > > Invalid extra data occurs when: > (extra_data_ptr == NULL) != (extra_data_size == 0) > > We were previously crashing (CHECK) on this condition. > {Audio|Video}DecoderConfig now use a vector and pointer/size issues > are detected/handled in the path of creating the FFmpegDemuxerStream. > > BUG=517163 > TEST=New unit test. Manually verified graceful failure for MSE & SRC= > R=bbudge@chromium.org, gunsch@chromium.org, sandersd@chromium.org, xhwang@chromium.org > > Committed: https://chromium.googlesource.com/chromium/src/+/54d0dc5450e6d8d6a7cd80bd9fa512a41999e08e TBR=xhwang@chromium.org,bbudge@chromium.org,lcwu@chromium.org,gunsch@chromium.org,sandersd@chromium.org,chcunningham@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=517163 Review URL: https://codereview.chromium.org/1409353003 Cr-Commit-Position: refs/heads/master@{#354735}
Diffstat (limited to 'media/formats/webm')
-rw-r--r--media/formats/webm/webm_audio_client.cc10
-rw-r--r--media/formats/webm/webm_video_client.cc10
2 files changed, 17 insertions, 3 deletions
diff --git a/media/formats/webm/webm_audio_client.cc b/media/formats/webm/webm_audio_client.cc
index 995746a4..bde7233 100644
--- a/media/formats/webm/webm_audio_client.cc
+++ b/media/formats/webm/webm_audio_client.cc
@@ -66,6 +66,13 @@ bool WebMAudioClient::InitializeConfig(
sample_format = kSampleFormatF32;
}
+ const uint8* extra_data = NULL;
+ size_t extra_data_size = 0;
+ if (codec_private.size() > 0) {
+ extra_data = &codec_private[0];
+ extra_data_size = codec_private.size();
+ }
+
// Convert |codec_delay| from nanoseconds into frames.
int codec_delay_in_frames = 0;
if (codec_delay != -1) {
@@ -80,7 +87,8 @@ bool WebMAudioClient::InitializeConfig(
sample_format,
channel_layout,
samples_per_second,
- codec_private,
+ extra_data,
+ extra_data_size,
is_encrypted,
base::TimeDelta::FromMicroseconds(
(seek_preroll != -1 ? seek_preroll : 0) / 1000),
diff --git a/media/formats/webm/webm_video_client.cc b/media/formats/webm/webm_video_client.cc
index 29b7dca..2d3f43b 100644
--- a/media/formats/webm/webm_video_client.cc
+++ b/media/formats/webm/webm_video_client.cc
@@ -88,10 +88,16 @@ bool WebMVideoClient::InitializeConfig(
return false;
}
gfx::Size natural_size = gfx::Size(display_width_, display_height_);
+ const uint8* extra_data = NULL;
+ size_t extra_data_size = 0;
+ if (codec_private.size() > 0) {
+ extra_data = &codec_private[0];
+ extra_data_size = codec_private.size();
+ }
config->Initialize(video_codec, profile, format, COLOR_SPACE_HD_REC709,
- coded_size, visible_rect, natural_size, codec_private,
- is_encrypted);
+ coded_size, visible_rect, natural_size, extra_data,
+ extra_data_size, is_encrypted);
return config->IsValidConfig();
}