diff --git a/src/AvTranscoder/properties/StreamProperties.cpp b/src/AvTranscoder/properties/StreamProperties.cpp index 1bc28f31..65dd8c9d 100644 --- a/src/AvTranscoder/properties/StreamProperties.cpp +++ b/src/AvTranscoder/properties/StreamProperties.cpp @@ -28,8 +28,21 @@ StreamProperties::StreamProperties(const FormatContext& formatContext, const siz _codecContext = _formatContext->streams[_streamIndex]->codec; } + // find the decoder if(_formatContext && _codecContext) + { _codec = avcodec_find_decoder(_codecContext->codec_id); + + if(_codec) + { + // load specific options of the codec + if(avcodec_open2(_codecContext, _codec, NULL) == 0) + { + loadOptions(_options, _codecContext); + avcodec_close(_codecContext); + } + } + } } StreamProperties::~StreamProperties() @@ -98,6 +111,16 @@ std::string StreamProperties::getCodecLongName() const return std::string(_codec->long_name); } +std::vector