=====AVInputFormat===== Defined in ''avformat.h'' typedef struct AVInputFormat { const char *name; const char *long_name; /** size of private data so that it can be allocated in the wrapper */ int priv_data_size; /** tell if a given file has a chance of being parsed by this format */ int (*read_probe)(AVProbeData *); /** read the format header and initialize the AVFormatContext structure. Return 0 if OK. 'ap' if non NULL contains additional paramters. Only used in raw format right now. 'av_new_stream' should be called to create new streams. */ int (*read_header)(struct AVFormatContext *, AVFormatParameters *ap); /** read one packet and put it in 'pkt'. pts and flags are also set. 'av_new_stream' can be called only if the flag AVFMTCTX_NOHEADER is used. */ int (*read_packet)(struct AVFormatContext *, AVPacket *pkt); /** close the stream. The AVFormatContext and AVStreams are not freed by this function */ int (*read_close)(struct AVFormatContext *); /** * seek to a given timestamp relative to the frames in * stream component stream_index * @param stream_index must not be -1 * @param flags selects which direction should be preferred if no exact * match is available */ int (*read_seek)(struct AVFormatContext *, int stream_index, int64_t timestamp, int flags); /** * gets the next timestamp in AV_TIME_BASE units. */ int64_t (*read_timestamp)(struct AVFormatContext *s, int stream_index, int64_t *pos, int64_t pos_limit); /** can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER */ int flags; /** if extensions are defined, then no probe is done. You should usually not use extension format guessing because it is not reliable enough */ const char *extensions; /** general purpose read only value that the format can use */ int value; /** start/resume playing - only meaningful if using a network based format (RTSP) */ int (*read_play)(struct AVFormatContext *); /** pause playing - only meaningful if using a network based format (RTSP) */ int (*read_pause)(struct AVFormatContext *); const struct AVCodecTag **codec_tag; /* private fields */ struct AVInputFormat *next; } AVInputFormat;