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