Overview

Request 1236 (accepted)

- update internal ffmpeg to version 1.2.9

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

avidemux3.changes Changed
x
 
1
@@ -1,4 +1,8 @@
2
 -------------------------------------------------------------------
3
+Fri Oct 10 2014 - joerg.lorenzen@ki.tng.de
4
+- update internal ffmpeg to version 1.2.9
5
+
6
+-------------------------------------------------------------------
7
 Fri Aug 22 2014 - joerg.lorenzen@ki.tng.de
8
 - update internal ffmpeg to version 1.2.8
9
 
10
avidemux3.spec Changed
10
 
1
@@ -16,7 +16,7 @@
2
 #
3
 
4
 
5
-%define         ffmpeg_version 1.2.8
6
+%define         ffmpeg_version 1.2.9
7
 
8
 Name:           avidemux3
9
 Summary:        Graphical video editing and transcoding tool
10
ffmpeg-1.2.8.tar.bz2/RELEASE -> ffmpeg-1.2.9.tar.bz2/RELEASE Changed
4
 
1
@@ -1,1 +1,1 @@
2
-1.2.8
3
+1.2.9
4
ffmpeg-1.2.8.tar.bz2/VERSION -> ffmpeg-1.2.9.tar.bz2/VERSION Changed
4
 
1
@@ -1,1 +1,1 @@
2
-1.2.8
3
+1.2.9
4
ffmpeg-1.2.8.tar.bz2/configure -> ffmpeg-1.2.9.tar.bz2/configure Changed
9
 
1
@@ -3750,6 +3750,7 @@
2
 fi
3
 
4
 check_ldflags -Wl,--as-needed
5
+check_ldflags -Wl,-z,noexecstack
6
 
7
 if check_func dlopen; then
8
     ldl=
9
ffmpeg-1.2.8.tar.bz2/doc/Doxyfile -> ffmpeg-1.2.9.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.8
6
+PROJECT_NUMBER         = 1.2.9
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.8.tar.bz2/libavcodec/aac_parser.c -> ffmpeg-1.2.9.tar.bz2/libavcodec/aac_parser.c Changed
10
 
1
@@ -34,7 +34,7 @@
2
     int size;
3
     union {
4
         uint64_t u64;
5
-        uint8_t  u8[8];
6
+        uint8_t  u8[8 + FF_INPUT_BUFFER_PADDING_SIZE];
7
     } tmp;
8
 
9
     tmp.u64 = av_be2ne64(state);
10
ffmpeg-1.2.8.tar.bz2/libavcodec/ac3_parser.c -> ffmpeg-1.2.9.tar.bz2/libavcodec/ac3_parser.c Changed
10
 
1
@@ -147,7 +147,7 @@
2
     int err;
3
     union {
4
         uint64_t u64;
5
-        uint8_t  u8[8];
6
+        uint8_t  u8[8 + FF_INPUT_BUFFER_PADDING_SIZE];
7
     } tmp = { av_be2ne64(state) };
8
     AC3HeaderInfo hdr;
9
     GetBitContext gbc;
10
ffmpeg-1.2.8.tar.bz2/libavcodec/ac3enc_template.c -> ffmpeg-1.2.9.tar.bz2/libavcodec/ac3enc_template.c Changed
10
 
1
@@ -260,7 +260,7 @@
2
                 energy_cpl = energy[blk][CPL_CH][bnd];
3
                 energy_ch = energy[blk][ch][bnd];
4
                 blk1 = blk+1;
