packages: ffmpeg/ffmpeg.spec, ffmpeg/ffmpeg-0.6_libvpx-0.9.1.diff (NEW) - r...

arekm arekm at pld-linux.org
Wed Sep 15 19:52:12 CEST 2010


Author: arekm                        Date: Wed Sep 15 17:52:12 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- rel 5; add libvpx update

---- Files affected:
packages/ffmpeg:
   ffmpeg.spec (1.202 -> 1.203) , ffmpeg-0.6_libvpx-0.9.1.diff (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/ffmpeg/ffmpeg.spec
diff -u packages/ffmpeg/ffmpeg.spec:1.202 packages/ffmpeg/ffmpeg.spec:1.203
--- packages/ffmpeg/ffmpeg.spec:1.202	Fri Sep 10 08:59:46 2010
+++ packages/ffmpeg/ffmpeg.spec	Wed Sep 15 19:52:06 2010
@@ -11,7 +11,7 @@
 Summary(pl.UTF-8):	Koder audio/wideo czasu rzeczywistego oraz serwer strumieni
 Name:		ffmpeg
 Version:	0.6
-Release:	4
+Release:	5
 # LGPL or GPL, chosen at configure time (GPL version is more featured)
 # (postprocessing, ac3, xvid, x264, faad)
 License:	GPL v3+ with LGPL v3+ parts
@@ -26,6 +26,8 @@
 Patch2:		faadbin-libfaadname.patch
 # vhook is gone. this patch needs different approach
 #PatchX: imagewidth.patch
+# http://webm.googlecode.com/files/ffmpeg-0.6_libvpx-0.9.1.diff.gz
+Patch3:		ffmpeg-0.6_libvpx-0.9.1.diff
 URL:		http://www.ffmpeg.org/
 BuildRequires:	SDL-devel
 BuildRequires:	dirac-devel >= 1.0.0
@@ -193,6 +195,7 @@
 %patch0 -p1
 %patch1 -p0
 %patch2 -p1
+%patch3 -p0
 
 # package the grep result for mplayer, the result formatted as ./mplayer/configure
 cat <<EOF > ffmpeg-avconfig
@@ -433,6 +436,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.203  2010/09/15 17:52:06  arekm
+- rel 5; add libvpx update
+
 Revision 1.202  2010/09/10 06:59:46  glen
 - link with faad at compile time; rel 4
 

================================================================
Index: packages/ffmpeg/ffmpeg-0.6_libvpx-0.9.1.diff
diff -u /dev/null packages/ffmpeg/ffmpeg-0.6_libvpx-0.9.1.diff:1.1
--- /dev/null	Wed Sep 15 19:52:12 2010
+++ packages/ffmpeg/ffmpeg-0.6_libvpx-0.9.1.diff	Wed Sep 15 19:52:06 2010
@@ -0,0 +1,232 @@
+diff --git ffpresets/libvpx-1080p.ffpreset ffpresets/libvpx-1080p.ffpreset
+new file mode 100644
+index 0000000..71d7a73
+--- /dev/null
++++ ffpresets/libvpx-1080p.ffpreset
+@@ -0,0 +1,13 @@
++vcodec=libvpx
++g=120
++rc_lookahead=16
++level=216
++profile=1
++qmax=42
++qmin=10
++token_partitions=4
++vb=2M
++
++#ignored unless using -pass 2
++maxrate=24M
++minrate=100k
+diff --git ffpresets/libvpx-1080p50_60.ffpreset ffpresets/libvpx-1080p50_60.ffpreset
+new file mode 100644
+index 0000000..1b447ca
+--- /dev/null
++++ ffpresets/libvpx-1080p50_60.ffpreset
+@@ -0,0 +1,13 @@
++vcodec=libvpx
++g=120
++rc_lookahead=25
++level=216
++profile=1
++qmax=42
++qmin=10
++token_partitions=4
++vb=2M
++
++#ignored unless using -pass 2
++maxrate=24M
++minrate=100k
+diff --git ffpresets/libvpx-360p.ffpreset ffpresets/libvpx-360p.ffpreset
+new file mode 100644
+index 0000000..dea0468
+--- /dev/null
++++ ffpresets/libvpx-360p.ffpreset
+@@ -0,0 +1,12 @@
++vcodec=libvpx
++g=120
++rc_lookahead=16
++level=216
++profile=0
++qmax=51
++qmin=1
++vb=768k
++
++#ignored unless using -pass 2
++maxrate=1.5M
++minrate=40k
+diff --git ffpresets/libvpx-720p.ffpreset ffpresets/libvpx-720p.ffpreset
+new file mode 100644
+index 0000000..adc9c3a
+--- /dev/null
++++ ffpresets/libvpx-720p.ffpreset
+@@ -0,0 +1,13 @@
++vcodec=libvpx
++g=120
++rc_lookahead=16
++level=216
++profile=0
++qmax=42
++qmin=10
++token_partitions=4
++vb=2M
++
++#ignored unless using -pass 2
++maxrate=24M
++minrate=100k
+diff --git ffpresets/libvpx-720p50_60.ffpreset ffpresets/libvpx-720p50_60.ffpreset
+new file mode 100644
+index 0000000..e9b361e
+--- /dev/null
++++ ffpresets/libvpx-720p50_60.ffpreset
+@@ -0,0 +1,13 @@
++vcodec=libvpx
++g=120
++rc_lookahead=25
++level=216
++profile=0
++qmax=42
++qmin=10
++token_partitions=4
++vb=2M
++
++#ignored unless using -pass 2
++maxrate=24M
++minrate=100k
+diff --git libavcodec/avcodec.h libavcodec/avcodec.h
+index 974e87c..3afd41b 100644
+--- libavcodec/avcodec.h
++++ libavcodec/avcodec.h
+@@ -30,7 +30,7 @@
+ #include "libavutil/avutil.h"
+ 
+ #define LIBAVCODEC_VERSION_MAJOR 52
+-#define LIBAVCODEC_VERSION_MINOR 72
++#define LIBAVCODEC_VERSION_MINOR 73
+ #define LIBAVCODEC_VERSION_MICRO  2
+ 
+ #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
+@@ -598,6 +598,7 @@ typedef struct RcOverride{
+ #define CODEC_FLAG2_MBTREE        0x00040000 ///< Use macroblock tree ratecontrol (x264 only)
+ #define CODEC_FLAG2_PSY           0x00080000 ///< Use psycho visual optimizations.
+ #define CODEC_FLAG2_SSIM          0x00100000 ///< Compute SSIM during encoding, error[] values are undefined.
++#define CODEC_FLAG2_ALT_REF       0x00400000 ///< Allow encoder to insert alternate reference frames (VP8 only)
+ 
+ /* Unsupported options :
+  *              Syntax Arithmetic coding (SAC)
+@@ -2652,6 +2653,18 @@ typedef struct AVCodecContext {
+      * - decoding: unused
+      */
+     int rc_lookahead;
++
++    /**
++     * Number of token partitions.
++     * Indicates number of sub-streams in the bitstream. Used for parallelized
++     * decoding.
++     * Valid values are 1, 2, 4 & 8
++     * - encoding: Set by user.
++     * - decoding: unused
++     *
++     *  \attention VP8 specific
++     */
++    int token_partitions;
+ } AVCodecContext;
+ 
+ /**
+diff --git libavcodec/libvpxenc.c libavcodec/libvpxenc.c
+index fa393b8..3801800 100644
+--- libavcodec/libvpxenc.c
++++ libavcodec/libvpxenc.c
+@@ -36,13 +36,13 @@
+  * One encoded frame returned from the library.
+  */
+ struct FrameListData {
+-    void *buf;                       /**≤ compressed data buffer */
+-    size_t sz;                       /**≤ length of compressed data */
+-    int64_t pts;                     /**≤ time stamp to show frame
++    void *buf;                       /**< compressed data buffer */
++    size_t sz;                       /**< length of compressed data */
++    int64_t pts;                     /**< time stamp to show frame
+                                           (in timebase units) */
+-    unsigned long duration;          /**≤ duration to show frame
++    unsigned long duration;          /**< duration to show frame
+                                           (in timebase units) */
+-    uint32_t flags;                  /**≤ flags for this frame */
++    uint32_t flags;                  /**< flags for this frame */
+     struct FrameListData *next;
+ };
+ 
+@@ -218,11 +218,21 @@ static av_cold int vp8_init(AVCodecContext *avctx)
+     }
+     dump_enc_cfg(avctx, &enccfg);
+ 
++    /* With altref set an additional frame at the same pts may be produced.
++       Increasing the time_base gives the library a window to place these frames
++       ensuring strictly increasing timestamps. */
++    if (avctx->flags2 & CODEC_FLAG2_ALT_REF) {
++        avctx->ticks_per_frame = 2;
++        avctx->time_base       = av_mul_q(avctx->time_base,
++                                          (AVRational){1, avctx->ticks_per_frame});
++    }
++
+     enccfg.g_w            = avctx->width;
+     enccfg.g_h            = avctx->height;
+     enccfg.g_timebase.num = avctx->time_base.num;
+     enccfg.g_timebase.den = avctx->time_base.den;
+     enccfg.g_threads      = avctx->thread_count;
++    enccfg.g_lag_in_frames= FFMIN(avctx->rc_lookahead, 25);  //0-25, avoids init failure
+ 
+     if (avctx->flags & CODEC_FLAG_PASS1)
+         enccfg.g_pass = VPX_RC_FIRST_PASS;
+@@ -277,7 +287,29 @@ static av_cold int vp8_init(AVCodecContext *avctx)
+         enccfg.rc_twopass_stats_in = ctx->twopass_stats;
+     }
+ 
+-    ctx->deadline = VPX_DL_GOOD_QUALITY;
++    /* 0-3: For non-zero values the encoder increasingly optimizes for reduced
++       complexity playback on low powered devices at the expense of encode
++       quality. */
++    if (avctx->profile != FF_PROFILE_UNKNOWN)
++        enccfg.g_profile = avctx->profile;
++    switch (FFABS(avctx->level) / 100) {
++    case 1:
++        ctx->deadline = VPX_DL_BEST_QUALITY;
++        break;
++    case 2:
++    default:
++        ctx->deadline = VPX_DL_GOOD_QUALITY;
++        break;
++    case 3:
++        ctx->deadline = VPX_DL_REALTIME;
++        break;
++    }
++    av_log(avctx, AV_LOG_DEBUG, "Using deadline: %lu\n", ctx->deadline);
++
++    if (avctx->level != FF_LEVEL_UNKNOWN) {
++        enccfg.g_error_resilient = avctx->level < 0;
++        cpuused                  = FFABS(avctx->level) % 100 - 16; //[-16,16]
++    }
+ 
+     dump_enc_cfg(avctx, &enccfg);
+     /* Construct Encoder Context */
+@@ -291,6 +323,8 @@ static av_cold int vp8_init(AVCodecContext *avctx)
+     av_log(avctx, AV_LOG_DEBUG, "vpx_codec_control\n");
+     codecctl_int(avctx, VP8E_SET_CPUUSED,           cpuused);
+     codecctl_int(avctx, VP8E_SET_NOISE_SENSITIVITY, avctx->noise_reduction);
++    codecctl_int(avctx, VP8E_SET_ENABLEAUTOALTREF,  !!(avctx->flags2 & CODEC_FLAG2_ALT_REF));
++    codecctl_int(avctx, VP8E_SET_TOKEN_PARTITIONS,  av_log2(avctx->token_partitions));
+ 
+     //provide dummy value to initialize wrapper, values will be updated each _encode()
+     vpx_img_wrap(&ctx->rawimg, VPX_IMG_FMT_I420, avctx->width, avctx->height, 1,
+diff --git libavcodec/options.c libavcodec/options.c
+index 6835352..d619dcf 100644
+--- libavcodec/options.c
++++ libavcodec/options.c
+@@ -411,6 +411,8 @@ static const AVOption options[]={
+ {"aq_strength", "specify aq strength", OFFSET(aq_strength), FF_OPT_TYPE_FLOAT, 1.0, 0, FLT_MAX, V|E},
+ {"rc_lookahead", "specify number of frames to look ahead for frametype", OFFSET(rc_lookahead), FF_OPT_TYPE_INT, 40, 0, INT_MAX, V|E},
+ {"ssim", "ssim will be calculated during encoding", 0, FF_OPT_TYPE_CONST, CODEC_FLAG2_SSIM, INT_MIN, INT_MAX, V|E, "flags2"},
++{"altref", "enable use of alternate reference frames (VP8/2-pass only)", 0, FF_OPT_TYPE_CONST, CODEC_FLAG2_ALT_REF, INT_MIN, INT_MAX, V|E, "flags2"},
++{"token_partitions", "Number of sub-streams in bitstream (1,2,4,8). Used for parallelized decoding.", OFFSET(token_partitions), FF_OPT_TYPE_INT, 1, 1, INT_MAX, V|E},
+ {NULL},
+ };
+ 
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/ffmpeg/ffmpeg.spec?r1=1.202&r2=1.203&f=u



More information about the pld-cvs-commit mailing list