mirror of https://git.ffmpeg.org/ffmpeg.git
lavc: deprecate avcodec_copy_context()
Since AVCodecContext contains a lot of complex state, copying a codec context is not a well-defined operation. The purpose for which it is typically used (which is well-defined) is copying the stream parameters from one codec context to another. That is now possible with through the AVCodecParameters API. Therefore, there is no reason for avcodec_copy_context() to exist.
This commit is contained in:
parent
14634429b9
commit
5f30ac2779
|
@ -3648,6 +3648,7 @@ int avcodec_get_context_defaults3(AVCodecContext *s, const AVCodec *codec);
|
|||
*/
|
||||
const AVClass *avcodec_get_class(void);
|
||||
|
||||
#if FF_API_COPY_CONTEXT
|
||||
/**
|
||||
* Copy the settings of the source AVCodecContext into the destination
|
||||
* AVCodecContext. The resulting destination codec context will be
|
||||
|
@ -3658,8 +3659,16 @@ const AVClass *avcodec_get_class(void);
|
|||
* avcodec_alloc_context3(), but otherwise uninitialized
|
||||
* @param src source codec context
|
||||
* @return AVERROR() on error (e.g. memory allocation error), 0 on success
|
||||
*
|
||||
* @deprecated The semantics of this function are ill-defined and it should not
|
||||
* be used. If you need to transfer the stream parameters from one codec context
|
||||
* to another, use an intermediate AVCodecParameters instance and the
|
||||
* avcodec_parameters_from_context() / avcodec_parameters_to_context()
|
||||
* functions.
|
||||
*/
|
||||
attribute_deprecated
|
||||
int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Allocate a new AVCodecParameters and set its fields to default values
|
||||
|
|
|
@ -155,6 +155,7 @@ void avcodec_free_context(AVCodecContext **pavctx)
|
|||
av_freep(pavctx);
|
||||
}
|
||||
|
||||
#if FF_API_COPY_CONTEXT
|
||||
int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src)
|
||||
{
|
||||
const AVCodec *orig_codec = dest->codec;
|
||||
|
@ -225,6 +226,7 @@ fail:
|
|||
#endif
|
||||
return AVERROR(ENOMEM);
|
||||
}
|
||||
#endif
|
||||
|
||||
const AVClass *avcodec_get_class(void)
|
||||
{
|
||||
|
|
|
@ -200,5 +200,8 @@
|
|||
#ifndef FF_API_OLD_BSF
|
||||
#define FF_API_OLD_BSF (LIBAVCODEC_VERSION_MAJOR < 59)
|
||||
#endif
|
||||
#ifndef FF_API_COPY_CONTEXT
|
||||
#define FF_API_COPY_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 59)
|
||||
#endif
|
||||
|
||||
#endif /* AVCODEC_VERSION_H */
|
||||
|
|
Loading…
Reference in New Issue