* Re: [FFmpeg-devel] [PATCH v2] avutil: deprecate AVRational field inside AVOption::default_val
2023-05-02 11:39 ` James Almer
@ 2023-05-02 11:51 ` Paul B Mahol
2023-05-03 3:08 ` Zhao Zhili
2023-05-09 10:02 ` Tomas Härdin
2 siblings, 0 replies; 7+ messages in thread
From: Paul B Mahol @ 2023-05-02 11:51 UTC (permalink / raw)
To: FFmpeg development discussions and patches
On Tue, May 2, 2023 at 1:40 PM James Almer <jamrial@gmail.com> wrote:
> On 5/2/2023 8:34 AM, Tomas Härdin wrote:
> > tis 2023-05-02 klockan 15:48 +0800 skrev Zhao Zhili:
> >> From: Zhao Zhili <zhilizhao@tencent.com>
> >>
> >> Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
> >> ---
> >> libavutil/opt.h | 2 ++
> >> libavutil/version.h | 1 +
> >> 2 files changed, 3 insertions(+)
> >>
> >> diff --git a/libavutil/opt.h b/libavutil/opt.h
> >> index 461b5d3b6b..46915754ea 100644
> >> --- a/libavutil/opt.h
> >> +++ b/libavutil/opt.h
> >> @@ -271,8 +271,10 @@ typedef struct AVOption {
> >> int64_t i64;
> >> double dbl;
> >> const char *str;
> >> +#if FF_API_AVOPTION_AVRATIONAL
> >> /* TODO those are unused now */
> >> AVRational q;
> >> +#endif
> >
> > Surely rationals options are useful?
>
> They are, but this union is where the default value is stored when you
> define an AVOption. At some point it seems it was decided that rational
> (and video_rate) type AVOptions should set dbl instead of q, which is
> then av_q2d()'d into an AVRational.
>
> I'd still not remove it, as Paul said. It's harmless being there and in
> the future it could be used.
>
Yes, I think that using double for AVRational is not always correct/precise.
Do anyone remember why it is double?
I can send patch to fix this. But I dunno if that may break API and/or ABI.
>
> >
> > /Tomas
> >
> > _______________________________________________
> > 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".
> _______________________________________________
> 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".
>
_______________________________________________
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] 7+ messages in thread
* Re: [FFmpeg-devel] [PATCH v2] avutil: deprecate AVRational field inside AVOption::default_val
2023-05-02 11:39 ` James Almer
2023-05-02 11:51 ` Paul B Mahol
@ 2023-05-03 3:08 ` Zhao Zhili
2023-05-09 10:02 ` Tomas Härdin
2 siblings, 0 replies; 7+ messages in thread
From: Zhao Zhili @ 2023-05-03 3:08 UTC (permalink / raw)
To: FFmpeg development discussions and patches
> 在 2023年5月2日,19:39,James Almer <jamrial@gmail.com> 写道:
>
> On 5/2/2023 8:34 AM, Tomas Härdin wrote:
>> tis 2023-05-02 klockan 15:48 +0800 skrev Zhao Zhili:
>>> From: Zhao Zhili <zhilizhao@tencent.com>
>>>
>>> Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
>>> ---
>>> libavutil/opt.h | 2 ++
>>> libavutil/version.h | 1 +
>>> 2 files changed, 3 insertions(+)
>>>
>>> diff --git a/libavutil/opt.h b/libavutil/opt.h
>>> index 461b5d3b6b..46915754ea 100644
>>> --- a/libavutil/opt.h
>>> +++ b/libavutil/opt.h
>>> @@ -271,8 +271,10 @@ typedef struct AVOption {
>>> int64_t i64;
>>> double dbl;
>>> const char *str;
>>> +#if FF_API_AVOPTION_AVRATIONAL
>>> /* TODO those are unused now */
>>> AVRational q;
>>> +#endif
>> Surely rationals options are useful?
>
> They are, but this union is where the default value is stored when you define an AVOption. At some point it seems it was decided that rational (and video_rate) type AVOptions should set dbl instead of q, which is then av_q2d()'d into an AVRational.
>
> I'd still not remove it, as Paul said. It's harmless being there and in the future it could be used.
The field itself is harmless, but it makes big confusing. It takes me some efforts to figure out a rational type must use dbl to hold default value.
For backward compatibility, I don’t think it’s easy to switch to AVRational from dbl.
If we decide to keep it, I can add a comment to reduce the confusion.
>
>> /Tomas
>> _______________________________________________
>> 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".
> _______________________________________________
> 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 sub
_______________________________________________
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] 7+ messages in thread
* Re: [FFmpeg-devel] [PATCH v2] avutil: deprecate AVRational field inside AVOption::default_val
2023-05-02 11:39 ` James Almer
2023-05-02 11:51 ` Paul B Mahol
2023-05-03 3:08 ` Zhao Zhili
@ 2023-05-09 10:02 ` Tomas Härdin
2 siblings, 0 replies; 7+ messages in thread
From: Tomas Härdin @ 2023-05-09 10:02 UTC (permalink / raw)
To: FFmpeg development discussions and patches
tis 2023-05-02 klockan 08:39 -0300 skrev James Almer:
> On 5/2/2023 8:34 AM, Tomas Härdin wrote:
> > tis 2023-05-02 klockan 15:48 +0800 skrev Zhao Zhili:
> > > From: Zhao Zhili <zhilizhao@tencent.com>
> > >
> > > Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
> > > ---
> > > libavutil/opt.h | 2 ++
> > > libavutil/version.h | 1 +
> > > 2 files changed, 3 insertions(+)
> > >
> > > diff --git a/libavutil/opt.h b/libavutil/opt.h
> > > index 461b5d3b6b..46915754ea 100644
> > > --- a/libavutil/opt.h
> > > +++ b/libavutil/opt.h
> > > @@ -271,8 +271,10 @@ typedef struct AVOption {
> > > int64_t i64;
> > > double dbl;
> > > const char *str;
> > > +#if FF_API_AVOPTION_AVRATIONAL
> > > /* TODO those are unused now */
> > > AVRational q;
> > > +#endif
> >
> > Surely rationals options are useful?
>
> They are, but this union is where the default value is stored when
> you
> define an AVOption. At some point it seems it was decided that
> rational
> (and video_rate) type AVOptions should set dbl instead of q, which is
> then av_q2d()'d into an AVRational.
Cursed and very wrong in many contexts
/Tomas
_______________________________________________
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] 7+ messages in thread