mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
lavc: deprecate avcodec_close()
Its use has been discouraged since 2016, but now is no longer used in avformat, so there is no reason to keep it public.
This commit is contained in:
parent
ca18bb5972
commit
1cc24d7495
@ -377,7 +377,7 @@ end:
|
||||
|
||||
return ret;
|
||||
free_and_end:
|
||||
avcodec_close(avctx);
|
||||
ff_codec_close(avctx);
|
||||
goto end;
|
||||
}
|
||||
|
||||
@ -432,12 +432,12 @@ void avsubtitle_free(AVSubtitle *sub)
|
||||
memset(sub, 0, sizeof(*sub));
|
||||
}
|
||||
|
||||
av_cold int avcodec_close(AVCodecContext *avctx)
|
||||
av_cold void ff_codec_close(AVCodecContext *avctx)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (!avctx)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if (avcodec_is_open(avctx)) {
|
||||
AVCodecInternal *avci = avctx->internal;
|
||||
@ -497,9 +497,15 @@ av_cold int avcodec_close(AVCodecContext *avctx)
|
||||
|
||||
avctx->codec = NULL;
|
||||
avctx->active_thread_type = 0;
|
||||
}
|
||||
|
||||
#if FF_API_AVCODEC_CLOSE
|
||||
int avcodec_close(AVCodecContext *avctx)
|
||||
{
|
||||
ff_codec_close(avctx);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static const char *unknown_if_null(const char *str)
|
||||
{
|
||||
|
@ -2411,6 +2411,7 @@ int avcodec_parameters_to_context(AVCodecContext *codec,
|
||||
*/
|
||||
int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options);
|
||||
|
||||
#if FF_API_AVCODEC_CLOSE
|
||||
/**
|
||||
* Close a given AVCodecContext and free all the data associated with it
|
||||
* (but not the AVCodecContext itself).
|
||||
@ -2419,12 +2420,14 @@ int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **op
|
||||
* the codec-specific data allocated in avcodec_alloc_context3() with a non-NULL
|
||||
* codec. Subsequent calls will do nothing.
|
||||
*
|
||||
* @note Do not use this function. Use avcodec_free_context() to destroy a
|
||||
* @deprecated Do not use this function. Use avcodec_free_context() to destroy a
|
||||
* codec context (either open or closed). Opening and closing a codec context
|
||||
* multiple times is not supported anymore -- use multiple codec contexts
|
||||
* instead.
|
||||
*/
|
||||
attribute_deprecated
|
||||
int avcodec_close(AVCodecContext *avctx);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Free all allocated data in the given subtitle struct.
|
||||
|
@ -56,4 +56,6 @@ void ff_encode_flush_buffers(struct AVCodecContext *avctx);
|
||||
struct AVCodecInternal *ff_decode_internal_alloc(void);
|
||||
struct AVCodecInternal *ff_encode_internal_alloc(void);
|
||||
|
||||
void ff_codec_close(struct AVCodecContext *avctx);
|
||||
|
||||
#endif // AVCODEC_AVCODEC_INTERNAL_H
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include "libavutil/opt.h"
|
||||
#include "libavutil/thread.h"
|
||||
#include "avcodec.h"
|
||||
#include "avcodec_internal.h"
|
||||
#include "encode.h"
|
||||
#include "internal.h"
|
||||
#include "pthread_internal.h"
|
||||
@ -110,7 +111,7 @@ static void * attribute_align_arg worker(void *v){
|
||||
pthread_mutex_unlock(&c->finished_task_mutex);
|
||||
}
|
||||
end:
|
||||
avcodec_close(avctx);
|
||||
ff_codec_close(avctx);
|
||||
av_freep(&avctx);
|
||||
return NULL;
|
||||
}
|
||||
@ -230,7 +231,7 @@ av_cold int ff_frame_thread_encoder_init(AVCodecContext *avctx)
|
||||
|
||||
return 0;
|
||||
fail:
|
||||
avcodec_close(thread_avctx);
|
||||
ff_codec_close(thread_avctx);
|
||||
av_freep(&thread_avctx);
|
||||
avctx->thread_count = i;
|
||||
av_log(avctx, AV_LOG_ERROR, "ff_frame_thread_encoder_init failed\n");
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include "config_components.h"
|
||||
|
||||
#include "avcodec.h"
|
||||
#include "avcodec_internal.h"
|
||||
#include "codec_internal.h"
|
||||
#include "libavutil/avassert.h"
|
||||
#include "libavutil/internal.h"
|
||||
@ -172,7 +173,7 @@ void avcodec_free_context(AVCodecContext **pavctx)
|
||||
if (!avctx)
|
||||
return;
|
||||
|
||||
avcodec_close(avctx);
|
||||
ff_codec_close(avctx);
|
||||
|
||||
av_freep(&avctx->extradata);
|
||||
av_freep(&avctx->subtitle_header);
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
#define FF_API_AVFFT (LIBAVCODEC_VERSION_MAJOR < 62)
|
||||
#define FF_API_FF_PROFILE_LEVEL (LIBAVCODEC_VERSION_MAJOR < 62)
|
||||
#define FF_API_AVCODEC_CLOSE (LIBAVCODEC_VERSION_MAJOR < 62)
|
||||
|
||||
// reminder to remove CrystalHD decoders on next major bump
|
||||
#define FF_CODEC_CRYSTAL_HD (LIBAVCODEC_VERSION_MAJOR < 61)
|
||||
|
Loading…
Reference in New Issue
Block a user