On Wed, Mar 22, 2017 at 08:34:05PM -0300, James Almer wrote:
> This set deals with most of the remaining cases of libavutil/atomic.h usage.
> "make fate THREADS=4" passes here on mingw-w64, but I'm not 100% sure fate
> has proper coverage of some of these functions.
> 
> Only ones remaining are Decklink (It's C++98 and I'm not sure how wise would
> it be to include a C11 header in there, so i'm leaving that to someone else),
> and error_resilience.
> 
> James Almer (7):
>   avcodec/mediacodec: convert to stdatomic
>   avcodec/utils: convert to stdatomic
>   avcodec/parser: convert to stdatomic
>   avformat/format: convert to stdatomic
>   avfilter/avfilter: convert to stdatomic
>   avutil/opencl: convert to stdatomic
>   avcodec/videotoolboxenc: remove unused atomic header
> 
>  libavcodec/mediacodec.c           |  5 ++---
>  libavcodec/mediacodecdec.c        |  1 -
>  libavcodec/mediacodecdec_common.c | 14 ++++++--------
>  libavcodec/mediacodecdec_common.h |  5 +++--
>  libavcodec/parser.c               | 14 ++++++++++----
>  libavcodec/utils.c                | 19 +++++++++++--------
>  libavcodec/videotoolboxenc.c      |  1 -
>  libavfilter/avfilter.c            |  6 ++++--
>  libavformat/format.c              |  9 ++++++---
>  libavutil/opencl.c                |  5 +++--
>  10 files changed, 45 insertions(+), 34 deletions(-)

This breaks building with clang

CC      libavfilter/avfilter.o
CC      libavformat/format.o
CC      libavcodec/parser.o
CC      libavcodec/utils.o
src/libavformat/format.c:68:51: error: address argument to atomic operation 
must be a pointer to _Atomic type ('AVInputFormat **' (aka 'struct 
AVInputFormat **') invalid)
    while(p != &format->next && !format->next && 
!__c11_atomic_compare_exchange_strong(p, &cmp, format, 5, 5))
                                                  ^                             
       ~
src/libavformat/format.c:81:51: error: address argument to atomic operation 
must be a pointer to _Atomic type ('AVOutputFormat **' (aka 'struct 
AVOutputFormat **') invalid)
    while(p != &format->next && !format->next && 
!__c11_atomic_compare_exchange_strong(p, &cmp, format, 5, 5))
                                                  ^                             
       ~
2 errors generated.
make: *** [libavformat/format.o] Error 1
src/libavfilter/avfilter.c:591:18: error: address argument to atomic operation 
must be a pointer to _Atomic type ('AVFilter **' (aka 'struct AVFilter **') 
invalid)
    while(*f || !__c11_atomic_compare_exchange_strong(f, &cmp, filter, 5, 5))
                 ^                                    ~
src/libavfilter/avfilter.c:984:2410: warning: array index 3 is past the end of 
the array (which contains 3 elements) [-Warray-bounds]
                   !__extension__ ({ size_t __s1_len, __s2_len; 
(__builtin_constant_p (filter->filter->name) && __builtin_constant_p ("pp") && 
(__s1_len = __builtin_strlen (filter->filter->name), __s2_len = 
__builtin_strlen ("pp"), (!((size_t)(const void *)((filter->filter->name) + 1) 
- (size_t)(const void *)(filter->filter->name) == 1) || __s1_len >= 4) && 
(!((size_t)(const void *)(("pp") + 1) - (size_t)(const void *)("pp") == 1) || 
__s2_len >= 4)) ? __builtin_strcmp (filter->filter->name, "pp") : 
(__builtin_constant_p (filter->filter->name) && ((size_t)(const void 
*)((filter->filter->name) + 1) - (size_t)(const void *)(filter->filter->name) 
== 1) && (__s1_len = __builtin_strlen (filter->filter->name), __s1_len < 4) ? 
(__builtin_constant_p ("pp") && ((size_t)(const void *)(("pp") + 1) - 
(size_t)(const void *)("pp") == 1) ? __builtin_strcmp (filter->filter->name, 
"pp") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char 
*) (__const char *) ("pp"); register int __result = (((__const unsigned char *) 
(__const char *) (filter->filter->name))[0] - __s2[0]); if (__s1_len > 0 && 
__result == 0) { __result = (((__const unsigned char *) (__const char *) 
(filter->filter->name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { 
__result = (((__const unsigned char *) (__const char *) 
(filter->filter->name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) 
__result = (((__const unsigned char *) (__const char *) 
(filter->filter->name))[3] - __s2[3]); } } __result; }))) : 
(__builtin_constant_p ("pp") && ((size_t)(const void *)(("pp") + 1) - 
(size_t)(const void *)("pp") == 1) && (__s2_len = __builtin_strlen ("pp"), 
__s2_len < 4) ? (__builtin_constant_p (filter->filter->name) && ((size_t)(const 
void *)((filter->filter->name) + 1) - (size_t)(const void 
*)(filter->filter->name) == 1) ? __builtin_strcmp (filter->filter->name, "pp") 
: (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) 
(__const char *) (filter->filter->name); register int __result = __s1[0] - 
((__const unsigned char *) (__const char *) ("pp"))[0]; if (__s2_len > 0 && 
__result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char 
*) ("pp"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - 
((__const unsigned char *) (__const char *) ("pp"))[2]); if (__s2_len > 2 && 
__result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char 
*) ("pp"))[3]); } } __result; }))) : __builtin_strcmp (filter->filter->name, 
"pp")))); }) ||
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
         ^      ~
