From: Michael Niedermayer Date: Sat, 6 Jul 2013 10:08:43 +0000 (+0200) Subject: Merge remote-tracking branch 'qatar/master' X-Git-Tag: android-x86-4.4-r1~2523 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=98277fd1a0f7e153216bbbf62eab7c1d4f88b508;p=android-x86%2Fexternal-ffmpeg.git Merge remote-tracking branch 'qatar/master' * qatar/master: bitstream_filter: K&R formatting cosmetics Conflicts: libavcodec/bitstream_filter.c Merged-by: Michael Niedermayer --- 98277fd1a0f7e153216bbbf62eab7c1d4f88b508 diff --cc libavcodec/bitstream_filter.c index e562555f01,8960b19ecb..3ee582fb28 --- a/libavcodec/bitstream_filter.c +++ b/libavcodec/bitstream_filter.c @@@ -21,41 -21,45 +21,49 @@@ #include #include "avcodec.h" +#include "libavutil/atomic.h" #include "libavutil/mem.h" - static AVBitStreamFilter *first_bitstream_filter= NULL; + static AVBitStreamFilter *first_bitstream_filter = NULL; - AVBitStreamFilter *av_bitstream_filter_next(AVBitStreamFilter *f){ - if(f) return f->next; - else return first_bitstream_filter; + AVBitStreamFilter *av_bitstream_filter_next(AVBitStreamFilter *f) + { + if (f) + return f->next; + else + return first_bitstream_filter; } - void av_register_bitstream_filter(AVBitStreamFilter *bsf){ + void av_register_bitstream_filter(AVBitStreamFilter *bsf) + { - bsf->next = first_bitstream_filter; - first_bitstream_filter = bsf; + do { + bsf->next = first_bitstream_filter; + } while(bsf->next != avpriv_atomic_ptr_cas((void * volatile *)&first_bitstream_filter, bsf->next, bsf)); } - AVBitStreamFilterContext *av_bitstream_filter_init(const char *name){ - AVBitStreamFilter *bsf= first_bitstream_filter; + AVBitStreamFilterContext *av_bitstream_filter_init(const char *name) + { + AVBitStreamFilter *bsf = first_bitstream_filter; - while(bsf){ - if(!strcmp(name, bsf->name)){ - AVBitStreamFilterContext *bsfc= av_mallocz(sizeof(AVBitStreamFilterContext)); - bsfc->filter= bsf; - bsfc->priv_data = bsf->priv_data_size ? av_mallocz(bsf->priv_data_size) : NULL; + while (bsf) { + if (!strcmp(name, bsf->name)) { + AVBitStreamFilterContext *bsfc = + av_mallocz(sizeof(AVBitStreamFilterContext)); + bsfc->filter = bsf; + bsfc->priv_data = + bsf->priv_data_size ? av_mallocz(bsf->priv_data_size) : NULL; return bsfc; } - bsf= bsf->next; + bsf = bsf->next; } return NULL; } - void av_bitstream_filter_close(AVBitStreamFilterContext *bsfc){ + void av_bitstream_filter_close(AVBitStreamFilterContext *bsfc) + { + if (!bsfc) + return; - if(bsfc->filter->close) + if (bsfc->filter->close) bsfc->filter->close(bsfc); av_freep(&bsfc->priv_data); av_parser_close(bsfc->parser);