美文网首页
ffmpeg # 转码过程中几个主要结构体的关系

ffmpeg # 转码过程中几个主要结构体的关系

作者: FlyingPenguin | 来源:发表于2019-04-01 00:51 被阅读0次
image.png image.png image.png
open_input_file
static int open_input_file(OptionsContext *o, const char *filename)
{
    InputFile *f;
    AVFormatContext *ic;
    AVInputFormat *file_iformat = NULL;

...
     if (o->format) {
        if (!(file_iformat = av_find_input_format(o->format))) {
            av_log(NULL, AV_LOG_FATAL, "Unknown input format: '%s'\n", o->format);
            exit_program(1);
        }
    }
...
    err = avformat_open_input(&ic, filename, file_iformat, &o->g->format_opts);
...

而在avformat_open_input中:

int avformat_open_input(AVFormatContext **ps, const char *filename,
                        AVInputFormat *fmt, AVDictionary **options)
{
    AVFormatContext *s = *ps;
    int i, ret = 0;

...
    if (!s && !(s = avformat_alloc_context()))
        return AVERROR(ENOMEM);
...
    if (fmt)
        s->iformat = fmt;
...
}
InputFile   **input_files   = NULL;
int        nb_input_files   = 0;

...
static int open_input_file(OptionsContext *o, const char *filename)
{
    InputFile *f;
    AVFormatContext *ic;
    AVInputFormat *file_iformat = NULL;

...

    input_files[nb_input_files - 1] = f;

    f->ctx        = ic;
    f->ist_index  = nb_input_streams - ic->nb_streams;
    f->start_time = o->start_time;
...
}
open_output_file
OutputFile   **output_files   = NULL;
int         nb_output_files   = 0;
...
static int open_output_file(OptionsContext *o, const char *filename)
{
    AVFormatContext *oc;
    int i, j, err;
    OutputFile *of;
...

    GROW_ARRAY(output_files, nb_output_files);
    of = av_mallocz(sizeof(*of));
    if (!of)
        exit_program(1);
    output_files[nb_output_files - 1] = of;
...
    err = avformat_alloc_output_context2(&oc, NULL, o->format, filename);
    if (!oc) {
        print_error(filename, err);
        exit_program(1);
    }

    of->ctx = oc;
...
}
...

References:

https://blog.csdn.net/leixiaohua1020/article/details/14214705

相关文章

网友评论

      本文标题:ffmpeg # 转码过程中几个主要结构体的关系

      本文链接:https://www.haomeiwen.com/subject/vowpbqtx.html