Re: [FFmpeg-devel] [PATCH 02/18] avcodec/vp8: Disable lf_delta for VP7

2022-09-11 Thread Peter Ross
On Sun, Sep 11, 2022 at 06:38:39AM +0200, Andreas Rheinhardt wrote:
> Peter Ross:
> > On Sat, Sep 10, 2022 at 03:07:13AM +0200, Andreas Rheinhardt wrote:
> >> It is a VP8-only feature.
> >>
> >> Signed-off-by: Andreas Rheinhardt 
> >> ---
> >>  libavcodec/vp8.c | 3 +--
> >>  1 file changed, 1 insertion(+), 2 deletions(-)
> >>
> >> diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c
> >> index c00c5c975e..04a2113cc8 100644
> >> --- a/libavcodec/vp8.c
> >> +++ b/libavcodec/vp8.c
> >> @@ -637,7 +637,6 @@ static int vp7_decode_frame_header(VP8Context *s, 
> >> const uint8_t *buf, int buf_si
> >>  for (i = 0; i < 2; i++)
> >>  memcpy(s->prob->mvc[i], vp7_mv_default_prob[i],
> >> sizeof(vp7_mv_default_prob[i]));
> >> -memset(&s->lf_delta, 0, sizeof(s->lf_delta));
> >>  memcpy(s->prob[0].scan, ff_zigzag_scan, sizeof(s->prob[0].scan));
> >>  }
> >>  
> >> @@ -2171,7 +2170,7 @@ void filter_level_for_mb(VP8Context *s, 
> >> VP8Macroblock *mb,
> >>  } else
> >>  filter_level = s->filter.level;
> >>  
> >> -if (s->lf_delta.enabled) {
> >> +if (!is_vp7 && s->lf_delta.enabled) {
> >>  filter_level += s->lf_delta.ref[mb->ref_frame];
> >>  filter_level += s->lf_delta.mode[mb->mode];
> >>  }
> > 
> > what's the motivation for patches 01 and 02?
> > are you not just adding another condition (is_vp7) to evaluate at decode 
> > time?
> > if its improved readability, then suggest renaming 'lf_delta' to 
> > 'lf_delta_vp8'
> > 
> > pathces 3-18 look fine to me.
> > 
> 
> is_vp7 is evaluated at compile-time, because all the functions that use
> is_vp7 in this decoder are marked as av_always_inline.
> If it were otherwise, several of the patches 3-18 would make no sense
> and would just add another runtime check.

ok make sense

-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)


signature.asc
Description: PGP signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".


Re: [FFmpeg-devel] [PATCH 02/18] avcodec/vp8: Disable lf_delta for VP7

2022-09-11 Thread Ronald S. Bultje
Hi,

On Sun, Sep 11, 2022 at 10:41 AM Ronald S. Bultje 
wrote:

