[FFmpeg-devel] Re: [PATCH] doc/examples/vaapi_encode: fix invalid check on fwrite (PR #20396)

2025-09-02 Thread mypopy--- via ffmpeg-devel
On Tue, Sep 2, 2025 at 6:13 PM Zhao Zhili via ffmpeg-devel
 wrote:
>
> PR #20396 opened by Zhao Zhili (quink)
> URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20396
> Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20396.patch
>
> Firstly, the order of the parameters to fwrite was incorrect, which
> make fwrite always return 1 or 0.
>
> Secondly, enc_pkt->size is 0 after av_packet_unref, which makes
> the check invalid again.
>
> Fix regression from 3e4bfff2.
>
> Co-Authored-by: Jin Bo 
> Signed-off-by: Zhao Zhili 
>
>
> >From 5147580520ad627ffbae692119c4e92a7c489c76 Mon Sep 17 00:00:00 2001
> From: Zhao Zhili 
> Date: Tue, 2 Sep 2025 18:04:11 +0800
> Subject: [PATCH] doc/examples/vaapi_encode: fix invalid check on fwrite
>
> Firstly, the order of the parameters to fwrite was incorrect, which
> make fwrite always return 1 or 0.
>
> Secondly, enc_pkt->size is 0 after av_packet_unref, which makes
> the check invalid again.
>
> Fix regression from 3e4bfff2.
>
> Co-Authored-by: Jin Bo 
> Signed-off-by: Zhao Zhili 
> ---
>  doc/examples/vaapi_encode.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/doc/examples/vaapi_encode.c b/doc/examples/vaapi_encode.c
> index ff3ebb1e2b..3d718c4c4f 100644
> --- a/doc/examples/vaapi_encode.c
> +++ b/doc/examples/vaapi_encode.c
> @@ -86,9 +86,10 @@ static int encode_write(AVCodecContext *avctx, AVFrame 
> *frame, FILE *fout)
>  break;
>
>  enc_pkt->stream_index = 0;
> -ret = fwrite(enc_pkt->data, enc_pkt->size, 1, fout);
> +int size = enc_pkt->size;
> +ret = fwrite(enc_pkt->data, 1, size, fout);
>  av_packet_unref(enc_pkt);
> -if (ret != enc_pkt->size) {
I think only fixing the part that checks the return value should ok,I
having looked at the original code, it was simply intended to write a
single NALU at once.
> +if (ret != size) {
>  ret = AVERROR(errno);
>  break;
>  }
> --
> 2.49.1
___
ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org
To unsubscribe send an email to ffmpeg-devel-le...@ffmpeg.org


[FFmpeg-devel] Re: [PATCH] doc/examples/vaapi_encode: fix invalid check on fwrite (PR #20396)

2025-09-03 Thread mypopy--- via ffmpeg-devel
On Wed, Sep 3, 2025 at 2:45 PM Zhao Zhili  wrote:

>
>
> On Sep 3, 2025, at 11:30, mypopy--- via ffmpeg-devel <
> ffmpeg-devel@ffmpeg.org> wrote:
>
> On Tue, Sep 2, 2025 at 6:13 PM Zhao Zhili via ffmpeg-devel
>  wrote:
>
>
> PR #20396 opened by Zhao Zhili (quink)
> URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20396
> Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20396.patch
>
> Firstly, the order of the parameters to fwrite was incorrect, which
> make fwrite always return 1 or 0.
>
> Secondly, enc_pkt->size is 0 after av_packet_unref, which makes
> the check invalid again.
>
> Fix regression from 3e4bfff2.
>
> Co-Authored-by: Jin Bo 
> Signed-off-by: Zhao Zhili 
>
>
> From 5147580520ad627ffbae692119c4e92a7c489c76 Mon Sep 17 00:00:00 2001
>
> From: Zhao Zhili 
> Date: Tue, 2 Sep 2025 18:04:11 +0800
> Subject: [PATCH] doc/examples/vaapi_encode: fix invalid check on fwrite
>
> Firstly, the order of the parameters to fwrite was incorrect, which
> make fwrite always return 1 or 0.
>
> Secondly, enc_pkt->size is 0 after av_packet_unref, which makes
> the check invalid again.
>
> Fix regression from 3e4bfff2.
>
> Co-Authored-by: Jin Bo 
> Signed-off-by: Zhao Zhili 
> ---
> doc/examples/vaapi_encode.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/doc/examples/vaapi_encode.c b/doc/examples/vaapi_encode.c
> index ff3ebb1e2b..3d718c4c4f 100644
> --- a/doc/examples/vaapi_encode.c
> +++ b/doc/examples/vaapi_encode.c
> @@ -86,9 +86,10 @@ static int encode_write(AVCodecContext *avctx, AVFrame
> *frame, FILE *fout)
> break;
>
> enc_pkt->stream_index = 0;
> -ret = fwrite(enc_pkt->data, enc_pkt->size, 1, fout);
> +int size = enc_pkt->size;
> +ret = fwrite(enc_pkt->data, 1, size, fout);
> av_packet_unref(enc_pkt);
> -if (ret != enc_pkt->size) {
>
> I think only fixing the part that checks the return value should ok,I
> having looked at the original code, it was simply intended to write a
> single NALU at once.
>
>
> Fixed by
> if (!ret) {
> ret = AVERROR(errno);
> break;
> }
>
Looks good to me,thx

>
> +if (ret != size) {
> ret = AVERROR(errno);
> break;
> }
> --
> 2.49.1
>
> ___
> ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org
> To unsubscribe send an email to ffmpeg-devel-le...@ffmpeg.org
>
>
>
___
ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org
To unsubscribe send an email to ffmpeg-devel-le...@ffmpeg.org