0

我正在尝试使用 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)

4

1 回答 1

0

好吧,我终于能够解决它。问题是我从 live555 处理 MediaSink 对象的方式。我应该调用从 MediaSink 派生的 Sink 类的 afterGettingFrame 函数,我没有这样做,因为虽然我正在获取数据,但我没有“读取”数据并将其输入 avcodec_decode_video2 方法。

于 2013-01-14T11:05:42.807 回答