5
-                while (!s->blocks[blk1].new_cpl_coords[ch] && blk1 < s->num_blocks) {
6
+                while (blk1 < s->num_blocks && !s->blocks[blk1].new_cpl_coords[ch]) {
7
                     if (s->blocks[blk1].cpl_in_use) {
8
                         energy_cpl += energy[blk1][CPL_CH][bnd];
9
                         energy_ch += energy[blk1][ch][bnd];
10
ffmpeg-1.2.8.tar.bz2/libavcodec/cinepak.c -> ffmpeg-1.2.9.tar.bz2/libavcodec/cinepak.c Changed
10
 
1
@@ -134,7 +134,7 @@
2
     const uint8_t   *eod = (data + size);
3
     uint32_t         flag, mask;
4
     uint8_t         *cb0, *cb1, *cb2, *cb3;
5
-    unsigned int     x, y;
6
+    int             x, y;
7
     char            *ip0, *ip1, *ip2, *ip3;
8
 
9
     flag = 0;
10
ffmpeg-1.2.8.tar.bz2/libavcodec/gifdec.c -> ffmpeg-1.2.9.tar.bz2/libavcodec/gifdec.c Changed
33
 
1
@@ -253,26 +253,21 @@
2
             case 1:
3
                 y1 += 8;
4
                 ptr += linesize * 8;
5
-                if (y1 >= height) {
6
-                    y1 = pass ? 2 : 4;
7
-                    ptr = ptr1 + linesize * y1;
8
-                    pass++;
9
-                }
10
                 break;
11
             case 2:
12
                 y1 += 4;
13
                 ptr += linesize * 4;
14
-                if (y1 >= height) {
15
-                    y1 = 1;
16
-                    ptr = ptr1 + linesize;
17
-                    pass++;
18
-                }
19
                 break;
20
             case 3:
21
                 y1 += 2;
22
                 ptr += linesize * 2;
23
                 break;
24
             }
25
+            while (y1 >= height) {
26
+                y1 = 4 >> pass;
27
+                ptr = ptr1 + linesize * y1;
28
+                pass++;
29
+            }
30
         } else {
31
             ptr += linesize;
32
         }
33
ffmpeg-1.2.8.tar.bz2/libavcodec/h264.c -> ffmpeg-1.2.9.tar.bz2/libavcodec/h264.c Changed
26
 
1
@@ -417,18 +417,18 @@
2
 
3
     if ((h->left_samples_available & 0x8080) != 0x8080) {
4
         mode = left[mode];
5
-        if (is_chroma && (h->left_samples_available & 0x8080)) {
6
-            // mad cow disease mode, aka MBAFF + constrained_intra_pred
7
-            mode = ALZHEIMER_DC_L0T_PRED8x8 +
8
-                   (!(h->left_samples_available & 0x8000)) +
9
-                   2 * (mode == DC_128_PRED8x8);
10
-        }
11
         if (mode < 0) {
12
             av_log(h->avctx, AV_LOG_ERROR,
13
                    "left block unavailable for requested intra mode at %d %d\n",
14
                    h->mb_x, h->mb_y);
15
             return -1;
16
         }
17
+        if (is_chroma && (h->left_samples_available & 0x8080)) {
18
+            // mad cow disease mode, aka MBAFF + constrained_intra_pred
19
+            mode = ALZHEIMER_DC_L0T_PRED8x8 +
20
+                   (!(h->left_samples_available & 0x8000)) +
21
+                   2 * (mode == DC_128_PRED8x8);
22
+        }
23
     }
24
 
25
     return mode;
26
ffmpeg-1.2.8.tar.bz2/libavcodec/jpeglsdec.c -> ffmpeg-1.2.9.tar.bz2/libavcodec/jpeglsdec.c Changed
13
 
1
@@ -207,6 +207,11 @@
2
                 x += stride;
3
             }
4
 
5
+            if (x >= w) {
6
+                av_log(NULL, AV_LOG_ERROR, "run overflow\n");
7
+                return;
8
+            }
9
+
10
             /* decode run termination value */
11
             Rb = R(last, x);
12
             RItype = (FFABS(Ra - Rb) <= state->near) ? 1 : 0;
13
ffmpeg-1.2.8.tar.bz2/libavcodec/libilbc.c -> ffmpeg-1.2.9.tar.bz2/libavcodec/libilbc.c Changed
20
 
1
@@ -98,8 +98,7 @@
2
         return ret;
3
     }
4
 
5
-    WebRtcIlbcfix_DecodeImpl((WebRtc_Word16*) frame->data[0],
6
-                             (const WebRtc_UWord16*) buf, &s->decoder, 1);
7
+    WebRtcIlbcfix_DecodeImpl((int16_t *) frame->data[0], (const uint16_t *) buf, &s->decoder, 1);
8
 
9
     *got_frame_ptr = 1;
10
 
