[FFmpeg-devel] [PATCH v2 10/13] cbs_mpeg2.c: use a while loop with a loop condition instead of an infinite loop

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Sat Feb 5 03:48:56 EET 2022


Scott Theisen:
> This enhances the clarity of the code.
> ---
>  libavcodec/cbs_mpeg2.c | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/libavcodec/cbs_mpeg2.c b/libavcodec/cbs_mpeg2.c
> index d41477620e..afe78eef9a 100644
> --- a/libavcodec/cbs_mpeg2.c
> +++ b/libavcodec/cbs_mpeg2.c
> @@ -148,7 +148,7 @@ static int cbs_mpeg2_split_fragment(CodedBitstreamContext *ctx,
>      CodedBitstreamUnitType unit_type;
>      uint32_t start_code = -1;
>      size_t unit_size;
> -    int err, i, final = 0;
> +    int err, i = 0, final = 0;
>  
>      start = avpriv_find_start_code(frag->data, frag->data + frag->data_size,
>                                     &start_code, 1);
> @@ -157,7 +157,7 @@ static int cbs_mpeg2_split_fragment(CodedBitstreamContext *ctx,
>          return AVERROR_INVALIDDATA;
>      }
>  
> -    for (i = 0;; i++) {
> +    while (!final) {
>          unit_type = start_code & 0xff;
>  
>          if (start == frag->data + frag->data_size) {
> @@ -190,10 +190,8 @@ static int cbs_mpeg2_split_fragment(CodedBitstreamContext *ctx,
>          if (err < 0)
>              return err;
>  
> -        if (final)
> -            break;
> -
>          start = end;
> +        i++;
>      }
>  
>      return 0;

I disagree that this enhances clarity: When using a counter, a for loop
is the most natural.

- Andreas


More information about the ffmpeg-devel mailing list