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;

Reply via email to