11
@@ -185,7 +184,7 @@
12
     if ((ret = ff_alloc_packet2(avctx, avpkt, 50)) < 0)
13
         return ret;
14
 
15
-    WebRtcIlbcfix_EncodeImpl((WebRtc_UWord16*) avpkt->data, (const WebRtc_Word16*) frame->data[0], &s->encoder);
16
+    WebRtcIlbcfix_EncodeImpl((uint16_t *) avpkt->data, (const int16_t *) frame->data[0], &s->encoder);
17
 
18
     avpkt->size     = s->encoder.no_of_bytes;
19
     *got_packet_ptr = 1;
20
ffmpeg-1.2.8.tar.bz2/libavcodec/mjpegdec.c -> ffmpeg-1.2.9.tar.bz2/libavcodec/mjpegdec.c Changed
53
 
1
@@ -211,7 +211,7 @@
2
 
3
 int ff_mjpeg_decode_sof(MJpegDecodeContext *s)
4
 {
5
-    int len, nb_components, i, width, height, pix_fmt_id;
6
+    int len, nb_components, i, width, height, bits, pix_fmt_id;
7
     int h_count[MAX_COMPONENTS];
8
     int v_count[MAX_COMPONENTS];
9
 
10
@@ -220,14 +220,14 @@
11
 
12
     /* XXX: verify len field validity */
13
     len     = get_bits(&s->gb, 16);
14
-    s->bits = get_bits(&s->gb, 8);
15
+    bits = get_bits(&s->gb, 8);
16
 
17
     if (s->pegasus_rct)
18
-        s->bits = 9;
19
-    if (s->bits == 9 && !s->pegasus_rct)
20
+        bits = 9;
21
+    if (bits == 9 && !s->pegasus_rct)
22
         s->rct  = 1;    // FIXME ugly
23
 
24
-    if (s->bits != 8 && !s->lossless) {
25
+    if (bits != 8 && !s->lossless) {
26
         av_log(s->avctx, AV_LOG_ERROR, "only 8 bits/component accepted\n");
27
         return -1;
28
     }
29
@@ -258,7 +258,7 @@
30
             return AVERROR_INVALIDDATA;
31
         }
32
     }
