Чтение файла, расположенного в памяти, с помощью libavformat

В настоящее время я пытаюсь прочитать небольшие видеофайлы, отправленные с сервера

Чтобы прочитать файл, используя libavformat, вы должны вызвать

av_open_input_file(&avFormatContext, "C:\\path\\to\\video.avi", 0, 0, 0);

проблема в том, что в данном случае файл находится не на диске, а в памяти.

Что я сейчас делаю, так это загружаю файл, записываю его на диск под временным именем, а затем вызываю av_open_input_fileс именем временного файла, что не очень чистое решение

На самом деле мне нужна функция типа av_open_custom(&avFormatContext, &myReadFunction, &mySeekFunction);но я не найти любой в документации. Я предполагаю, что это технически возможно, так как имя файла не является чем-то, что помогает библиотеке определить, какой формат она использует.

Есть ли подобная функция или альтернатива av_open_input_file?

27
задан Anshul 18 January 2014 в 13:24
поделиться