summaryrefslogtreecommitdiffstats
path: root/media/webm/webm_stream_parser.cc
diff options
context:
space:
mode:
authorfgalligan@chromium.org <fgalligan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-14 23:52:41 +0000
committerfgalligan@chromium.org <fgalligan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-14 23:52:41 +0000
commit4d98e445c98768bb5eb44f8947bea55c1da8334b (patch)
treeb6cf720b8d7ac51b47ab9196bbcaa7c5349977f9 /media/webm/webm_stream_parser.cc
parent76e5e6d404fa7d608a9da91e3903a9a2c9165a77 (diff)
downloadchromium_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.cc11
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