我正在尝试使用libavcodec解码帧。我的应用程序使用live555从rtsp流上检索rtp数据包。由于avcodec_decode_video将got_picture_ptr设置为0但我无法找到它,因此我搜索了很多。
谁能告诉我avcodec_decode_video2如何在内部工作?可能导致got_picture_ptr指针设置为零的原因是什么?
PS:该函数读取字节,即返回值始终为正数,而不是-1。
我很难过,任何帮助都会受到赞赏。我没有引用任何代码,因为使用avcodec_decode_video2解码的代码是相当通用的,我的代码中没有什么特别的东西。(我之前使用libavcodec解码了rtsp流,而不是使用live555)
答案 0 :(得分:0)
好吧,我终于能够解决它了。问题是我从live555处理MediaSink对象的方式。我应该调用我从MediaSink派生的Sink类的afterGettingFrame函数,我没有这样做,因为虽然我得到了数据,但我没有“读取”数据并将其输入到avcodec_decode_video2方法中。