我正在尝试使用libavcodec解码帧。我的应用程序使用live555从rtsp流检索rtp数据包。我已经搜索了相当多的avcodec_decode_video设置got_picture_ptr为0的原因,但没能找到它。
谁能告诉我avcodec_decode_video2是如何在内部工作的?什么原因可能导致got_picture_ptr指针被设置为零?PS:该函数确实读取字节,即返回值始终是正数,而不是-1。我被难住了,任何帮助都会很感激。我没有引用任何代码,因为使用avcodec_decode_video2解码的代码是相当通用的,在我的代码中没有什么特别的。(我已经解码了rtsp流早先使用libavcodec,只是不与live555一起)
好了,我终于解决了。问题是我处理live555中的MediaSink对象的方式。我应该调用我从MediaSink派生的Sink类的afterGettingFrame函数,因为我没有这样做,尽管我正在获取数据,但我没有"读取"数据并将其输入avcodec_decode_video2方法。