mirror of
https://git.videolan.org/git/ffmpeg.git
synced 2024-08-18 15:25:05 +02:00
Merge commit 'efc7df6c1f11b20a48e60c3f743ce2331b661973'
* commit 'efc7df6c1f11b20a48e60c3f743ce2331b661973': lavc: preserve the original private data in avcodec_copy_context() Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
9b7cb02319
@ -156,6 +156,9 @@ AVCodecContext *avcodec_alloc_context3(const AVCodec *codec)
|
||||
|
||||
int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src)
|
||||
{
|
||||
const AVCodec *orig_codec = dest->codec;
|
||||
uint8_t *orig_priv_data = dest->priv_data;
|
||||
|
||||
if (avcodec_is_open(dest)) { // check that the dest context is uninitialized
|
||||
av_log(dest, AV_LOG_ERROR,
|
||||
"Tried to copy AVCodecContext %p into already-initialized %p\n",
|
||||
@ -168,9 +171,10 @@ int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src)
|
||||
|
||||
memcpy(dest, src, sizeof(*dest));
|
||||
|
||||
dest->priv_data = orig_priv_data;
|
||||
dest->codec = orig_codec;
|
||||
|
||||
/* set values specific to opened codecs back to their default state */
|
||||
dest->priv_data = NULL;
|
||||
dest->codec = NULL;
|
||||
dest->slice_offset = NULL;
|
||||
dest->hwaccel = NULL;
|
||||
dest->internal = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user