* [FFmpeg-devel] [PATCH] avcodec/decode: Fix avcodec parameters when bsfs are enable by decoder
@ 2025-03-06 7:56 Zhao Zhili
2025-03-09 3:06 ` Andreas Rheinhardt
0 siblings, 1 reply; 3+ messages in thread
From: Zhao Zhili @ 2025-03-06 7:56 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Zhao Zhili
From: Zhao Zhili <zhilizhao@tencent.com>
BSF can update extradata, e.g., vvc_mp4toannexb. If we don't copy
bsf->par_out back to avcodec context, decoder can get extradata in
mp4 format, while packets are in annexb format.
---
libavcodec/decode.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index c5a577f4f1..95b8c32502 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -206,6 +206,9 @@ static int decode_bsfs_init(AVCodecContext *avctx)
goto fail;
ret = av_bsf_init(avci->bsf);
+ if (ret < 0)
+ goto fail;
+ ret = avcodec_parameters_to_context(avctx, avci->bsf->par_out);
if (ret < 0)
goto fail;
--
2.46.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avcodec/decode: Fix avcodec parameters when bsfs are enable by decoder
2025-03-06 7:56 [FFmpeg-devel] [PATCH] avcodec/decode: Fix avcodec parameters when bsfs are enable by decoder Zhao Zhili
@ 2025-03-09 3:06 ` Andreas Rheinhardt
2025-03-09 3:41 ` Zhao Zhili
0 siblings, 1 reply; 3+ messages in thread
From: Andreas Rheinhardt @ 2025-03-09 3:06 UTC (permalink / raw)
To: ffmpeg-devel
Zhao Zhili:
> From: Zhao Zhili <zhilizhao@tencent.com>
>
> BSF can update extradata, e.g., vvc_mp4toannexb. If we don't copy
> bsf->par_out back to avcodec context, decoder can get extradata in
> mp4 format, while packets are in annexb format.
> ---
> libavcodec/decode.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/libavcodec/decode.c b/libavcodec/decode.c
> index c5a577f4f1..95b8c32502 100644
> --- a/libavcodec/decode.c
> +++ b/libavcodec/decode.c
> @@ -206,6 +206,9 @@ static int decode_bsfs_init(AVCodecContext *avctx)
> goto fail;
>
> ret = av_bsf_init(avci->bsf);
> + if (ret < 0)
> + goto fail;
> + ret = avcodec_parameters_to_context(avctx, avci->bsf->par_out);
> if (ret < 0)
> goto fail;
>
FYI: The same change has been done in f631c328e680 (and 662558f985f508
in libav) and later reverted in 87588caf8cff (and cacb62f9cbf3). The
reason was that extradata was owned by the user for decoders. This has
only been changed very recently in 183c59b4738c last December, but this
was an API change (without any entry in APIchanges) and I would not be
surprised if your change would break some users. Does not mean I block
your patch, though.
An alternative approach is that we add a getter for extradata that the
decoders that use a bsf known for changing extradata use to access
extradata.
- Andreas
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avcodec/decode: Fix avcodec parameters when bsfs are enable by decoder
2025-03-09 3:06 ` Andreas Rheinhardt
@ 2025-03-09 3:41 ` Zhao Zhili
0 siblings, 0 replies; 3+ messages in thread
From: Zhao Zhili @ 2025-03-09 3:41 UTC (permalink / raw)
To: FFmpeg development discussions and patches
> On Mar 9, 2025, at 11:06, Andreas Rheinhardt <andreas.rheinhardt@outlook.com> wrote:
>
> Zhao Zhili:
>> From: Zhao Zhili <zhilizhao@tencent.com>
>>
>> BSF can update extradata, e.g., vvc_mp4toannexb. If we don't copy
>> bsf->par_out back to avcodec context, decoder can get extradata in
>> mp4 format, while packets are in annexb format.
>> ---
>> libavcodec/decode.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/libavcodec/decode.c b/libavcodec/decode.c
>> index c5a577f4f1..95b8c32502 100644
>> --- a/libavcodec/decode.c
>> +++ b/libavcodec/decode.c
>> @@ -206,6 +206,9 @@ static int decode_bsfs_init(AVCodecContext *avctx)
>> goto fail;
>>
>> ret = av_bsf_init(avci->bsf);
>> + if (ret < 0)
>> + goto fail;
>> + ret = avcodec_parameters_to_context(avctx, avci->bsf->par_out);
>> if (ret < 0)
>> goto fail;
>>
>
> FYI: The same change has been done in f631c328e680 (and 662558f985f508
> in libav) and later reverted in 87588caf8cff (and cacb62f9cbf3). The
> reason was that extradata was owned by the user for decoders. This has
> only been changed very recently in 183c59b4738c last December, but this
> was an API change (without any entry in APIchanges) and I would not be
> surprised if your change would break some users. Does not mean I block
> your patch, though.
Thanks for the information. avcodec_close() will be removed soon, that will
break those users too. This patch can be applied after avcodec_close be
removed.
>
> An alternative approach is that we add a getter for extradata that the
> decoders that use a bsf known for changing extradata use to access
> extradata.
>
> - Andreas
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org <mailto:ffmpeg-devel@ffmpeg.org>
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org <mailto:ffmpeg-devel-request@ffmpeg.org> with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-03-09 3:41 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-03-06 7:56 [FFmpeg-devel] [PATCH] avcodec/decode: Fix avcodec parameters when bsfs are enable by decoder Zhao Zhili
2025-03-09 3:06 ` Andreas Rheinhardt
2025-03-09 3:41 ` Zhao Zhili
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git