1 warning and 1 error generated.
make: *** [libavfilter/avfilter.o] Error 1
src/libavcodec/parser.c:52:18: error: address argument to atomic operation must 
be a pointer to _Atomic type ('AVCodecParser **' (aka 'struct AVCodecParser 
**') invalid)
    while(*f || !__c11_atomic_compare_exchange_strong(f, &cmp, parser, 5, 5))
                 ^                                    ~
1 error generated.
make: *** [libavcodec/parser.o] Error 1
src/libavcodec/utils.c:86:18: error: address argument to atomic operation must 
be a pointer to _Atomic type ('void *volatile *' invalid)
            if (!__c11_atomic_compare_exchange_strong(mutex, &cmp, tmp, 5, 5)) {
                 ^                                    ~~~~~
src/libavcodec/utils.c:105:9: error: address argument to atomic operation must 
be a pointer to _Atomic type ('void *volatile *' invalid)
        __c11_atomic_compare_exchange_strong(mutex, mutex, ((void*)0), 5, 5);
        ^                                    ~~~~~
src/libavcodec/utils.c:187:18: error: address argument to atomic operation must 
be a pointer to _Atomic type ('AVCodec **' (aka 'struct AVCodec **') invalid)
    while(*p || !__c11_atomic_compare_exchange_strong(p, &cmp, codec, 5, 5))
                 ^                                    ~
src/libavcodec/utils.c:2824:15: warning: 'avcodec_decode_video2' is deprecated 
[-Wdeprecated-declarations]
        ret = avcodec_decode_video2(avctx, avctx->internal->buffer_frame,
              ^
src/libavcodec/utils.c:2229:5: note: 'avcodec_decode_video2' has been 
explicitly marked deprecated here
int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
    ^
src/libavcodec/utils.c:2829:15: warning: 'avcodec_decode_audio4' is deprecated 
[-Wdeprecated-declarations]
        ret = avcodec_decode_audio4(avctx, avctx->internal->buffer_frame,
              ^
src/libavcodec/utils.c:2338:5: note: 'avcodec_decode_audio4' has been 
explicitly marked deprecated here
int avcodec_decode_audio4(AVCodecContext *avctx,
    ^
src/libavcodec/utils.c:2981:15: warning: 'avcodec_encode_video2' is deprecated 
[-Wdeprecated-declarations]
        ret = avcodec_encode_video2(avctx, avctx->internal->buffer_pkt,
              ^
src/libavcodec/utils.c:1970:5: note: 'avcodec_encode_video2' has been 
explicitly marked deprecated here
int avcodec_encode_video2(AVCodecContext *avctx,
    ^
src/libavcodec/utils.c:2984:15: warning: 'avcodec_encode_audio2' is deprecated 
[-Wdeprecated-declarations]
        ret = avcodec_encode_audio2(avctx, avctx->internal->buffer_pkt,
              ^
src/libavcodec/utils.c:1824:5: note: 'avcodec_encode_audio2' has been 
explicitly marked deprecated here
int avcodec_encode_audio2(AVCodecContext *avctx,
    ^
src/libavcodec/utils.c:3866:18: error: address argument to atomic operation 
must be a pointer to _Atomic type ('AVHWAccel **' (aka 'struct AVHWAccel **') 
invalid)
    while(*p || !__c11_atomic_compare_exchange_strong(p, &cmp, hwaccel, 5, 5))
                 ^                                    ~
4 warnings and 4 errors generated.
make: *** [libavcodec/utils.o] Error 1
make: Target `all' not remade because of errors.

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

If you think the mosad wants you dead since a long time then you are either
wrong or dead since a long time.

Attachment: signature.asc
Description: Digital signature

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to