avcodec_decode_video2 всегда устанавливает для got_picture_ptr значение 0 при использовании с live555.

Я пытаюсь декодировать кадры с помощью libavcodec. Мои приложения извлекают пакеты rtp из потока rtsp, используя live555. Я довольно много искал причины, по которым avcodec_decode_video устанавливает для got_picture_ptr значение 0, но не смог его найти.
Может ли кто-нибудь сказать мне, как avcodec_decode_video2 работает внутри? Какие причины могут привести к тому, что указатель got_picture_ptr будет установлен в ноль? PS: функция считывает байты, т.е. возвращаемое значение всегда является положительным числом, а не -1. Я в тупике здесь, любая помощь будет оценена. Я не цитировал какой-либо код, поскольку код для декодирования с использованием avcodec_decode_video2 довольно общий, и в моем коде нет ничего особенного (ранее я декодировал потоки rtsp с помощью libavcodec, но не вместе с live555)


person Richard Macwan    schedule 03.01.2013    source источник


Ответы (1)


Ну наконец-то я смог ее решить. Проблема заключалась в том, как я обрабатывал объект MediaSink из live555. Я должен был вызвать функцию afterGettingFrame класса Sink, которую я получил от MediaSink, чего я не делал, из-за чего, хотя я получал данные, я не «читал» данные и не передавал их в метод avcodec_decode_video2.

person Richard Macwan    schedule 14.01.2013