Mercurial > libavcodec.hg
comparison bitstream_filter.c @ 5037:654e035bc755 libavcodec
move dump_extradata bitstream filter in its own file
author | aurel |
---|---|
date | Sat, 19 May 2007 00:35:27 +0000 |
parents | 06f4c436a09f |
children | 327f714d69c0 |
comparison
equal
deleted
inserted
replaced
5036:06f4c436a09f | 5037:654e035bc755 |
---|---|
54 const uint8_t *buf, int buf_size, int keyframe){ | 54 const uint8_t *buf, int buf_size, int keyframe){ |
55 *poutbuf= (uint8_t *) buf; | 55 *poutbuf= (uint8_t *) buf; |
56 *poutbuf_size= buf_size; | 56 *poutbuf_size= buf_size; |
57 return bsfc->filter->filter(bsfc, avctx, args, poutbuf, poutbuf_size, buf, buf_size, keyframe); | 57 return bsfc->filter->filter(bsfc, avctx, args, poutbuf, poutbuf_size, buf, buf_size, keyframe); |
58 } | 58 } |
59 | |
60 static int dump_extradata(AVBitStreamFilterContext *bsfc, AVCodecContext *avctx, const char *args, | |
61 uint8_t **poutbuf, int *poutbuf_size, | |
62 const uint8_t *buf, int buf_size, int keyframe){ | |
63 int cmd= args ? *args : 0; | |
64 /* cast to avoid warning about discarding qualifiers */ | |
65 if(avctx->extradata){ | |
66 if( (keyframe && (avctx->flags2 & CODEC_FLAG2_LOCAL_HEADER) && cmd=='a') | |
67 ||(keyframe && (cmd=='k' || !cmd)) | |
68 ||(cmd=='e') | |
69 /*||(? && (s->flags & PARSER_FLAG_DUMP_EXTRADATA_AT_BEGIN)*/){ | |
70 int size= buf_size + avctx->extradata_size; | |
71 *poutbuf_size= size; | |
72 *poutbuf= av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE); | |
73 | |
74 memcpy(*poutbuf, avctx->extradata, avctx->extradata_size); | |
75 memcpy((*poutbuf) + avctx->extradata_size, buf, buf_size + FF_INPUT_BUFFER_PADDING_SIZE); | |
76 return 1; | |
77 } | |
78 } | |
79 return 0; | |
80 } | |
81 | |
82 #ifdef CONFIG_DUMP_EXTRADATA_BSF | |
83 AVBitStreamFilter dump_extradata_bsf={ | |
84 "dump_extra", | |
85 0, | |
86 dump_extradata, | |
87 }; | |
88 #endif |