r183 - in unstable/vlc/debian: . patches

Samuel Hocevar sho at alioth.debian.org
Wed Mar 14 14:23:12 CET 2007


Author: sho
Date: 2007-03-12 15:41:35 +0000 (Mon, 12 Mar 2007)
New Revision: 183

Added:
   unstable/vlc/debian/patches/030_audio_format_crash.diff
Modified:
   unstable/vlc/debian/changelog
   unstable/vlc/debian/patches/series
Log:
  * debian/patches/030_audio_format_crash.diff:
    + Patch from upstream to fix multiple crashes with audio conversions.


Modified: unstable/vlc/debian/changelog
===================================================================
--- unstable/vlc/debian/changelog	2007-03-12 15:39:15 UTC (rev 182)
+++ unstable/vlc/debian/changelog	2007-03-12 15:41:35 UTC (rev 183)
@@ -1,3 +1,10 @@
+vlc (0.8.6.a.debian-3) unstable; urgency=low
+
+  * debian/patches/030_audio_format_crash.diff:
+    + Patch from upstream to fix multiple crashes with audio conversions.
+
+ -- Sam Hocevar (Debian packages) <sam+deb at zoy.org>  Mon, 12 Mar 2007 16:41:06 +0100
+
 vlc (0.8.6.a.debian-2) unstable; urgency=high
 
   * debian/patches/021_x264_powerpc.diff:

Added: unstable/vlc/debian/patches/030_audio_format_crash.diff
===================================================================
--- unstable/vlc/debian/patches/030_audio_format_crash.diff	2007-03-12 15:39:15 UTC (rev 182)
+++ unstable/vlc/debian/patches/030_audio_format_crash.diff	2007-03-12 15:41:35 UTC (rev 183)
@@ -0,0 +1,213 @@
+Index: vlc/modules/audio_filter/format.c
+===================================================================
+--- vlc/modules/audio_filter/format.c	(revision 19298)
++++ vlc/modules/audio_filter/format.c	(revision 19300)
+@@ -244,7 +244,7 @@
+     uint8_t *p_out = (uint8_t *)p_in;
+     int32_t out;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer / 4; i--; )
+     {
+         if ( *p_in >= 1.0 ) out = 8388607;
+         else if ( *p_in < -1.0 ) out = -8388608;
+@@ -271,7 +271,7 @@
+     float *p_in = (float *)p_block->p_buffer;
+     int16_t *p_out = (int16_t *)p_in;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer / 4; i--; )
+     {
+ #if 0
+         /* Slow version. */
+@@ -299,7 +299,7 @@
+     float *p_in = (float *)p_block->p_buffer;
+     uint16_t *p_out = (uint16_t *)p_in;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer / 4; i--; )
+     {
+         if ( *p_in >= 1.0 ) *p_out = 65535;
+         else if ( *p_in < -1.0 ) *p_out = 0;
+@@ -319,7 +319,7 @@
+     int i;
+ 
+     p_block_out =
+-        p_filter->pf_audio_buffer_new( p_filter, p_block->i_buffer*4/3 );
++        p_filter->pf_audio_buffer_new( p_filter, p_block->i_buffer * 4 / 3 );
+     if( !p_block_out )
+     {
+         msg_Warn( p_filter, "can't get output buffer" );
+@@ -329,8 +329,9 @@
+     p_in = p_block->p_buffer;
+     p_out = (float *)p_block_out->p_buffer;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer / 3; i--; )
+     {
++        /* FIXME: unaligned reads */
+ #ifdef WORDS_BIGENDIAN
+         *p_out = ((float)( (((int32_t)*(int16_t *)(p_in)) << 8) + p_in[2]))
+ #else
+@@ -357,7 +358,7 @@
+     uint8_t *p_in = (uint8_t *)p_block->p_buffer;
+     uint8_t *p_out = (uint8_t *)p_in;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer / 3; i--; )
+     {
+ #ifdef WORDS_BIGENDIAN
+         *p_out++ = *p_in++;
+@@ -392,7 +393,7 @@
+     p_in = (int16_t *)p_block->p_buffer;
+     p_out = (float *)p_block_out->p_buffer;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer / 2; i--; )
+     {
+ #if 0
+         /* Slow version */
+@@ -422,7 +423,7 @@
+ static block_t *U16toFloat32( filter_t *p_filter, block_t *p_block )
+ {
+     block_t *p_block_out;
+-    int16_t *p_in;
++    uint16_t *p_in;
+     float *p_out;
+     int i;
+ 
+@@ -434,10 +435,10 @@
+         return NULL;
+     }
+ 
+-    p_in = (int16_t *)p_block->p_buffer;
++    p_in = (uint16_t *)p_block->p_buffer;
+     p_out = (float *)p_block_out->p_buffer;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer / 2; i--; )
+     {
+         *p_out++ = (float)(*p_in++ - 32768) / 32768.0;
+     }
+@@ -469,7 +470,7 @@
+     p_in = (uint8_t *)p_block->p_buffer;
+     p_out = (uint8_t *)p_block_out->p_buffer;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer / 2; i--; )
+     {
+ #ifdef WORDS_BIGENDIAN
+         *p_out++ = *p_in++;
+@@ -498,7 +499,7 @@
+     int16_t *p_in = (int16_t *)p_block->p_buffer;
+     int8_t *p_out = (int8_t *)p_in;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer / 2; i--; )
+         *p_out++ = (*p_in++) >> 8;
+ 
+     p_block->i_buffer /= 2;
+@@ -510,7 +511,7 @@
+     int16_t *p_in = (int16_t *)p_block->p_buffer;
+     uint8_t *p_out = (uint8_t *)p_in;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer / 2; i--; )
+         *p_out++ = ((*p_in++) + 32768) >> 8;
+ 
+     p_block->i_buffer /= 2;
+@@ -522,7 +523,7 @@
+     int16_t *p_in = (int16_t *)p_block->p_buffer;
+     uint16_t *p_out = (uint16_t *)p_in;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer / 2; i--; )
+         *p_out++ = (*p_in++) + 32768;
+ 
+     return p_block;
+@@ -534,7 +535,7 @@
+     uint16_t *p_in = (uint16_t *)p_block->p_buffer;
+     int8_t *p_out = (int8_t *)p_in;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer / 2; i--; )
+         *p_out++ = ((int)(*p_in++) - 32768) >> 8;
+ 
+     p_block->i_buffer /= 2;
+@@ -546,7 +547,7 @@
+     uint16_t *p_in = (uint16_t *)p_block->p_buffer;
+     uint8_t *p_out = (uint8_t *)p_in;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer / 2; i--; )
+         *p_out++ = (*p_in++) >> 8;
+ 
+     p_block->i_buffer /= 2;
+@@ -555,10 +556,10 @@
+ static block_t *U16toS16( filter_t *p_filter, block_t *p_block )
+ {
+     int i;
+-    int16_t *p_in = (int16_t *)p_block->p_buffer;
+-    uint16_t *p_out = (uint16_t *)p_in;
++    uint16_t *p_in = (uint16_t *)p_block->p_buffer;
++    int16_t *p_out = (int16_t *)p_in;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer / 2; i--; )
+         *p_out++ = (int)(*p_in++) - 32768;
+ 
+     return p_block;
+@@ -570,7 +571,7 @@
+     int8_t *p_in = (int8_t *)p_block->p_buffer;
+     uint8_t *p_out = (uint8_t *)p_in;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer; i--; )
+         *p_out++ = ((*p_in++) + 128);
+ 
+     return p_block;
+@@ -581,7 +582,7 @@
+     uint8_t *p_in = (uint8_t *)p_block->p_buffer;
+     int8_t *p_out = (int8_t *)p_in;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer; i--; )
+         *p_out++ = ((*p_in++) - 128);
+ 
+     return p_block;
+@@ -606,7 +607,7 @@
+     p_in = (int8_t *)p_block->p_buffer;
+     p_out = (uint16_t *)p_block_out->p_buffer;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer; i--; )
+         *p_out++ = ((*p_in++) + 128) << 8;
+ 
+     p_block_out->i_samples = p_block->i_samples;
+@@ -637,7 +638,7 @@
+     p_in = (uint8_t *)p_block->p_buffer;
+     p_out = (int16_t *)p_block_out->p_buffer;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer; i--; )
+         *p_out++ = ((*p_in++) - 128) << 8;
+ 
+     p_block_out->i_samples = p_block->i_samples;
+@@ -669,7 +670,7 @@
+     p_in = (int8_t *)p_block->p_buffer;
+     p_out = (int16_t *)p_block_out->p_buffer;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer; i--; )
+         *p_out++ = (*p_in++) << 8;
+ 
+     p_block_out->i_samples = p_block->i_samples;
+@@ -700,7 +701,7 @@
+     p_in = (uint8_t *)p_block->p_buffer;
+     p_out = (uint16_t *)p_block_out->p_buffer;
+ 
+-    for( i = p_block->i_buffer*8/p_filter->fmt_in.audio.i_bitspersample; i--; )
++    for( i = p_block->i_buffer; i--; )
+         *p_out++ = (*p_in++) << 8;
+ 
+     p_block_out->i_samples = p_block->i_samples;

Modified: unstable/vlc/debian/patches/series
===================================================================
--- unstable/vlc/debian/patches/series	2007-03-12 15:39:15 UTC (rev 182)
+++ unstable/vlc/debian/patches/series	2007-03-12 15:41:35 UTC (rev 183)
@@ -6,3 +6,4 @@
 020_certificates_paths.diff
 020_kfreebsd.diff
 021_x264_powerpc.diff
+030_audio_format_crash.diff




More information about the Pkg-multimedia-commits mailing list