LINUX.ORG.RU

FFmpeg libav av_find_input_format + avformat_find_stream_info

 ,


0

1

Приветствую

Вдруг кто знает

1. Так и должно быть, что avformat_open_input обнуляет параметр AVDictionary ? Если да, то как правильно тогда проинициализировать?

const AVInputFormat * pInpFmt = av_find_input_format("v4l2");
AVDictionary * pInpDic = NULL
av_dict_set(&pInpDic, "pixel_format", format, 0);
av_dict_set(&pInpDic, "video_size", size, 0);
av_dict_set(&pInpDic, "framerate", rate, 0);
avformat_open_input(&pInpFmtCtx, device, pInpFmt, &pInpDic)

2. Четко после вызова avformat_find_stream_info если попытаться сразу освободить ресурсы, то вываливается ошибка

avformat_find_stream_info(pInpFmtCtx, NULL);

if (pInpDic) av_dict_free(&pInpDic);
ЗДЕСЬ ---» if (pInpFmtCtx) avformat_close_input(&pInpFmtCtx);


video4linux2,v4l2 @ 0x14dcf10] Some buffers are still owned by the caller on close.
ioctl(VIDIOC_QBUF): Bad file descriptor
★★★

Последнее исправление: wolverin (всего исправлений: 2)

Ответ на: комментарий от hizel
  1. А можете ссылкой поделиться, где написано что так и должно обнуляться? Что то на официальном сайте ничего про это не нашел, да и зачем вообще это делать

  2. Нет, но спросил в ихнем почтовом форуме, что то интциализируется там ещё внутри, а как это освободить не ясно

wolverin ★★★
() автор топика
Ответ на: комментарий от wolverin

хотя нет, мей би нулл, написано что передать нулл можно, а сам то он не обозначено что обнуляться должен

On return this parameter will be destroyed and replaced with a dict containing options that were not found.

или типа все опции были найдены!?

wolverin ★★★
() автор топика
Последнее исправление: wolverin (всего исправлений: 1)
Ответ на: комментарий от hizel

оке, пусть будет копирование av_dict_copy

по второму вопрос самое забавное если после avformat_find_stream_info делать av_read_frame и затем av_packet_unref, то память не утекает… думаете все же в багтрек писать им!?

wolverin ★★★
() автор топика