The url_* functions were removed in libav 9 (having been deprecated in
0.8
http://libav.org/doxygen/release/0.8/avio_8h.html#af4bc39f7600ed162ad8f35e5e15bcd9d
), hence this bug. The attached should fix it, but has not been tested.
Is there a reason we're still using a pre-release when upstream 3.2 has
been released? (That wouldn't fix this particular bug, but might fix
others)
diff -up FFmpegDecoder.cpp FFmpegDecoder_fixed.cpp
--- FFmpegDecoder.cpp 2013-09-08 15:05:37.160056831 +0100
+++ FFmpegDecoder_fixed.cpp 2013-09-08 15:09:20.724050225 +0100
@@ -279,7 +279,7 @@ bool FFmpegDecoder::readNextPacketNormal
int error = av_read_frame(m_format_context.get(), &packet);
if (error < 0)
{
- if (error == AVERROR_EOF || url_feof(m_format_context.get()->pb))
+ if (error == AVERROR_EOF || (m_format_context.get()->pb->eof_reached))
end_of_stream = true;
else {
OSG_FATAL << "av_read_frame() returned " << AvStrError(error) << std::endl;