* [FFmpeg-devel] [PATCH] ffmpeg: remove usage of internal deprecation macro
@ 2022-03-15 21:15 James Almer
2022-03-16 10:15 ` Andreas Rheinhardt
0 siblings, 1 reply; 7+ messages in thread
From: James Almer @ 2022-03-15 21:15 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
fftools/ffmpeg.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index a98e49b775..3b625a9918 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -2880,9 +2880,9 @@ static int init_input_stream(int ist_index, char *error, int error_len)
ist->dec_ctx->opaque = ist;
ist->dec_ctx->get_format = get_format;
#if LIBAVCODEC_VERSION_MAJOR < 60
-FF_DISABLE_DEPRECATION_WARNINGS
+ AV_NOWARN_DEPRECATED({
ist->dec_ctx->thread_safe_callbacks = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
+ })
#endif
if (ist->dec_ctx->codec_id == AV_CODEC_ID_DVB_SUBTITLE &&
--
2.35.1
_______________________________________________
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] ffmpeg: remove usage of internal deprecation macro
2022-03-15 21:15 [FFmpeg-devel] [PATCH] ffmpeg: remove usage of internal deprecation macro James Almer
@ 2022-03-16 10:15 ` Andreas Rheinhardt
2022-03-16 10:57 ` James Almer
0 siblings, 1 reply; 7+ messages in thread
From: Andreas Rheinhardt @ 2022-03-16 10:15 UTC (permalink / raw)
To: ffmpeg-devel
James Almer:
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
> fftools/ffmpeg.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
> index a98e49b775..3b625a9918 100644
> --- a/fftools/ffmpeg.c
> +++ b/fftools/ffmpeg.c
> @@ -2880,9 +2880,9 @@ static int init_input_stream(int ist_index, char *error, int error_len)
> ist->dec_ctx->opaque = ist;
> ist->dec_ctx->get_format = get_format;
> #if LIBAVCODEC_VERSION_MAJOR < 60
> -FF_DISABLE_DEPRECATION_WARNINGS
> + AV_NOWARN_DEPRECATED({
> ist->dec_ctx->thread_safe_callbacks = 1;
> -FF_ENABLE_DEPRECATION_WARNINGS
> + })
> #endif
>
> if (ist->dec_ctx->codec_id == AV_CODEC_ID_DVB_SUBTITLE &&
AV_NOWARN_DEPRECATED currently doesn't work with Clang; so you first
need to find out from which version onward it supports these macros.
- 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] 7+ messages in thread
* Re: [FFmpeg-devel] [PATCH] ffmpeg: remove usage of internal deprecation macro
2022-03-16 10:15 ` Andreas Rheinhardt
@ 2022-03-16 10:57 ` James Almer
2022-03-16 12:58 ` Andreas Rheinhardt
0 siblings, 1 reply; 7+ messages in thread
From: James Almer @ 2022-03-16 10:57 UTC (permalink / raw)
To: ffmpeg-devel
On 3/16/2022 7:15 AM, Andreas Rheinhardt wrote:
> James Almer:
>> Signed-off-by: James Almer <jamrial@gmail.com>
>> ---
>> fftools/ffmpeg.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
>> index a98e49b775..3b625a9918 100644
>> --- a/fftools/ffmpeg.c
>> +++ b/fftools/ffmpeg.c
>> @@ -2880,9 +2880,9 @@ static int init_input_stream(int ist_index, char *error, int error_len)
>> ist->dec_ctx->opaque = ist;
>> ist->dec_ctx->get_format = get_format;
>> #if LIBAVCODEC_VERSION_MAJOR < 60
>> -FF_DISABLE_DEPRECATION_WARNINGS
>> + AV_NOWARN_DEPRECATED({
>> ist->dec_ctx->thread_safe_callbacks = 1;
>> -FF_ENABLE_DEPRECATION_WARNINGS
>> + })
>> #endif
>>
>> if (ist->dec_ctx->codec_id == AV_CODEC_ID_DVB_SUBTITLE &&
>
> AV_NOWARN_DEPRECATED currently doesn't work with Clang; so you first
> need to find out from which version onward it supports these macros.
Does not work in what way? Not compile, or just be a no-op?
If the latter, then that's a limitation FF_DISABLE_DEPRECATION_WARNINGS
also has for some targets. We're not going to stop using a macro just
because it does nothing in some scenarios.
_______________________________________________
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] ffmpeg: remove usage of internal deprecation macro
2022-03-16 10:57 ` James Almer
@ 2022-03-16 12:58 ` Andreas Rheinhardt
2022-03-16 13:07 ` James Almer
0 siblings, 1 reply; 7+ messages in thread
From: Andreas Rheinhardt @ 2022-03-16 12:58 UTC (permalink / raw)
To: ffmpeg-devel
James Almer:
>
>
> On 3/16/2022 7:15 AM, Andreas Rheinhardt wrote:
>> James Almer:
>>> Signed-off-by: James Almer <jamrial@gmail.com>
>>> ---
>>> fftools/ffmpeg.c | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
>>> index a98e49b775..3b625a9918 100644
>>> --- a/fftools/ffmpeg.c
>>> +++ b/fftools/ffmpeg.c
>>> @@ -2880,9 +2880,9 @@ static int init_input_stream(int ist_index,
>>> char *error, int error_len)
>>> ist->dec_ctx->opaque = ist;
>>> ist->dec_ctx->get_format = get_format;
>>> #if LIBAVCODEC_VERSION_MAJOR < 60
>>> -FF_DISABLE_DEPRECATION_WARNINGS
>>> + AV_NOWARN_DEPRECATED({
>>> ist->dec_ctx->thread_safe_callbacks = 1;
>>> -FF_ENABLE_DEPRECATION_WARNINGS
>>> + })
>>> #endif
>>> if (ist->dec_ctx->codec_id == AV_CODEC_ID_DVB_SUBTITLE &&
>>
>> AV_NOWARN_DEPRECATED currently doesn't work with Clang; so you first
>> need to find out from which version onward it supports these macros.
>
> Does not work in what way? Not compile, or just be a no-op?
> If the latter, then that's a limitation FF_DISABLE_DEPRECATION_WARNINGS
> also has for some targets. We're not going to stop using a macro just
> because it does nothing in some scenarios.
Clang takes this path in AV_NOWARN_DEPRECATED:
# define AV_NOWARN_DEPRECATED(code) code
So it is a no-op and the warning is not gone; any recent version of it
will understand the GCC pragma, so this can be rectified.
Looking at our internal deprecation macros shows that it is possible to
also support the Intel compiler.
And I really don't like that you are basically declaring Clang to be
irrelevant; it is so important that you should have tested it.
- 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] 7+ messages in thread
* Re: [FFmpeg-devel] [PATCH] ffmpeg: remove usage of internal deprecation macro
2022-03-16 12:58 ` Andreas Rheinhardt
@ 2022-03-16 13:07 ` James Almer
2022-03-16 13:10 ` Andreas Rheinhardt
0 siblings, 1 reply; 7+ messages in thread
From: James Almer @ 2022-03-16 13:07 UTC (permalink / raw)
To: ffmpeg-devel
On 3/16/2022 9:58 AM, Andreas Rheinhardt wrote:
> James Almer:
>>
>>
>> On 3/16/2022 7:15 AM, Andreas Rheinhardt wrote:
>>> James Almer:
>>>> Signed-off-by: James Almer <jamrial@gmail.com>
>>>> ---
>>>> fftools/ffmpeg.c | 4 ++--
>>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
>>>> index a98e49b775..3b625a9918 100644
>>>> --- a/fftools/ffmpeg.c
>>>> +++ b/fftools/ffmpeg.c
>>>> @@ -2880,9 +2880,9 @@ static int init_input_stream(int ist_index,
>>>> char *error, int error_len)
>>>> ist->dec_ctx->opaque = ist;
>>>> ist->dec_ctx->get_format = get_format;
>>>> #if LIBAVCODEC_VERSION_MAJOR < 60
>>>> -FF_DISABLE_DEPRECATION_WARNINGS
>>>> + AV_NOWARN_DEPRECATED({
>>>> ist->dec_ctx->thread_safe_callbacks = 1;
>>>> -FF_ENABLE_DEPRECATION_WARNINGS
>>>> + })
>>>> #endif
>>>> if (ist->dec_ctx->codec_id == AV_CODEC_ID_DVB_SUBTITLE &&
>>>
>>> AV_NOWARN_DEPRECATED currently doesn't work with Clang; so you first
>>> need to find out from which version onward it supports these macros.
>>
>> Does not work in what way? Not compile, or just be a no-op?
>> If the latter, then that's a limitation FF_DISABLE_DEPRECATION_WARNINGS
>> also has for some targets. We're not going to stop using a macro just
>> because it does nothing in some scenarios.
>
> Clang takes this path in AV_NOWARN_DEPRECATED:
> # define AV_NOWARN_DEPRECATED(code) code
> So it is a no-op and the warning is not gone; any recent version of it
> will understand the GCC pragma, so this can be rectified.
> Looking at our internal deprecation macros shows that it is possible to
> also support the Intel compiler.
> And I really don't like that you are basically declaring Clang to be
> irrelevant; it is so important that you should have tested it.
I'm not declaring it irrelevant, i'm saying that if a public macro has
no implementation for a given compiler, then that's unrelated to its
usage. The internal macro also has limitations, yet it hasn't stopped us
from using it anywhere.
I'm removing the usage of an internal macro from a file that should not
access it, and replacing it with a public one. What happens under the
hood is a separate issue. Supporting more compilers in
AV_NOWARN_DEPRECATED() is a separate fix.
_______________________________________________
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] ffmpeg: remove usage of internal deprecation macro
2022-03-16 13:07 ` James Almer
@ 2022-03-16 13:10 ` Andreas Rheinhardt
2022-03-16 13:14 ` James Almer
0 siblings, 1 reply; 7+ messages in thread
From: Andreas Rheinhardt @ 2022-03-16 13:10 UTC (permalink / raw)
To: ffmpeg-devel
James Almer:
>
>
> On 3/16/2022 9:58 AM, Andreas Rheinhardt wrote:
>> James Almer:
>>>
>>>
>>> On 3/16/2022 7:15 AM, Andreas Rheinhardt wrote:
>>>> James Almer:
>>>>> Signed-off-by: James Almer <jamrial@gmail.com>
>>>>> ---
>>>>> fftools/ffmpeg.c | 4 ++--
>>>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
>>>>> index a98e49b775..3b625a9918 100644
>>>>> --- a/fftools/ffmpeg.c
>>>>> +++ b/fftools/ffmpeg.c
>>>>> @@ -2880,9 +2880,9 @@ static int init_input_stream(int ist_index,
>>>>> char *error, int error_len)
>>>>> ist->dec_ctx->opaque = ist;
>>>>> ist->dec_ctx->get_format = get_format;
>>>>> #if LIBAVCODEC_VERSION_MAJOR < 60
>>>>> -FF_DISABLE_DEPRECATION_WARNINGS
>>>>> + AV_NOWARN_DEPRECATED({
>>>>> ist->dec_ctx->thread_safe_callbacks = 1;
>>>>> -FF_ENABLE_DEPRECATION_WARNINGS
>>>>> + })
>>>>> #endif
>>>>> if (ist->dec_ctx->codec_id == AV_CODEC_ID_DVB_SUBTITLE &&
>>>>
>>>> AV_NOWARN_DEPRECATED currently doesn't work with Clang; so you first
>>>> need to find out from which version onward it supports these macros.
>>>
>>> Does not work in what way? Not compile, or just be a no-op?
>>> If the latter, then that's a limitation FF_DISABLE_DEPRECATION_WARNINGS
>>> also has for some targets. We're not going to stop using a macro just
>>> because it does nothing in some scenarios.
>>
>> Clang takes this path in AV_NOWARN_DEPRECATED:
>> # define AV_NOWARN_DEPRECATED(code) code
>> So it is a no-op and the warning is not gone; any recent version of it
>> will understand the GCC pragma, so this can be rectified.
>> Looking at our internal deprecation macros shows that it is possible to
>> also support the Intel compiler.
>> And I really don't like that you are basically declaring Clang to be
>> irrelevant; it is so important that you should have tested it.
>
> I'm not declaring it irrelevant, i'm saying that if a public macro has
> no implementation for a given compiler, then that's unrelated to its
> usage. The internal macro also has limitations, yet it hasn't stopped us
> from using it anywhere.
>
> I'm removing the usage of an internal macro from a file that should not
> access it, and replacing it with a public one. What happens under the
> hood is a separate issue. Supporting more compilers in
> AV_NOWARN_DEPRECATED() is a separate fix.
Separate, but not independent: Supporting more compilers should come first.
- 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] 7+ messages in thread
* Re: [FFmpeg-devel] [PATCH] ffmpeg: remove usage of internal deprecation macro
2022-03-16 13:10 ` Andreas Rheinhardt
@ 2022-03-16 13:14 ` James Almer
0 siblings, 0 replies; 7+ messages in thread
From: James Almer @ 2022-03-16 13:14 UTC (permalink / raw)
To: ffmpeg-devel
On 3/16/2022 10:10 AM, Andreas Rheinhardt wrote:
> James Almer:
>>
>>
>> On 3/16/2022 9:58 AM, Andreas Rheinhardt wrote:
>>> James Almer:
>>>>
>>>>
>>>> On 3/16/2022 7:15 AM, Andreas Rheinhardt wrote:
>>>>> James Almer:
>>>>>> Signed-off-by: James Almer <jamrial@gmail.com>
>>>>>> ---
>>>>>> fftools/ffmpeg.c | 4 ++--
>>>>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>>>>
>>>>>> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
>>>>>> index a98e49b775..3b625a9918 100644
>>>>>> --- a/fftools/ffmpeg.c
>>>>>> +++ b/fftools/ffmpeg.c
>>>>>> @@ -2880,9 +2880,9 @@ static int init_input_stream(int ist_index,
>>>>>> char *error, int error_len)
>>>>>> ist->dec_ctx->opaque = ist;
>>>>>> ist->dec_ctx->get_format = get_format;
>>>>>> #if LIBAVCODEC_VERSION_MAJOR < 60
>>>>>> -FF_DISABLE_DEPRECATION_WARNINGS
>>>>>> + AV_NOWARN_DEPRECATED({
>>>>>> ist->dec_ctx->thread_safe_callbacks = 1;
>>>>>> -FF_ENABLE_DEPRECATION_WARNINGS
>>>>>> + })
>>>>>> #endif
>>>>>> if (ist->dec_ctx->codec_id == AV_CODEC_ID_DVB_SUBTITLE &&
>>>>>
>>>>> AV_NOWARN_DEPRECATED currently doesn't work with Clang; so you first
>>>>> need to find out from which version onward it supports these macros.
>>>>
>>>> Does not work in what way? Not compile, or just be a no-op?
>>>> If the latter, then that's a limitation FF_DISABLE_DEPRECATION_WARNINGS
>>>> also has for some targets. We're not going to stop using a macro just
>>>> because it does nothing in some scenarios.
>>>
>>> Clang takes this path in AV_NOWARN_DEPRECATED:
>>> # define AV_NOWARN_DEPRECATED(code) code
>>> So it is a no-op and the warning is not gone; any recent version of it
>>> will understand the GCC pragma, so this can be rectified.
>>> Looking at our internal deprecation macros shows that it is possible to
>>> also support the Intel compiler.
>>> And I really don't like that you are basically declaring Clang to be
>>> irrelevant; it is so important that you should have tested it.
>>
>> I'm not declaring it irrelevant, i'm saying that if a public macro has
>> no implementation for a given compiler, then that's unrelated to its
>> usage. The internal macro also has limitations, yet it hasn't stopped us
>> from using it anywhere.
>>
>> I'm removing the usage of an internal macro from a file that should not
>> access it, and replacing it with a public one. What happens under the
>> hood is a separate issue. Supporting more compilers in
>> AV_NOWARN_DEPRECATED() is a separate fix.
>
> Separate, but not independent: Supporting more compilers should come first.
>
> - Andreas
Can you implement it? I don't have a Clang toolchain nor do i know how
to check for supported Pragmas. defined(__clang__) is probably too broad
for this.
_______________________________________________
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
end of thread, other threads:[~2022-03-16 13:14 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-15 21:15 [FFmpeg-devel] [PATCH] ffmpeg: remove usage of internal deprecation macro James Almer
2022-03-16 10:15 ` Andreas Rheinhardt
2022-03-16 10:57 ` James Almer
2022-03-16 12:58 ` Andreas Rheinhardt
2022-03-16 13:07 ` James Almer
2022-03-16 13:10 ` Andreas Rheinhardt
2022-03-16 13:14 ` James Almer
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