std::tie(track_dispatcher, any_thread_track, control_thread_track,
worker_thread_track) =
TrackDispatcher::Create(
- {pipeline_mode_, config.decoder_selection_policy()},
+ {pipeline_mode_, config.decoder_selection_policy(),
+ config.encryption_scheme()},
GetControlThreadTaskRunner(), worker_thread_task_runner_,
std::move(config));
auto [track_dispatcher, any_thread_track, control_thread_track,
worker_thread_track] =
TrackDispatcher::Create(
- {pipeline_mode_, config.decoder_selection_policy()},
+ {pipeline_mode_, config.decoder_selection_policy(),
+ config.encryption_scheme()},
GetControlThreadTaskRunner(), worker_thread_task_runner_,
std::move(config));
}
media::EncryptionScheme EncryptionModeAsEnum(
- const WTF::String& encryption_mode) {
+ const V8EncryptionMode::Enum& encryption_mode) {
EMSS_VERBOSE_NO_INSTANCE();
- if (encryption_mode == "cenc") {
- return media::EncryptionScheme::kCenc;
- }
-
- if (encryption_mode == "cbcs") {
- return media::EncryptionScheme::kCbcs;
+ switch (encryption_mode) {
+ case V8EncryptionMode::Enum::kCenc:
+ return media::EncryptionScheme::kCenc;
+ case V8EncryptionMode::Enum::kCbcs:
+ return media::EncryptionScheme::kCbcs;
}
return media::EncryptionScheme::kUnencrypted;
? V8DecodingModeToDecoderSelectionPolicy(
config->decodingModeNonNull().AsEnum())
: media::DecoderSelectionPolicy::kDefault;
+ const auto encryption_scheme =
+ config->hasEncryptionModeNonNull()
+ ? EncryptionModeAsEnum(config->encryptionModeNonNull().AsEnum())
+ : EncryptionScheme::kUnencrypted;
auto audio_decoder_config = media::AudioDecoderConfig{
audio_codec, sample_format, channel_layout,
- samples_per_second, audio_extra_data, EncryptionScheme::kUnencrypted};
+ samples_per_second, audio_extra_data, encryption_scheme};
audio_decoder_config.set_decoder_selection_policy(decoder_selection_policy);
- // FIXME(p.balut): support encrypted streams
return audio_decoder_config;
}
config->decodingModeNonNull().AsEnum())
: media::DecoderSelectionPolicy::kDefault;
+ auto encryption_scheme =
+ config->hasEncryptionModeNonNull()
+ ? EncryptionModeAsEnum(config->encryptionModeNonNull().AsEnum())
+ : EncryptionScheme::kUnencrypted;
auto video_decoder_config = media::VideoDecoderConfig{
video_codec,
profile,
gfx::Rect{video_size.width(), video_size.height()}, // visible_rect
video_size, // natural_size
video_extra_data,
- EncryptionScheme::kUnencrypted};
+ encryption_scheme};
video_decoder_config.set_is_low_latency(emss_latency_mode !=
EmssLatencyMode::kNormal);
#if defined(TIZEN_TV_UPSTREAM_MULTIMEDIA)
}
#endif // BUILDFLAG(IS_TIZEN_TV)
- // FIXME(p.balut): support encrypted streams
return video_decoder_config;
}
web_packet_metadata->initialization_vector = std::move(initialization_vector);
- if (!packet_metadata->hasEncryptionMode()) {
- EMSS_LOG_TYPED(WARNING) << "Missing encryption mode";
- return DOMExceptionCode::kAppendUnknownDecryptionModeError;
+ if (packet_metadata->hasEncryptionModeNonNull()) {
+ // If used, overrides global track config. This is provided mostly for
+ // backward compatibility with pre-TTvd era.
+ web_packet_metadata->encryption_scheme =
+ EncryptionModeAsEnum(packet_metadata->encryptionModeNonNull().AsEnum());
}
- web_packet_metadata->encryption_scheme =
- EncryptionModeAsEnum(packet_metadata->encryptionMode());
-
if (packet_metadata->hasCryptByteBlock()) {
web_packet_metadata->crypt_byte_block = packet_metadata->cryptByteBlock();
}