remove $Id: tags after discussion on the mailign list: http://markmail.org/message...
[blender.git] / intern / ffmpeg / ffmpeg_compat.h
index d8edffbfe0b9d646f7402b8de1701a3d7b19cf5a..dfdad22e17681aa0cd900715cbd48ec34a8a9ac8 100644 (file)
@@ -2,7 +2,6 @@
 #define __ffmpeg_compat_h_included__ 1
 
 /*
- * $Id$
  *
  * compatibility macros to make every ffmpeg installation appear
  * like the most current installation (wrapping some functionality sometimes)
 
 
 #include <libavformat/avformat.h>
+
+
+/* check our ffmpeg is new enough, avoids user complaints */
+#if (LIBAVFORMAT_VERSION_MAJOR < 52) || ((LIBAVFORMAT_VERSION_MAJOR == 52) && (LIBAVFORMAT_VERSION_MINOR <= 64))
+#  error "FFmpeg 0.7 or newer is needed, Upgrade your FFmpeg or disable it"
+#endif
+/* end sanity check */
+
+
 #include <libavcodec/avcodec.h>
 #include <libavutil/rational.h>
 
@@ -40,7 +48,7 @@
 #define FFMPEG_HAVE_AVIO 1
 #endif
 
-#if (LIBAVCODEC_VERSION_MAJOR > 53) || ((LIBAVCODEC_VERSION_MAJOR == 53) && (LIBAVCODEC_VERSION_MINOR > 1)) || ((LIBAVCODEC_VERSION_MAJOR == 53) && (LIBAVCODEC_VERSION_MINOR == 1) && (LIBAVCODEC_VERSION_MICRO >= 1)) || ((LIBAVCODEC_VERSION_MAJOR == 52) && (LIBAVCODEC_VERSION_MINOR >= 122))
+#if (LIBAVCODEC_VERSION_MAJOR > 53) || ((LIBAVCODEC_VERSION_MAJOR == 53) && (LIBAVCODEC_VERSION_MINOR > 1)) || ((LIBAVCODEC_VERSION_MAJOR == 53) && (LIBAVCODEC_VERSION_MINOR == 1) && (LIBAVCODEC_VERSION_MICRO >= 1)) || ((LIBAVCODEC_VERSION_MAJOR == 52) && (LIBAVCODEC_VERSION_MINOR >= 121))
 #define FFMPEG_HAVE_DEFAULT_VAL_UNION 1
 #endif
 
@@ -71,6 +79,7 @@
 #define avio_open url_fopen
 #define avio_tell url_ftell
 #define avio_close url_fclose
+#define avio_size url_fsize
 #endif
 
 /* there are some version inbetween, which have avio_... functions but no
@@ -130,4 +139,20 @@ int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
 }
 #endif
 
+static inline
+int64_t av_get_pts_from_frame(AVFormatContext *avctx, AVFrame * picture)
+{
+       int64_t pts = picture->pkt_pts;
+
+       if (pts == AV_NOPTS_VALUE) {
+               pts = picture->pkt_dts;
+       }
+       if (pts == AV_NOPTS_VALUE) {
+               pts = 0;
+       }
+
+       (void)avctx;
+       return pts;
+}
+
 #endif