Overview

Request 1053 (accepted)

update internal ffmpeg to version 1.2.7

Submit package home:enzokiel:...hes:Multimedia / avidemux3 to package Multimedia / avidemux3

avidemux3.changes Changed
x
 
1
@@ -1,4 +1,8 @@
2
 -------------------------------------------------------------------
3
+Tue Jun 24 2014 - joerg.lorenzen@ki.tng.de
4
+- update internal ffmpeg to version 1.2.7
5
+
6
+-------------------------------------------------------------------
7
 Fri Mar 14 2014 - joerg.lorenzen@ki.tng.de
8
 - Update to version 2.6.8
9
   * Image/export: Proper initialization of Qz for jpeg export
10
avidemux3.spec Changed
10
 
1
@@ -16,7 +16,7 @@
2
 #
3
 
4
 
5
-%define         ffmpeg_version 1.2.6
6
+%define         ffmpeg_version 1.2.7
7
 
8
 Name:           avidemux3
9
 Summary:        Graphical video editing and transcoding tool
10
ffmpeg-1.2.6.tar.bz2/RELEASE -> ffmpeg-1.2.7.tar.bz2/RELEASE Changed
4
 
1
@@ -1,1 +1,1 @@
2
-1.2.6
3
+1.2.7
4
ffmpeg-1.2.6.tar.bz2/VERSION -> ffmpeg-1.2.7.tar.bz2/VERSION Changed
4
 
1
@@ -1,1 +1,1 @@
2
-1.2.6
3
+1.2.7
4
ffmpeg-1.2.6.tar.bz2/configure -> ffmpeg-1.2.7.tar.bz2/configure Changed
10
 
1
@@ -3915,7 +3915,7 @@
2
 enabled libiec61883 && require libiec61883 libiec61883/iec61883.h iec61883_cmp_connect -lraw1394 -lavc1394 -lrom1394 -liec61883
3
 enabled libaacplus && require  "libaacplus >= 2.0.0" aacplus.h aacplusEncOpen -laacplus
4
 enabled libass     && require_pkg_config libass ass/ass.h ass_library_init
5
-enabled libbluray  && require libbluray libbluray/bluray.h bd_open -lbluray
6
+enabled libbluray  && require_pkg_config libbluray libbluray/bluray.h bd_open
7
 enabled libcelt    && require libcelt celt/celt.h celt_decode -lcelt0 &&
8
                       { check_lib celt/celt.h celt_decoder_create_custom -lcelt0 ||
9
                         die "ERROR: libcelt must be installed and version must be >= 0.11.0."; }
10
ffmpeg-1.2.6.tar.bz2/doc/Doxyfile -> ffmpeg-1.2.7.tar.bz2/doc/Doxyfile Changed
10
 
1
@@ -31,7 +31,7 @@
2
 # This could be handy for archiving the generated documentation or
3
 # if some version control system is used.
4
 
5
-PROJECT_NUMBER         = 1.2.6
6
+PROJECT_NUMBER         = 1.2.7
7
 
8
 # With the PROJECT_LOGO tag one can specify an logo or icon that is included
9
 # in the documentation. The maximum height of the logo should not exceed 55
10
ffmpeg-1.2.6.tar.bz2/ffmpeg_filter.c -> ffmpeg-1.2.7.tar.bz2/ffmpeg_filter.c Changed
20
 
1
@@ -43,12 +43,15 @@
2
         const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(target);
3
         int has_alpha = desc ? desc->nb_components % 2 == 0 : 0;
4
         enum AVPixelFormat best= AV_PIX_FMT_NONE;
5
+        const enum AVPixelFormat mjpeg_formats[] = { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_NONE };
6
+        const enum AVPixelFormat ljpeg_formats[] = { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV420P,
7
+                                                     AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_BGRA, AV_PIX_FMT_NONE };
8
+
9
         if (st->codec->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL) {
10
             if (st->codec->codec_id == AV_CODEC_ID_MJPEG) {
11
-                p = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_NONE };
12
+                p = mjpeg_formats;
13
             } else if (st->codec->codec_id == AV_CODEC_ID_LJPEG) {
14
-                p = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV420P,
15
-                                                 AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_BGRA, AV_PIX_FMT_NONE };
16
+                p =ljpeg_formats;
17
             }
18
         }
19
         for (; *p != AV_PIX_FMT_NONE; p++) {
20
ffmpeg-1.2.6.tar.bz2/ffprobe.c -> ffmpeg-1.2.7.tar.bz2/ffprobe.c Changed
9
 
1
@@ -203,6 +203,7 @@
2
                 vald /= pow(10, index * 3);
3
                 prefix_string = decimal_unit_prefixes[index];
4
             }
5
+            vali = vald;
6
         }
7
 
8
         if (show_float || (use_value_prefix && vald != (long long int)vald))
9
ffmpeg-1.2.6.tar.bz2/libavcodec/aac.h -> ffmpeg-1.2.7.tar.bz2/libavcodec/aac.h Changed
10
 
1
@@ -81,7 +81,7 @@
2
     INTENSITY_BT   = 15,    ///< Scalefactor data are intensity stereo positions.
3
 };
4
 
5
-#define IS_CODEBOOK_UNSIGNED(x) ((x - 1) & 10)
6
+#define IS_CODEBOOK_UNSIGNED(x) (((x) - 1) & 10)
7
 
8
 enum ChannelPosition {
9
     AAC_CHANNEL_OFF   = 0,
10
ffmpeg-1.2.6.tar.bz2/libavcodec/adpcm.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/adpcm.c Changed
68
 
1
@@ -449,9 +449,11 @@
2
  * @param[out] coded_samples set to the number of samples as coded in the
3
  *                           packet, or 0 if the codec does not encode the
4
  *                           number of samples in each frame.
5
+ * @param[out] approx_nb_samples set to non-zero if the number of samples
6
+ *                               returned is an approximation.
7
  */
8
 static int get_nb_samples(AVCodecContext *avctx, GetByteContext *gb,
9
-                          int buf_size, int *coded_samples)
10
+                          int buf_size, int *coded_samples, int *approx_nb_samples)
11
 {
12
     ADPCMDecodeContext *s = avctx->priv_data;
13
     int nb_samples        = 0;
14
@@ -460,6 +462,7 @@
15
     int header_size;
16
 
17
     *coded_samples = 0;
18
+    *approx_nb_samples = 0;
19
 
20
     if(ch <= 0)
21
         return 0;
22
@@ -530,10 +533,12 @@
23
         case AV_CODEC_ID_ADPCM_EA_R2:
24
             header_size    = 4 + 5 * ch;
25
             *coded_samples = bytestream2_get_le32(gb);
26
+            *approx_nb_samples = 1;
27
             break;
28
         case AV_CODEC_ID_ADPCM_EA_R3:
29
             header_size    = 4 + 5 * ch;
30
             *coded_samples = bytestream2_get_be32(gb);
31
+            *approx_nb_samples = 1;
32
             break;
33
         }
34
         *coded_samples -= *coded_samples % 28;
35
@@ -625,11 +630,11 @@
36
     int16_t **samples_p;
37
     int st; /* stereo */
38
     int count1, count2;
39
-    int nb_samples, coded_samples, ret;
40
+    int nb_samples, coded_samples, approx_nb_samples, ret;
41
     GetByteContext gb;
42
 
43
     bytestream2_init(&gb, buf, buf_size);
44
-    nb_samples = get_nb_samples(avctx, &gb, buf_size, &coded_samples);
45
+    nb_samples = get_nb_samples(avctx, &gb, buf_size, &coded_samples, &approx_nb_samples);
46
     if (nb_samples <= 0) {
47
         av_log(avctx, AV_LOG_ERROR, "invalid number of samples in packet\n");
48
         return AVERROR_INVALIDDATA;
49
@@ -647,7 +652,7 @@
50
     /* use coded_samples when applicable */
51
     /* it is always <= nb_samples, so the output buffer will be large enough */
52
     if (coded_samples) {
53
-        if (coded_samples != nb_samples)
54
+        if (!approx_nb_samples && coded_samples != nb_samples)
55
             av_log(avctx, AV_LOG_WARNING, "mismatch in coded sample count\n");
56
         frame->nb_samples = nb_samples = coded_samples;
57
     }
58
@@ -863,6 +868,9 @@
59
             *samples++ = c->status[0].predictor + c->status[1].predictor;
60
             *samples++ = c->status[0].predictor - c->status[1].predictor;
61
         }
62
+
63
+        if ((bytestream2_tell(&gb) & 1))
64
+            bytestream2_skip(&gb, 1);
65
         break;
66
     }
67
     case AV_CODEC_ID_ADPCM_IMA_ISS:
68
ffmpeg-1.2.6.tar.bz2/libavcodec/adpcmenc.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/adpcmenc.c Changed
14
 
1
@@ -557,10 +557,11 @@
2
             put_bits(&pb, 7,  status->step_index);