> Hi,
>
> On Sun, Sep 11, 2022 at 12:38 AM Andreas Rheinhardt <
> andreas.rheinha...@outlook.com> wrote:
>
>> Peter Ross:
>> > On Sat, Sep 10, 2022 at 03:07:13AM +0200, Andreas Rheinhardt wrote:
>> >> It is a VP8-only feature.
>> >>
>> >> Signed-off-by: Andreas Rheinhardt 
>> >> ---
>> >>  libavcodec/vp8.c | 3 +--
>> >>  1 file changed, 1 insertion(+), 2 deletions(-)
>> >>
>> >> diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c
>> >> index c00c5c975e..04a2113cc8 100644
>> >> --- a/libavcodec/vp8.c
>> >> +++ b/libavcodec/vp8.c
>> >> @@ -637,7 +637,6 @@ static int vp7_decode_frame_header(VP8Context *s,
>> const uint8_t *buf, int buf_si
>> >>  for (i = 0; i < 2; i++)
>> >>  memcpy(s->prob->mvc[i], vp7_mv_default_prob[i],
>> >> sizeof(vp7_mv_default_prob[i]));
>> >> -memset(&s->lf_delta, 0, sizeof(s->lf_delta));
>> >>  memcpy(s->prob[0].scan, ff_zigzag_scan,
>> sizeof(s->prob[0].scan));
>> >>  }
>> >>
>> >> @@ -2171,7 +2170,7 @@ void filter_level_for_mb(VP8Context *s,
>> VP8Macroblock *mb,
>> >>  } else
>> >>  filter_level = s->filter.level;
>> >>
>> >> -if (s->lf_delta.enabled) {
>> >> +if (!is_vp7 && s->lf_delta.enabled) {
>> >>  filter_level += s->lf_delta.ref[mb->ref_frame];
>> >>  filter_level += s->lf_delta.mode[mb->mode];
>> >>  }
>> >
>> > what's the motivation for patches 01 and 02?
>> > are you not just adding another condition (is_vp7) to evaluate at
>> decode time?
>> > if its improved readability, then suggest renaming 'lf_delta' to
>> 'lf_delta_vp8'
>> >
>> > pathces 3-18 look fine to me.
>> >
>>
>> is_vp7 is evaluated at compile-time
>>
>
> This should probably be changed to be uppercase then. Lowercase suggests
> it's a variable.
>

It's inline, not macro, apparently.

I don't like the impact on readability here. Part of me wonders whether it
doesn't make more sense to split this file in vp7.c, vp8.c and vp78.c, and
have a proper design of two decoders and separate/shared parent/child
contexts definitions... A classic FFmpeg dilemma, I guess. The problem is
basically that this complicates people who have to debug this code when
issues occur (me) at the benefit of losing some dead code in vp7. I'm not
super-excited about that...

Ronald
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".


Re: [FFmpeg-devel] [PATCH 02/18] avcodec/vp8: Disable lf_delta for VP7

2022-09-11 Thread Ronald S. Bultje
Hi,

On Sun, Sep 11, 2022 at 12:38 AM Andreas Rheinhardt <
andreas.rheinha...@outlook.com> wrote:

> Peter Ross:
> > On Sat, Sep 10, 2022 at 03:07:13AM +0200, Andreas Rheinhardt wrote:
> >> It is a VP8-only feature.
> >>
> >> Signed-off-by: Andreas Rheinhardt 
> >> ---
> >>  libavcodec/vp8.c | 3 +--
> >>  1 file changed, 1 insertion(+), 2 deletions(-)
> >>
> >> diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c
> >> index c00c5c975e..04a2113cc8 100644
> >> --- a/libavcodec/vp8.c
> >> +++ b/libavcodec/vp8.c
> >> @@ -637,7 +637,6 @@ static int vp7_decode_frame_header(VP8Context *s,
> const uint8_t *buf, int buf_si
> >>  for (i = 0; i < 2; i++)
> >>  memcpy(s->prob->mvc[i], vp7_mv_default_prob[i],
> >> sizeof(vp7_mv_default_prob[i]));
> >> -memset(&s->lf_delta, 0, sizeof(s->lf_delta));
> >>  memcpy(s->prob[0].scan, ff_zigzag_scan,
> sizeof(s->prob[0].scan));
> >>  }
> >>
> >> @@ -2171,7 +2170,7 @@ void filter_level_for_mb(VP8Context *s,
> VP8Macroblock *mb,
> >>  } else
> >>  filter_level = s->filter.level;
> >>
> >> -if (s->lf_delta.enabled) {
> >> +if (!is_vp7 && s->lf_delta.enabled) {
> >>  filter_level += s->lf_delta.ref[mb->ref_frame];
> >>  filter_level += s->lf_delta.mode[mb->mode];
> >>  }
> >
> > what's the motivation for patches 01 and 02?
> > are you not just adding another condition (is_vp7) to evaluate at decode
> time?
> > if its improved readability, then suggest renaming 'lf_delta' to
> 'lf_delta_vp8'
> >
> > pathces 3-18 look fine to me.
> >
>
> is_vp7 is evaluated at compile-time
>

This should probably be changed to be uppercase then. Lowercase suggests
it's a variable.

Ronald
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".


Re: [FFmpeg-devel] [PATCH 02/18] avcodec/vp8: Disable lf_delta for VP7

2022-09-10 Thread Andreas Rheinhardt
Peter Ross:
> On Sat, Sep 10, 2022 at 03:07:13AM +0200, Andreas Rheinhardt wrote:
>> It is a VP8-only feature.
>>
>> Signed-off-by: Andreas Rheinhardt 
>> ---
>>  libavcodec/vp8.c | 3 +--
>>  1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c
>> index c00c5c975e..04a2113cc8 100644
>> --- a/libavcodec/vp8.c
>> +++ b/libavcodec/vp8.c
>> @@ -637,7 +637,6 @@ static int vp7_decode_frame_header(VP8Context *s, const 
>> uint8_t *buf, int buf_si
>>  for (i = 0; i < 2; i++)
>>  memcpy(s->prob->mvc[i], vp7_mv_default_prob[i],
>> sizeof(vp7_mv_default_prob[i]));
>> -memset(&s->lf_delta, 0, sizeof(s->lf_delta));
>>  memcpy(s->prob[0].scan, ff_zigzag_scan, sizeof(s->prob[0].scan));
>>  }
>>  
>> @@ -2171,7 +2170,7 @@ void filter_level_for_mb(VP8Context *s, VP8Macroblock 
>> *mb,
>>  } else
>>  filter_level = s->filter.level;
>>  
>> -if (s->lf_delta.enabled) {
>> +if (!is_vp7 && s->lf_delta.enabled) {
>>  filter_level += s->lf_delta.ref[mb->ref_frame];
>>  filter_level += s->lf_delta.mode[mb->mode];
>>  }
> 
> what's the motivation for patches 01 and 02?
> are you not just adding another condition (is_vp7) to evaluate at decode time?
> if its improved readability, then suggest renaming 'lf_delta' to 
> 'lf_delta_vp8'
> 
> pathces 3-18 look fine to me.
> 

is_vp7 is evaluated at compile-time, because all the functions that use
is_vp7 in this decoder are marked as av_always_inline.
If it were otherwise, several of the patches 3-18 would make no sense
and would just add another runtime check.

- 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-requ...@ffmpeg.org with subject "unsubscribe".


Re: [FFmpeg-devel] [PATCH 02/18] avcodec/vp8: Disable lf_delta for VP7

2022-09-10 Thread Peter Ross
On Sat, Sep 10, 2022 at 03:07:13AM +0200, Andreas Rheinhardt wrote:
> It is a VP8-only feature.
> 
> Signed-off-by: Andreas Rheinhardt 
> ---
>  libavcodec/vp8.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c
> index c00c5c975e..04a2113cc8 100644
> --- a/libavcodec/vp8.c
> +++ b/libavcodec/vp8.c
> @@ -637,7 +637,6 @@ static int vp7_decode_frame_header(VP8Context *s, const 
> uint8_t *buf, int buf_si
>  for (i = 0; i < 2; i++)
>  memcpy(s->prob->mvc[i], vp7_mv_default_prob[i],
> sizeof(vp7_mv_default_prob[i]));
> -memset(&s->lf_delta, 0, sizeof(s->lf_delta));
>  memcpy(s->prob[0].scan, ff_zigzag_scan, sizeof(s->prob[0].scan));
>  }
>  
> @@ -2171,7 +2170,7 @@ void filter_level_for_mb(VP8Context *s, VP8Macroblock 
> *mb,
>  } else
>  filter_level = s->filter.level;
>  
> -if (s->lf_delta.enabled) {
> +if (!is_vp7 && s->lf_delta.enabled) {
>  filter_level += s->lf_delta.ref[mb->ref_frame];
>  filter_level += s->lf_delta.mode[mb->mode];
>  }

what's the motivation for patches 01 and 02?
are you not just adding another condition (is_vp7) to evaluate at decode time?
if its improved readability, then suggest renaming 'lf_delta' to 'lf_delta_vp8'

pathces 3-18 look fine to me.

-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)


signature.asc
Description: PGP signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".