|
|
|
@ -736,17 +736,56 @@ typedef struct AVChapter { |
|
|
|
|
* New fields can be added to the end with minor version bumps. |
|
|
|
|
* Removal, reordering and changes to existing fields require a major |
|
|
|
|
* version bump. |
|
|
|
|
* sizeof(AVFormatContext) must not be used outside libav*. |
|
|
|
|
* sizeof(AVFormatContext) must not be used outside libav*, use |
|
|
|
|
* avformat_alloc_context() to create an AVFormatContext. |
|
|
|
|
*/ |
|
|
|
|
typedef struct AVFormatContext { |
|
|
|
|
const AVClass *av_class; /**< Set by avformat_alloc_context. */ |
|
|
|
|
/* Can only be iformat or oformat, not both at the same time. */ |
|
|
|
|
/**
|
|
|
|
|
* A class for logging and AVOptions. Set by avformat_alloc_context(). |
|
|
|
|
* Exports (de)muxer private options if they exist. |
|
|
|
|
*/ |
|
|
|
|
const AVClass *av_class; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Can only be iformat or oformat, not both at the same time. |
|
|
|
|
* |
|
|
|
|
* decoding: set by avformat_open_input(). |
|
|
|
|
* encoding: set by the user. |
|
|
|
|
*/ |
|
|
|
|
struct AVInputFormat *iformat; |
|
|
|
|
struct AVOutputFormat *oformat; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Format private data. This is an AVOptions-enabled struct |
|
|
|
|
* if and only if iformat/oformat.priv_class is not NULL. |
|
|
|
|
*/ |
|
|
|
|
void *priv_data; |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* I/O context. |
|
|
|
|
* |
|
|
|
|
* decoding: either set by the user before avformat_open_input() (then |
|
|
|
|
* the user must close it manually) or set by avformat_open_input(). |
|
|
|
|
* encoding: set by the user. |
|
|
|
|
* |
|
|
|
|
* Do NOT set this field if AVFMT_NOFILE flag is set in |
|
|
|
|
* iformat/oformat.flags. In such a case, the (de)muxer will handle |
|
|
|
|
* I/O in some other way and this field will be NULL. |
|
|
|
|
*/ |
|
|
|
|
AVIOContext *pb; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* A list of all streams in the file. New streams are created with |
|
|
|
|
* avformat_new_stream(). |
|
|
|
|
* |
|
|
|
|
* decoding: streams are created by libavformat in avformat_open_input(). |
|
|
|
|
* If AVFMTCTX_NOHEADER is set in ctx_flags, then new streams may also |
|
|
|
|
* appear in av_read_frame(). |
|
|
|
|
* encoding: streams are created by the user before avformat_write_header(). |
|
|
|
|
*/ |
|
|
|
|
unsigned int nb_streams; |
|
|
|
|
AVStream **streams; |
|
|
|
|
|
|
|
|
|
char filename[1024]; /**< input or output filename */ |
|
|
|
|
/* stream info */ |
|
|
|
|
#if FF_API_TIMESTAMP |
|
|
|
@ -853,8 +892,8 @@ typedef struct AVFormatContext { |
|
|
|
|
unsigned int probesize; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Maximum time (in AV_TIME_BASE units) during which the input should |
|
|
|
|
* be analyzed in av_find_stream_info(). |
|
|
|
|
* decoding: maximum time (in AV_TIME_BASE units) during which the input should |
|
|
|
|
* be analyzed in avformat_find_stream_info(). |
|
|
|
|
*/ |
|
|
|
|
int max_analyze_duration; |
|
|
|
|
|
|
|
|
|