*/
av_dict_set (&options, "analyzeduration", raw_convert<string> (5 * 60 * 1000000).c_str(), 0);
av_dict_set (&options, "probesize", raw_convert<string> (5 * 60 * 1000000).c_str(), 0);
+ if (_ffmpeg_content->decryption_key()) {
+ av_dict_set (&options, "decryption_key", _ffmpeg_content->decryption_key()->c_str(), 0);
+ }
int e = avformat_open_input (&_format_context, 0, 0, &options);
if (e < 0) {
_color_trc = get_optional_enum<AVColorTransferCharacteristic>(node, "ColorTransferCharacteristic");
_colorspace = get_optional_enum<AVColorSpace>(node, "Colorspace");
_bits_per_pixel = node->optional_number_child<int> ("BitsPerPixel");
-
+ _decryption_key = node->optional_string_child ("DecryptionKey");
}
FFmpegContent::FFmpegContent (shared_ptr<const Film> film, vector<shared_ptr<Content> > c)
if (_bits_per_pixel) {
node->add_child("BitsPerPixel")->add_child_text (raw_convert<string> (*_bits_per_pixel));
}
+ if (_decryption_key) {
+ node->add_child("DecryptionKey")->add_child_text (_decryption_key.get());
+ }
}
void
void signal_subtitle_stream_changed ();
+ boost::optional<std::string> decryption_key () const {
+ boost::mutex::scoped_lock lm (_mutex);
+ return _decryption_key;
+ }
+
private:
void add_properties (std::list<UserProperty> &) const;
boost::optional<AVColorTransferCharacteristic> _color_trc;
boost::optional<AVColorSpace> _colorspace;
boost::optional<int> _bits_per_pixel;
+ boost::optional<std::string> _decryption_key;
};
#endif