obs-ffmpeg, win-dshow, deps/media-playback: Use recommended API for AVCodecContext
This commit is contained in:
parent
1ec70ddf2b
commit
db8145e8a2
12
deps/media-playback/media-playback/decode.c
vendored
12
deps/media-playback/media-playback/decode.c
vendored
@ -113,7 +113,8 @@ static int mp_open_codec(struct mp_decode *d, bool hw)
|
|||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
avcodec_close(c);
|
avcodec_free_context(&c);
|
||||||
|
|
||||||
#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(57, 40, 101)
|
#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(57, 40, 101)
|
||||||
av_free(d->decoder);
|
av_free(d->decoder);
|
||||||
#endif
|
#endif
|
||||||
@ -220,13 +221,10 @@ void mp_decode_free(struct mp_decode *d)
|
|||||||
av_frame_unref(d->hw_frame);
|
av_frame_unref(d->hw_frame);
|
||||||
av_free(d->hw_frame);
|
av_free(d->hw_frame);
|
||||||
}
|
}
|
||||||
if (d->decoder) {
|
|
||||||
#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(57, 40, 101)
|
if (d->decoder)
|
||||||
avcodec_free_context(&d->decoder);
|
avcodec_free_context(&d->decoder);
|
||||||
#else
|
|
||||||
avcodec_close(d->decoder);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
if (d->sw_frame) {
|
if (d->sw_frame) {
|
||||||
av_frame_unref(d->sw_frame);
|
av_frame_unref(d->sw_frame);
|
||||||
av_free(d->sw_frame);
|
av_free(d->sw_frame);
|
||||||
|
@ -72,11 +72,7 @@ static bool ffmpeg_image_open_decoder_context(struct ffmpeg_image *info)
|
|||||||
|
|
||||||
static void ffmpeg_image_free(struct ffmpeg_image *info)
|
static void ffmpeg_image_free(struct ffmpeg_image *info)
|
||||||
{
|
{
|
||||||
#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 48, 101)
|
|
||||||
avcodec_free_context(&info->decoder_ctx);
|
avcodec_free_context(&info->decoder_ctx);
|
||||||
#else
|
|
||||||
avcodec_close(info->decoder_ctx);
|
|
||||||
#endif
|
|
||||||
avformat_close_input(&info->fmt_ctx);
|
avformat_close_input(&info->fmt_ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -150,6 +150,7 @@ static void free_avformat(struct ffmpeg_mux *ffm)
|
|||||||
if (ffm->audio_infos) {
|
if (ffm->audio_infos) {
|
||||||
for (int i = 0; i < ffm->num_audio_streams; ++i)
|
for (int i = 0; i < ffm->num_audio_streams; ++i)
|
||||||
avcodec_free_context(&ffm->audio_infos[i].ctx);
|
avcodec_free_context(&ffm->audio_infos[i].ctx);
|
||||||
|
|
||||||
free(ffm->audio_infos);
|
free(ffm->audio_infos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,8 +124,10 @@ static void enc_destroy(void *data)
|
|||||||
|
|
||||||
if (enc->samples[0])
|
if (enc->samples[0])
|
||||||
av_freep(&enc->samples[0]);
|
av_freep(&enc->samples[0]);
|
||||||
|
|
||||||
if (enc->context)
|
if (enc->context)
|
||||||
avcodec_close(enc->context);
|
avcodec_free_context(&enc->context);
|
||||||
|
|
||||||
if (enc->aframe)
|
if (enc->aframe)
|
||||||
av_frame_free(&enc->aframe);
|
av_frame_free(&enc->aframe);
|
||||||
|
|
||||||
|
@ -358,7 +358,7 @@ static void nvenc_destroy(void *data)
|
|||||||
flush_remaining_packets(enc);
|
flush_remaining_packets(enc);
|
||||||
|
|
||||||
av_packet_free(&enc->packet);
|
av_packet_free(&enc->packet);
|
||||||
avcodec_close(enc->context);
|
avcodec_free_context(&enc->context);
|
||||||
av_frame_unref(enc->vframe);
|
av_frame_unref(enc->vframe);
|
||||||
av_frame_free(&enc->vframe);
|
av_frame_free(&enc->vframe);
|
||||||
da_free(enc->buffer);
|
da_free(enc->buffer);
|
||||||
|
@ -457,11 +457,7 @@ static inline bool open_output_file(struct ffmpeg_data *data)
|
|||||||
|
|
||||||
static void close_video(struct ffmpeg_data *data)
|
static void close_video(struct ffmpeg_data *data)
|
||||||
{
|
{
|
||||||
#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 48, 101)
|
|
||||||
avcodec_free_context(&data->video_ctx);
|
avcodec_free_context(&data->video_ctx);
|
||||||
#else
|
|
||||||
avcodec_close(data->video->codec);
|
|
||||||
#endif
|
|
||||||
av_frame_unref(data->vframe);
|
av_frame_unref(data->vframe);
|
||||||
|
|
||||||
// This format for some reason derefs video frame
|
// This format for some reason derefs video frame
|
||||||
@ -481,13 +477,8 @@ static void close_audio(struct ffmpeg_data *data)
|
|||||||
|
|
||||||
if (data->samples[idx][0])
|
if (data->samples[idx][0])
|
||||||
av_freep(&data->samples[idx][0]);
|
av_freep(&data->samples[idx][0]);
|
||||||
if (data->audio_infos[idx].ctx) {
|
if (data->audio_infos[idx].ctx)
|
||||||
#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 48, 101)
|
|
||||||
avcodec_free_context(&data->audio_infos[idx].ctx);
|
avcodec_free_context(&data->audio_infos[idx].ctx);
|
||||||
#else
|
|
||||||
avcodec_close(data->audio_infos[idx].stream->codec);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
if (data->aframe[idx])
|
if (data->aframe[idx])
|
||||||
av_frame_free(&data->aframe[idx]);
|
av_frame_free(&data->aframe[idx]);
|
||||||
}
|
}
|
||||||
|
@ -329,7 +329,7 @@ static void vaapi_destroy(void *data)
|
|||||||
flush_remaining_packets(enc);
|
flush_remaining_packets(enc);
|
||||||
|
|
||||||
av_packet_free(&enc->packet);
|
av_packet_free(&enc->packet);
|
||||||
avcodec_close(enc->context);
|
avcodec_free_context(&enc->context);
|
||||||
av_frame_unref(enc->vframe);
|
av_frame_unref(enc->vframe);
|
||||||
av_frame_free(&enc->vframe);
|
av_frame_free(&enc->vframe);
|
||||||
av_buffer_unref(&enc->vaframes_ref);
|
av_buffer_unref(&enc->vaframes_ref);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user