История изменений
Исправление Skullnet, (текущая версия) :
Ничего такого, по списку всякая шляпа с кодеками. Вот чего там не хватает - так это отложенного режима для аудио или видео (ну например MP3-радио). Чтобы можно было инициализировать контекст FFmpeg-а вне зависимости подключился ли клиент к потоку или нет. Это очень нужная фича, потому что без этого нельзя нормально писать приложения. Без контекста у тебя нет данных, которые нужно передать дальше в программе (тут не важно даже многопоточное приложение или нет), а пока контекст не инициализируется - не пойдёт дальше инициализация программы. Я был удивлён, что FFmpeg настолько архитектурно убог, хотя вроде считается мейнстримной библиотекой с кучей кодеков, но, как оказалось, что это не показатель.
P.S. Пытался придумывать всякие костыли, но всё равно пришёл к выводу, что инициализация должна быть не синхронной, а подключение к клиенту должно быть в avcodec_receive_frame который уже работает в отдельном потоке, а не при инициализации.
P.P.S. Даже спрашивал разработчиков на IRC. Ответили «нуууу у FFmpeg такая блокирующая архитектура». :P
Исправление Skullnet, :
Ничего такого, по списку всякая шляпа с кодеками. Вот чего там не хватает - так это отложенного режима для аудио или видео (ну например MP3-радио). Чтобы можно было инициализировать контекст FFmpeg-а вне зависимости подключился ли клиент к потоку или нет. Это очень нужная фича, потому что без этого нельзя нормально писать приложения. Без контекста у тебя нет данных, которые нужно передать дальше в программе (тут не важно даже многопоточное приложение или нет), а пока контекст не инициализируется - не пойдёт дальше инициализация программы. Я был удивлён, что FFmpeg настолько архитектурно убог, хотя вроде считается мейнстримной библиотекой с кучей кодеков, но, как оказалось, что это не показатель.
P.S. Пытался придумывать всякие костыли, но всё равно пришёл к выводу, что инициализация должна быть не синхронной, а подключение к клиенту должно быть в avcodec_receive_frame который уже работает в отдельном потоке, а не при инициализации.
Исходная версия Skullnet, :
Ничего такого, по списку всякая шляпа с кодеками. Вот чего там не хватает - так это отложенного режима для аудио или видео (ну например MP3-радио). Чтобы можно было инициализировать контекст FFmpeg-а вне зависимости подключился ли клиент к потоку или нет. Это очень нужная фича, потому что без этого нельзя нормально писать приложения. Без контекста у тебя нет данных, которые нужно передать дальше в программе (тут не важно даже многопоточное приложение или нет), а пока контекст не инициализируется - не пойдёт дальше инициализация программы. Я был удивлён, что FFmpeg настолько архитектурно убог, хотя вроде считается мейнстримной библиотекой с кучей кодеков, но, как оказалось, что это не показатель.