3
             if (avctx->trellis > 0) {
4
                 uint8_t buf[64];
5
-                adpcm_compress_trellis(avctx, &samples_p[ch][1], buf, status,
6
+                adpcm_compress_trellis(avctx, &samples_p[ch][0], buf, status,
7
                                        64, 1);
8
                 for (i = 0; i < 64; i++)
9
                     put_bits(&pb, 4, buf[i ^ 1]);
10
+                status->prev_sample = status->predictor;
11
             } else {
12
                 for (i = 0; i < 64; i += 2) {
13
                     int t1, t2;
14
ffmpeg-1.2.6.tar.bz2/libavcodec/alsdec.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/alsdec.c Changed
10
 
1
@@ -284,7 +284,7 @@
2
     GetBitContext gb;
3
     uint64_t ht_size;
4
     int i, config_offset;
5
-    MPEG4AudioConfig m4ac;
6
+    MPEG4AudioConfig m4ac = {0};
7
     ALSSpecificConfig *sconf = &ctx->sconf;
8
     AVCodecContext *avctx    = ctx->avctx;
9
     uint32_t als_id, header_size, trailer_size;
10
ffmpeg-1.2.6.tar.bz2/libavcodec/dirac_arith.h -> ffmpeg-1.2.7.tar.bz2/libavcodec/dirac_arith.h Changed
18
 
1
@@ -28,6 +28,7 @@
2
 #ifndef AVCODEC_DIRAC_ARITH_H
3
 #define AVCODEC_DIRAC_ARITH_H
4
 
5
+#include "libavutil/x86/asm.h"
6
 #include "bytestream.h"
7
 #include "get_bits.h"
8
 
9
@@ -134,7 +135,7 @@
10
 
11
     range_times_prob = (c->range * prob_zero) >> 16;
12
 
13
-#if HAVE_FAST_CMOV && HAVE_INLINE_ASM
14
+#if HAVE_FAST_CMOV && HAVE_INLINE_ASM && HAVE_6REGS
15
     low   -= range_times_prob << 16;
16
     range -= range_times_prob;
17
     bit = 0;
18
ffmpeg-1.2.6.tar.bz2/libavcodec/diracdec.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/diracdec.c Changed
89
 
1
@@ -201,6 +201,7 @@
2
 
3
     uint16_t *mctmp;            /* buffer holding the MC data multipled by OBMC weights */
4
     uint8_t *mcscratch;
5
+    int buffer_stride;
6
 
7
     DECLARE_ALIGNED(16, uint8_t, obmc_weight)[3][MAX_BLOCKSIZE*MAX_BLOCKSIZE];
8
 
9
@@ -343,19 +344,41 @@
10
             return AVERROR(ENOMEM);
11
     }
12
 
13
-    w = s->source.width;
14
-    h = s->source.height;
15
-
16
     /* fixme: allocate using real stride here */
17
-    s->sbsplit  = av_malloc(sbwidth * sbheight);
18
-    s->blmotion = av_malloc(sbwidth * sbheight * 16 * sizeof(*s->blmotion));
19
-    s->edge_emu_buffer_base = av_malloc((w+64)*MAX_BLOCKSIZE);
20
+    s->sbsplit  = av_malloc_array(sbwidth, sbheight);
21
+    s->blmotion = av_malloc_array(sbwidth, sbheight * 16 * sizeof(*s->blmotion));
22
+
23
+    if (!s->sbsplit || !s->blmotion)
24
+        return AVERROR(ENOMEM);
25
+    return 0;
26
+}
27
+
28
+static int alloc_buffers(DiracContext *s, int stride)
29
+{
30
+    int w = s->source.width;
31
+    int h = s->source.height;
32
+
33
+    av_assert0(stride >= w);
34
+    stride += 64;
35
+
36
+    if (s->buffer_stride >= stride)
37
+        return 0;
38
+    s->buffer_stride = 0;
39
+
40
+    av_freep(&s->edge_emu_buffer_base);
41
+    memset(s->edge_emu_buffer, 0, sizeof(s->edge_emu_buffer));
42
+    av_freep(&s->mctmp);
43
+    av_freep(&s->mcscratch);
44
 
45
-    s->mctmp     = av_malloc((w+64+MAX_BLOCKSIZE) * (h+MAX_BLOCKSIZE) * sizeof(*s->mctmp));
46
-    s->mcscratch = av_malloc((w+64)*MAX_BLOCKSIZE);
47
+    s->edge_emu_buffer_base = av_malloc_array(stride, MAX_BLOCKSIZE);
48
 
49
-    if (!s->sbsplit || !s->blmotion || !s->mctmp || !s->mcscratch)
50
+    s->mctmp     = av_malloc_array((stride+MAX_BLOCKSIZE), (h+MAX_BLOCKSIZE) * sizeof(*s->mctmp));
51
+    s->mcscratch = av_malloc_array(stride, MAX_BLOCKSIZE);
52
+
53
+    if (!s->edge_emu_buffer_base || !s->mctmp || !s->mcscratch)
54
         return AVERROR(ENOMEM);
55
+
56
+    s->buffer_stride = stride;
57
     return 0;
58
 }
59
 
60
@@ -382,6 +405,7 @@
61
         av_freep(&s->plane[i].idwt_tmp);
62
     }
63
 
64
+    s->buffer_stride = 0;
65
     av_freep(&s->sbsplit);
66
     av_freep(&s->blmotion);
67
     av_freep(&s->edge_emu_buffer_base);
68
@@ -1343,8 +1367,8 @@
69
         motion_y >>= s->chroma_y_shift;
70
     }
71
 
72
-    mx         = motion_x & ~(-1 << s->mv_precision);
73
-    my         = motion_y & ~(-1 << s->mv_precision);
74
+    mx         = motion_x & ~(-1U << s->mv_precision);
75
+    my         = motion_y & ~(-1U << s->mv_precision);
76
     motion_x >>= s->mv_precision;
77
     motion_y >>= s->mv_precision;
78
     /* normalize subpel coordinates to epel */
79
@@ -1818,6 +1842,9 @@
80
         s->plane[1].stride = pic->avframe.linesize[1];
81
         s->plane[2].stride = pic->avframe.linesize[2];
82
 
83
+        if (alloc_buffers(s, FFMAX3(FFABS(s->plane[0].stride), FFABS(s->plane[1].stride), FFABS(s->plane[2].stride))) < 0)
84
+            return AVERROR(ENOMEM);
85
+
86
         /* [DIRAC_STD] 11.1 Picture parse. picture_parse() */
87
         if (dirac_decode_picture_header(s))
88
             return -1;
89
ffmpeg-1.2.6.tar.bz2/libavcodec/g723_1.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/g723_1.c Changed
11
 
1
@@ -2288,7 +2288,8 @@
2
     if (p->cur_rate == RATE_6300) {
3
         info_bits = 0;
4
         put_bits(&pb, 2, info_bits);
5
-    }
6
+    }else
7
+        av_assert0(0);
8
 
9
     put_bits(&pb, 8, p->lsp_index[2]);
10
     put_bits(&pb, 8, p->lsp_index[1]);
11
ffmpeg-1.2.6.tar.bz2/libavcodec/golomb-test.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/golomb-test.c Changed
10
 
1
@@ -58,7 +58,7 @@
2
         }
3
     }
4
 
5
-#define EXTEND(i) (i << 3 | i & 7)
6
+#define EXTEND(i) ((i) << 3 | (i) & 7)
7
     init_put_bits(&pb, temp, SIZE);
8
     for (i = 0; i < COUNT; i++)
9
         set_ue_golomb(&pb, EXTEND(i));
10
ffmpeg-1.2.6.tar.bz2/libavcodec/h263dec.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/h263dec.c Changed
14
 
1
@@ -721,10 +721,10 @@
2
         }
3
 
4
         if(startcode_found){
5
-            av_fast_malloc(
6
+            av_fast_padded_mallocz(
7
                 &s->bitstream_buffer,
8
                 &s->allocated_bitstream_buffer_size,
9
-                buf_size - current_pos + FF_INPUT_BUFFER_PADDING_SIZE);
10
+                buf_size - current_pos);
11
             if (!s->bitstream_buffer)
12
                 return AVERROR(ENOMEM);
13
             memcpy(s->bitstream_buffer, buf + current_pos, buf_size - current_pos);
14
ffmpeg-1.2.6.tar.bz2/libavcodec/h264.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/h264.c Changed
29
 
1
@@ -3094,6 +3094,18 @@
2
     return 0;
3
 }
4
 
5
+static enum AVPixelFormat non_j_pixfmt(enum AVPixelFormat a)
6
+{
7
+    switch (a) {
8
+    case AV_PIX_FMT_YUVJ420P: return AV_PIX_FMT_YUV420P;
9
+    case AV_PIX_FMT_YUVJ422P: return AV_PIX_FMT_YUV422P;
10
+    case AV_PIX_FMT_YUVJ444P: return AV_PIX_FMT_YUV444P;
11
+    default:
12
+        return a;
13
+    }
14
+}
15
+
16
+
17
 /**
18
  * Decode a slice header.
19
  * This will also call ff_MPV_common_init() and frame_start() as needed.
20
@@ -3212,7 +3224,7 @@
21
                      || h->mb_width  != h->sps.mb_width
22
                      || h->mb_height != h->sps.mb_height * (2 - h->sps.frame_mbs_only_flag)
23
                     ));
24
-    if (h0->avctx->pix_fmt != get_pixel_format(h0, 0))
25
+    if (non_j_pixfmt(h0->avctx->pix_fmt) != non_j_pixfmt(get_pixel_format(h0, 0)))
26
         must_reinit = 1;
27
 
28
     h->mb_width  = h->sps.mb_width;
29
ffmpeg-1.2.6.tar.bz2/libavcodec/h264_mp4toannexb_bsf.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/h264_mp4toannexb_bsf.c Changed
10
 
1
@@ -154,7 +154,7 @@
2
             goto fail;
3
 
4
         /* prepend only to the first type 5 NAL unit of an IDR picture */
5
-        if (ctx->first_idr && unit_type == 5) {
6
+        if (ctx->first_idr && (unit_type == 5 || unit_type == 7 || unit_type == 8)) {
7
             if ((ret=alloc_and_copy(poutbuf, poutbuf_size,
8
                                avctx->extradata, avctx->extradata_size,
9
                                buf, nal_size)) < 0)
10
ffmpeg-1.2.6.tar.bz2/libavcodec/libvorbisenc.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/libvorbisenc.c Changed
11
 
1
@@ -362,7 +362,8 @@
2
             avctx->delay              = duration;
3
             av_assert0(!s->afq.remaining_delay);
4
             s->afq.frames->duration  += duration;
5
-            s->afq.frames->pts       -= duration;
6
+            if (s->afq.frames->pts != AV_NOPTS_VALUE)
7
+                s->afq.frames->pts       -= duration;
8
             s->afq.remaining_samples += duration;
9
         }
10
         ff_af_queue_remove(&s->afq, duration, &avpkt->pts, &avpkt->duration);
11
ffmpeg-1.2.6.tar.bz2/libavcodec/libx264.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/libx264.c Changed
41
 
1
@@ -343,19 +343,6 @@
2
 
3
     OPT_STR("level", x4->level);
4
 
5
-    if(x4->x264opts){
6
-        const char *p= x4->x264opts;
7
-        while(p){
8
-            char param[256]={0}, val[256]={0};
9
-            if(sscanf(p, "%255[^:=]=%255[^:]", param, val) == 1){
10
-                OPT_STR(param, "1");
11
-            }else
12
-                OPT_STR(param, val);
13
-            p= strchr(p, ':');
14
-            p+=!!p;
15
-        }
16
-    }
17
-
18
     if (avctx->i_quant_factor > 0)
19
         x4->params.rc.f_ip_factor         = 1 / fabs(avctx->i_quant_factor);
20
 
21
@@ -525,6 +512,19 @@
22
     if (avctx->flags & CODEC_FLAG_GLOBAL_HEADER)
23
         x4->params.b_repeat_headers = 0;
24
 
25
+    if(x4->x264opts){
26
+        const char *p= x4->x264opts;
27
+        while(p){
28
+            char param[256]={0}, val[256]={0};
29
+            if(sscanf(p, "%255[^:=]=%255[^:]", param, val) == 1){
30
+                OPT_STR(param, "1");
31
+            }else
32
+                OPT_STR(param, val);
33
+            p= strchr(p, ':');
34
+            p+=!!p;
35
+        }
36
+    }
37
+
38
     if (x4->x264_params) {
39
         AVDictionary *dict    = NULL;
40
         AVDictionaryEntry *en = NULL;
41
ffmpeg-1.2.6.tar.bz2/libavcodec/mjpegdec.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/mjpegdec.c Changed
10
 
1
@@ -1144,7 +1144,7 @@
2
     }
3
 
4
     if (!Al) {
5
-        s->coefs_finished[c] |= (1LL << (se + 1)) - (1LL << ss);
6
+        s->coefs_finished[c] |= (2LL << se) - (1LL << ss);
7
         last_scan = !~s->coefs_finished[c];
8
     }
9
 
10
ffmpeg-1.2.6.tar.bz2/libavcodec/mjpegenc.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/mjpegenc.c Changed
10
 
1
@@ -454,7 +454,7 @@
2
         put_bits(&s->pb, huff_size_ac[0], huff_code_ac[0]);
3
 }
