From 2679980e7448b1e4f76e0552622e2fa8361810c1 Mon Sep 17 00:00:00 2001 From: Cian Duffy Date: Mon, 16 Nov 2009 19:04:27 +0000 Subject: [PATCH] Add VLC 0.8.6i patch which provides a compiling, linking, working build --- media-video/vlc/patches/vlc-0.8.6i.patch | 529 +++++++++++++++++++++++ 1 file changed, 529 insertions(+) create mode 100644 media-video/vlc/patches/vlc-0.8.6i.patch diff --git a/media-video/vlc/patches/vlc-0.8.6i.patch b/media-video/vlc/patches/vlc-0.8.6i.patch new file mode 100644 index 000000000..852fc33bf --- /dev/null +++ b/media-video/vlc/patches/vlc-0.8.6i.patch @@ -0,0 +1,529 @@ +diff -ur vlc-0.8.6i-original/configure.ac vlc-0.8.6i/configure.ac +--- vlc-0.8.6i-original/configure.ac 2008-07-08 21:59:22.000000000 +0100 ++++ vlc-0.8.6i/configure.ac 2009-11-07 23:47:24.000000000 +0000 +@@ -270,6 +270,12 @@ + VLC_ADD_LDFLAGS([beos],[-lzeta]) + fi + ;; ++ haiku) ++ SYS=beos ++ VLC_ADD_CXXFLAGS([beos],[]) ++ VLC_ADD_LDFLAGS([vlc logger],[-lbe]) ++ VLC_ADD_LDFLAGS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame]) ++ ;; + *) + SYS="${target_os}" + ;; +diff -ur vlc-0.8.6i-original/include/vlc_common.h vlc-0.8.6i/include/vlc_common.h +--- vlc-0.8.6i-original/include/vlc_common.h 2008-07-08 21:59:23.000000000 +0100 ++++ vlc-0.8.6i/include/vlc_common.h 2009-11-08 00:28:56.000000000 +0000 +@@ -898,7 +898,7 @@ + # define vlc_strtoll NULL + #endif + +-#if defined(SYS_BEOS) \ ++#if defined(SYS_BEOS) && !(defined(__HAIKU__))\ + || (defined (__FreeBSD__) && (__FreeBSD__ < 5)) + typedef struct { + long long quot; /* Quotient. */ +diff -ur vlc-0.8.6i-original/include/vlc_threads.h vlc-0.8.6i/include/vlc_threads.h +--- vlc-0.8.6i-original/include/vlc_threads.h 2008-07-08 21:59:23.000000000 +0100 ++++ vlc-0.8.6i/include/vlc_threads.h 2009-11-07 23:53:51.000000000 +0000 +@@ -45,7 +45,7 @@ + #elif defined( HAVE_KERNEL_SCHEDULER_H ) /* BeOS */ + # include + # include +-# include ++# include + + #elif defined( PTHREAD_COND_T_IN_PTHREAD_H ) /* pthreads (like Linux & BSD) */ + # include +diff -ur vlc-0.8.6i-original/modules/codec/cinepak.c vlc-0.8.6i/modules/codec/cinepak.c +--- vlc-0.8.6i-original/modules/codec/cinepak.c 2008-07-08 21:59:23.000000000 +0100 ++++ vlc-0.8.6i/modules/codec/cinepak.c 2009-11-08 00:57:55.000000000 +0000 +@@ -279,7 +279,7 @@ + int i_strip, int i_x, int i_y, + int i_x2, int i_y2, uint8_t *p_data ) + { +- uint8_t i_index[4]; ++ uint8_t i_index[4], *p_dst_y, *p_dst_u, *p_dst_v; + int i,j; + + size_t y_max = p_context->i_stride[0] * ( i_y + 5 ) + i_x + 5; +@@ -292,7 +292,7 @@ + if( y_max >= y_siz || u_max >= u_siz || v_max >= v_siz ) + return; + +- uint8_t *p_dst_y, *p_dst_u, *p_dst_v; ++ + #define PIX_SET_Y( x, y, v ) \ + p_dst_y[(x) + (y)* p_context->i_stride[0]] = (v); + +@@ -336,7 +336,7 @@ + int i_strip, int i_x, int i_y, + int i_x2, int i_y2, uint8_t *p_data ) + { +- uint8_t i_index; ++ uint8_t i_index, *p_dst_y, *p_dst_u, *p_dst_v; + int i,j; + + size_t y_max = p_context->i_stride[0] * ( i_y + 5 ) + i_x + 5; +@@ -349,7 +349,6 @@ + if( y_max >= y_siz || u_max >= u_siz || v_max >= v_siz ) + return; + +- uint8_t *p_dst_y, *p_dst_u, *p_dst_v; + #define PIX_SET_Y( x, y, v ) \ + p_dst_y[(x) + (y)* p_context->i_stride[0]] = (v); + +diff -ur vlc-0.8.6i-original/modules/codec/telx.c vlc-0.8.6i/modules/codec/telx.c +--- vlc-0.8.6i-original/modules/codec/telx.c 2008-07-08 21:59:23.000000000 +0100 ++++ vlc-0.8.6i/modules/codec/telx.c 2009-11-08 00:59:26.000000000 +0000 +@@ -450,7 +450,7 @@ + vlc_bool_t b_update = VLC_FALSE; + char psz_text[512], *pt = psz_text; + char psz_line[256]; +- int i, total; ++ int i, total, mpag, row, magazine; + + if( pp_block == NULL || *pp_block == NULL ) return NULL; + p_block = *pp_block; +@@ -473,8 +473,7 @@ + /* continue; */ + /* } */ + +- int mpag = (hamming_8_4( packet[4] ) << 4) | hamming_8_4( packet[5] ); +- int row, magazine; ++ mpag = (hamming_8_4( packet[4] ) << 4) | hamming_8_4( packet[5] ); + if ( mpag < 0 ) + { + /* decode error */ +diff -ur vlc-0.8.6i-original/modules/demux/a52.c vlc-0.8.6i/modules/demux/a52.c +--- vlc-0.8.6i-original/modules/demux/a52.c 2008-07-08 21:59:23.000000000 +0100 ++++ vlc-0.8.6i/modules/demux/a52.c 2009-11-08 01:00:41.000000000 +0000 +@@ -80,7 +80,7 @@ + demux_t *p_demux = (demux_t*)p_this; + demux_sys_t *p_sys; + byte_t *p_peek; +- int i_peek = 0; ++ int i_peek = 0, i_size; + vlc_bool_t b_big_endian = 0; /* Arbitrary initialisation */ + + /* Check if we are dealing with a WAV file */ +@@ -104,7 +104,7 @@ + + /* Some A52 wav files don't begin with a sync code so we do a more + * extensive search */ +- int i_size = stream_Peek( p_demux->s, &p_peek, i_peek + A52_PACKET_SIZE * 2); ++ i_size = stream_Peek( p_demux->s, &p_peek, i_peek + A52_PACKET_SIZE * 2); + i_size -= (PCM_FRAME_SIZE + A52_MAX_HEADER_SIZE); + + while( i_peek < i_size ) +diff -ur vlc-0.8.6i-original/modules/demux/dts.c vlc-0.8.6i/modules/demux/dts.c +--- vlc-0.8.6i-original/modules/demux/dts.c 2008-07-08 21:59:23.000000000 +0100 ++++ vlc-0.8.6i/modules/demux/dts.c 2009-11-08 01:01:49.000000000 +0000 +@@ -74,7 +74,8 @@ + demux_t *p_demux = (demux_t*)p_this; + demux_sys_t *p_sys; + byte_t * p_peek; +- int i_peek = 0; ++ int i_peek = 0, i_size; ++ uint32_t i_len; + + /* Check if we are dealing with a WAV file */ + if( stream_Peek( p_demux->s, &p_peek, 20 ) == 20 && +@@ -94,7 +95,7 @@ + } + + /* Sanity check the wave format header */ +- uint32_t i_len = GetDWLE( p_peek + i_peek - 4 ); ++ i_len = GetDWLE( p_peek + i_peek - 4 ); + if( i_len > DTS_PROBE_SIZE ) + return VLC_EGENERIC; + +@@ -124,7 +125,7 @@ + + /* Some DTS wav files don't begin with a sync code so we do a more + * extensive search */ +- int i_size = stream_Peek( p_demux->s, &p_peek, DTS_PROBE_SIZE ); ++ i_size = stream_Peek( p_demux->s, &p_peek, DTS_PROBE_SIZE ); + i_size -= DTS_MAX_HEADER_SIZE; + + while( i_peek < i_size ) +diff -ur vlc-0.8.6i-original/modules/gui/beos/InterfaceWindow.cpp vlc-0.8.6i/modules/gui/beos/InterfaceWindow.cpp +--- vlc-0.8.6i-original/modules/gui/beos/InterfaceWindow.cpp 2008-07-08 21:59:23.000000000 +0100 ++++ vlc-0.8.6i/modules/gui/beos/InterfaceWindow.cpp 2009-11-08 01:03:41.000000000 +0000 +@@ -33,7 +33,7 @@ + #include + #include + #include +-#include ++//#include + #include + #include + +diff -ur vlc-0.8.6i-original/modules/misc/network/ipv6.c vlc-0.8.6i/modules/misc/network/ipv6.c +--- vlc-0.8.6i-original/modules/misc/network/ipv6.c 2008-07-08 21:59:24.000000000 +0100 ++++ vlc-0.8.6i/modules/misc/network/ipv6.c 2009-11-08 01:12:23.000000000 +0000 +@@ -239,6 +239,7 @@ + return 0; + } + ++#ifndef __HAIKU__ + /* Join the multicast group if the socket is a multicast address */ + if( IN6_IS_ADDR_MULTICAST(&loc.sin6_addr) ) + { +@@ -384,4 +385,5 @@ + p_socket->i_mtu = val.i_int; + + return 0; ++ #endif + } +diff -ur vlc-0.8.6i-original/modules/mux/mpeg/ts.c vlc-0.8.6i/modules/mux/mpeg/ts.c +--- vlc-0.8.6i-original/modules/mux/mpeg/ts.c 2008-07-08 21:59:24.000000000 +0100 ++++ vlc-0.8.6i/modules/mux/mpeg/ts.c 2009-11-08 01:15:10.000000000 +0000 +@@ -1719,27 +1719,30 @@ + static block_t *Add_ADTS( block_t *p_data, es_format_t *p_fmt ) + { + uint8_t *p_extra = p_fmt->p_extra; ++ int i_index, i_profile, i_channels, i_fullness; ++ uint8_t *p_buffer; ++ block_t *p_bak_block, *p_new_block; + + if( !p_data || p_fmt->i_extra < 2 || !p_extra ) + return p_data; /* no data to construct the headers */ + +- int i_index = ( (p_extra[0] << 1) | (p_extra[1] >> 7) ) & 0x0f; +- int i_profile = (p_extra[0] >> 3) - 1; /* i_profile < 4 */ ++ i_index = ( (p_extra[0] << 1) | (p_extra[1] >> 7) ) & 0x0f; ++ i_profile = (p_extra[0] >> 3) - 1; /* i_profile < 4 */ + + if( i_index == 0x0f && p_fmt->i_extra < 5 ) + return p_data; /* not enough data */ + +- int i_channels = (p_extra[i_index == 0x0f ? 4 : 1] >> 3) & 0x0f; ++ i_channels = (p_extra[i_index == 0x0f ? 4 : 1] >> 3) & 0x0f; + + #define ADTS_HEADER_SIZE 7 /* CRC needs 2 more bytes */ + + + /* keep a copy in case block_Realloc() fails */ +- block_t *p_bak_block = block_Duplicate( p_data ); ++ p_bak_block = block_Duplicate( p_data ); + if( !p_bak_block ) /* OOM, block_Realloc() is likely to lose our block */ + return p_data; /* the frame isn't correct but that's the best we have */ + +- block_t *p_new_block = block_Realloc( p_data, ADTS_HEADER_SIZE, ++ p_new_block = block_Realloc( p_data, ADTS_HEADER_SIZE, + p_data->i_buffer ); + if( !p_new_block ) + return p_bak_block; /* OOM, send the (incorrect) original frame */ +@@ -1747,7 +1750,7 @@ + block_Release( p_bak_block ); /* we don't need the copy anymore */ + + +- uint8_t *p_buffer = p_new_block->p_buffer; ++ p_buffer = p_new_block->p_buffer; + + /* fixed header */ + p_buffer[0] = 0xff; +@@ -1757,7 +1760,7 @@ + + /* variable header (starts at last 2 bits of 4th byte) */ + +- int i_fullness = 0x7ff; /* 0x7ff means VBR */ ++ i_fullness = 0x7ff; /* 0x7ff means VBR */ + /* XXX: We should check if it's CBR or VBR, but no known implementation + * do that, and it's a pain to calculate this field */ + +diff -ur vlc-0.8.6i-original/modules/packetizer/h264.c vlc-0.8.6i/modules/packetizer/h264.c +--- vlc-0.8.6i-original/modules/packetizer/h264.c 2008-07-08 21:59:24.000000000 +0100 ++++ vlc-0.8.6i/modules/packetizer/h264.c 2009-11-08 01:21:24.000000000 +0000 +@@ -219,13 +219,14 @@ + i_sps = (*p++)&0x1f; + for( i = 0; i < i_sps; i++ ) + { ++ block_t *p_sps; + uint16_t i_length = GetWBE( p ); p += 2; + if( i_length > + (uint8_t*)p_dec->fmt_in.p_extra + p_dec->fmt_in.i_extra - p ) + { + return VLC_EGENERIC; + } +- block_t *p_sps = nal_get_annexeb( p_dec, p, i_length ); ++ p_sps = nal_get_annexeb( p_dec, p, i_length ); + if( !p_sps ) + return VLC_EGENERIC; + p_sys->p_sps = block_Duplicate( p_sps ); +@@ -237,13 +238,14 @@ + i_pps = *p++; + for( i = 0; i < i_pps; i++ ) + { ++ block_t *p_pps; + uint16_t i_length = GetWBE( p ); p += 2; + if( i_length > + (uint8_t*)p_dec->fmt_in.p_extra + p_dec->fmt_in.i_extra - p ) + { + return VLC_EGENERIC; + } +- block_t *p_pps = nal_get_annexeb( p_dec, p, i_length ); ++ p_pps = nal_get_annexeb( p_dec, p, i_length ); + if( !p_pps ) + return VLC_EGENERIC; + p_sys->p_pps = block_Duplicate( p_pps ); +@@ -446,7 +448,7 @@ + + for( p = p_block->p_buffer; p < &p_block->p_buffer[p_block->i_buffer]; ) + { +- block_t *p_pic; ++ block_t *p_pic, *p_part; + int i_size = 0; + int i; + +@@ -462,7 +464,7 @@ + break; + } + +- block_t *p_part = nal_get_annexeb( p_dec, p, i_size ); ++ p_part = nal_get_annexeb( p_dec, p, i_size ); + if( !p_part ) + break; + p_part->i_dts = p_block->i_dts; +diff -ur vlc-0.8.6i-original/modules/packetizer/mpeg4audio.c vlc-0.8.6i/modules/packetizer/mpeg4audio.c +--- vlc-0.8.6i-original/modules/packetizer/mpeg4audio.c 2008-07-08 21:59:24.000000000 +0100 ++++ vlc-0.8.6i/modules/packetizer/mpeg4audio.c 2009-11-08 01:18:22.000000000 +0000 +@@ -332,6 +332,7 @@ + { + int i_profile, i_sample_rate_idx, i_frame_size; + vlc_bool_t b_crc; ++ unsigned short i_raw_blocks_in_frame; + + /* Fixed header between frames */ + //int i_id = ( (p_buf[1] >> 3) & 0x01) ? 2 : 4; /* MPEG-2 or 4 */ +@@ -350,7 +351,7 @@ + i_frame_size = ((p_buf[3] & 0x03) << 11) | (p_buf[4] << 3) | + ((p_buf[5] >> 5) /*& 0x7*/); + //uint16_t buffer_fullness = ((p_buf[5] & 0x1f) << 6) | (p_buf[6] >> 2); +- unsigned short i_raw_blocks_in_frame = p_buf[6] & 0x03; ++ i_raw_blocks_in_frame = p_buf[6] & 0x03; + + if( !*pi_sample_rate || !*pi_channels || !i_frame_size ) + { +@@ -436,15 +437,16 @@ + { + /* TODO compute channels count ? */ + int i_tag = bs_read( s, 4 ); +- if( i_tag != 0x05 ) +- return -1; +- bs_skip( s, 2 + 4 ); // object type + sampling index + int i_num_front = bs_read( s, 4 ); + int i_num_side = bs_read( s, 4 ); + int i_num_back = bs_read( s, 4 ); + int i_num_lfe = bs_read( s, 2 ); + int i_num_assoc_data = bs_read( s, 3 ); + int i_num_valid_cc = bs_read( s, 4 ); ++ int i_comment; ++ if( i_tag != 0x05 ) ++ return -1; ++ bs_skip( s, 2 + 4 ); // object type + sampling index + + if( bs_read1(s) ) + bs_skip( s, 4 ); // mono downmix +@@ -460,19 +462,20 @@ + bs_skip( s, i_num_assoc_data * (4) ); + bs_skip( s, i_num_valid_cc * (5) ); + bs_align( s ); +- int i_comment = bs_read( s, 8 ); ++ i_comment = bs_read( s, 8 ); + bs_skip( s, i_comment * 8 ); + return 0; + } + + static int Mpeg4GASpecificConfig( mpeg4_cfg_t *p_cfg, bs_t *s ) + { ++ int i_extension_flag; + p_cfg->i_frame_length = bs_read1(s) ? 960 : 1024; + + if( bs_read1( s ) ) // depend on core coder + bs_skip( s, 14 ); // core coder delay + +- int i_extension_flag = bs_read1( s ); ++ i_extension_flag = bs_read1( s ); + if( p_cfg->i_channel == 0 ) + { + Mpeg4GAProgramConfigElement( s ); +diff -ur vlc-0.8.6i-original/modules/stream_out/mosaic_bridge.c vlc-0.8.6i/modules/stream_out/mosaic_bridge.c +--- vlc-0.8.6i-original/modules/stream_out/mosaic_bridge.c 2008-07-08 21:59:24.000000000 +0100 ++++ vlc-0.8.6i/modules/stream_out/mosaic_bridge.c 2009-11-08 01:22:30.000000000 +0000 +@@ -339,11 +339,12 @@ + + if ( p_sys->p_decoder != NULL ) + { ++ void *p_owner; + picture_t **pp_ring = p_sys->p_decoder->p_owner->pp_pics; + + if( p_sys->p_decoder->p_module ) + module_Unneed( p_sys->p_decoder, p_sys->p_decoder->p_module ); +- void *p_owner = p_sys->p_decoder->p_owner; ++ p_owner = p_sys->p_decoder->p_owner; + vlc_object_detach( p_sys->p_decoder ); + vlc_object_destroy( p_sys->p_decoder ); + +diff -ur vlc-0.8.6i-original/modules/stream_out/switcher.c vlc-0.8.6i/modules/stream_out/switcher.c +--- vlc-0.8.6i-original/modules/stream_out/switcher.c 2008-07-08 21:59:24.000000000 +0100 ++++ vlc-0.8.6i/modules/stream_out/switcher.c 2009-11-08 01:23:24.000000000 +0000 +@@ -657,8 +657,9 @@ + + if ( i_len > 0 ) + { ++ int i_cmd; + psz_buffer[i_len] = '\0'; +- int i_cmd = strtol( psz_buffer, NULL, 0 ); ++ i_cmd = strtol( psz_buffer, NULL, 0 ); + if ( i_cmd < -1 || i_cmd > p_sys->i_nb_pictures ) + { + msg_Err( p_stream, "got a wrong command (%d)", i_cmd ); +diff -ur vlc-0.8.6i-original/src/extras/libc.c vlc-0.8.6i/src/extras/libc.c +--- vlc-0.8.6i-original/src/extras/libc.c 2008-07-08 22:08:36.000000000 +0100 ++++ vlc-0.8.6i/src/extras/libc.c 2009-11-08 00:44:49.000000000 +0000 +@@ -348,7 +348,7 @@ + /***************************************************************************** + * lldiv: returns quotient and remainder + *****************************************************************************/ +-#if defined(SYS_BEOS) \ ++#if defined(SYS_BEOS) & !(defined(__HAIKU__))\ + || (defined (__FreeBSD__) && (__FreeBSD__ < 5)) + lldiv_t vlc_lldiv( long long numer, long long denom ) + { +diff -ur vlc-0.8.6i-original/src/input/input.c vlc-0.8.6i/src/input/input.c +--- vlc-0.8.6i-original/src/input/input.c 2008-07-08 22:08:36.000000000 +0100 ++++ vlc-0.8.6i/src/input/input.c 2009-11-08 00:30:10.000000000 +0000 +@@ -1913,11 +1913,11 @@ + { + vlc_meta_t *tk = p_meta->track[i]; + int j; ++ char *psz_cat; + + if( tk->i_meta > 0 ) + { + msg_Dbg( p_input, " - track[%d]:", i ); +- char *psz_cat; + if( asprintf( &psz_cat, "%s %d", _("Stream"), i ) != -1 ) + { + for( j = 0; j < tk->i_meta; j++ ) +diff -ur vlc-0.8.6i-original/src/misc/beos_specific.cpp vlc-0.8.6i/src/misc/beos_specific.cpp +--- vlc-0.8.6i-original/src/misc/beos_specific.cpp 2008-07-08 22:08:36.000000000 +0100 ++++ vlc-0.8.6i/src/misc/beos_specific.cpp 2009-11-09 18:46:51.000000000 +0000 +@@ -154,7 +154,7 @@ + { + BAlert *alert; + alert = new BAlert( "VLC " PACKAGE_VERSION, +- "VLC " PACKAGE_VERSION " for BeOS\n\n" ++ "VLC " PACKAGE_VERSION " for Haiku\n\n" + "", "OK"); + alert->Go( NULL ); + } +diff -ur vlc-0.8.6i-original/src/misc/threads.c vlc-0.8.6i/src/misc/threads.c +--- vlc-0.8.6i-original/src/misc/threads.c 2008-07-08 22:08:36.000000000 +0100 ++++ vlc-0.8.6i/src/misc/threads.c 2009-11-08 17:02:02.000000000 +0000 +@@ -647,6 +647,7 @@ + int __vlc_thread_set_priority( vlc_object_t *p_this, char * psz_file, + int i_line, int i_priority ) + { ++/* + #if defined( PTH_INIT_IN_PTH_H ) || defined( ST_INIT_IN_ST_H ) + #elif defined( WIN32 ) || defined( UNDER_CE ) + if( !SetThreadPriority(GetCurrentThread(), i_priority) ) +@@ -689,7 +690,7 @@ + } + } + #endif +- ++*/ + return 0; + } + +@@ -790,3 +791,7 @@ + p_this->b_thread = 0; + } + ++ ++ ++ ++ +Only in vlc-0.8.6i-original/src/misc: version.c +diff -ur vlc-0.8.6i-original/src/misc/vlm.c vlc-0.8.6i/src/misc/vlm.c +--- vlc-0.8.6i-original/src/misc/vlm.c 2008-07-08 22:08:36.000000000 +0100 ++++ vlc-0.8.6i/src/misc/vlm.c 2009-11-08 00:42:59.000000000 +0000 +@@ -1368,10 +1368,11 @@ + + vlm_schedule_t *vlm_ScheduleNew( vlm_t *vlm, const char *psz_name ) + { ++ vlm_schedule_t *p_sched; + if( !psz_name ) + return NULL; + +- vlm_schedule_t *p_sched = malloc( sizeof( vlm_schedule_t ) ); ++ p_sched = malloc( sizeof( vlm_schedule_t ) ); + if( !p_sched ) + return NULL; + +diff -ur vlc-0.8.6i-original/src/network/httpd.c vlc-0.8.6i/src/network/httpd.c +--- vlc-0.8.6i-original/src/network/httpd.c 2008-07-08 22:08:36.000000000 +0100 ++++ vlc-0.8.6i/src/network/httpd.c 2009-11-08 00:33:09.000000000 +0000 +@@ -365,7 +365,7 @@ + static int httpd_FileCallBack( httpd_callback_sys_t *p_sys, httpd_client_t *cl, httpd_message_t *answer, httpd_message_t *query ) + { + httpd_file_t *file = (httpd_file_t*)p_sys; +- uint8_t **pp_body, *p_body; ++ uint8_t **pp_body, *p_body, *psz_args; + char *psz_connection = NULL; + int *pi_body, i_body; + +@@ -402,7 +402,7 @@ + /* msg_Warn not supported */ + } + +- uint8_t *psz_args = query->psz_args; ++ psz_args = query->psz_args; + file->pf_fill( file->p_sys, file, psz_args, pp_body, pi_body ); + + if( query->i_type == HTTPD_MSG_HEAD && p_body != NULL ) +@@ -487,6 +487,7 @@ + { + httpd_handler_t *handler = (httpd_handler_t*)p_sys; + char psz_remote_addr[NI_MAXNUMERICHOST]; ++ uint8_t *psz_args; + + if( answer == NULL || query == NULL ) + { +@@ -502,7 +503,7 @@ + if( httpd_ClientIP( cl, psz_remote_addr ) == NULL ) + *psz_remote_addr = '\0'; + +- uint8_t *psz_args = query->psz_args; ++ psz_args = query->psz_args; + handler->pf_fill( handler->p_sys, handler, query->psz_url, psz_args, + query->i_type, query->p_body, query->i_body, + psz_remote_addr, NULL, +diff -ur vlc-0.8.6i-original/src/stream_output/sap.c vlc-0.8.6i/src/stream_output/sap.c +--- vlc-0.8.6i-original/src/stream_output/sap.c 2008-07-08 22:08:36.000000000 +0100 ++++ vlc-0.8.6i/src/stream_output/sap.c 2009-11-08 01:26:17.000000000 +0000 +@@ -287,7 +287,8 @@ + + memcpy( a6->s6_addr + 2, "\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x02\x7f\xfe", 14 ); +- if( IN6_IS_ADDR_MULTICAST( a6 ) ) ++ #ifndef __HAIKU__ ++ if( IN6_IS_ADDR_MULTICAST( a6 ) ) + { + /* SSM <=> ff3x::/32 */ + b_ssm = (U32_AT (a6->s6_addr) & 0xfff0ffff) == 0xff300000; +@@ -301,6 +302,7 @@ + + b_ipv6 = VLC_TRUE; + break; ++ #endif + } + #endif +