diff options
author | fgalligan@chromium.org <fgalligan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-14 23:52:41 +0000 |
---|---|---|
committer | fgalligan@chromium.org <fgalligan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-14 23:52:41 +0000 |
commit | 4d98e445c98768bb5eb44f8947bea55c1da8334b (patch) | |
tree | b6cf720b8d7ac51b47ab9196bbcaa7c5349977f9 /media/webm/webm_stream_parser.cc | |
parent | 76e5e6d404fa7d608a9da91e3903a9a2c9165a77 (diff) | |
download | chromium_src-4d98e445c98768bb5eb44f8947bea55c1da8334b.zip chromium_src-4d98e445c98768bb5eb44f8947bea55c1da8334b.tar.gz chromium_src-4d98e445c98768bb5eb44f8947bea55c1da8334b.tar.bz2 |
Support for parsing encrypted WebM streams by src.
- Note: Only looking for comments on direction. A lot of work
still needs to be done before committing.
- Added support to FFmpegDemuxer to decrypt encrypted WebM streams.
- Added support to FFmpegDemuxer to handle the needKey and keyAdded
messages.
- Added support to WebMediaPlayerImpl to handle the needKey and
keyAdded messages.
BUG=123426
TEST=All media_unittests pass
Review URL: https://chromiumcodereview.appspot.com/10829470
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188228 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/webm/webm_stream_parser.cc')
-rw-r--r-- | media/webm/webm_stream_parser.cc | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/media/webm/webm_stream_parser.cc b/media/webm/webm_stream_parser.cc index b60de5d..f47fa41 100644 --- a/media/webm/webm_stream_parser.cc +++ b/media/webm/webm_stream_parser.cc @@ -14,14 +14,12 @@ #include "media/webm/webm_cluster_parser.h" #include "media/webm/webm_constants.h" #include "media/webm/webm_content_encodings.h" +#include "media/webm/webm_crypto_helpers.h" #include "media/webm/webm_info_parser.h" #include "media/webm/webm_tracks_parser.h" namespace media { -// TODO(xhwang): Figure out the init data type appropriately once it's spec'ed. -static const char kWebMInitDataType[] = "video/webm"; - // Helper class that uses FFmpeg to create AudioDecoderConfig & // VideoDecoderConfig objects. // @@ -150,13 +148,12 @@ bool FFmpegConfigHelper::SetupStreamConfigs() { bool no_supported_streams = true; for (size_t i = 0; i < format_context->nb_streams; ++i) { AVStream* stream = format_context->streams[i]; - AVCodecContext* codec_context = stream->codec; - AVMediaType codec_type = codec_context->codec_type; + AVMediaType codec_type = stream->codec->codec_type; if (codec_type == AVMEDIA_TYPE_AUDIO && stream->codec->codec_id == CODEC_ID_VORBIS && !audio_config_.IsValidConfig()) { - AVCodecContextToAudioDecoderConfig(stream->codec, &audio_config_); + AVStreamToAudioDecoderConfig(stream, &audio_config_); no_supported_streams = false; continue; } @@ -473,7 +470,7 @@ void WebMStreamParser::FireNeedKey(const std::string& key_id) { DCHECK_GT(key_id_size, 0); scoped_array<uint8> key_id_array(new uint8[key_id_size]); memcpy(key_id_array.get(), key_id.data(), key_id_size); - need_key_cb_.Run(kWebMInitDataType, key_id_array.Pass(), key_id_size); + need_key_cb_.Run(kWebMEncryptInitDataType, key_id_array.Pass(), key_id_size); } } // namespace media |