[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [43816] trunk/lib/win64/ffmpeg: Windows 64 : FFmpeg library upgrade to version 0.10

Sergey Sharybin sergey.vfx at gmail.com
Wed Feb 1 08:28:50 CET 2012


Revision: 43816
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43816
Author:   nazgul
Date:     2012-02-01 07:28:36 +0000 (Wed, 01 Feb 2012)
Log Message:
-----------
Windows 64: FFmpeg library upgrade to version 0.10
Disabled SSE and SSSE3 optimizations because of alignment issues.
This was the only way to resolve crashes when playing some MTS videos in sequencer.

Modified Paths:
--------------
    trunk/lib/win64/ffmpeg/Readme.txt
    trunk/lib/win64/ffmpeg/include/libavcodec/avcodec.h
    trunk/lib/win64/ffmpeg/include/libavcodec/vda.h
    trunk/lib/win64/ffmpeg/include/libavcodec/version.h
    trunk/lib/win64/ffmpeg/include/libavdevice/avdevice.h
    trunk/lib/win64/ffmpeg/include/libavformat/avformat.h
    trunk/lib/win64/ffmpeg/include/libavformat/avio.h
    trunk/lib/win64/ffmpeg/include/libavformat/version.h
    trunk/lib/win64/ffmpeg/include/libavutil/avstring.h
    trunk/lib/win64/ffmpeg/include/libavutil/avutil.h
    trunk/lib/win64/ffmpeg/include/libavutil/bswap.h
    trunk/lib/win64/ffmpeg/include/libavutil/common.h
    trunk/lib/win64/ffmpeg/include/libavutil/error.h
    trunk/lib/win64/ffmpeg/include/libavutil/eval.h
    trunk/lib/win64/ffmpeg/include/libavutil/intfloat_readwrite.h
    trunk/lib/win64/ffmpeg/include/libavutil/lzo.h
    trunk/lib/win64/ffmpeg/include/libavutil/mem.h
    trunk/lib/win64/ffmpeg/include/libavutil/parseutils.h
    trunk/lib/win64/ffmpeg/include/libswscale/swscale.h
    trunk/lib/win64/ffmpeg/lib/avcodec-53.dll
    trunk/lib/win64/ffmpeg/lib/avcodec-53.lib
    trunk/lib/win64/ffmpeg/lib/avdevice-53.dll
    trunk/lib/win64/ffmpeg/lib/avdevice-53.lib
    trunk/lib/win64/ffmpeg/lib/avformat-53.dll
    trunk/lib/win64/ffmpeg/lib/avformat-53.lib
    trunk/lib/win64/ffmpeg/lib/avutil-51.dll
    trunk/lib/win64/ffmpeg/lib/avutil-51.lib
    trunk/lib/win64/ffmpeg/lib/swscale-2.dll
    trunk/lib/win64/ffmpeg/lib/swscale-2.lib

Modified: trunk/lib/win64/ffmpeg/Readme.txt
===================================================================
--- trunk/lib/win64/ffmpeg/Readme.txt	2012-02-01 06:26:48 UTC (rev 43815)
+++ trunk/lib/win64/ffmpeg/Readme.txt	2012-02-01 07:28:36 UTC (rev 43816)
@@ -1,4 +1,4 @@
-This directory contains ffmpeg library v0.9 from http://www.ffmpeg.org/releases/ (December 26th, 2011)
+This directory contains ffmpeg library v0.10 from http://www.ffmpeg.org/releases/ (January 31th, 2012)
 Compiled by Sergey Sharybin in msys environment
 
 Quick notes
@@ -35,7 +35,7 @@
 LIBS="/home/sergey/lib"
 
 ./configure \
-    --prefix=/home/sergey/lib/ffmpeg-0.8.7 \
+    --prefix=/home/sergey/lib/ffmpeg-0.10 \
     --enable-shared \
     --disable-static \
     --disable-avfilter \
@@ -68,7 +68,10 @@
     --disable-debug \
     --enable-optimizations \
     --enable-ffplay \
+    --disable-sse \
+    --disable-ssse3 \
     --enable-w32threads \
+    --disable-pthreads \
     --extra-cflags="-g -Wall -Wextra -I${LIBS}/lame/include -I${LIBS}/openjpeg/include -I${LIBS}/ogg/include -I${LIBS}/vorbis/include -I${LIBS}/theora/include -I${LIBS}/vpx/include -I${LIBS}/x264/include -I${LIBS}/xvid/include -I${LIBS}/dirac/include/dirac -I${LIBS}/schroedinger/include/schroedinger-1.0 -I${LIBS}/zlib/include" \
     --extra-ldflags="-Wl,--as-needed -static-libgcc -L${LIBS}/lame/lib -L${LIBS}/openjpeg/lib -L${LIBS}/ogg/lib -L${LIBS}/vorbis/lib -L${LIBS}/theora/lib -L${LIBS}/vpx/lib -L${LIBS}/x264/lib -L${LIBS}/xvid/lib -L${LIBS}/dirac/lib -L${LIBS}/schroedinger/lib -L${LIBS}/orc/lib -L${LIBS}/zlib/lib"
 

Modified: trunk/lib/win64/ffmpeg/include/libavcodec/avcodec.h
===================================================================
--- trunk/lib/win64/ffmpeg/include/libavcodec/avcodec.h	2012-02-01 06:26:48 UTC (rev 43815)
+++ trunk/lib/win64/ffmpeg/include/libavcodec/avcodec.h	2012-02-01 07:28:36 UTC (rev 43816)
@@ -254,10 +254,16 @@
     CODEC_ID_BMV_VIDEO,
     CODEC_ID_VBLE,
     CODEC_ID_DXTORY,
+    CODEC_ID_V410,
+    CODEC_ID_XWD,
+    CODEC_ID_Y41P       = MKBETAG('Y','4','1','P'),
     CODEC_ID_UTVIDEO = 0x800,
     CODEC_ID_ESCAPE130  = MKBETAG('E','1','3','0'),
+    CODEC_ID_AVRP       = MKBETAG('A','V','R','P'),
 
     CODEC_ID_G2M        = MKBETAG( 0 ,'G','2','M'),
+    CODEC_ID_V308       = MKBETAG('V','3','0','8'),
+    CODEC_ID_YUV4       = MKBETAG('Y','U','V','4'),
 
     /* various PCM "codecs" */
     CODEC_ID_FIRST_AUDIO = 0x10000,     ///< A dummy id pointing at the start of audio codecs
@@ -320,6 +326,7 @@
     CODEC_ID_ADPCM_EA_MAXIS_XA,
     CODEC_ID_ADPCM_IMA_ISS,
     CODEC_ID_ADPCM_G722,
+    CODEC_ID_ADPCM_IMA_APC,
 
     /* AMR */
     CODEC_ID_AMR_NB = 0x12000,
@@ -402,6 +409,7 @@
     CODEC_ID_BMV_AUDIO,
     CODEC_ID_G729 = 0x15800,
     CODEC_ID_G723_1= 0x15801,
+    CODEC_ID_FFWAVESYNTH = MKBETAG('F','F','W','S'),
     CODEC_ID_8SVX_RAW   = MKBETAG('8','S','V','X'),
 
     /* subtitle codecs */
@@ -739,10 +747,27 @@
 /* Codec can export data for HW decoding (XvMC). */
 #define CODEC_CAP_HWACCEL         0x0010
 /**
- * Codec has a nonzero delay and needs to be fed with avpkt->data=NULL,
+ * Encoder or decoder requires flushing with NULL input at the end in order to
+ * give the complete and correct output.
+ *
+ * NOTE: If this flag is not set, the codec is guaranteed to never be fed with
+ *       with NULL data. The user can still send NULL data to the public encode
+ *       or decode function, but libavcodec will not pass it along to the codec
+ *       unless this flag is set.
+ *
+ * Decoders:
+ * The decoder has a non-zero delay and needs to be fed with avpkt->data=NULL,
  * avpkt->size=0 at the end to get the delayed data until the decoder no longer
- * returns frames. If this is not set, the codec is guaranteed to never be fed
- * with NULL data.
+ * returns frames.
+ *
+ * Encoders:
+ * The encoder needs to be fed with NULL data at the end of encoding until the
+ * encoder no longer returns data.
+ *
+ * NOTE: For encoders implementing the AVCodec.encode2() function, setting this
+ *       flag also means that the encoder must set the pts and duration for
+ *       each output packet. If this flag is not set, the pts and duration will
+ *       be determined by libavcodec from the input frame.
  */
 #define CODEC_CAP_DELAY           0x0020
 /**
@@ -790,6 +815,18 @@
  */
 #define CODEC_CAP_SLICE_THREADS    0x2000
 /**
+ * Codec supports changed parameters at any point.
+ */
+#define CODEC_CAP_PARAM_CHANGE     0x4000
+/**
+ * Codec supports avctx->thread_count == 0 (auto).
+ */
+#define CODEC_CAP_AUTO_THREADS     0x8000
+/**
+ * Audio encoder supports receiving a different number of samples in each call.
+ */
+#define CODEC_CAP_VARIABLE_FRAME_SIZE 0x10000
+/**
  * Codec is lossless.
  */
 #define CODEC_CAP_LOSSLESS         0x80000000
@@ -875,6 +912,8 @@
 
 enum AVPacketSideDataType {
     AV_PKT_DATA_PALETTE,
+    AV_PKT_DATA_NEW_EXTRADATA,
+    AV_PKT_DATA_PARAM_CHANGE,
 };
 
 typedef struct AVPacket {
@@ -944,6 +983,27 @@
 #define AV_PKT_FLAG_CORRUPT 0x0002 ///< The packet content is corrupted
 
 /**
+ * An AV_PKT_DATA_PARAM_CHANGE side data packet is laid out as follows:
+ * u32le param_flags
+ * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT)
+ *     s32le channel_count
+ * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT)
+ *     u64le channel_layout
+ * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE)
+ *     s32le sample_rate
+ * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS)
+ *     s32le width
+ *     s32le height
+ */
+
+enum AVSideDataParamChangeFlags {
+    AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT  = 0x0001,
+    AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT = 0x0002,
+    AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE    = 0x0004,
+    AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS     = 0x0008,
+};
+
+/**
  * Audio Video Frame.
  * New fields can be added to the end of AVFRAME with minor version
  * bumps. Similarly fields that are marked as to be only accessed by
@@ -1027,13 +1087,12 @@
      */
     int quality;
 
+#if FF_API_AVFRAME_AGE
     /**
-     * buffer age (1->was last buffer and dint change, 2->..., ...).
-     * Set to INT_MAX if the buffer has not been used yet.
-     * - encoding: unused
-     * - decoding: MUST be set by get_buffer() for video.
+     * @deprecated unused
      */
-    int age;
+    attribute_deprecated int age;
+#endif
 
     /**
      * is this picture used as reference
@@ -1257,56 +1316,59 @@
     uint8_t **extended_data;
 
     /**
-     * frame timestamp estimated using various heuristics, in stream time base
-     * Code outside libavcodec should access this field using:
-     *  av_opt_ptr(avcodec_get_frame_class(), frame, "best_effort_timestamp");
+     * sample aspect ratio for the video frame, 0/1 if unknown\unspecified
      * - encoding: unused
-     * - decoding: set by libavcodec, read by user.
+     * - decoding: Read by user.
      */
-    int64_t best_effort_timestamp;
+    AVRational sample_aspect_ratio;
 
     /**
-     * reordered pos from the last AVPacket that has been input into the decoder
-     * Code outside libavcodec should access this field using:
-     *  av_opt_ptr(avcodec_get_frame_class(), frame, "pkt_pos");
+     * width and height of the video frame
      * - encoding: unused
      * - decoding: Read by user.
      */
-    int64_t pkt_pos;
+    int width, height;
 
     /**
-     * reordered sample aspect ratio for the video frame, 0/1 if unknown\unspecified
-     * Code outside libavcodec should access this field using:
-     *  av_opt_ptr(avcodec_get_frame_class(), frame, "sample_aspect_ratio");
+     * format of the frame, -1 if unknown or unset
+     * Values correspond to enum PixelFormat for video frames,
+     * enum AVSampleFormat for audio)
      * - encoding: unused
      * - decoding: Read by user.
      */
-    AVRational sample_aspect_ratio;
+    int format;
 
     /**
-     * width and height of the video frame
+     * frame timestamp estimated using various heuristics, in stream time base
      * Code outside libavcodec should access this field using:
-     *  av_opt_ptr(avcodec_get_frame_class(), frame, "width");
+     *  av_opt_ptr(avcodec_get_frame_class(), frame, "best_effort_timestamp");
      * - encoding: unused
-     * - decoding: Read by user.
+     * - decoding: set by libavcodec, read by user.
      */
-    int width, height;
+    int64_t best_effort_timestamp;
 
     /**
-     * format of the frame, -1 if unknown or unset
-     * It should be cast to the corresponding enum (enum PixelFormat
-     * for video, enum AVSampleFormat for audio)
+     * reordered pos from the last AVPacket that has been input into the decoder
      * Code outside libavcodec should access this field using:
-     *  av_opt_ptr(avcodec_get_frame_class(), frame, "format");
+     *  av_opt_ptr(avcodec_get_frame_class(), frame, "pkt_pos");
      * - encoding: unused
      * - decoding: Read by user.
      */
-    int format;
+    int64_t pkt_pos;
 
 } AVFrame;
 
 struct AVCodecInternal;
 
+enum AVFieldOrder {
+    AV_FIELD_UNKNOWN,
+    AV_FIELD_PROGRESSIVE,
+    AV_FIELD_TT,          //< Top coded_first, top displayed first
+    AV_FIELD_BB,          //< Bottom coded first, bottom displayed first
+    AV_FIELD_TB,          //< Top coded first, bottom displayed first
+    AV_FIELD_BT,          //< Bottom coded first, top displayed first
+};
+
 /**
  * main external API structure.
  * New fields can be added to the end with minor version bumps.
@@ -1348,7 +1410,7 @@
      * Some codecs need additional format info. It is stored here.
      * If any muxer uses this then ALL demuxers/parsers AND encoders for the
      * specific codec MUST set it correctly otherwise stream copy breaks.
-     * In general use of this field by muxers is not recommanded.
+     * In general use of this field by muxers is not recommended.
      * - encoding: Set by libavcodec.
      * - decoding: Set by libavcodec. (FIXME: Is this OK?)
      */
@@ -2667,7 +2729,7 @@
 
 #if FF_API_X264_GLOBAL_OPTS
     /**
-     * Influences how often B-frames are used.
+     * Influence how often B-frames are used.
      * - encoding: Set by user.
      * - decoding: unused
      */
@@ -2748,7 +2810,7 @@
     int mv0_threshold;
 
     /**
-     * Adjusts sensitivity of b_frame_strategy 1.
+     * Adjust sensitivity of b_frame_strategy 1.
      * - encoding: Set by user.
      * - decoding: unused
      */
@@ -3032,7 +3094,7 @@
 
 #if FF_API_FLAC_GLOBAL_OPTS
     /**

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list