4
 
5
-void ff_mjpeg_encode_mb(MpegEncContext *s, int16_t block[6][64])
6
+void ff_mjpeg_encode_mb(MpegEncContext *s, int16_t block[12][64])
7
 {
8
     int i;
9
     if (s->chroma_format == CHROMA_444) {
10
ffmpeg-1.2.6.tar.bz2/libavcodec/mjpegenc.h -> ffmpeg-1.2.7.tar.bz2/libavcodec/mjpegenc.h Changed
9
 
1
@@ -56,6 +56,6 @@
2
 void ff_mjpeg_encode_stuffing(MpegEncContext *s);
3
 void ff_mjpeg_encode_dc(MpegEncContext *s, int val,
4
                         uint8_t *huff_size, uint16_t *huff_code);
5
-void ff_mjpeg_encode_mb(MpegEncContext *s, int16_t block[6][64]);
6
+void ff_mjpeg_encode_mb(MpegEncContext *s, int16_t block[12][64]);
7
 
8
 #endif /* AVCODEC_MJPEGENC_H */
9
ffmpeg-1.2.6.tar.bz2/libavcodec/mlpdec.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/mlpdec.c Changed
10
 
1
@@ -813,7 +813,7 @@
2
     return 0;
3
 }
4
 
5
-#define MSB_MASK(bits)  (-1u << bits)
6
+#define MSB_MASK(bits)  (-1u << (bits))
7
 
8
 /** Generate PCM samples using the prediction filters and residual values
9
  *  read from the data stream, and update the filter state. */
10
ffmpeg-1.2.6.tar.bz2/libavcodec/msrle.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/msrle.c Changed
11
 
1
@@ -118,6 +118,9 @@
2
         uint8_t *buf = avpkt->data + (avctx->height-1)*istride;
3
         int i, j;
4
 
5
+        if (linesize < 0)
6
+            return linesize;
7
+
8
         for (i = 0; i < avctx->height; i++) {
9
             if (avctx->bits_per_coded_sample == 4) {
10
                 for (j = 0; j < avctx->width - 1; j += 2) {
11
ffmpeg-1.2.6.tar.bz2/libavcodec/mss34dsp.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/mss34dsp.c Changed
12
 
1
@@ -84,8 +84,8 @@
2
     blk[6 * step] = (-(t3 + t7) + t8 + tA) >> shift;                \
3
     blk[7 * step] = (-(t1 + t6) + t9 + tB) >> shift;                \
4
 
5
-#define SOP_ROW(a) ((a) << 16) + 0x2000
6
-#define SOP_COL(a) ((a + 32) << 16)
7
+#define SOP_ROW(a) (((a) << 16) + 0x2000)
8
+#define SOP_COL(a) (((a) + 32) << 16)
9
 
10
 void ff_mss34_dct_put(uint8_t *dst, int stride, int *block)
11
 {
12
ffmpeg-1.2.6.tar.bz2/libavcodec/mss4.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/mss4.c Changed
10
 
1
@@ -363,7 +363,7 @@
2
     return prev[component];
3
 }
4
 
5
-#define MKVAL(vals)  (vals[0] | (vals[1] << 3) | (vals[2] << 6))
6
+#define MKVAL(vals)  ((vals)[0] | ((vals)[1] << 3) | ((vals)[2] << 6))
7
 
8
 /* Image mode - the hardest to comprehend MSS4 coding mode.
9
  *
10
ffmpeg-1.2.6.tar.bz2/libavcodec/utvideodec.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/utvideodec.c Changed
10
 
1
@@ -70,7 +70,7 @@
2
         code += 0x80000000u >> (he[i].len - 1);
3
     }
4
 
5
-    return ff_init_vlc_sparse(vlc, FFMIN(he[last].len, 9), last + 1,
6
+    return ff_init_vlc_sparse(vlc, FFMIN(he[last].len, 11), last + 1,
7
                               bits,  sizeof(*bits),  sizeof(*bits),
8
                               codes, sizeof(*codes), sizeof(*codes),
9
                               syms,  sizeof(*syms),  sizeof(*syms), 0);
10
ffmpeg-1.2.6.tar.bz2/libavcodec/vc1dec.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/vc1dec.c Changed
13
 
1
@@ -1867,9 +1867,10 @@
2
     uvmx = (mx + ((mx & 3) == 3)) >> 1;
3
     uvmy = (my + ((my & 3) == 3)) >> 1;
4
     if (v->field_mode) {
5
-        if (v->cur_field_type != v->ref_field_type[1])
6
+        if (v->cur_field_type != v->ref_field_type[1]) {
7
             my   = my   - 2 + 4 * v->cur_field_type;
8
             uvmy = uvmy - 2 + 4 * v->cur_field_type;
9
+        }
10
     }
11
     if (v->fastuvmc) {
12
         uvmx = uvmx + ((uvmx < 0) ? -(uvmx & 1) : (uvmx & 1));
13
ffmpeg-1.2.6.tar.bz2/libavcodec/vorbisdec.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/vorbisdec.c Changed
101
 
1
@@ -151,7 +151,7 @@
2
     uint8_t       mode_count;
3
     vorbis_mode  *modes;
4
     uint8_t       mode_number; // mode number for the current packet
5
-    uint8_t       previous_window;
6
+    int8_t       previous_window;
7
     float        *channel_residues;
8
     float        *saved;
9
 } vorbis_context;
10
@@ -701,8 +701,7 @@
11
         res_setup->partition_size = get_bits(gb, 24) + 1;
12
         /* Validations to prevent a buffer overflow later. */
13
         if (res_setup->begin>res_setup->end ||
14
-            res_setup->end > (res_setup->type == 2 ? vc->audio_channels : 1) * vc->blocksize[1] / 2 ||
15
-            (res_setup->end-res_setup->begin) / res_setup->partition_size > V_MAX_PARTITIONS) {
16
+            (res_setup->end-res_setup->begin) / res_setup->partition_size > FFMIN(V_MAX_PARTITIONS, 65535)) {
17
             av_log(vc->avctx, AV_LOG_ERROR,
18
                    "partition out of bounds: type, begin, end, size, blocksize: %"PRIu16", %"PRIu32", %"PRIu32", %u, %"PRIu32"\n",
19
                    res_setup->type, res_setup->begin, res_setup->end,
20
@@ -989,7 +988,7 @@
21
     if (!vc->channel_residues || !vc->saved)
22
         return AVERROR(ENOMEM);
23
 
24
-    vc->previous_window  = 0;
25
+    vc->previous_window  = -1;
26
 
27
     ff_mdct_init(&vc->mdct[0], bl0, 1, -1.0);
28
     ff_mdct_init(&vc->mdct[1], bl1, 1, -1.0);
29
@@ -1325,6 +1324,7 @@
30
     uint8_t *classifs = vr->classifs;
31
     unsigned pass, ch_used, i, j, k, l;
32
     unsigned max_output = (ch - 1) * vlen;
33
+    int libvorbis_bug = 0;
34
 
35
     if (vr_type == 2) {
36
         for (j = 1; j < ch; ++j)
37
@@ -1339,8 +1339,13 @@
38
     }
39
 
40
     if (max_output > ch_left * vlen) {
41
-        av_log(vc->avctx, AV_LOG_ERROR, "Insufficient output buffer\n");
42
-        return -1;
43
+        if (max_output <= ch_left * vlen + vr->partition_size*ch_used/ch) {
44
+            ptns_to_read--;
45
+            libvorbis_bug = 1;
46
+        } else {
47
+            av_log(vc->avctx, AV_LOG_ERROR, "Insufficient output buffer\n");
48
+            return AVERROR_INVALIDDATA;
49
+        }
50
     }
51
 
52
     av_dlog(NULL, " residue type 0/1/2 decode begin, ch: %d  cpc %d  \n", ch, c_p_c);
53
@@ -1466,6 +1471,14 @@
54
                 voffset += vr->partition_size;
55
             }
56
         }
57
+        if (libvorbis_bug && !pass) {
58
+            for (j = 0; j < ch_used; ++j) {
59
+                if (!do_not_decode[j]) {
60
+                    get_vlc2(&vc->gb, vc->codebooks[vr->classbook].vlc.table,
61
+                                vc->codebooks[vr->classbook].nb_bits, 3);
62
+                }
63
+            }
64
+        }
65
     }
66
     return 0;
67
 }
68
@@ -1518,7 +1531,7 @@
69
 {
70
     GetBitContext *gb = &vc->gb;
71
     FFTContext *mdct;
72
-    unsigned previous_window = vc->previous_window;
73
+    int previous_window = vc->previous_window;
74
     unsigned mode_number, blockflag, blocksize;
75
     int i, j;
76
     uint8_t no_residue[255];
77
@@ -1551,9 +1564,11 @@
78
     blocksize = vc->blocksize[blockflag];
79
     vlen = blocksize / 2;
80
     if (blockflag) {
81
-        previous_window = get_bits(gb, 1);
82
-        skip_bits1(gb); // next_window
83
-    }
84
+        int code = get_bits(gb, 2);
85
+        if (previous_window < 0)
86
+            previous_window = code>>1;
87
+    } else if (previous_window < 0)
88
+        previous_window = 0;
89
 
90
     memset(ch_res_ptr,   0, sizeof(float) * vc->audio_channels * vlen); //FIXME can this be removed ?
91
     for (i = 0; i < vc->audio_channels; ++i)
92
@@ -1783,7 +1798,7 @@
93
         memset(vc->saved, 0, (vc->blocksize[1] / 4) * vc->audio_channels *
94
                              sizeof(*vc->saved));
95
     }
96
-    vc->previous_window = 0;
97
+    vc->previous_window = -1;
98
 }
99
 
100
 AVCodec ff_vorbis_decoder = {
101
ffmpeg-1.2.6.tar.bz2/libavcodec/wma.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/wma.c Changed
14
 
1
@@ -385,9 +385,9 @@
2
     }
3
     for (i = 0; i < 2; i++) {
4
         ff_free_vlc(&s->coef_vlc[i]);
5
-        av_free(s->run_table[i]);
6
-        av_free(s->level_table[i]);
7
-        av_free(s->int_table[i]);
8
+        av_freep(&s->run_table[i]);
9
+        av_freep(&s->level_table[i]);
10
+        av_freep(&s->int_table[i]);
11
     }
12
 
13
 #if FF_API_OLD_ENCODE_AUDIO
14
ffmpeg-1.2.6.tar.bz2/libavcodec/x86/idct_sse2_xvid.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/x86/idct_sse2_xvid.c Changed
10
 
1
@@ -343,7 +343,7 @@
2
     "movdqa   %%xmm6, 4*16("dct")     \n\t" \
3
     "movdqa   "SREG2", 7*16("dct")    \n\t"
