У меня есть код декодера. Я пытаюсь интегрировать его в ffmpeg framework
.
Я имею в виду КАК, данное здесь: http://wiki.multimedia.cx/index.php?title=FFmpeg_codec_howto
Согласно этой статье мне нужно определить структуру в моем файле decoder_name.c
.
Примерная структура показана ниже:
AVCodec sample_decoder =
{
.name = "sample",
.type = AVCODEC_TYPE_VIDEO,
.id = AVCODEC_ID_SAMPLE,
// .priv_data_size = sizeof(COOKContext),
.init = sample_decode_init,
.close = sample_decode_close,
.decode = sample_decode_frame,
};
Где,
.name -> specifies the short name of my decoder.
.type -> is used to specify that it is a video decoder.
.id -> is an unique id that i'm assigning to my video decoder.
.init -> is a function pointer to the function in my decoder code that performs decoder related initializations
.decode -> is a function pointer to the function in my decoder code that decodes a single frame, given the input data (elementary stream).
.close -> is a function pointer to the function in my decoder that frees all allocated memory i.e. the memory allocated in init.
Однако я сомневаюсь, что согласно вышеупомянутой статье есть еще одно поле с именем .priv_data_size
, которое содержит размер некоторого контекста.
Обязательно ли иметь это поле .priv_data_size
, потому что, согласно приведенной выше статье, мне не нужно определять все параметры структуры AVCodec
. Кроме того, у меня нет такого контекста для моего декодера.
Однако, когда я просматриваю код других доступных декодеров в libavcodec
ffmpeg, я обнаруживаю, что каждый декодер определил это. Будет ли мой декодер работать, если я не укажу это? Я не могу продолжить из-за этого. пожалуйста, предоставьте некоторые рекомендации по переоценке того же самого.
--Заранее спасибо.