libavcodec/parser.c File Reference

#include "parser.h"

Go to the source code of this file.

Functions

AVCodecParserav_parser_next (AVCodecParser *p)
void av_register_codec_parser (AVCodecParser *parser)
AVCodecParserContextav_parser_init (int codec_id)
void ff_fetch_timestamp (AVCodecParserContext *s, int off, int remove)
 Fetches timestamps for a specific byte within the current access unit.
int av_parser_parse (AVCodecParserContext *s, AVCodecContext *avctx, uint8_t **poutbuf, int *poutbuf_size, const uint8_t *buf, int buf_size, int64_t pts, int64_t dts)
int av_parser_parse2 (AVCodecParserContext *s, AVCodecContext *avctx, uint8_t **poutbuf, int *poutbuf_size, const uint8_t *buf, int buf_size, int64_t pts, int64_t dts, int64_t pos)
 Parse a packet.
int av_parser_change (AVCodecParserContext *s, AVCodecContext *avctx, uint8_t **poutbuf, int *poutbuf_size, const uint8_t *buf, int buf_size, int keyframe)
void av_parser_close (AVCodecParserContext *s)
int ff_combine_frame (ParseContext *pc, int next, const uint8_t **buf, int *buf_size)
 combines the (truncated) bitstream to a complete frame
void ff_parse_close (AVCodecParserContext *s)
void ff_parse1_close (AVCodecParserContext *s)
int ff_mpeg4video_split (AVCodecContext *avctx, const uint8_t *buf, int buf_size)

Variables

static AVCodecParserav_first_parser = NULL


Function Documentation

int av_parser_change ( AVCodecParserContext s,
AVCodecContext avctx,
uint8_t **  poutbuf,
int *  poutbuf_size,
const uint8_t *  buf,
int  buf_size,
int  keyframe 
)

Returns:
0 if the output buffer is a subset of the input, 1 if it is allocated and must be freed
Deprecated:
use AVBitstreamFilter

Definition at line 200 of file parser.c.

Referenced by output_packet().

void av_parser_close ( AVCodecParserContext s  ) 

AVCodecParserContext* av_parser_init ( int  codec_id  ) 

Definition at line 38 of file parser.c.

Referenced by av_find_stream_info(), av_read_frame_internal(), and remove_extradata().

AVCodecParser* av_parser_next ( AVCodecParser p  ) 

Definition at line 27 of file parser.c.

int av_parser_parse ( AVCodecParserContext s,
AVCodecContext avctx,
uint8_t **  poutbuf,
int *  poutbuf_size,
const uint8_t *  buf,
int  buf_size,
int64_t  pts,
int64_t  dts 
)

Parameters:
buf input
buf_size input length, to signal EOF, this should be 0 (so that the last frame can be output)
pts input presentation timestamp
dts input decoding timestamp
poutbuf will contain a pointer to the first byte of the output frame
poutbuf_size will contain the length of the output frame
Returns:
the number of bytes of the input bitstream used
Example:
   while(in_len){
       len = av_parser_parse(myparser, AVCodecContext, &data, &size,
                                       in_data, in_len,
                                       pts, dts);
       in_data += len;
       in_len  -= len;

       if(size)
          decode_frame(data, size);
   }

Deprecated:
Use av_parser_parse2() instead.

Definition at line 134 of file parser.c.

int av_parser_parse2 ( AVCodecParserContext s,
AVCodecContext avctx,
uint8_t **  poutbuf,
int *  poutbuf_size,
const uint8_t *  buf,
int  buf_size,
int64_t  pts,
int64_t  dts,
int64_t  pos 
)

Parse a packet.

Parameters:
s parser context.
avctx codec context.
poutbuf set to pointer to parsed buffer or NULL if not yet finished.
poutbuf_size set to size of parsed buffer or zero if not yet finished.
buf input buffer.
buf_size input length, to signal EOF, this should be 0 (so that the last frame can be output).
pts input presentation timestamp.
dts input decoding timestamp.
pos input byte position in stream.
Returns:
the number of bytes of the input bitstream used.
Example:
   while(in_len){
       len = av_parser_parse2(myparser, AVCodecContext, &data, &size,
                                        in_data, in_len,
                                        pts, dts, pos);
       in_data += len;
       in_len  -= len;

       if(size)
          decode_frame(data, size);
   }

Definition at line 143 of file parser.c.

Referenced by av_parser_parse(), and av_read_frame_internal().

void av_register_codec_parser ( AVCodecParser parser  ) 

Definition at line 32 of file parser.c.

int ff_combine_frame ( ParseContext pc,
int  next,
const uint8_t **  buf,
int *  buf_size 
)

combines the (truncated) bitstream to a complete frame

Returns:
-1 if no complete frame could be created, AVERROR(ENOMEM) if there was a memory allocation error

Definition at line 249 of file parser.c.

Referenced by cavsvideo_parse(), dca_parse(), dnxhd_parse(), ff_aac_ac3_parse(), ff_h263_decode_frame(), h261_parse(), h263_parse(), h264_parse(), jpeg_parse(), mlp_parse(), mpeg4video_parse(), mpeg_decode_frame(), mpegaudio_parse(), mpegvideo_parse(), pnm_parse(), and vc1_parse().

void ff_fetch_timestamp ( AVCodecParserContext s,
int  off,
int  remove 
)

Fetches timestamps for a specific byte within the current access unit.

Parameters:
off byte position within the access unit
remove Found timestamps will be removed if set to 1, kept if set to 0.

Definition at line 84 of file parser.c.

Referenced by av_parser_parse2(), and ff_mpeg1_find_frame_end().

int ff_mpeg4video_split ( AVCodecContext avctx,
const uint8_t *  buf,
int  buf_size 
)

Definition at line 331 of file parser.c.

void ff_parse1_close ( AVCodecParserContext s  ) 

Definition at line 321 of file parser.c.

void ff_parse_close ( AVCodecParserContext s  ) 

Definition at line 314 of file parser.c.


Variable Documentation

AVCodecParser* av_first_parser = NULL [static]

Definition at line 25 of file parser.c.


Generated on Fri Oct 26 02:36:53 2012 for FFmpeg by  doxygen 1.5.8