4
 
5
-inline void ff_idct_xvid_sse2(short *block)
6
+av_extern_inline void ff_idct_xvid_sse2(short *block)
7
 {
8
     __asm__ volatile(
9
     "movq     "MANGLE(m127)", %%mm0                              \n\t"
10
ffmpeg-1.2.6.tar.bz2/libavcodec/x86/mpegvideoenc_template.c -> ffmpeg-1.2.7.tar.bz2/libavcodec/x86/mpegvideoenc_template.c Changed
10
 
1
@@ -216,7 +216,7 @@
2
         "psubusw "MM"1, "MM"4               \n\t"
3
         "packuswb "MM"4, "MM"4              \n\t"
4
 #if COMPILE_TEMPLATE_SSE2
5
-        "packuswb "MM"4, "MM"4              \n\t"
6
+        "packsswb "MM"4, "MM"4              \n\t"
7
 #endif
8
         "movd "MM"4, %0                     \n\t" // *overflow
9
         : "=g" (*overflow)
10
ffmpeg-1.2.6.tar.bz2/libavfilter/filtfmts.c -> ffmpeg-1.2.7.tar.bz2/libavfilter/filtfmts.c Changed
43
 
1
@@ -38,7 +38,7 @@
2
             for (j = 0; j < fmts->format_count; j++)                    \
3
                 if(av_get_pix_fmt_name(fmts->formats[j]))               \
4
                 printf(#INOUT "PUT[%d] %s: fmt:%s\n",                   \
5
-                       i, filter_ctx->filter->inout##puts[i].name,      \
6
+                       i, filter_ctx->inout##put_pads[i].name,      \
7
                        av_get_pix_fmt_name(fmts->formats[j]));          \
8
         } else if (filter_ctx->inout##puts[i]->type == AVMEDIA_TYPE_AUDIO) { \
9
             AVFilterFormats *fmts;                                      \
10
@@ -47,7 +47,7 @@
11
             fmts = filter_ctx->inout##puts[i]->outin##_formats;         \
12
             for (j = 0; j < fmts->format_count; j++)                    \
13
                 printf(#INOUT "PUT[%d] %s: fmt:%s\n",                   \
14
-                       i, filter_ctx->filter->inout##puts[i].name,      \
15
+                       i, filter_ctx->inout##put_pads[i].name,      \
16
                        av_get_sample_fmt_name(fmts->formats[j]));       \
17
                                                                         \
18
             layouts = filter_ctx->inout##puts[i]->outin##_channel_layouts; \
19
@@ -56,7 +56,7 @@
20
                 av_get_channel_layout_string(buf, sizeof(buf), -1,      \
21
                                              layouts->channel_layouts[j]);         \
22
                 printf(#INOUT "PUT[%d] %s: chlayout:%s\n",              \
23
-                       i, filter_ctx->filter->inout##puts[i].name, buf); \
24
+                       i, filter_ctx->inout##put_pads[i].name, buf); \
25
             }                                                           \
26
         }                                                               \
27
     }                                                                   \
28
@@ -106,12 +106,12 @@
29
     /* create a link for each of the input pads */
30
     for (i = 0; i < filter_ctx->input_count; i++) {
31
         AVFilterLink *link = av_mallocz(sizeof(AVFilterLink));
32
-        link->type = filter_ctx->filter->inputs[i].type;
33
+        link->type = filter_ctx->input_pads[i].type;
34
         filter_ctx->inputs[i] = link;
35
     }
36
     for (i = 0; i < filter_ctx->output_count; i++) {
37
         AVFilterLink *link = av_mallocz(sizeof(AVFilterLink));
38
-        link->type = filter_ctx->filter->outputs[i].type;
39
+        link->type = filter_ctx->output_pads[i].type;
40
         filter_ctx->outputs[i] = link;
41
     }
42
 
43
ffmpeg-1.2.6.tar.bz2/libavfilter/graphdump.c -> ffmpeg-1.2.7.tar.bz2/libavfilter/graphdump.c Changed
13
 
1
@@ -31,9 +31,10 @@
2
 {
3
     char *format;
4
     char layout[64];
5
+    AVBPrint dummy_buffer = { 0 };
6
 
7
     if (!buf)
8
-        buf = &(AVBPrint){ 0 }; /* dummy buffer */
9
+        buf = &dummy_buffer;
10
     switch (link->type) {
11
         case AVMEDIA_TYPE_VIDEO:
12
             format = av_x_if_null(av_get_pix_fmt_name(link->format), "?");
13
ffmpeg-1.2.6.tar.bz2/libavfilter/vf_deshake.c -> ffmpeg-1.2.7.tar.bz2/libavfilter/vf_deshake.c Changed
12
 
1
@@ -346,8 +346,8 @@
2
         //av_log(NULL, AV_LOG_ERROR, "\n");
3
     }
4
 
5
-    p_x = (center_x - width / 2);
6
-    p_y = (center_y - height / 2);
7
+    p_x = (center_x - width / 2.0);
8
+    p_y = (center_y - height / 2.0);
9
     t->vector.x += (cos(t->angle)-1)*p_x  - sin(t->angle)*p_y;
10
     t->vector.y += sin(t->angle)*p_x  + (cos(t->angle)-1)*p_y;
11
 
12
ffmpeg-1.2.6.tar.bz2/libavformat/asfdec.c -> ffmpeg-1.2.7.tar.bz2/libavformat/asfdec.c Changed
11
 
1
@@ -378,7 +378,8 @@
2
 
3
     if (!(asf->hdr.flags & 0x01)) { // if we aren't streaming...
4
         int64_t fsize = avio_size(pb);
5
-        if (fsize <= 0 || (int64_t)asf->hdr.file_size <= 0 || FFABS(fsize - (int64_t)asf->hdr.file_size) < 10000)
6
+        if (fsize <= 0 || (int64_t)asf->hdr.file_size <= 0 ||
7
+            FFABS(fsize - (int64_t)asf->hdr.file_size) / (float)FFMIN(fsize, asf->hdr.file_size) < 0.05)
8
             st->duration = asf->hdr.play_time /
9
                        (10000000 / 1000) - start_time;
10
     }
11
ffmpeg-1.2.6.tar.bz2/libavformat/avidec.c -> ffmpeg-1.2.7.tar.bz2/libavformat/avidec.c Changed
36
 
1
@@ -1002,10 +1002,12 @@
2
                 }
3
             }
4
 
