Index: media/ffmpeg/ffmpeg_common.cc |
diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc |
index f0812552ec4f0d943c496fd89be87bbc90733268..51e8884fedb1b35fab80b24e13abda6ae4c8f688 100644 |
--- a/media/ffmpeg/ffmpeg_common.cc |
+++ b/media/ffmpeg/ffmpeg_common.cc |
@@ -13,23 +13,11 @@ |
#include "build/build_config.h" |
#include "media/base/audio_decoder_config.h" |
#include "media/base/decoder_buffer.h" |
-#include "media/base/encryption_scheme.h" |
-#include "media/base/media_util.h" |
#include "media/base/video_decoder_config.h" |
#include "media/base/video_util.h" |
#include "media/media_features.h" |
namespace media { |
- |
-namespace { |
- |
-EncryptionScheme GetEncryptionScheme(const AVStream* stream) { |
- AVDictionaryEntry* key = |
- av_dict_get(stream->metadata, "enc_key_id", nullptr, 0); |
- return key ? AesCtrEncryptionScheme() : Unencrypted(); |
-} |
- |
-} // namespace |
// Why FF_INPUT_BUFFER_PADDING_SIZE? FFmpeg assumes all input buffers are |
// padded. Check here to ensure FFmpeg only receives data padded to its |
@@ -315,10 +303,9 @@ |
return AV_SAMPLE_FMT_NONE; |
} |
-bool AVCodecContextToAudioDecoderConfig( |
- const AVCodecContext* codec_context, |
- const EncryptionScheme& encryption_scheme, |
- AudioDecoderConfig* config) { |
+bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context, |
+ bool is_encrypted, |
+ AudioDecoderConfig* config) { |
DCHECK_EQ(codec_context->codec_type, AVMEDIA_TYPE_AUDIO); |
AudioCodec codec = CodecIDToAudioCodec(codec_context->codec_id); |
@@ -384,9 +371,13 @@ |
extra_data.assign(codec_context->extradata, |
codec_context->extradata + codec_context->extradata_size); |
} |
- |
- config->Initialize(codec, sample_format, channel_layout, sample_rate, |
- extra_data, encryption_scheme, seek_preroll, |
+ config->Initialize(codec, |
+ sample_format, |
+ channel_layout, |
+ sample_rate, |
+ extra_data, |
+ is_encrypted, |
+ seek_preroll, |
codec_context->delay); |
// Verify that AudioConfig.bits_per_channel was calculated correctly for |
@@ -409,8 +400,13 @@ |
bool AVStreamToAudioDecoderConfig(const AVStream* stream, |
AudioDecoderConfig* config) { |
- return AVCodecContextToAudioDecoderConfig( |
- stream->codec, GetEncryptionScheme(stream), config); |
+ bool is_encrypted = false; |
+ AVDictionaryEntry* key = |
+ av_dict_get(stream->metadata, "enc_key_id", nullptr, 0); |
+ if (key) |
+ is_encrypted = true; |
+ return AVCodecContextToAudioDecoderConfig(stream->codec, is_encrypted, |
+ config); |
} |
void AudioDecoderConfigToAVCodecContext(const AudioDecoderConfig& config, |
@@ -501,6 +497,12 @@ |
coded_size.set_height((coded_size.height() + 1) / 2 * 2); |
} |
+ bool is_encrypted = false; |
+ AVDictionaryEntry* key = |
+ av_dict_get(stream->metadata, "enc_key_id", nullptr, 0); |
+ if (key) |
+ is_encrypted = true; |
+ |
AVDictionaryEntry* webm_alpha = |
av_dict_get(stream->metadata, "alpha_mode", nullptr, 0); |
if (webm_alpha && !strcmp(webm_alpha->value, "1")) { |
@@ -533,8 +535,7 @@ |
stream->codec->extradata + stream->codec->extradata_size); |
} |
config->Initialize(codec, profile, format, color_space, coded_size, |
- visible_rect, natural_size, extra_data, |
- GetEncryptionScheme(stream)); |
+ visible_rect, natural_size, extra_data, is_encrypted); |
return true; |
} |