mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-13 21:28:01 +02:00
Merge remote-tracking branch 'qatar/master'
* qatar/master: bitstream_filter: K&R formatting cosmetics Conflicts: libavcodec/bitstream_filter.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
98277fd1a0
@ -24,38 +24,46 @@
|
|||||||
#include "libavutil/atomic.h"
|
#include "libavutil/atomic.h"
|
||||||
#include "libavutil/mem.h"
|
#include "libavutil/mem.h"
|
||||||
|
|
||||||
static AVBitStreamFilter *first_bitstream_filter= NULL;
|
static AVBitStreamFilter *first_bitstream_filter = NULL;
|
||||||
|
|
||||||
AVBitStreamFilter *av_bitstream_filter_next(AVBitStreamFilter *f){
|
AVBitStreamFilter *av_bitstream_filter_next(AVBitStreamFilter *f)
|
||||||
if(f) return f->next;
|
{
|
||||||
else return first_bitstream_filter;
|
if (f)
|
||||||
|
return f->next;
|
||||||
|
else
|
||||||
|
return first_bitstream_filter;
|
||||||
}
|
}
|
||||||
|
|
||||||
void av_register_bitstream_filter(AVBitStreamFilter *bsf){
|
void av_register_bitstream_filter(AVBitStreamFilter *bsf)
|
||||||
|
{
|
||||||
do {
|
do {
|
||||||
bsf->next = first_bitstream_filter;
|
bsf->next = first_bitstream_filter;
|
||||||
} while(bsf->next != avpriv_atomic_ptr_cas((void * volatile *)&first_bitstream_filter, bsf->next, bsf));
|
} while(bsf->next != avpriv_atomic_ptr_cas((void * volatile *)&first_bitstream_filter, bsf->next, bsf));
|
||||||
}
|
}
|
||||||
|
|
||||||
AVBitStreamFilterContext *av_bitstream_filter_init(const char *name){
|
AVBitStreamFilterContext *av_bitstream_filter_init(const char *name)
|
||||||
AVBitStreamFilter *bsf= first_bitstream_filter;
|
{
|
||||||
|
AVBitStreamFilter *bsf = first_bitstream_filter;
|
||||||
|
|
||||||
while(bsf){
|
while (bsf) {
|
||||||
if(!strcmp(name, bsf->name)){
|
if (!strcmp(name, bsf->name)) {
|
||||||
AVBitStreamFilterContext *bsfc= av_mallocz(sizeof(AVBitStreamFilterContext));
|
AVBitStreamFilterContext *bsfc =
|
||||||
bsfc->filter= bsf;
|
av_mallocz(sizeof(AVBitStreamFilterContext));
|
||||||
bsfc->priv_data = bsf->priv_data_size ? av_mallocz(bsf->priv_data_size) : NULL;
|
bsfc->filter = bsf;
|
||||||
|
bsfc->priv_data =
|
||||||
|
bsf->priv_data_size ? av_mallocz(bsf->priv_data_size) : NULL;
|
||||||
return bsfc;
|
return bsfc;
|
||||||
}
|
}
|
||||||
bsf= bsf->next;
|
bsf = bsf->next;
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void av_bitstream_filter_close(AVBitStreamFilterContext *bsfc){
|
void av_bitstream_filter_close(AVBitStreamFilterContext *bsfc)
|
||||||
|
{
|
||||||
if (!bsfc)
|
if (!bsfc)
|
||||||
return;
|
return;
|
||||||
if(bsfc->filter->close)
|
if (bsfc->filter->close)
|
||||||
bsfc->filter->close(bsfc);
|
bsfc->filter->close(bsfc);
|
||||||
av_freep(&bsfc->priv_data);
|
av_freep(&bsfc->priv_data);
|
||||||
av_parser_close(bsfc->parser);
|
av_parser_close(bsfc->parser);
|
||||||
@ -64,9 +72,11 @@ void av_bitstream_filter_close(AVBitStreamFilterContext *bsfc){
|
|||||||
|
|
||||||
int av_bitstream_filter_filter(AVBitStreamFilterContext *bsfc,
|
int av_bitstream_filter_filter(AVBitStreamFilterContext *bsfc,
|
||||||
AVCodecContext *avctx, const char *args,
|
AVCodecContext *avctx, const char *args,
|
||||||
uint8_t **poutbuf, int *poutbuf_size,
|
uint8_t **poutbuf, int *poutbuf_size,
|
||||||
const uint8_t *buf, int buf_size, int keyframe){
|
const uint8_t *buf, int buf_size, int keyframe)
|
||||||
*poutbuf= (uint8_t *) buf;
|
{
|
||||||
*poutbuf_size= buf_size;
|
*poutbuf = (uint8_t *)buf;
|
||||||
return bsfc->filter->filter(bsfc, avctx, args, poutbuf, poutbuf_size, buf, buf_size, keyframe);
|
*poutbuf_size = buf_size;
|
||||||
|
return bsfc->filter->filter(bsfc, avctx, args, poutbuf, poutbuf_size,
|
||||||
|
buf, buf_size, keyframe);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user