Package: libavcodec52
Version: 4:0.6.2-4
Severity: important
Tags: patch

Yesterday mplayer crashed trying to play a WMV file:

,----
| Program received signal SIGSEGV, Segmentation fault.
| ff_imdct_calc_sse (s=0xf535d4b0, output=0xf53594b0, input=0xf53554b0) at 
/build/buildd-libav_0.6.2-4-i386-T5vqZ8/libav-0.6.2/libavcodec/x86/fft_sse.c:185
| 185   
/build/buildd-libav_0.6.2-4-i386-T5vqZ8/libav-0.6.2/libavcodec/x86/fft_sse.c: 
Datei oder Verzeichnis nicht gefunden.
|       in 
/build/buildd-libav_0.6.2-4-i386-T5vqZ8/libav-0.6.2/libavcodec/x86/fft_sse.c
| (gdb) bt full
| #0  ff_imdct_calc_sse (s=0xf535d4b0, output=0xf53594b0, input=0xf53554b0) at 
/build/buildd-libav_0.6.2-4-i386-T5vqZ8/libav-0.6.2/libavcodec/x86/fft_sse.c:185
|         j = -4096
|         k = 4080
|         n = 4096
|         n4 = 1024
| #1  0xf6e2b270 in ff_imdct_calc (s=0xf534d020, samples=0xf5375020) at 
/build/buildd-libav_0.6.2-4-i386-T5vqZ8/libav-0.6.2/libavcodec/fft.h:140
| No locals.
| #2  wma_decode_block (s=0xf534d020, samples=0xf5375020) at 
/build/buildd-libav_0.6.2-4-i386-T5vqZ8/libav-0.6.2/libavcodec/wmadec.c:750
|         n4 = 1024
|         index = <value optimized out>
|         a = <value optimized out>
|         bsize = 0
|         total_gain = <value optimized out>
|         mdct_norm = <value optimized out>
|         n = <value optimized out>
|         v = <value optimized out>
|         ch = <value optimized out>
|         coef_nb_bits = <value optimized out>
|         nb_coefs = {1864, 1864}
| #3  wma_decode_frame (s=0xf534d020, samples=0xf5375020) at 
/build/buildd-libav_0.6.2-4-i386-T5vqZ8/libav-0.6.2/libavcodec/wmadec.c:783
|         i = <value optimized out>
|         n = <value optimized out>
|         ch = <value optimized out>
|         incr = <value optimized out>
|         ptr = <value optimized out>
|         iptr = <value optimized out>
| #4  0xf6e2bf19 in wma_decode_superframe (avctx=0x8541520, data=0xf5375020, 
data_size=0xffffb888, avpkt=0xffffb83c) at 
/build/buildd-libav_0.6.2-4-i386-T5vqZ8/libav-0.6.2/libavcodec/wmadec.c:897
|         buf = 0x84e3430 "\a"
|         buf_size = 2230
|         s = 0xf534d020
|         nb_frames = 6
|         bit_offset = 8
|         i = <value optimized out>
|         pos = <value optimized out>
|         len = <value optimized out>
|         q = <value optimized out>
|         samples = 0xf5375020
| #5  0xf6de8e2d in avcodec_decode_audio3 (avctx=0x8541520, samples=0xf5375020, 
frame_size_ptr=0xffffb888, avpkt=0xffffb83c) at 
/build/buildd-libav_0.6.2-4-i386-T5vqZ8/libav-0.6.2/libavcodec/utils.c:656
|         ret = <value optimized out>
| #6  0x08202ff5 in decode_audio (sh_audio=0x84e1528, buf=0xf5375020 "", 
minlen=1, maxlen=257536) at libmpcodecs/ad_ffmpeg.c:214
|         pkt = {pts = -9223372036854775808, dts = -9223372036854775808, data = 
0x84e3430 "\a", size = 2230, stream_index = 0, flags = 0, duration = 0, 
destruct = 0, priv = 0x0, pos = -1, convergence_duration = 0}
|         len2 = 257536
|         pts = 3.0640000000000001
|         x = 2230
|         start = 0x84e3430 "\a"
|         y = <value optimized out>
|         len = <value optimized out>
| #7  0x08203371 in init (sh_audio=0x84e1528) at libmpcodecs/ad_ffmpeg.c:131
|         tries = 0
|         x = <value optimized out>
|         lavc_context = 0x8541520
|         lavc_codec = <value optimized out>
| #8  0x0812bb8c in init_audio_codec (sh_audio=0x84e1528, codecname=<value 
optimized out>, afm=<value optimized out>, status=2, selected=0xffffb97c) at 
libmpcodecs/dec_audio.c:107
| No locals.
| #9  init_audio (sh_audio=0x84e1528, codecname=<value optimized out>, 
afm=<value optimized out>, status=2, selected=0xffffb97c) at 
libmpcodecs/dec_audio.c:229
|         mpadec = 0x83d2ebc
|         i = 3
|         orig_fourcc = 353
|         force = 0
| #10 0x0812bed7 in init_best_audio_codec (sh_audio=0x84e1528, 
audio_codec_list=0xffffb974, audio_fm_list=0x0) at libmpcodecs/dec_audio.c:282
|         status = 2
|         selected = 0x85093e8
|         ac_l_default = {0x82c0f0a "", 0x0}
| #11 0x0809d9f9 in reinit_audio_chain () at mplayer.c:1664
| No locals.
| #12 0x0809f82a in main (argc=2, argv=0xffffdb14) at mplayer.c:3679
|         frame_time_remaining = <value optimized out>
|         blit_frame = 0
|         mem_ptr = <value optimized out>
|         opt_exit = <value optimized out>
|         i = <value optimized out>
| (gdb) 
`----

This has been triggered by the recent recompilation of libav with
gcc-4.6.  The bug has been fixed upstream in commit 770c410fb, a
backport of the patch that works for me is attached.


-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (101, 'experimental')
Architecture: i386 (x86_64)

Kernel: Linux 3.0.0-nouveau (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages libavcodec52 depends on:
ii  libavutil50             4:0.6.2-4        Libav utility library
ii  libc6                   2.13-10          Embedded GNU C Library: Shared lib
ii  libdirac-encoder0       1.0.2-4          open and royalty free high quality
ii  libfaad2                2.7-6            freeware Advanced Audio Decoder - 
ii  libgsm1                 1.0.13-3         Shared libraries for GSM speech co
ii  libopenjpeg2            1.3+dfsg-4       JPEG 2000 image compression/decomp
ii  libschroedinger-1.0-0   1.0.10-2.1       library for encoding/decoding of D
ii  libspeex1               1.2~rc1-1        The Speex codec runtime library
ii  libtheora0              1.1.1+dfsg.1-3   The Theora Video Compression Codec
ii  libva1                  1.0.12-2         Video Acceleration (VA) API for Li
ii  libvorbis0a             1.3.2-1          The Vorbis General Audio Compressi
ii  libvorbisenc2           1.3.2-1          The Vorbis General Audio Compressi
ii  libvpx0                 0.9.6-1          VP8 video codec (shared library)
ii  zlib1g                  1:1.2.3.4.dfsg-3 compression library - runtime

libavcodec52 recommends no packages.

libavcodec52 suggests no packages.

-- no debconf information

>From 770c410fbb8e1b87ce8ad7f3d7eddaa55e2b8295 Mon Sep 17 00:00:00 2001
From: Alex Converse <alex.conve...@gmail.com>
Date: Sun, 30 Jan 2011 01:04:41 -0800
Subject: [PATCH] Fix ff_imdct_calc_sse() on gcc-4.6

Gcc 4.6 only preserves the first value when using an array with an "m"
constraint.

Signed-off-by: Mans Rullgard <m...@mansr.com>
---
 libavcodec/x86/fft_sse.c |    7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

--- a/libavcodec/x86/fft_sse.c
+++ b/libavcodec/x86/fft_sse.c
@@ -23,7 +23,7 @@
 #include "libavcodec/dsputil.h"
 #include "fft.h"
 
-DECLARE_ALIGNED(16, static const int, m1m1m1m1)[4] =
+DECLARE_ASM_CONST(16, int, ff_m1m1m1m1)[4] =
     { 1 << 31, 1 << 31, 1 << 31, 1 << 31 };
 
 void ff_fft_dispatch_sse(FFTComplex *z, int nbits);
@@ -183,7 +183,7 @@
     j = -n;
     k = n-16;
     __asm__ volatile(
-        "movaps %4, %%xmm7 \n"
+        "movaps "MANGLE(ff_m1m1m1m1)", %%xmm7 \n"
         "1: \n"
         "movaps       (%2,%1), %%xmm0 \n"
         "movaps       (%3,%0), %%xmm1 \n"
@@ -196,8 +196,7 @@
         "add $16, %0 \n"
         "jl 1b \n"
         :"+r"(j), "+r"(k)
-        :"r"(output+n4), "r"(output+n4*3),
-         "m"(*m1m1m1m1)
+        :"r"(output+n4), "r"(output+n4*3)
     );
 }
 
_______________________________________________
pkg-multimedia-maintainers mailing list
pkg-multimedia-maintainers@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-multimedia-maintainers

Reply via email to