33
-    if (s->ls && !(s->bits <= 8 || nb_components == 1)) {
34
+    if (s->ls && !(bits <= 8 || nb_components == 1)) {
35
         av_log_missing_feature(s->avctx,
36
                                "For JPEG-LS anything except <= 8 bits/component"
37
                                " or 16-bit gray", 0);
38
@@ -301,12 +301,14 @@
39
 
40
     /* if different size, realloc/alloc picture */
41
     if (   width != s->width || height != s->height
42
+        || bits != s->bits
43
         || memcmp(s->h_count, h_count, sizeof(h_count))
44
         || memcmp(s->v_count, v_count, sizeof(v_count))) {
45
         av_freep(&s->qscale_table);
46
 
47
         s->width      = width;
48
         s->height     = height;
49
+        s->bits       = bits;
50
         memcpy(s->h_count, h_count, sizeof(h_count));
51
         memcpy(s->v_count, v_count, sizeof(v_count));
52
         s->interlaced = 0;
53
ffmpeg-1.2.8.tar.bz2/libavcodec/mmvideo.c -> ffmpeg-1.2.9.tar.bz2/libavcodec/mmvideo.c Changed
10
 
1
@@ -109,7 +109,7 @@
2
 
3
         if (color) {
4
             memset(s->frame.data[0] + y*s->frame.linesize[0] + x, color, run_length);
5
-            if (half_vert)
6
+            if (half_vert && y + half_vert < s->avctx->height)
7
                 memset(s->frame.data[0] + (y+1)*s->frame.linesize[0] + x, color, run_length);
8
         }
9
         x+= run_length;
10
ffmpeg-1.2.8.tar.bz2/libavcodec/mpegvideo.c -> ffmpeg-1.2.9.tar.bz2/libavcodec/mpegvideo.c Changed
31
 
1
@@ -1086,6 +1086,9 @@
2
 {
3
     int i, err = 0;
4
 
5
+    if (!s->context_initialized)
6
+        return AVERROR(EINVAL);
7
+
8
     if (s->slice_context_count > 1) {
9
         for (i = 0; i < s->slice_context_count; i++) {
10
             free_duplicate_context(s->thread_context[i]);
11
@@ -1114,8 +1117,8 @@
12
         s->mb_height = (s->height + 15) / 16;
13
 
14
     if ((s->width || s->height) &&
15
-        av_image_check_size(s->width, s->height, 0, s->avctx))
16
-        return AVERROR_INVALIDDATA;
17
+        (err = av_image_check_size(s->width, s->height, 0, s->avctx)) < 0)
18
+        goto fail;
19
 
20
     if ((err = init_context_frame(s)))
21
         goto fail;
22
@@ -1131,7 +1134,7 @@
23
             }
24
 
25
             for (i = 0; i < nb_slices; i++) {
26
-                if (init_duplicate_context(s->thread_context[i]) < 0)
27
+                if ((err = init_duplicate_context(s->thread_context[i])) < 0)
28
                     goto fail;
29
                     s->thread_context[i]->start_mb_y =
30
                         (s->mb_height * (i) + nb_slices / 2) / nb_slices;
31
ffmpeg-1.2.8.tar.bz2/libavcodec/pngdec.c -> ffmpeg-1.2.9.tar.bz2/libavcodec/pngdec.c Changed
22
 
1
@@ -631,7 +631,7 @@
2
                 } else if ((s->bits_per_pixel == 1 || s->bits_per_pixel == 2 || s->bits_per_pixel == 4 || s->bits_per_pixel == 8) &&
3
                            s->color_type == PNG_COLOR_TYPE_PALETTE) {
4
                     avctx->pix_fmt = AV_PIX_FMT_PAL8;
5
-                } else if (s->bit_depth == 1) {
6
+                } else if (s->bit_depth == 1 && s->bits_per_pixel == 1) {
7
                     avctx->pix_fmt = AV_PIX_FMT_MONOBLACK;
8
                 } else if (s->bit_depth == 8 &&
9
                            s->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
10
@@ -842,9 +842,10 @@
11
             int i, j;
12
             uint8_t *pd      = s->current_picture->data[0];
13
             uint8_t *pd_last = s->last_picture->data[0];
14
+            int ls = FFMIN(av_image_get_linesize(s->current_picture->format, s->width, 0), s->width * s->bpp);
15
 
16
             for (j = 0; j < s->height; j++) {
17
-                for (i = 0; i < s->width * s->bpp; i++) {
18
+                for (i = 0; i < ls; i++) {
19
                     pd[i] += pd_last[i];
20
                 }
21
                 pd      += s->image_linesize;
22
ffmpeg-1.2.8.tar.bz2/libavcodec/qpeg.c -> ffmpeg-1.2.9.tar.bz2/libavcodec/qpeg.c Changed
10
 
1
@@ -163,7 +163,7 @@
2
 
3
                     /* check motion vector */
4
                     if ((me_x + filled < 0) || (me_x + me_w + filled > width) ||
5
-                       (height - me_y - me_h < 0) || (height - me_y > orig_height) ||
6
+                       (height - me_y - me_h < 0) || (height - me_y >= orig_height) ||
7
                        (filled + me_w > width) || (height - me_h < 0))
8
                         av_log(NULL, AV_LOG_ERROR, "Bogus motion vector (%i,%i), block size %ix%i at %i,%i\n",
9
                                me_x, me_y, me_w, me_h, filled, height);
10
ffmpeg-1.2.8.tar.bz2/libavcodec/ra144enc.c -> ffmpeg-1.2.9.tar.bz2/libavcodec/ra144enc.c Changed
9
 
1
@@ -34,7 +34,6 @@
2
 #include "celp_filters.h"
3
 #include "ra144.h"
4
 
5
-
6
 static av_cold int ra144_encode_close(AVCodecContext *avctx)
7
 {
8
     RA144Context *ractx = avctx->priv_data;
9
ffmpeg-1.2.8.tar.bz2/libavcodec/smc.c -> ffmpeg-1.2.9.tar.bz2/libavcodec/smc.c Changed
10
 
1
@@ -69,7 +69,7 @@
2
         row_ptr += stride * 4; \
3
     } \
4
     total_blocks--; \
5
-    if (total_blocks < 0) \
6
+    if (total_blocks < 0 + !!n_blocks) \
7
     { \
8
         av_log(s->avctx, AV_LOG_INFO, "warning: block counter just went negative (this should not happen)\n"); \
9
         return; \
10
ffmpeg-1.2.8.tar.bz2/libavcodec/snow.h -> ffmpeg-1.2.9.tar.bz2/libavcodec/snow.h Changed
24
 
1
@@ -652,7 +652,10 @@
2
                 if(v){
3
                     v= 2*(get_symbol2(&s->c, b->state[context + 2], context-4) + 1);
4
                     v+=get_rac(&s->c, &b->state[0][16 + 1 + 3 + ff_quant3bA[l&0xFF] + 3*ff_quant3bA[t&0xFF]]);
5
-
6
+                    if ((uint16_t)v != v) {
7
+                        av_log(s->avctx, AV_LOG_ERROR, "Coefficient damaged\n");
8
+                        v = 1;
9
+                    }
10
                     xc->x=x;
11
                     (xc++)->coeff= v;
12
                 }
13
@@ -662,6 +665,10 @@
14
                     else           run= INT_MAX;
15
                     v= 2*(get_symbol2(&s->c, b->state[0 + 2], 0-4) + 1);
16
                     v+=get_rac(&s->c, &b->state[0][16 + 1 + 3]);
17
+                    if ((uint16_t)v != v) {
18
+                        av_log(s->avctx, AV_LOG_ERROR, "Coefficient damaged\n");
19
+                        v = 1;
20
+                    }
21
 
22
                     xc->x=x;
23
                     (xc++)->coeff= v;
24
ffmpeg-1.2.8.tar.bz2/libavcodec/tiff.c -> ffmpeg-1.2.9.tar.bz2/libavcodec/tiff.c Changed
32
 
1
@@ -716,13 +716,13 @@
2
         s->height = value;
3
         break;
4
     case TIFF_BPP:
5
-        s->bppcount = count;
6
-        if (count > 4) {
7
+        if (count > 4U) {
8
             av_log(s->avctx, AV_LOG_ERROR,
9
                    "This format is not supported (bpp=%d, %d components)\n",
10
-                   s->bpp, count);
11
+                   value, count);
12
             return AVERROR_INVALIDDATA;
13
         }
14
+        s->bppcount = count;
15
         if (count == 1)
16
             s->bpp = value;
17
         else {
18
@@ -743,6 +743,13 @@
19
                 s->bpp = -1;
20
             }
21
         }
22
+        if (s->bpp > 64U) {
23
+            av_log(s->avctx, AV_LOG_ERROR,
24
+                   "This format is not supported (bpp=%d, %d components)\n",
25
+                   s->bpp, count);
26
+            s->bpp = 0;
27
+            return AVERROR_INVALIDDATA;
28
+        }
29
         break;
30
     case TIFF_SAMPLES_PER_PIXEL:
31
         if (count != 1) {
32
ffmpeg-1.2.8.tar.bz2/libavcodec/utils.c -> ffmpeg-1.2.9.tar.bz2/libavcodec/utils.c Changed
21
 
1
@@ -244,6 +244,8 @@
2
     case AV_PIX_FMT_GBRP12BE:
3
     case AV_PIX_FMT_GBRP14LE:
4
     case AV_PIX_FMT_GBRP14BE:
5
+    case AV_PIX_FMT_GBRP16LE:
6
+    case AV_PIX_FMT_GBRP16BE:
7
         w_align = 16; //FIXME assume 16 pixel per macroblock
8
         h_align = 16 * 2; // interlaced needs 2 macroblocks height
9
         break;
10
@@ -272,6 +274,10 @@
11
             w_align = 4;
12
             h_align = 4;
13
         }
14
+        if (s->codec_id == AV_CODEC_ID_JV) {
15
+            w_align = 8;
16
+            h_align = 8;
17
+        }
18
         break;
19
     case AV_PIX_FMT_BGR24:
20
         if ((s->codec_id == AV_CODEC_ID_MSZH) ||
21
ffmpeg-1.2.8.tar.bz2/libavcodec/x86/dsputil.asm -> ffmpeg-1.2.9.tar.bz2/libavcodec/x86/dsputil.asm Changed
11
 
1
@@ -61,6 +61,9 @@
2
 %endif
3
     paddd   m2, m0
4
     movd   eax, m2
5
+%if mmsize == 8
6
+    emms
7
+%endif
8
     RET
9
 
10
 ; int scalarproduct_and_madd_int16(int16_t *v1, int16_t *v2, int16_t *v3, int order, int mul)
11
ffmpeg-1.2.8.tar.bz2/libavdevice/bktr.c -> ffmpeg-1.2.9.tar.bz2/libavdevice/bktr.c Changed
10
 
1
@@ -3,7 +3,7 @@
2
  * Copyright (c) 2002 Steve O'Hara-Smith
3
  * based on
4
  *           Linux video grab interface
5
- *           Copyright (c) 2000,2001 Gerard Lantau
6
+ *           Copyright (c) 2000, 2001 Fabrice Bellard
7
  * and
8
  *           simple_grab.c Copyright (c) 1999 Roger Hardiman
9
  *
10
ffmpeg-1.2.8.tar.bz2/libavformat/apetag.c -> ffmpeg-1.2.9.tar.bz2/libavformat/apetag.c Changed
14
 
1
@@ -51,8 +51,10 @@
2
         av_log(s, AV_LOG_WARNING, "Invalid APE tag key '%s'.\n", key);
3
         return -1;
4
     }
5
-    if (size >= UINT_MAX)
6
-        return -1;
7
+    if (size > INT32_MAX - FF_INPUT_BUFFER_PADDING_SIZE) {
8
+        av_log(s, AV_LOG_ERROR, "APE tag size too large.\n");
9
+        return AVERROR_INVALIDDATA;
10
+    }
11
     if (flags & APE_TAG_FLAG_IS_BINARY) {
12
         uint8_t filename[1024];
13
         enum AVCodecID id;
14
ffmpeg-1.2.8.tar.bz2/libavformat/m4vdec.c -> ffmpeg-1.2.9.tar.bz2/libavformat/m4vdec.c Changed
20
 
1
@@ -33,13 +33,15 @@
2
 
3
     for(i=0; i<probe_packet->buf_size; i++){
4
         temp_buffer = (temp_buffer<<8) + probe_packet->buf[i];
5
-        if ((temp_buffer & 0xffffff00) != 0x100)
6
+        if (temp_buffer & 0xfffffe00)
7
+            continue;
8
+        if (temp_buffer < 2)
9
             continue;
10
 
11
         if (temp_buffer == VOP_START_CODE)                         VOP++;
12
         else if (temp_buffer == VISUAL_OBJECT_START_CODE)          VISO++;
13
-        else if (temp_buffer < 0x120)                              VO++;
14
-        else if (temp_buffer < 0x130)                              VOL++;
15
+        else if (temp_buffer >= 0x100 && temp_buffer < 0x120)      VO++;
16
+        else if (temp_buffer >= 0x120 && temp_buffer < 0x130)      VOL++;
17
         else if (   !(0x1AF < temp_buffer && temp_buffer < 0x1B7)
18
                  && !(0x1B9 < temp_buffer && temp_buffer < 0x1C4)) res++;
19
     }
20
ffmpeg-1.2.8.tar.bz2/libavformat/mpegts.c -> ffmpeg-1.2.9.tar.bz2/libavformat/mpegts.c Changed
10
 
1
@@ -1695,7 +1695,7 @@
2
                 break;
3
             desc_len = get8(&p, desc_list_end);
4
             desc_end = p + desc_len;
5
-            if (desc_end > desc_list_end)
6
+            if (desc_len < 0 || desc_end > desc_list_end)
7
                 break;
8
 
9
             av_dlog(ts->stream, "tag: 0x%02x len=%d\n",
10
ffmpeg-1.2.8.tar.bz2/libavformat/swfdec.c -> ffmpeg-1.2.9.tar.bz2/libavformat/swfdec.c Changed
57
 
1
@@ -283,6 +283,7 @@
2
             const int bmp_fmt = avio_r8(pb);
3
             const int width   = avio_rl16(pb);
4
             const int height  = avio_rl16(pb);
5
+            int pix_fmt;
6
 
7
             len -= 2+1+2+2;
8
 
9
@@ -347,17 +348,21 @@
10
                 avpriv_set_pts_info(vst, 64, 256, swf->frame_rate);
11
                 st = vst;
12
             }
13
-            st->codec->width  = width;
14
-            st->codec->height = height;
15
 
16
             if ((res = av_new_packet(pkt, out_len - colormapsize * colormapbpp)) < 0)
17
                 goto bitmap_end;
18
+            if (!st->codec->width && !st->codec->height) {
19
+                st->codec->width  = width;
20
+                st->codec->height = height;
21
+            } else {
22
+                ff_add_param_change(pkt, 0, 0, 0, width, height);
23
+            }
24
             pkt->pos = pos;
25
             pkt->stream_index = st->index;
26
 
27
             switch (bmp_fmt) {
28
             case 3:
29
-                st->codec->pix_fmt = AV_PIX_FMT_PAL8;
30
+                pix_fmt = AV_PIX_FMT_PAL8;
31
                 for (i = 0; i < colormapsize; i++)
32
                     if (alpha_bmp)  colormap[i] = buf[3]<<24 | AV_RB24(buf + 4*i);
33
                     else            colormap[i] = 0xffU <<24 | AV_RB24(buf + 3*i);
34
@@ -369,14 +374,20 @@
35
                 memcpy(pal, colormap, AVPALETTE_SIZE);
36
                 break;
37
             case 4:
38
-                st->codec->pix_fmt = AV_PIX_FMT_RGB555;
39
+                pix_fmt = AV_PIX_FMT_RGB555;
40
                 break;
41
             case 5:
42
-                st->codec->pix_fmt = alpha_bmp ? AV_PIX_FMT_ARGB : AV_PIX_FMT_0RGB;
43
+                pix_fmt = alpha_bmp ? AV_PIX_FMT_ARGB : AV_PIX_FMT_0RGB;
44
                 break;
45
             default:
46
                 av_assert0(0);
47
             }
48
+            if (st->codec->pix_fmt != AV_PIX_FMT_NONE && st->codec->pix_fmt != pix_fmt) {
49
+                av_log(s, AV_LOG_ERROR, "pixel format change unsupported\n");
50
+                res = AVERROR_PATCHWELCOME;
51
+                goto bitmap_end;
52
+            }
53
+            st->codec->pix_fmt = pix_fmt;
54
 
55
             if (linesize * height > pkt->size) {
56
                 res = AVERROR_INVALIDDATA;
57
ffmpeg-1.2.8.tar.bz2/libavutil/x86/cpu.c -> ffmpeg-1.2.9.tar.bz2/libavutil/x86/cpu.c Changed
10
 
1
@@ -44,7 +44,7 @@
2
         "cpuid                       \n\t"                      \
3
         "xchg   %%"REG_b", %%"REG_S                             \
4
         : "=a" (eax), "=S" (ebx), "=c" (ecx), "=d" (edx)        \
5
-        : "0" (index))
6
+        : "0" (index), "2"(0))
7
 
8
 #define xgetbv(index, eax, edx)                                 \
9
     __asm__ (".byte 0x0f, 0x01, 0xd0" : "=a"(eax), "=d"(edx) : "c" (index))
10
ffmpeg-1.2.8.tar.bz2/libswresample/swresample.c -> ffmpeg-1.2.9.tar.bz2/libswresample/swresample.c Changed
10
 
1
@@ -751,6 +751,8 @@
2
         in_count = 0;
3
         if(ret>0) {
4
             s->drop_output -= ret;
5
+            if (!s->drop_output && !out_arg)
6
+                return 0;
7
             continue;
8
         }
9
 
10
Refresh

No build results available

Refresh

No rpmlint results available

Request History
enzokiel's avatar

enzokiel created request over 10 years ago

- update internal ffmpeg to version 1.2.9


Olaf Hering's avatar

olh accepted request over 10 years ago

Maybe there is a chance to change all/most BuildRequires: from somelib-devel to pkgconfig(somelib), that may fix build in older dists. And make gtk3 optional, if possible.