Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
18c896be
F
Ffmpeg
项目概览
小白菜888
/
Ffmpeg
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Ffmpeg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
18c896be
编写于
2月 04, 2014
作者:
A
Anton Khirnov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
lavf: extend / improve the AVFormatContext doxy
上级
54f7e79d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
69 addition
and
32 deletion
+69
-32
libavformat/avformat.h
libavformat/avformat.h
+69
-32
未找到文件。
libavformat/avformat.h
浏览文件 @
18c896be
...
...
@@ -860,32 +860,41 @@ typedef struct AVFormatInternal AVFormatInternal;
*/
typedef
struct
AVFormatContext
{
/**
* A class for logging and
AVO
ptions. Set by avformat_alloc_context().
* A class for logging and
@ref avo
ptions. 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
.
*
The input container format
.
*
* decoding: set by avformat_open_input().
* encoding: set by the user.
* Demuxing only, set by avformat_open_input().
*/
struct
AVInputFormat
*
iformat
;
/**
* The output container format.
*
* Muxing only, must be set by the caller before avformat_write_header().
*/
struct
AVOutputFormat
*
oformat
;
/**
* Format private data. This is an AVOptions-enabled struct
* if and only if iformat/oformat.priv_class is not NULL.
*
* - muxing: set by avformat_write_header()
* - demuxing: set by avformat_open_input()
*/
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.
* - demuxing: either set by the user before avformat_open_input() (then
* the user must close it manually) or set by avformat_open_input().
* - muxing: set by the user before avformat_write_header(). The caller must
* take care of closing / freeing the IO context.
*
* Do NOT set this field if AVFMT_NOFILE flag is set in
* iformat/oformat.flags. In such a case, the (de)muxer will handle
...
...
@@ -896,37 +905,54 @@ typedef struct AVFormatContext {
/* stream info */
int
ctx_flags
;
/**< Format-specific flags, see AVFMTCTX_xx */
/**
* Number of elements in AVFormatContext.streams.
*
* Set by avformat_new_stream(), must not be modified by any other code.
*/
unsigned
int
nb_streams
;
/**
* 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().
* - demuxing: 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().
* - muxing: streams are created by the user before avformat_write_header().
*
* Freed by libavformat in avformat_free_context().
*/
unsigned
int
nb_streams
;
AVStream
**
streams
;
char
filename
[
1024
];
/**< input or output filename */
/**
* input or output filename
*
* - demuxing: set by avformat_open_input()
* - muxing: may be set by the caller before avformat_write_header()
*/
char
filename
[
1024
];
/**
*
Decoding: p
osition of the first frame of the component, in
*
P
osition of the first frame of the component, in
* AV_TIME_BASE fractional seconds. NEVER set this value directly:
* It is deduced from the AVStream values.
*
* Demuxing only, set by libavformat.
*/
int64_t
start_time
;
/**
* D
ecoding: d
uration of the stream, in AV_TIME_BASE fractional
* Duration of the stream, in AV_TIME_BASE fractional
* seconds. Only set this value if you know none of the individual stream
* durations and also do not set any of them. This is deduced from the
* AVStream values if not set.
*
* Demuxing only, set by libavformat.
*/
int64_t
duration
;
/**
*
Decoding: t
otal stream bitrate in bit/s, 0 if not
*
T
otal stream bitrate in bit/s, 0 if not
* available. Never set it directly if the file_size and the
* duration are known as Libav can compute it automatically.
*/
...
...
@@ -948,13 +974,16 @@ typedef struct AVFormatContext {
#define AVFMT_FLAG_FLUSH_PACKETS 0x0200 ///< Flush the AVIOContext every packet.
/**
* decoding: size of data to probe; encoding: unused.
* Maximum size of the data read from input for determining
* the input container format.
* Demuxing only, set by the caller before avformat_open_input().
*/
unsigned
int
probesize
;
/**
* decoding: maximum time (in AV_TIME_BASE units) during which the input should
* be analyzed in avformat_find_stream_info().
* Maximum duration (in AV_TIME_BASE units) of the data read
* from input in avformat_find_stream_info().
* Demuxing only, set by the caller before avformat_find_stream_info().
*/
int
max_analyze_duration
;
...
...
@@ -989,8 +1018,8 @@ typedef struct AVFormatContext {
* accurate seeking (depends on demuxer).
* Demuxers for which a full in-memory index is mandatory will ignore
* this.
*
muxing
: unused
* demuxing: set by user
*
- muxing
: unused
*
-
demuxing: set by user
*/
unsigned
int
max_index_size
;
...
...
@@ -1008,41 +1037,49 @@ typedef struct AVFormatContext {
* in the trailer. To write chapters in the trailer, nb_chapters
* must be zero when write_header is called and non-zero when
* write_trailer is called.
*
muxing
: set by user
* demuxing: set by libavformat
*
- muxing
: set by user
*
-
demuxing: set by libavformat
*/
unsigned
int
nb_chapters
;
AVChapter
**
chapters
;
/**
* Metadata that applies to the whole file.
*
* - demuxing: set by libavformat in avformat_open_input()
* - muxing: may be set by the caller before avformat_write_header()
*
* Freed by libavformat in avformat_free_context().
*/
AVDictionary
*
metadata
;
/**
* Start time of the stream in real world time, in microseconds
* since the unix epoch (00:00 1st January 1970). That is, pts=0
* in the stream was captured at this real world time.
* - encoding: Set by user.
* - decoding: Unused.
* since the Unix epoch (00:00 1st January 1970). That is, pts=0 in the
* stream was captured at this real world time.
* Muxing only, set by the caller before avformat_write_header().
*/
int64_t
start_time_realtime
;
/**
* decoding: number of frames used to probe fps
* The number of frames used for determining the framerate in
* avformat_find_stream_info().
* Demuxing only, set by the caller before avformat_find_stream_info().
*/
int
fps_probe_size
;
/**
* Error recognition; higher values will detect more errors but may
* misdetect some more or less valid parts as errors.
* - encoding: unused
* - decoding: Set by user.
* Demuxing only, set by the caller before avformat_open_input().
*/
int
error_recognition
;
/**
* Custom interrupt callbacks for the I/O layer.
*
* de
cod
ing: set by the user before avformat_open_input().
*
encod
ing: set by the user before avformat_write_header()
* de
mux
ing: set by the user before avformat_open_input().
*
mux
ing: set by the user before avformat_write_header()
* (mainly useful for AVFMT_NOFILE formats). The callback
* should also be passed to avio_open2() if it's used to
* open the file.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录