[Libav-user] New api and deprecation warning

Philippe Gorley philippe.gorley at savoirfairelinux.com
Wed Mar 14 21:43:48 EET 2018

On 2018-03-14 03:26 PM, Michael IV wrote:
> Hi. I am trying to get rid of deprecation warning in the API. I am 
> running with
> ffmpeg -20170711 version. I have a code where I don't explicitly create 
> AVCodecContext
> because I multiplex already existing h264 NALS. But I still have to 
> setup AVStream which has AVCodecContext which it creates internally 
> based on the codec I pass into
> avformat_new_stream
> .So I have something like this then:
> mVideoOutStream->codec->gop_size = muxerParams.gopSize;
> mVideoOutStream->codec->time_base.den = mVideoOutStream->time_base.den;
> mVideoOutStream->codec->time_base.num = mVideoOutStream->time_base.num;
> EYE_ASSERT(mVideoOutStream);
> if (mOutputFormatContext->oformat->flags & AVFMT_GLOBALHEADER)
> {
> mVideoOutStream->codec->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
> }
> Every place I access '->codec->' the compiler says it's deprecated,and 
> the FFMPEG says
> I have to use codecpar instead.But codecpar doesn't have those params. 

For demuxing/decoding:
avcodec_parameters_to_context(codec_ctx, stream->codecpar);

For muxing/encoding:
avcodec_parameters_from_context(stream->codecpar, codec_ctx);

Documentation for these functions can be found here: 

doc/examples/transcoding.c shows how to use both.

> What do I do in this case? Create explicitly codec context and assign it 
> to the stream? Looks like newer API has some design gaps > Thanks.
> _______________________________________________
> Libav-user mailing list
> Libav-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/libav-user

Philippe Gorley
Free Software Consultant | Montréal, Qc
Savoir-faire Linux

Confidentiality Message: This communication (including any files
transmitted with it) is intended solely for the person or entity to
whom it is addressed, and may contain confidential or privileged
The disclosure, distribution or copying of this message is strictly
forbidden. Should you have received this communication in error,
kindly contact the sender promptly, destroy any copies and delete
this message from your computer system.

More information about the Libav-user mailing list