New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RDY] Support current FFMPEG / libAV APIs #1228

merged 3 commits into from Jul 12, 2017


None yet
2 participants

TheCycoONE commented Jul 11, 2017

Conditionally replaces deprecated ffmpeg / libav functions and procedures with current equivalents. The most significant being the change to the avcodec_send_packet / avcodec_receive_frame decoding API that replaces the old avcodec_video_decode and avcodec_audio_decode functions.

TheCycoONE added some commits Jun 22, 2017

Use preferred avcodec_parameters_to_context

"It used to be common practice to use this embedded AVCodecContext as the
actual encoding or decoding context. It also used to be passed to
bitstream filters and parsers. This process was extremely ill-defined
and unsafe, since all those components may see the stream at different
stages (since each component has its own, potentially quite large,
delay) and may try to overwrite various AVCodecContext fields in ways
that are unexpected for the other components."

"To solve those issues, a new AVCodecParameters object is introduced,
and its instance is added to AVStream as AVStream.codecpar. The demuxers
now export all codec parameters read from the input stream into this new
object. Similarly, the caller should set the stream parameters in this
object when muxing. For encoding or decoding, the caller should allocate
a separate AVCodecContext object.
functions are provided to transfer the stream parameters between an
AVCodecContext and AVCodecParameters, so that a caller can easily
initialise a decoder with demuxer information, or a muxer with encoder

@Alberth289346 Alberth289346 merged commit 5fb691f into CorsixTH:master Jul 12, 2017

2 checks passed

continuous-integration/appveyor/pr AppVeyor build succeeded
continuous-integration/travis-ci/pr The Travis CI build passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment