Что делает avformat open input ()?
Я этой код для работы с библиотекой ffmpeg в C . библиотека ffmpeg имеет очень мало документации, и трудно понять, что именно делает каждая функция .
Я понимаю код (что делается). Но мне не хватает ясности . Кто-нибудь может мне помочь ?
Q1) A struct AVFrameContext ** * * * и * * имя файла (минимальные ненулевые параметры, необходимые) передаются функции avformat_open_input (). Как имя предполагает, что входной файл "открыт". Как ?
2 ответов
основные вещи, которые делается в file_open являются
- выделить память для AVFormatContext.
- прочитайте probe_size о данных из файла (входной url)
- пытается угадать формат входного файла, параметр кодека для входного файла. Это делается путем вызова указателя функции read_probe для каждого из demuxer
- выделить контекст кодек, извлечен контекст, а контекст.
Вы можете посмотреть его в ffmpeg это libavformat\utils.c
что на самом деле происходит здесь:
int avformat_open_input(AVFormatContext **ps, const char *filename, AVInputFormat *fmt, AVDictionary **options)
{
AVFormatContext *s = *ps;
int ret = 0;
AVDictionary *tmp = NULL;
ID3v2ExtraMeta *id3v2_extra_meta = NULL;
if (!s && !(s = avformat_alloc_context()))
return AVERROR(ENOMEM);
// on and on