5
-
6
-            if(   (st->discard >= AVDISCARD_DEFAULT && size==0)
7
-               /*|| (st->discard >= AVDISCARD_NONKEY && !(pkt->flags & AV_PKT_FLAG_KEY))*/ //FIXME needs a little reordering
8
-               || st->discard >= AVDISCARD_ALL){
9
+            if (!avi->dv_demux &&
10
+                ((st->discard >= AVDISCARD_DEFAULT && size == 0) /* ||
11
+                 // FIXME: needs a little reordering
12
+                 (st->discard >= AVDISCARD_NONKEY &&
13
+                 !(pkt->flags & AV_PKT_FLAG_KEY)) */
14
+                || st->discard >= AVDISCARD_ALL)) {
15
                 if (!exit_early) {
16
                     ast->frame_offset += get_duration(ast, size);
17
                     avio_skip(pb, size);
18
@@ -1196,7 +1198,7 @@
19
                 int index;
20
                 av_assert0(st->index_entries);
21
 
22
-                index= av_index_search_timestamp(st, ast->frame_offset, 0);
23
+                index= av_index_search_timestamp(st, ast->frame_offset, AVSEEK_FLAG_ANY);
24
                 e= &st->index_entries[index];
25
 
26
                 if(index >= 0 && e->timestamp == ast->frame_offset){
27
@@ -1518,7 +1520,7 @@
28
             continue;
29
 
30
 //        av_assert1(st2->codec->block_align);
31
-        av_assert0((int64_t)st2->time_base.num*ast2->rate == (int64_t)st2->time_base.den*ast2->scale);
32
+        av_assert0(fabs(av_q2d(st2->time_base) - ast2->scale / (double)ast2->rate) < av_q2d(st2->time_base) * 0.00000001);
33
         index = av_index_search_timestamp(
34
                 st2,
35
                 av_rescale_q(timestamp, st->time_base, st2->time_base) * FFMAX(ast2->sample_size, 1),
36
ffmpeg-1.2.6.tar.bz2/libavformat/flvdec.c -> ffmpeg-1.2.7.tar.bz2/libavformat/flvdec.c Changed
12
 
1
@@ -815,6 +815,10 @@
2
             if (cts < 0) { // dts are wrong
3
                 flv->wrong_dts = 1;
4
                 av_log(s, AV_LOG_WARNING, "negative cts, previous timestamps might be wrong\n");
5
+            } else if (FFABS(dts - pts) > 1000*60*15) {
6
+                av_log(s, AV_LOG_WARNING,
7
+                       "invalid timestamps %"PRId64" %"PRId64"\n", dts, pts);
8
+                dts = pts = AV_NOPTS_VALUE;
9
             }
10
             if (flv->wrong_dts)
11
                 dts = AV_NOPTS_VALUE;
12
ffmpeg-1.2.6.tar.bz2/libavformat/flvenc.c -> ffmpeg-1.2.7.tar.bz2/libavformat/flvenc.c Changed
20
 
1
@@ -218,6 +218,18 @@
2
                        avcodec_get_name(enc->codec_id), i);
3
                 return AVERROR(EINVAL);
4
             }
5
+            if (enc->codec_id == AV_CODEC_ID_MPEG4 ||
6
+                enc->codec_id == AV_CODEC_ID_H263) {
7
+                int error = enc->strict_std_compliance > FF_COMPLIANCE_UNOFFICIAL;
8
+                av_log(s, error ? AV_LOG_ERROR : AV_LOG_WARNING,
9
+                       "Codec %s is not supported in the official FLV specification,\n", avcodec_get_name(enc->codec_id));
10
+
11
+                if (error) {
12
+                    av_log(s, AV_LOG_ERROR,
13
+                           "use vstrict=-1 / -strict -1 to use it anyway.\n");
14
+                    return AVERROR(EINVAL);
15
+                }
16
+            }
17
             break;
18
         case AVMEDIA_TYPE_AUDIO:
19
             audio_enc = enc;
20
ffmpeg-1.2.6.tar.bz2/libavformat/h263dec.c -> ffmpeg-1.2.7.tar.bz2/libavformat/h263dec.c Changed
10
 
1
@@ -35,7 +35,7 @@
2
     for(i=0; i<p->buf_size; i++){
3
         code = (code<<8) + p->buf[i];
4
         if ((code & 0xfffffc0000) == 0x800000) {
5
-            src_fmt= (code>>2)&3;
6
+            src_fmt= (code>>2)&7;
7
             if(   src_fmt != last_src_fmt
8
                && last_src_fmt>0 && last_src_fmt<6
9
                && src_fmt<6)
10
ffmpeg-1.2.6.tar.bz2/libavformat/matroskadec.c -> ffmpeg-1.2.7.tar.bz2/libavformat/matroskadec.c Changed
15
 
1
@@ -1634,8 +1634,12 @@
2
         } else if (!strcmp(track->codec_id, "V_QUICKTIME")
3
                    && (track->codec_priv.size >= 86)
4
                    && (track->codec_priv.data != NULL)) {
5
-            fourcc = AV_RL32(track->codec_priv.data);
6
+            fourcc = AV_RL32(track->codec_priv.data + 4);
7
             codec_id = ff_codec_get_id(ff_codec_movvideo_tags, fourcc);
8
+            if (ff_codec_get_id(ff_codec_movvideo_tags, AV_RL32(track->codec_priv.data))) {
9
+                fourcc = AV_RL32(track->codec_priv.data);
10
+                codec_id = ff_codec_get_id(ff_codec_movvideo_tags, fourcc);
11
+            }
12
         } else if (codec_id == AV_CODEC_ID_ALAC && track->codec_priv.size && track->codec_priv.size < INT_MAX-12) {
13
             /* Only ALAC's magic cookie is stored in Matroska's track headers.
14
                Create the "atom size", "tag", and "tag version" fields the
15
ffmpeg-1.2.6.tar.bz2/libavformat/matroskaenc.c -> ffmpeg-1.2.7.tar.bz2/libavformat/matroskaenc.c Changed
21
 
1
@@ -501,8 +501,18 @@
2
         if (qt_id) {
3
             if (!codec->codec_tag)
4
                 codec->codec_tag = ff_codec_get_tag(ff_codec_movvideo_tags, codec->codec_id);
5
-            if (codec->extradata_size)
6
+            if (codec->extradata_size) {
7
+                if (   ff_codec_get_id(ff_codec_movvideo_tags, codec->codec_tag) == codec->codec_id
8
+                    && ff_codec_get_id(ff_codec_movvideo_tags, AV_RL32(codec->extradata+4)) != codec->codec_id
9
+                ) {
10
+                    int i;
11
+                    avio_wb32(dyn_cp, 0x5a + codec->extradata_size);
12
+                    avio_wl32(dyn_cp, codec->codec_tag);
13
+                    for(i=0; i<0x5a-8; i++)
14
+                        avio_w8(dyn_cp, 0);
15
+                }
16
                 avio_write(dyn_cp, codec->extradata, codec->extradata_size);
17
+            }
18
         } else {
19
             if (!codec->codec_tag)
20
                 codec->codec_tag = ff_codec_get_tag(ff_codec_bmp_tags, codec->codec_id);
21
ffmpeg-1.2.6.tar.bz2/libavformat/mov.c -> ffmpeg-1.2.7.tar.bz2/libavformat/mov.c Changed
22
 
1
@@ -1679,7 +1679,7 @@
2
     if (!entries)
3
     {
4
         sc->keyframe_absent = 1;
5
-        if (!st->need_parsing)
6
+        if (!st->need_parsing && st->codec->codec_type == AVMEDIA_TYPE_VIDEO)
7
             st->need_parsing = AVSTREAM_PARSE_HEADERS;
8
         return 0;
9
     }
10
@@ -2017,6 +2017,11 @@
11
                         rap_group_index++;
12
                     }
13
                 }
14
+                if (sc->keyframe_absent
15
+                    && !sc->stps_count
16
+                    && !rap_group_present
17
+                    && st->codec->codec_type == AVMEDIA_TYPE_AUDIO)
18
+                     keyframe = 1;
19
                 if (keyframe)
20
                     distance = 0;
21
                 sample_size = sc->alt_sample_size > 0 ? sc->alt_sample_size : sc->sample_sizes[current_sample];
22
ffmpeg-1.2.6.tar.bz2/libavformat/mpc.c -> ffmpeg-1.2.7.tar.bz2/libavformat/mpc.c Changed
10
 
1
@@ -153,7 +153,7 @@
2
     }
3
     c->curbits = (curbits + size2) & 0x1F;
4
 
5
-    if ((ret = av_new_packet(pkt, size)) < 0)
6
+    if ((ret = av_new_packet(pkt, size + 4)) < 0)
7
         return ret;
8
 
9
     pkt->data[0] = curbits;
10
ffmpeg-1.2.6.tar.bz2/libavformat/mpegts.c -> ffmpeg-1.2.7.tar.bz2/libavformat/mpegts.c Changed
10
 
1
@@ -1265,7 +1265,7 @@
2
             AVStream *st;
3
             if (ts->pids[pid]->es_id != mp4_descr[i].es_id)
4
                 continue;
5
-            if (!(ts->pids[pid] && ts->pids[pid]->type == MPEGTS_PES)) {
6
+            if (ts->pids[pid]->type != MPEGTS_PES) {
7
                 av_log(s, AV_LOG_ERROR, "pid %x is not PES\n", pid);
8
                 continue;
9
             }
10
ffmpeg-1.2.6.tar.bz2/libavformat/mux.c -> ffmpeg-1.2.7.tar.bz2/libavformat/mux.c Changed
14
 
1
@@ -410,6 +410,12 @@
2
     av_dlog(s, "compute_pkt_fields2: pts:%s dts:%s cur_dts:%s b:%d size:%d st:%d\n",
3
             av_ts2str(pkt->pts), av_ts2str(pkt->dts), av_ts2str(st->cur_dts), delay, pkt->size, pkt->stream_index);
4
 
5
+    if (pkt->duration < 0 && st->codec->codec_type != AVMEDIA_TYPE_SUBTITLE) {
6
+        av_log(s, AV_LOG_WARNING, "Packet with invalid duration %d in stream %d\n",
7
+               pkt->duration, pkt->stream_index);
8
+        pkt->duration = 0;
9
+    }
10
+
11
     /* duration field */
12
     if (pkt->duration == 0) {
13
         ff_compute_frame_duration(&num, &den, st, NULL, pkt);
14
ffmpeg-1.2.6.tar.bz2/libavutil/cpu.c -> ffmpeg-1.2.7.tar.bz2/libavutil/cpu.c Changed
26
 
1
@@ -23,6 +23,24 @@
2
 static int flags, checked;
3
 
4
 void av_force_cpu_flags(int arg){
5
+    if (   (arg & ( AV_CPU_FLAG_3DNOW    |
6
+                    AV_CPU_FLAG_3DNOWEXT |
7
+                    AV_CPU_FLAG_SSE      |
8
+                    AV_CPU_FLAG_SSE2     |
9
+                    AV_CPU_FLAG_SSE2SLOW |
10
+                    AV_CPU_FLAG_SSE3     |
11
+                    AV_CPU_FLAG_SSE3SLOW |
12
+                    AV_CPU_FLAG_SSSE3    |
13
+                    AV_CPU_FLAG_SSE4     |
14
+                    AV_CPU_FLAG_SSE42    |
15
+                    AV_CPU_FLAG_AVX      |
16
+                    AV_CPU_FLAG_XOP      |
17
+                    AV_CPU_FLAG_FMA4     ))
18
+        && !(arg & AV_CPU_FLAG_MMX)) {
19
+        av_log(NULL, AV_LOG_WARNING, "MMX implied by specified flags\n");
20
+        arg |= AV_CPU_FLAG_MMX;
21
+    }
22
+
23
     flags   = arg;
24
     checked = arg != -1;
25
 }
26
ffmpeg-1.2.6.tar.bz2/libavutil/lzo.c -> ffmpeg-1.2.7.tar.bz2/libavutil/lzo.c Changed
44
 
1
@@ -22,6 +22,7 @@
2
 #include <string.h>
3
 
4
 #include "avutil.h"
5
+#include "avassert.h"
6
 #include "common.h"
7
 #include "intreadwrite.h"
8
 #include "lzo.h"
9
@@ -65,8 +66,13 @@
10
 {
11
     int cnt = x & mask;
12
     if (!cnt) {
13
-        while (!(x = get_byte(c)))
14
+        while (!(x = get_byte(c))) {
15
+            if (cnt >= INT_MAX - 1000) {
16
+                c->error |= AV_LZO_ERROR;
17
+                break;
18
+            }
19
             cnt += 255;
20
+        }
21
         cnt += mask + x;
22
     }
23
     return cnt;
24
@@ -80,6 +86,7 @@
25
 {
26
     register const uint8_t *src = c->in;
27
     register uint8_t *dst       = c->out;
28
+    av_assert0(cnt >= 0);
29
     if (cnt > c->in_end - src) {
30
         cnt       = FFMAX(c->in_end - src, 0);
31
         c->error |= AV_LZO_INPUT_DEPLETED;
32
@@ -110,9 +117,9 @@
33
  */
34
 static inline void copy_backptr(LZOContext *c, int back, int cnt)
35
 {
36
-    register const uint8_t *src = &c->out[-back];
37
     register uint8_t *dst       = c->out;
38
-    if (src < c->out_start || src > dst) {
39
+    av_assert0(cnt > 0);
40
+    if (dst - c->out_start < back) {
41
         c->error |= AV_LZO_INVALID_BACKPTR;
42
         return;
43
     }
44
ffmpeg-1.2.6.tar.bz2/libavutil/opt.c -> ffmpeg-1.2.7.tar.bz2/libavutil/opt.c Changed
14
 
1
@@ -1291,8 +1291,10 @@
2
 
3
     for (i = 0; i < ranges->nb_ranges; i++) {
4
         AVOptionRange *range = ranges->range[i];
5
-        av_freep(&range->str);
6
-        av_freep(&ranges->range[i]);
7
+        if (range) {
8
+            av_freep(&range->str);
9
+            av_freep(&ranges->range[i]);
10
+        }
11
     }
12
     av_freep(&ranges->range);
13
     av_freep(rangesp);
14
ffmpeg-1.2.6.tar.bz2/libavutil/timestamp.h -> ffmpeg-1.2.7.tar.bz2/libavutil/timestamp.h Changed
12
 
1
@@ -26,6 +26,10 @@
2
 
3
 #include "common.h"
4
 
5
+#if defined(__cplusplus) && !defined(__STDC_FORMAT_MACROS) && !defined(PRId64)
6
+#error missing -D__STDC_FORMAT_MACROS / #define __STDC_FORMAT_MACROS
7
+#endif
8
+
9
 #define AV_TS_MAX_STRING_SIZE 32
10
 
11
 /**
12
ffmpeg-1.2.6.tar.bz2/libswresample/dither.c -> ffmpeg-1.2.7.tar.bz2/libswresample/dither.c Changed
10
 
1
@@ -26,7 +26,7 @@
2
 void swri_get_dither(SwrContext *s, void *dst, int len, unsigned seed, enum AVSampleFormat noise_fmt) {
3
     double scale = s->dither.noise_scale;
4
 #define TMP_EXTRA 2
5
-    double *tmp = av_malloc((len + TMP_EXTRA) * sizeof(double));
6
+    double *tmp = av_malloc_array(len + TMP_EXTRA, sizeof(double));
7
     int i;
8
 
9
     for(i=0; i<len + TMP_EXTRA; i++){
10
ffmpeg-1.2.6.tar.bz2/libswresample/rematrix.c -> ffmpeg-1.2.7.tar.bz2/libswresample/rematrix.c Changed
13
 
1
@@ -122,6 +122,11 @@
2
     )
3
         out_ch_layout = AV_CH_LAYOUT_STEREO;
4
 
5
+    if(    in_ch_layout == AV_CH_LAYOUT_STEREO_DOWNMIX
6
+       && (out_ch_layout & AV_CH_LAYOUT_STEREO_DOWNMIX) == 0
7
+    )
8
+        in_ch_layout = AV_CH_LAYOUT_STEREO;
9
+
10
     if(!sane_layout(in_ch_layout)){
11
         av_get_channel_layout_string(buf, sizeof(buf), -1, s->in_ch_layout);
12
         av_log(s, AV_LOG_ERROR, "Input channel layout '%s' is not supported\n", buf);
13
ffmpeg-1.2.6.tar.bz2/libswresample/resample.c -> ffmpeg-1.2.7.tar.bz2/libswresample/resample.c Changed
22
 
1
@@ -95,7 +95,7 @@
2
                         int filter_type, int kaiser_beta){
3
     int ph, i;
4
     double x, y, w;
5
-    double *tab = av_malloc(tap_count * sizeof(*tab));
6
+    double *tab = av_malloc_array(tap_count,  sizeof(*tab));
7
     const int center= (tap_count-1)/2;
8
 
9
     if (!tab)
10
@@ -229,6 +229,11 @@
11
             av_assert0(0);
12
         }
13
 
14
+        if (filter_size/factor > INT32_MAX/256) {
15
+            av_log(NULL, AV_LOG_ERROR, "Filter length too large\n");
16
+            goto error;
17
+        }
18
+
19
         c->phase_shift   = phase_shift;
20
         c->phase_mask    = phase_count - 1;
21
         c->linear        = linear;
22
ffmpeg-1.2.6.tar.bz2/libswscale/swscale.c -> ffmpeg-1.2.7.tar.bz2/libswscale/swscale.c Changed
22
 
1
@@ -208,8 +208,9 @@
2
 {
3
     int i;
4
     int32_t *dst = (int32_t *) _dst;
5
-    for (i = 0; i < width; i++)
6
-        dst[i] = (FFMIN(dst[i], 30189 << 4) * 4769 - (39057361 << 2)) >> 12;
7
+    for (i = 0; i < width; i++) {
8
+        dst[i] = ((int)(FFMIN(dst[i], 30189 << 4) * 4769U - (39057361 << 2))) >> 12;
9
+    }
10
 }
11
 
12
 static void lumRangeFromJpeg16_c(int16_t *_dst, int width)
13
@@ -802,7 +803,7 @@
14
     uint8_t *dst2[4];
15
     uint8_t *rgb0_tmp = NULL;
16
 
17
-    if (!srcSlice || !dstStride || !dst || !srcSlice) {
18
+    if (!srcStride || !dstStride || !dst || !srcSlice) {
19
         av_log(c, AV_LOG_ERROR, "One of the input parameters to sws_scale() is NULL, please check the calling code\n");
20
         return 0;
21
     }
22
ffmpeg-1.2.6.tar.bz2/libswscale/swscale_unscaled.c -> ffmpeg-1.2.7.tar.bz2/libswscale/swscale_unscaled.c Changed
10
 
1
@@ -1017,7 +1017,7 @@
2
         c->swScale = ff_yuv2rgb_get_func_ptr(c);
3
     }
4
 
5
-    if (srcFormat == AV_PIX_FMT_YUV410P &&
6
+    if (srcFormat == AV_PIX_FMT_YUV410P && !(dstH & 3) &&
7
         (dstFormat == AV_PIX_FMT_YUV420P || dstFormat == AV_PIX_FMT_YUVA420P) &&
8
         !(flags & SWS_BITEXACT)) {
9
         c->swScale = yvu9ToYv12Wrapper;
10
ffmpeg-1.2.6.tar.bz2/libswscale/x86/swscale.c -> ffmpeg-1.2.7.tar.bz2/libswscale/x86/swscale.c Changed
11
 
1
@@ -271,7 +271,8 @@
2
         "jb                                  1b             \n\t"\
3
         :: "g" (filter),
4
            "r" (dest-offset), "g" ((x86_reg)(dstW+offset)), "m" (offset)
5
-        : "%"REG_d, "%"REG_S, "%"REG_c
6
+        : XMM_CLOBBERS("%xmm0" , "%xmm1" , "%xmm2" , "%xmm3" , "%xmm4" , "%xmm5" , "%xmm7" ,)
7
+         "%"REG_d, "%"REG_S, "%"REG_c
8
     );
9
 }
10
 #endif
11
ffmpeg-1.2.6.tar.bz2/libswscale/x86/swscale_template.c -> ffmpeg-1.2.7.tar.bz2/libswscale/x86/swscale_template.c Changed
359
 
1
@@ -332,7 +332,7 @@
2
     MOVNTQ(   q3, 24(dst, index, 4))\
3
 \
4
     "add      $8, "#index"      \n\t"\
5
-    "cmp "#dstw", "#index"      \n\t"\
6
+    "cmp  "dstw", "#index"      \n\t"\
7
     " jb      1b                \n\t"
8
 #define WRITEBGR32(dst, dstw, index, b, g, r, a, q0, q2, q3, t)  REAL_WRITEBGR32(dst, dstw, index, b, g, r, a, q0, q2, q3, t)
9
 
10
@@ -358,13 +358,13 @@
11
         "psraw                        $3, %%mm1         \n\t"
12
         "psraw                        $3, %%mm7         \n\t"
13
         "packuswb                  %%mm7, %%mm1         \n\t"
14
-        WRITEBGR32(%4, %5, %%REGa, %%mm3, %%mm4, %%mm5, %%mm1, %%mm0, %%mm7, %%mm2, %%mm6)
15
+        WRITEBGR32(%4, "%5", %%REGa, %%mm3, %%mm4, %%mm5, %%mm1, %%mm0, %%mm7, %%mm2, %%mm6)
16
         YSCALEYUV2PACKEDX_END
17
     } else {
18
         YSCALEYUV2PACKEDX_ACCURATE
19
         YSCALEYUV2RGBX
20
         "pcmpeqd %%mm7, %%mm7 \n\t"
21
-        WRITEBGR32(%4, %5, %%REGa, %%mm2, %%mm4, %%mm5, %%mm7, %%mm0, %%mm1, %%mm3, %%mm6)
22
+        WRITEBGR32(%4, "%5", %%REGa, %%mm2, %%mm4, %%mm5, %%mm7, %%mm0, %%mm1, %%mm3, %%mm6)
23
         YSCALEYUV2PACKEDX_END
24
     }
25
 }
26
@@ -387,13 +387,13 @@
27
         "psraw                        $3, %%mm1         \n\t"
28
         "psraw                        $3, %%mm7         \n\t"
29
         "packuswb                  %%mm7, %%mm1         \n\t"
30
-        WRITEBGR32(%4, %5, %%REGa, %%mm2, %%mm4, %%mm5, %%mm1, %%mm0, %%mm7, %%mm3, %%mm6)
31
+        WRITEBGR32(%4, "%5", %%REGa, %%mm2, %%mm4, %%mm5, %%mm1, %%mm0, %%mm7, %%mm3, %%mm6)
32
         YSCALEYUV2PACKEDX_END
33
     } else {
34
         YSCALEYUV2PACKEDX
35
         YSCALEYUV2RGBX
36
         "pcmpeqd %%mm7, %%mm7 \n\t"
37
-        WRITEBGR32(%4, %5, %%REGa, %%mm2, %%mm4, %%mm5, %%mm7, %%mm0, %%mm1, %%mm3, %%mm6)
38
+        WRITEBGR32(%4, "%5", %%REGa, %%mm2, %%mm4, %%mm5, %%mm7, %%mm0, %%mm1, %%mm3, %%mm6)
39
         YSCALEYUV2PACKEDX_END
40
     }
41
 }
42
@@ -422,7 +422,7 @@
43
     MOVNTQ(%%mm1, 8(dst, index, 2))\
44
 \
45
     "add             $8, "#index"   \n\t"\
46
-    "cmp        "#dstw", "#index"   \n\t"\
47
+    "cmp         "dstw", "#index"   \n\t"\
48
     " jb             1b             \n\t"
49
 #define WRITERGB16(dst, dstw, index)  REAL_WRITERGB16(dst, dstw, index)
50
 
51
@@ -446,7 +446,7 @@
52
     "paddusb "GREEN_DITHER"(%0), %%mm4\n\t"
53
     "paddusb "RED_DITHER"(%0), %%mm5\n\t"
54
 #endif
55
-    WRITERGB16(%4, %5, %%REGa)
56
+    WRITERGB16(%4, "%5", %%REGa)
57
     YSCALEYUV2PACKEDX_END
58
 }
59
 
60
@@ -470,7 +470,7 @@
61
     "paddusb "GREEN_DITHER"(%0), %%mm4  \n\t"
62
     "paddusb "RED_DITHER"(%0), %%mm5  \n\t"
63
 #endif
64
-    WRITERGB16(%4, %5, %%REGa)
65
+    WRITERGB16(%4, "%5", %%REGa)
66
     YSCALEYUV2PACKEDX_END
67
 }
68
 
69
@@ -499,7 +499,7 @@
70
     MOVNTQ(%%mm1, 8(dst, index, 2))\
71
 \
72
     "add             $8, "#index"   \n\t"\
73
-    "cmp        "#dstw", "#index"   \n\t"\
74
+    "cmp         "dstw", "#index"   \n\t"\
75
     " jb             1b             \n\t"
76
 #define WRITERGB15(dst, dstw, index)  REAL_WRITERGB15(dst, dstw, index)
77
 
78
@@ -523,7 +523,7 @@
79
     "paddusb "GREEN_DITHER"(%0), %%mm4\n\t"
80
     "paddusb "RED_DITHER"(%0), %%mm5\n\t"
81
 #endif
82
-    WRITERGB15(%4, %5, %%REGa)
83
+    WRITERGB15(%4, "%5", %%REGa)
84
     YSCALEYUV2PACKEDX_END
85
 }
86
 
87
@@ -547,7 +547,7 @@
88
     "paddusb "GREEN_DITHER"(%0), %%mm4  \n\t"
89
     "paddusb "RED_DITHER"(%0), %%mm5  \n\t"
90
 #endif
91
-    WRITERGB15(%4, %5, %%REGa)
92
+    WRITERGB15(%4, "%5", %%REGa)
93
     YSCALEYUV2PACKEDX_END
94
 }
95
 
96
@@ -601,7 +601,7 @@
97
     "add         $24, "#dst"    \n\t"\
98
 \
99
     "add          $8, "#index"  \n\t"\
100
-    "cmp     "#dstw", "#index"  \n\t"\
101
+    "cmp      "dstw", "#index"  \n\t"\
102
     " jb          1b            \n\t"
103
 
104
 #define WRITEBGR24MMXEXT(dst, dstw, index) \
105
@@ -649,7 +649,7 @@
106
     "add      $24, "#dst"       \n\t"\
107
 \
108
     "add       $8, "#index"     \n\t"\
109
-    "cmp  "#dstw", "#index"     \n\t"\
110
+    "cmp   "dstw", "#index"     \n\t"\
111
     " jb       1b               \n\t"
112
 
113
 #if COMPILE_TEMPLATE_MMXEXT
114
@@ -676,7 +676,7 @@
115
     "pxor %%mm7, %%mm7 \n\t"
116
     "lea (%%"REG_a", %%"REG_a", 2), %%"REG_c"\n\t" //FIXME optimize
117
     "add %4, %%"REG_c"                        \n\t"
118
-    WRITEBGR24(%%REGc, %5, %%REGa)
119
+    WRITEBGR24(%%REGc, "%5", %%REGa)
120
     :: "r" (&c->redDither),
121
        "m" (dummy), "m" (dummy), "m" (dummy),
122
        "r" (dest), "m" (dstW_reg), "m"(uv_off)
123
@@ -700,7 +700,7 @@
124
     "pxor                    %%mm7, %%mm7       \n\t"
125
     "lea (%%"REG_a", %%"REG_a", 2), %%"REG_c"   \n\t" //FIXME optimize
126
     "add                        %4, %%"REG_c"   \n\t"
127
-    WRITEBGR24(%%REGc, %5, %%REGa)
128
+    WRITEBGR24(%%REGc, "%5", %%REGa)
129
     :: "r" (&c->redDither),
130
        "m" (dummy), "m" (dummy), "m" (dummy),
131
        "r" (dest),  "m" (dstW_reg), "m"(uv_off)
132
@@ -721,7 +721,7 @@
133
     MOVNTQ(%%mm7, 8(dst, index, 2))\
134
 \
135
     "add          $8, "#index"  \n\t"\
136
-    "cmp     "#dstw", "#index"  \n\t"\
137
+    "cmp      "dstw", "#index"  \n\t"\
138
     " jb          1b            \n\t"
139
 #define WRITEYUY2(dst, dstw, index)  REAL_WRITEYUY2(dst, dstw, index)
140
 
141
@@ -742,7 +742,7 @@
142
     "psraw $3, %%mm4    \n\t"
143
     "psraw $3, %%mm1    \n\t"
144
     "psraw $3, %%mm7    \n\t"
145
-    WRITEYUY2(%4, %5, %%REGa)
146
+    WRITEYUY2(%4, "%5", %%REGa)
147
     YSCALEYUV2PACKEDX_END
148
 }
149
 
150
@@ -763,7 +763,7 @@
151
     "psraw $3, %%mm4    \n\t"
152
     "psraw $3, %%mm1    \n\t"
153
     "psraw $3, %%mm7    \n\t"
154
-    WRITEYUY2(%4, %5, %%REGa)
155
+    WRITEYUY2(%4, "%5", %%REGa)
156
     YSCALEYUV2PACKEDX_END
157
 }
158
 
159
@@ -864,7 +864,7 @@
160
             "psraw                  $3, %%mm1       \n\t" /* abuf0[eax] - abuf1[eax] >>7*/
161
             "psraw                  $3, %%mm7       \n\t" /* abuf0[eax] - abuf1[eax] >>7*/
162
             "packuswb            %%mm7, %%mm1       \n\t"
163
-            WRITEBGR32(%4, 8280(%5), %%r8, %%mm2, %%mm4, %%mm5, %%mm1, %%mm0, %%mm7, %%mm3, %%mm6)
164
+            WRITEBGR32(%4, DSTW_OFFSET"(%5)", %%r8, %%mm2, %%mm4, %%mm5, %%mm1, %%mm0, %%mm7, %%mm3, %%mm6)
165
             :: "c" (buf0), "d" (buf1), "S" (ubuf0), "D" (ubuf1), "r" (dest),
166
                "a" (&c->redDither),
167
                "r" (abuf0), "r" (abuf1)
168
@@ -888,7 +888,7 @@
169
             "packuswb            %%mm7, %%mm1       \n\t"
170
             "pop                    %1              \n\t"
171
             "pop                    %0              \n\t"
172
-            WRITEBGR32(%%REGb, 8280(%5), %%REGBP, %%mm2, %%mm4, %%mm5, %%mm1, %%mm0, %%mm7, %%mm3, %%mm6)
173
+            WRITEBGR32(%%REGb, DSTW_OFFSET"(%5)", %%REGBP, %%mm2, %%mm4, %%mm5, %%mm1, %%mm0, %%mm7, %%mm3, %%mm6)
174
             "pop %%"REG_BP"                         \n\t"
175
             "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
176
             :: "c" (buf0), "d" (buf1), "S" (ubuf0), "D" (ubuf1), "m" (dest),
177
@@ -902,7 +902,7 @@
178
             "push %%"REG_BP"                        \n\t"
179
             YSCALEYUV2RGB(%%REGBP, %5)
180
             "pcmpeqd %%mm7, %%mm7                   \n\t"
181
-            WRITEBGR32(%%REGb, 8280(%5), %%REGBP, %%mm2, %%mm4, %%mm5, %%mm7, %%mm0, %%mm1, %%mm3, %%mm6)
182
+            WRITEBGR32(%%REGb, DSTW_OFFSET"(%5)", %%REGBP, %%mm2, %%mm4, %%mm5, %%mm7, %%mm0, %%mm1, %%mm3, %%mm6)
183
             "pop %%"REG_BP"                         \n\t"
184
             "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
185
             :: "c" (buf0), "d" (buf1), "S" (ubuf0), "D" (ubuf1), "m" (dest),
186
@@ -919,14 +919,13 @@
187
     const int16_t *buf0  = buf[0],  *buf1  = buf[1],
188
                   *ubuf0 = ubuf[0], *ubuf1 = ubuf[1];
189
 
190
-    //Note 8280 == DSTW_OFFSET but the preprocessor can't handle that there :(
191
     __asm__ volatile(
192
         "mov %%"REG_b", "ESP_OFFSET"(%5)        \n\t"
193
         "mov        %4, %%"REG_b"               \n\t"
194
         "push %%"REG_BP"                        \n\t"
195
         YSCALEYUV2RGB(%%REGBP, %5)
196
         "pxor    %%mm7, %%mm7                   \n\t"
197
-        WRITEBGR24(%%REGb, 8280(%5), %%REGBP)
198
+        WRITEBGR24(%%REGb, DSTW_OFFSET"(%5)", %%REGBP)
199
         "pop %%"REG_BP"                         \n\t"
200
         "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
201
         :: "c" (buf0), "d" (buf1), "S" (ubuf0), "D" (ubuf1), "m" (dest),
202
@@ -942,7 +941,6 @@
203
     const int16_t *buf0  = buf[0],  *buf1  = buf[1],
204
                   *ubuf0 = ubuf[0], *ubuf1 = ubuf[1];
205
 
206
-    //Note 8280 == DSTW_OFFSET but the preprocessor can't handle that there :(
207
     __asm__ volatile(
208
         "mov %%"REG_b", "ESP_OFFSET"(%5)        \n\t"
209
         "mov        %4, %%"REG_b"               \n\t"
210
@@ -955,7 +953,7 @@
211
         "paddusb "GREEN_DITHER"(%5), %%mm4      \n\t"
212
         "paddusb "RED_DITHER"(%5), %%mm5      \n\t"
213
 #endif
214
-        WRITERGB15(%%REGb, 8280(%5), %%REGBP)
215
+        WRITERGB15(%%REGb, DSTW_OFFSET"(%5)", %%REGBP)
216
         "pop %%"REG_BP"                         \n\t"
217
         "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
218
         :: "c" (buf0), "d" (buf1), "S" (ubuf0), "D" (ubuf1), "m" (dest),
219
@@ -971,7 +969,6 @@
220
     const int16_t *buf0  = buf[0],  *buf1  = buf[1],
221
                   *ubuf0 = ubuf[0], *ubuf1 = ubuf[1];
222
 
223
-    //Note 8280 == DSTW_OFFSET but the preprocessor can't handle that there :(
224
     __asm__ volatile(
225
         "mov %%"REG_b", "ESP_OFFSET"(%5)        \n\t"
226
         "mov        %4, %%"REG_b"               \n\t"
227
@@ -984,7 +981,7 @@
228
         "paddusb "GREEN_DITHER"(%5), %%mm4      \n\t"
229
         "paddusb "RED_DITHER"(%5), %%mm5      \n\t"
230
 #endif
231
-        WRITERGB16(%%REGb, 8280(%5), %%REGBP)
232
+        WRITERGB16(%%REGb, DSTW_OFFSET"(%5)", %%REGBP)
233
         "pop %%"REG_BP"                         \n\t"
234
         "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
235
         :: "c" (buf0), "d" (buf1), "S" (ubuf0), "D" (ubuf1), "m" (dest),
236
@@ -1040,13 +1037,12 @@
237
     const int16_t *buf0  = buf[0],  *buf1  = buf[1],
238
                   *ubuf0 = ubuf[0], *ubuf1 = ubuf[1];
239
 
240
-    //Note 8280 == DSTW_OFFSET but the preprocessor can't handle that there :(
241
     __asm__ volatile(
242
         "mov %%"REG_b", "ESP_OFFSET"(%5)        \n\t"
243
         "mov %4, %%"REG_b"                        \n\t"
244
         "push %%"REG_BP"                        \n\t"
245
         YSCALEYUV2PACKED(%%REGBP, %5)
246
-        WRITEYUY2(%%REGb, 8280(%5), %%REGBP)
247
+        WRITEYUY2(%%REGb, DSTW_OFFSET"(%5)", %%REGBP)
248
         "pop %%"REG_BP"                         \n\t"
249
         "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
250
         :: "c" (buf0), "d" (buf1), "S" (ubuf0), "D" (ubuf1), "m" (dest),
251
@@ -1189,7 +1185,7 @@
252
                 "push %%"REG_BP"                        \n\t"
253
                 YSCALEYUV2RGB1(%%REGBP, %5)
254
                 YSCALEYUV2RGB1_ALPHA(%%REGBP)
255
-                WRITEBGR32(%%REGb, 8280(%5), %%REGBP, %%mm2, %%mm4, %%mm5, %%mm7, %%mm0, %%mm1, %%mm3, %%mm6)
256
+                WRITEBGR32(%%REGb, DSTW_OFFSET"(%5)", %%REGBP, %%mm2, %%mm4, %%mm5, %%mm7, %%mm0, %%mm1, %%mm3, %%mm6)
257
                 "pop %%"REG_BP"                         \n\t"
258
                 "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
259
                 :: "c" (buf0), "d" (abuf0), "S" (ubuf0), "D" (ubuf1), "m" (dest),
260
@@ -1202,7 +1198,7 @@
261
                 "push %%"REG_BP"                        \n\t"
262
                 YSCALEYUV2RGB1(%%REGBP, %5)
263
                 "pcmpeqd %%mm7, %%mm7                   \n\t"
264
-                WRITEBGR32(%%REGb, 8280(%5), %%REGBP, %%mm2, %%mm4, %%mm5, %%mm7, %%mm0, %%mm1, %%mm3, %%mm6)
265
+                WRITEBGR32(%%REGb, DSTW_OFFSET"(%5)", %%REGBP, %%mm2, %%mm4, %%mm5, %%mm7, %%mm0, %%mm1, %%mm3, %%mm6)
266
                 "pop %%"REG_BP"                         \n\t"
267
                 "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
268
                 :: "c" (buf0), "d" (buf1), "S" (ubuf0), "D" (ubuf1), "m" (dest),
269
@@ -1218,7 +1214,7 @@
270
                 "push %%"REG_BP"                        \n\t"
271
                 YSCALEYUV2RGB1b(%%REGBP, %5)
272
                 YSCALEYUV2RGB1_ALPHA(%%REGBP)
273
-                WRITEBGR32(%%REGb, 8280(%5), %%REGBP, %%mm2, %%mm4, %%mm5, %%mm7, %%mm0, %%mm1, %%mm3, %%mm6)
274
+                WRITEBGR32(%%REGb, DSTW_OFFSET"(%5)", %%REGBP, %%mm2, %%mm4, %%mm5, %%mm7, %%mm0, %%mm1, %%mm3, %%mm6)
275
                 "pop %%"REG_BP"                         \n\t"
276
                 "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
277
                 :: "c" (buf0), "d" (abuf0), "S" (ubuf0), "D" (ubuf1), "m" (dest),
278
@@ -1231,7 +1227,7 @@
279
                 "push %%"REG_BP"                        \n\t"
280
                 YSCALEYUV2RGB1b(%%REGBP, %5)
281
                 "pcmpeqd %%mm7, %%mm7                   \n\t"
282
-                WRITEBGR32(%%REGb, 8280(%5), %%REGBP, %%mm2, %%mm4, %%mm5, %%mm7, %%mm0, %%mm1, %%mm3, %%mm6)
283
+                WRITEBGR32(%%REGb, DSTW_OFFSET"(%5)", %%REGBP, %%mm2, %%mm4, %%mm5, %%mm7, %%mm0, %%mm1, %%mm3, %%mm6)
284
                 "pop %%"REG_BP"                         \n\t"
285
                 "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
286
                 :: "c" (buf0), "d" (buf1), "S" (ubuf0), "D" (ubuf1), "m" (dest),
287
@@ -1257,7 +1253,7 @@
288
             "push %%"REG_BP"                        \n\t"
289
             YSCALEYUV2RGB1(%%REGBP, %5)
290
             "pxor    %%mm7, %%mm7                   \n\t"
291
-            WRITEBGR24(%%REGb, 8280(%5), %%REGBP)
292
+            WRITEBGR24(%%REGb, DSTW_OFFSET"(%5)", %%REGBP)
293
             "pop %%"REG_BP"                         \n\t"
294
             "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
295
             :: "c" (buf0), "d" (buf1), "S" (ubuf0), "D" (ubuf1), "m" (dest),
296
@@ -1271,7 +1267,7 @@
297
             "push %%"REG_BP"                        \n\t"
298
             YSCALEYUV2RGB1b(%%REGBP, %5)
299
             "pxor    %%mm7, %%mm7                   \n\t"
300
-            WRITEBGR24(%%REGb, 8280(%5), %%REGBP)
301
+            WRITEBGR24(%%REGb, DSTW_OFFSET"(%5)", %%REGBP)
302
             "pop %%"REG_BP"                         \n\t"
303
             "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
304
             :: "c" (buf0), "d" (buf1), "S" (ubuf0), "D" (ubuf1), "m" (dest),
305
@@ -1302,7 +1298,7 @@
306
             "paddusb "GREEN_DITHER"(%5), %%mm4      \n\t"
307
             "paddusb "RED_DITHER"(%5), %%mm5      \n\t"
308
 #endif
309
-            WRITERGB15(%%REGb, 8280(%5), %%REGBP)
310
+            WRITERGB15(%%REGb, DSTW_OFFSET"(%5)", %%REGBP)
311
             "pop %%"REG_BP"                         \n\t"
312
             "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
313
             :: "c" (buf0), "d" (buf1), "S" (ubuf0), "D" (ubuf1), "m" (dest),
314
@@ -1322,7 +1318,7 @@
315
             "paddusb "GREEN_DITHER"(%5), %%mm4      \n\t"
316
             "paddusb "RED_DITHER"(%5), %%mm5      \n\t"
317
 #endif
318
-            WRITERGB15(%%REGb, 8280(%5), %%REGBP)
319
+            WRITERGB15(%%REGb, DSTW_OFFSET"(%5)", %%REGBP)
320
             "pop %%"REG_BP"                         \n\t"
321
             "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
322
             :: "c" (buf0), "d" (buf1), "S" (ubuf0), "D" (ubuf1), "m" (dest),
323
@@ -1353,7 +1349,7 @@
324
             "paddusb "GREEN_DITHER"(%5), %%mm4      \n\t"
325
             "paddusb "RED_DITHER"(%5), %%mm5      \n\t"
326
 #endif
327
-            WRITERGB16(%%REGb, 8280(%5), %%REGBP)
328
+            WRITERGB16(%%REGb, DSTW_OFFSET"(%5)", %%REGBP)
329
             "pop %%"REG_BP"                         \n\t"
330
             "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
331
             :: "c" (buf0), "d" (buf1), "S" (ubuf0), "D" (ubuf1), "m" (dest),
332
@@ -1373,7 +1369,7 @@
333
             "paddusb "GREEN_DITHER"(%5), %%mm4      \n\t"
334
             "paddusb "RED_DITHER"(%5), %%mm5      \n\t"
335
 #endif
336
-            WRITERGB16(%%REGb, 8280(%5), %%REGBP)
337
+            WRITERGB16(%%REGb, DSTW_OFFSET"(%5)", %%REGBP)
338
             "pop %%"REG_BP"                         \n\t"
339
             "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
340
             :: "c" (buf0), "d" (buf1), "S" (ubuf0), "D" (ubuf1), "m" (dest),
341
@@ -1434,7 +1430,7 @@
342
             "mov        %4, %%"REG_b"               \n\t"
343
             "push %%"REG_BP"                        \n\t"
344
             YSCALEYUV2PACKED1(%%REGBP, %5)
345
-            WRITEYUY2(%%REGb, 8280(%5), %%REGBP)
346
+            WRITEYUY2(%%REGb, DSTW_OFFSET"(%5)", %%REGBP)
347
             "pop %%"REG_BP"                         \n\t"
348
             "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
349
             :: "c" (buf0), "d" (buf1), "S" (ubuf0), "D" (ubuf1), "m" (dest),
350
@@ -1447,7 +1443,7 @@
351
             "mov        %4, %%"REG_b"               \n\t"
352
             "push %%"REG_BP"                        \n\t"
353
             YSCALEYUV2PACKED1b(%%REGBP, %5)
354
-            WRITEYUY2(%%REGb, 8280(%5), %%REGBP)
355
+            WRITEYUY2(%%REGb, DSTW_OFFSET"(%5)", %%REGBP)
356
             "pop %%"REG_BP"                         \n\t"
357
             "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
358
             :: "c" (buf0), "d" (buf1), "S" (ubuf0), "D" (ubuf1), "m" (dest),
359
ffmpeg-1.2.6.tar.bz2/tests/ref/fate/vc1_sa10143 -> ffmpeg-1.2.7.tar.bz2/tests/ref/fate/vc1_sa10143 Changed
47
 
1
@@ -1,31 +1,31 @@
2
 #tb 0: 1/25
3
 0,          0,          0,        1,   518400, 0x89407f55
4
-0,          2,          2,        1,   518400, 0x8611849c
5
+0,          2,          2,        1,   518400, 0xaa896afd
6
 0,          3,          3,        1,   518400, 0x0e69ff59
7
-0,          4,          4,        1,   518400, 0xf31adb03
8
+0,          4,          4,        1,   518400, 0x0c30bfa0
9
 0,          5,          5,        1,   518400, 0x1a5b6a69
10
-0,          6,          6,        1,   518400, 0x6ae6232e
11
+0,          6,          6,        1,   518400, 0x23470858
12
 0,          7,          7,        1,   518400, 0x9a4e3c54
13
-0,          8,          8,        1,   518400, 0xe5852b45
14
+0,          8,          8,        1,   518400, 0xad63160b
15
 0,          9,          9,        1,   518400, 0x0fcfeebc
16
-0,         10,         10,        1,   518400, 0x06e22dc3
17
+0,         10,         10,        1,   518400, 0x20b31777
18
 0,         11,         11,        1,   518400, 0x9d79df09
19
-0,         12,         12,        1,   518400, 0xcb2c716f
20
+0,         12,         12,        1,   518400, 0x3e86766f
21
 0,         13,         13,        1,   518400, 0x638a8746
22
-0,         14,         14,        1,   518400, 0xf7032efd
23
+0,         14,         14,        1,   518400, 0x7a6c1a0e
24
 0,         15,         15,        1,   518400, 0x306f6cef
25
-0,         16,         16,        1,   518400, 0xe83d2518
26
+0,         16,         16,        1,   518400, 0x81f81281
27
 0,         17,         17,        1,   518400, 0x49ab5bf5
28
-0,         18,         18,        1,   518400, 0x6b336b6f
29
+0,         18,         18,        1,   518400, 0x8f316e44
30
 0,         19,         19,        1,   518400, 0x95ae00c9
31
-0,         20,         20,        1,   518400, 0x68ddb64f
32
+0,         20,         20,        1,   518400, 0xf71bb7f5
33
 0,         21,         21,        1,   518400, 0x5205ea68
34
-0,         22,         22,        1,   518400, 0xb088e617
35
+0,         22,         22,        1,   518400, 0x74a1d8b9
36
 0,         23,         23,        1,   518400, 0xa3217616
37
-0,         24,         24,        1,   518400, 0x1723bc53
38
+0,         24,         24,        1,   518400, 0x2b28bbf8
39
 0,         25,         25,        1,   518400, 0xf024872a
40
-0,         26,         26,        1,   518400, 0x2e81a8bb
41
+0,         26,         26,        1,   518400, 0x2fdbaaf3
42
 0,         27,         27,        1,   518400, 0xa3a2418e
43
-0,         28,         28,        1,   518400, 0xb7beffed
44
+0,         28,         28,        1,   518400, 0x55bfe435
45
 0,         29,         29,        1,   518400, 0x50fb6c94
46
 0,         30,         30,        1,   518400, 0x5584bb40
47
Refresh

No build results available

Refresh

No rpmlint results available

Request History
enzokiel's avatar

enzokiel created request almost 11 years ago

update internal ffmpeg to version 1.2.7


Stefan Botter's avatar

jsjhb accepted request almost 11 years ago

OK