head 1.3; access; symbols pkgsrc-2013Q2:1.3.0.4 pkgsrc-2013Q2-base:1.3 pkgsrc-2012Q4:1.3.0.2 pkgsrc-2012Q4-base:1.3 pkgsrc-2011Q4:1.2.0.46 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q3:1.2.0.44 pkgsrc-2011Q3-base:1.2 pkgsrc-2011Q2:1.2.0.42 pkgsrc-2011Q2-base:1.2 pkgsrc-2011Q1:1.2.0.40 pkgsrc-2011Q1-base:1.2 pkgsrc-2010Q4:1.2.0.38 pkgsrc-2010Q4-base:1.2 pkgsrc-2010Q3:1.2.0.36 pkgsrc-2010Q3-base:1.2 pkgsrc-2010Q2:1.2.0.34 pkgsrc-2010Q2-base:1.2 pkgsrc-2010Q1:1.2.0.32 pkgsrc-2010Q1-base:1.2 pkgsrc-2009Q4:1.2.0.30 pkgsrc-2009Q4-base:1.2 pkgsrc-2009Q3:1.2.0.28 pkgsrc-2009Q3-base:1.2 pkgsrc-2009Q2:1.2.0.26 pkgsrc-2009Q2-base:1.2 pkgsrc-2009Q1:1.2.0.24 pkgsrc-2009Q1-base:1.2 pkgsrc-2008Q4:1.2.0.22 pkgsrc-2008Q4-base:1.2 pkgsrc-2008Q3:1.2.0.20 pkgsrc-2008Q3-base:1.2 cube-native-xorg:1.2.0.18 cube-native-xorg-base:1.2 pkgsrc-2008Q2:1.2.0.16 pkgsrc-2008Q2-base:1.2 cwrapper:1.2.0.14 pkgsrc-2008Q1:1.2.0.12 pkgsrc-2008Q1-base:1.2 pkgsrc-2007Q4:1.2.0.10 pkgsrc-2007Q4-base:1.2 pkgsrc-2007Q3:1.2.0.8 pkgsrc-2007Q3-base:1.2 pkgsrc-2007Q2:1.2.0.6 pkgsrc-2007Q2-base:1.2 pkgsrc-2007Q1:1.2.0.4 pkgsrc-2007Q1-base:1.2 pkgsrc-2006Q4:1.2.0.2 pkgsrc-2006Q4-base:1.2 pkgsrc-2006Q3:1.1.0.2 pkgsrc-2006Q3-base:1.1; locks; strict; comment @# @; 1.3 date 2012.03.21.16.37.15; author drochner; state dead; branches; next 1.2; 1.2 date 2006.12.08.09.24.26; author abs; state Exp; branches; next 1.1; 1.1 date 2006.08.14.12.15.38; author joerg; state Exp; branches 1.1.2.1; next ; 1.1.2.1 date 2006.12.09.09.13.15; author salo; state Exp; branches; next ; desc @@ 1.3 log @update to 1.2.1 changes: -Rewrite of VDPAU OSD handling -sndio plugin is now buildable -Various bug fixes @ text @$NetBSD: patch-dc,v 1.2 2006/12/08 09:24:26 abs Exp $ Move some inlined functions to a place before they are used, otherwise GCC barfs when -fno-unit-a-time is active. --- src/libffmpeg/libavcodec/msmpeg4.c.orig 2006-08-02 08:02:40.000000000 +0100 +++ src/libffmpeg/libavcodec/msmpeg4.c @@@@ -1408,181 +1408,6 @@@@ static int msmpeg4v2_decode_motion(MpegE return val; } -static int msmpeg4v12_decode_mb(MpegEncContext *s, DCTELEM block[6][64]) -{ - int cbp, code, i; - - if (s->pict_type == P_TYPE) { - if (s->use_skip_mb_code) { - if (get_bits1(&s->gb)) { - /* skip mb */ - s->mb_intra = 0; - for(i=0;i<6;i++) - s->block_last_index[i] = -1; - s->mv_dir = MV_DIR_FORWARD; - s->mv_type = MV_TYPE_16X16; - s->mv[0][0][0] = 0; - s->mv[0][0][1] = 0; - s->mb_skipped = 1; - return 0; - } - } - - if(s->msmpeg4_version==2) - code = get_vlc2(&s->gb, v2_mb_type_vlc.table, V2_MB_TYPE_VLC_BITS, 1); - else - code = get_vlc2(&s->gb, v1_inter_cbpc_vlc.table, V1_INTER_CBPC_VLC_BITS, 3); - if(code<0 || code>7){ - av_log(s->avctx, AV_LOG_ERROR, "cbpc %d invalid at %d %d\n", code, s->mb_x, s->mb_y); - return -1; - } - - s->mb_intra = code >>2; - - cbp = code & 0x3; - } else { - s->mb_intra = 1; - if(s->msmpeg4_version==2) - cbp= get_vlc2(&s->gb, v2_intra_cbpc_vlc.table, V2_INTRA_CBPC_VLC_BITS, 1); - else - cbp= get_vlc2(&s->gb, v1_intra_cbpc_vlc.table, V1_INTRA_CBPC_VLC_BITS, 1); - if(cbp<0 || cbp>3){ - av_log(s->avctx, AV_LOG_ERROR, "cbpc %d invalid at %d %d\n", cbp, s->mb_x, s->mb_y); - return -1; - } - } - - if (!s->mb_intra) { - int mx, my, cbpy; - - cbpy= get_vlc2(&s->gb, cbpy_vlc.table, CBPY_VLC_BITS, 1); - if(cbpy<0){ - av_log(s->avctx, AV_LOG_ERROR, "cbpy %d invalid at %d %d\n", cbp, s->mb_x, s->mb_y); - return -1; - } - - cbp|= cbpy<<2; - if(s->msmpeg4_version==1 || (cbp&3) != 3) cbp^= 0x3C; - - h263_pred_motion(s, 0, 0, &mx, &my); - mx= msmpeg4v2_decode_motion(s, mx, 1); - my= msmpeg4v2_decode_motion(s, my, 1); - - s->mv_dir = MV_DIR_FORWARD; - s->mv_type = MV_TYPE_16X16; - s->mv[0][0][0] = mx; - s->mv[0][0][1] = my; - } else { - if(s->msmpeg4_version==2){ - s->ac_pred = get_bits1(&s->gb); - cbp|= get_vlc2(&s->gb, cbpy_vlc.table, CBPY_VLC_BITS, 1)<<2; //FIXME check errors - } else{ - s->ac_pred = 0; - cbp|= get_vlc2(&s->gb, cbpy_vlc.table, CBPY_VLC_BITS, 1)<<2; //FIXME check errors - if(s->pict_type==P_TYPE) cbp^=0x3C; - } - } - - s->dsp.clear_blocks(s->block[0]); - for (i = 0; i < 6; i++) { - if (msmpeg4_decode_block(s, block[i], i, (cbp >> (5 - i)) & 1, NULL) < 0) - { - av_log(s->avctx, AV_LOG_ERROR, "\nerror while decoding block: %d x %d (%d)\n", s->mb_x, s->mb_y, i); - return -1; - } - } - return 0; -} - -static int msmpeg4v34_decode_mb(MpegEncContext *s, DCTELEM block[6][64]) -{ - int cbp, code, i; - uint8_t *coded_val; - uint32_t * const mb_type_ptr= &s->current_picture.mb_type[ s->mb_x + s->mb_y*s->mb_stride ]; - - if (s->pict_type == P_TYPE) { - if (s->use_skip_mb_code) { - if (get_bits1(&s->gb)) { - /* skip mb */ - s->mb_intra = 0; - for(i=0;i<6;i++) - s->block_last_index[i] = -1; - s->mv_dir = MV_DIR_FORWARD; - s->mv_type = MV_TYPE_16X16; - s->mv[0][0][0] = 0; - s->mv[0][0][1] = 0; - s->mb_skipped = 1; - *mb_type_ptr = MB_TYPE_SKIP | MB_TYPE_L0 | MB_TYPE_16x16; - - return 0; - } - } - - code = get_vlc2(&s->gb, mb_non_intra_vlc[DEFAULT_INTER_INDEX].table, MB_NON_INTRA_VLC_BITS, 3); - if (code < 0) - return -1; - //s->mb_intra = (code & 0x40) ? 0 : 1; - s->mb_intra = (~code & 0x40) >> 6; - - cbp = code & 0x3f; - } else { - s->mb_intra = 1; - code = get_vlc2(&s->gb, ff_msmp4_mb_i_vlc.table, MB_INTRA_VLC_BITS, 2); - if (code < 0) - return -1; - /* predict coded block pattern */ - cbp = 0; - for(i=0;i<6;i++) { - int val = ((code >> (5 - i)) & 1); - if (i < 4) { - int pred = coded_block_pred(s, i, &coded_val); - val = val ^ pred; - *coded_val = val; - } - cbp |= val << (5 - i); - } - } - - if (!s->mb_intra) { - int mx, my; -//printf("P at %d %d\n", s->mb_x, s->mb_y); - if(s->per_mb_rl_table && cbp){ - s->rl_table_index = decode012(&s->gb); - s->rl_chroma_table_index = s->rl_table_index; - } - h263_pred_motion(s, 0, 0, &mx, &my); - if (msmpeg4_decode_motion(s, &mx, &my) < 0) - return -1; - s->mv_dir = MV_DIR_FORWARD; - s->mv_type = MV_TYPE_16X16; - s->mv[0][0][0] = mx; - s->mv[0][0][1] = my; - *mb_type_ptr = MB_TYPE_L0 | MB_TYPE_16x16; - } else { -//printf("I at %d %d %d %06X\n", s->mb_x, s->mb_y, ((cbp&3)? 1 : 0) +((cbp&0x3C)? 2 : 0), show_bits(&s->gb, 24)); - s->ac_pred = get_bits1(&s->gb); - *mb_type_ptr = MB_TYPE_INTRA; - if(s->inter_intra_pred){ - s->h263_aic_dir= get_vlc2(&s->gb, inter_intra_vlc.table, INTER_INTRA_VLC_BITS, 1); -// printf("%d%d %d %d/", s->ac_pred, s->h263_aic_dir, s->mb_x, s->mb_y); - } - if(s->per_mb_rl_table && cbp){ - s->rl_table_index = decode012(&s->gb); - s->rl_chroma_table_index = s->rl_table_index; - } - } - - s->dsp.clear_blocks(s->block[0]); - for (i = 0; i < 6; i++) { - if (msmpeg4_decode_block(s, block[i], i, (cbp >> (5 - i)) & 1, NULL) < 0) - { - av_log(s->avctx, AV_LOG_ERROR, "\nerror while decoding block: %d x %d (%d)\n", s->mb_x, s->mb_y, i); - return -1; - } - } - - return 0; -} //#define ERROR_DETAILS static inline int msmpeg4_decode_block(MpegEncContext * s, DCTELEM * block, int n, int coded, const uint8_t *scan_table) @@@@ -1831,6 +1656,182 @@@@ static inline int msmpeg4_decode_block(M return 0; } +static int msmpeg4v12_decode_mb(MpegEncContext *s, DCTELEM block[6][64]) +{ + int cbp, code, i; + + if (s->pict_type == P_TYPE) { + if (s->use_skip_mb_code) { + if (get_bits1(&s->gb)) { + /* skip mb */ + s->mb_intra = 0; + for(i=0;i<6;i++) + s->block_last_index[i] = -1; + s->mv_dir = MV_DIR_FORWARD; + s->mv_type = MV_TYPE_16X16; + s->mv[0][0][0] = 0; + s->mv[0][0][1] = 0; + s->mb_skipped = 1; + return 0; + } + } + + if(s->msmpeg4_version==2) + code = get_vlc2(&s->gb, v2_mb_type_vlc.table, V2_MB_TYPE_VLC_BITS, 1); + else + code = get_vlc2(&s->gb, v1_inter_cbpc_vlc.table, V1_INTER_CBPC_VLC_BITS, 3); + if(code<0 || code>7){ + av_log(s->avctx, AV_LOG_ERROR, "cbpc %d invalid at %d %d\n", code, s->mb_x, s->mb_y); + return -1; + } + + s->mb_intra = code >>2; + + cbp = code & 0x3; + } else { + s->mb_intra = 1; + if(s->msmpeg4_version==2) + cbp= get_vlc2(&s->gb, v2_intra_cbpc_vlc.table, V2_INTRA_CBPC_VLC_BITS, 1); + else + cbp= get_vlc2(&s->gb, v1_intra_cbpc_vlc.table, V1_INTRA_CBPC_VLC_BITS, 1); + if(cbp<0 || cbp>3){ + av_log(s->avctx, AV_LOG_ERROR, "cbpc %d invalid at %d %d\n", cbp, s->mb_x, s->mb_y); + return -1; + } + } + + if (!s->mb_intra) { + int mx, my, cbpy; + + cbpy= get_vlc2(&s->gb, cbpy_vlc.table, CBPY_VLC_BITS, 1); + if(cbpy<0){ + av_log(s->avctx, AV_LOG_ERROR, "cbpy %d invalid at %d %d\n", cbp, s->mb_x, s->mb_y); + return -1; + } + + cbp|= cbpy<<2; + if(s->msmpeg4_version==1 || (cbp&3) != 3) cbp^= 0x3C; + + h263_pred_motion(s, 0, 0, &mx, &my); + mx= msmpeg4v2_decode_motion(s, mx, 1); + my= msmpeg4v2_decode_motion(s, my, 1); + + s->mv_dir = MV_DIR_FORWARD; + s->mv_type = MV_TYPE_16X16; + s->mv[0][0][0] = mx; + s->mv[0][0][1] = my; + } else { + if(s->msmpeg4_version==2){ + s->ac_pred = get_bits1(&s->gb); + cbp|= get_vlc2(&s->gb, cbpy_vlc.table, CBPY_VLC_BITS, 1)<<2; //FIXME check errors + } else{ + s->ac_pred = 0; + cbp|= get_vlc2(&s->gb, cbpy_vlc.table, CBPY_VLC_BITS, 1)<<2; //FIXME check errors + if(s->pict_type==P_TYPE) cbp^=0x3C; + } + } + + s->dsp.clear_blocks(s->block[0]); + for (i = 0; i < 6; i++) { + if (msmpeg4_decode_block(s, block[i], i, (cbp >> (5 - i)) & 1, NULL) < 0) + { + av_log(s->avctx, AV_LOG_ERROR, "\nerror while decoding block: %d x %d (%d)\n", s->mb_x, s->mb_y, i); + return -1; + } + } + return 0; +} + +static int msmpeg4v34_decode_mb(MpegEncContext *s, DCTELEM block[6][64]) +{ + int cbp, code, i; + uint8_t *coded_val; + uint32_t * const mb_type_ptr= &s->current_picture.mb_type[ s->mb_x + s->mb_y*s->mb_stride ]; + + if (s->pict_type == P_TYPE) { + if (s->use_skip_mb_code) { + if (get_bits1(&s->gb)) { + /* skip mb */ + s->mb_intra = 0; + for(i=0;i<6;i++) + s->block_last_index[i] = -1; + s->mv_dir = MV_DIR_FORWARD; + s->mv_type = MV_TYPE_16X16; + s->mv[0][0][0] = 0; + s->mv[0][0][1] = 0; + s->mb_skipped = 1; + *mb_type_ptr = MB_TYPE_SKIP | MB_TYPE_L0 | MB_TYPE_16x16; + + return 0; + } + } + + code = get_vlc2(&s->gb, mb_non_intra_vlc[DEFAULT_INTER_INDEX].table, MB_NON_INTRA_VLC_BITS, 3); + if (code < 0) + return -1; + //s->mb_intra = (code & 0x40) ? 0 : 1; + s->mb_intra = (~code & 0x40) >> 6; + + cbp = code & 0x3f; + } else { + s->mb_intra = 1; + code = get_vlc2(&s->gb, ff_msmp4_mb_i_vlc.table, MB_INTRA_VLC_BITS, 2); + if (code < 0) + return -1; + /* predict coded block pattern */ + cbp = 0; + for(i=0;i<6;i++) { + int val = ((code >> (5 - i)) & 1); + if (i < 4) { + int pred = coded_block_pred(s, i, &coded_val); + val = val ^ pred; + *coded_val = val; + } + cbp |= val << (5 - i); + } + } + + if (!s->mb_intra) { + int mx, my; +//printf("P at %d %d\n", s->mb_x, s->mb_y); + if(s->per_mb_rl_table && cbp){ + s->rl_table_index = decode012(&s->gb); + s->rl_chroma_table_index = s->rl_table_index; + } + h263_pred_motion(s, 0, 0, &mx, &my); + if (msmpeg4_decode_motion(s, &mx, &my) < 0) + return -1; + s->mv_dir = MV_DIR_FORWARD; + s->mv_type = MV_TYPE_16X16; + s->mv[0][0][0] = mx; + s->mv[0][0][1] = my; + *mb_type_ptr = MB_TYPE_L0 | MB_TYPE_16x16; + } else { +//printf("I at %d %d %d %06X\n", s->mb_x, s->mb_y, ((cbp&3)? 1 : 0) +((cbp&0x3C)? 2 : 0), show_bits(&s->gb, 24)); + s->ac_pred = get_bits1(&s->gb); + *mb_type_ptr = MB_TYPE_INTRA; + if(s->inter_intra_pred){ + s->h263_aic_dir= get_vlc2(&s->gb, inter_intra_vlc.table, INTER_INTRA_VLC_BITS, 1); +// printf("%d%d %d %d/", s->ac_pred, s->h263_aic_dir, s->mb_x, s->mb_y); + } + if(s->per_mb_rl_table && cbp){ + s->rl_table_index = decode012(&s->gb); + s->rl_chroma_table_index = s->rl_table_index; + } + } + + s->dsp.clear_blocks(s->block[0]); + for (i = 0; i < 6; i++) { + if (msmpeg4_decode_block(s, block[i], i, (cbp >> (5 - i)) & 1, NULL) < 0) + { + av_log(s->avctx, AV_LOG_ERROR, "\nerror while decoding block: %d x %d (%d)\n", s->mb_x, s->mb_y, i); + return -1; + } + } + + return 0; +} + static int msmpeg4_decode_dc(MpegEncContext * s, int n, int *dir_ptr) { int level, pred; @ 1.2 log @Update xine-lib to 1.1.3 * Security fixes: - Heap overflow in libmms (related to CVE-2006-2200) - Buffer overrun in Real Media input plugin. [bug #1603458] Thanks to Roland Kay for reporting and JW for the patch. * Update build system to support x86 Darwin setups, and merge patches to support Darwin OS better. * Replace custom ALSA check with pkg-config check, and make sure 0.9.0 is the requried version. * When the compiler supports it, enable hidden visibility for all the plugins to export only the plugin info entry (and eventual needed special functions), to replace the min-symtab option that wasn't working. * Add "m4b" to the list of supported file extensions for the Qt demuxer, to allow playing (unprotected) audiobooks in AAC format. * Remove --disable-fpic hack, prefer using --without-pic instead. * Add new output plugin: PulseAudio (based on PolypAudio plugin), that uses 0.9 API (PulseAudio is PolypAudio renamed). * Remove PolypAudio plugin, latest version supported 0.7 API that is no more supported by upstream, and it's replaced by PulseAudio. * Allow 0 for DVD title/chapter (navigation or full title). * New experimental JACK audio driver. * Fix switch from alsa/dmix 2.0 to 5.1 [bug #1226595] * Don't use proxy for localhost connection. [bug #1553633] * Use mmap() to open local files if available. * Use pkg-config to look for external FFmpeg. * Allow FFmpeg to play MP3s in case MAD is not present. * Reduce the dead time when trying to connect to dead hosts, by falling back to non-blocking sockets on the last address found for an host, and allowing users to provide a connection timeout. [bug #1550844] * Return the correct error message to frontends when a file is inaccessible or the network connection is broken. [bug #1550763] * Support libcaca 0.99, thanks to cjacker huang. * Fix crash on video-only WMV streams. [bug #1564598] * Report audio stream on Shorten files (required for Amarok to play them). * Optionally use fontconfig to look up fonts to use for OSD. [bug #1551042] * Prefer FreeType2 rendered fonts to bitmap fonts. * Stone age platforms update * Enabled TrueSpeech codec * New X11 visual type: xine-lib may now use frontend's mutex/lock mechanism instead of XLockDisplay/XUnlockDisplay. * Allow playing of OggFlac files. [bug #1590690] * Allow playing FLAC files with an ID3 tag at the start. * Fix some crashes caused by MP3 files (and possibly others) being misdetected as AAC. @ text @d1 1 a1 1 $NetBSD: patch-dc,v 1.1 2006/08/14 12:15:38 joerg Exp $ @ 1.1 log @Disable mutex debugging by default, it results in Xine spinning around all the time at least on DragonFly. Move some inline functions around so that they exist before they are used, avoiding compilation errors on DragonFly where -fno-unit-at-a-time is disable by default. @ text @d1 1 a1 1 $NetBSD$ d6 1 a6 1 --- src/libffmpeg/libavcodec/msmpeg4.c.orig 2006-08-14 11:51:09.000000000 +0000 d8 1 a8 1 @@@@ -1479,186 +1479,6 @@@@ static int msmpeg4v2_decode_motion(MpegE a104 1 - set_stat(ST_INTER_MB); a129 1 - set_stat(ST_INTRA_MB); a153 1 - set_stat(ST_MV); a163 1 - set_stat(ST_INTRA_MB); d187 1 a187 1 -//#define ERROR_DETAILS d190 1 a190 2 { @@@@ -1909,6 +1729,187 @@@@ static inline int msmpeg4_decode_block(M a286 1 + set_stat(ST_INTER_MB); a311 1 + set_stat(ST_INTRA_MB); a335 1 + set_stat(ST_MV); a345 1 + set_stat(ST_INTRA_MB); a368 1 +//#define ERROR_DETAILS @ 1.1.2.1 log @Pullup ticket 1948 - requested by abs security update for xine-lib Revisions pulled up: - pkgsrc/multimedia/xine-lib/Makefile 1.42 - pkgsrc/multimedia/xine-lib/Makefile.common 1.36 - pkgsrc/multimedia/xine-lib/distinfo 1.38 - pkgsrc/multimedia/xine-lib/patches/patch-aa 1.5 - pkgsrc/multimedia/xine-lib/patches/patch-ab 1.4 - pkgsrc/multimedia/xine-lib/patches/patch-ac 1.3 - pkgsrc/multimedia/xine-lib/patches/patch-ae 1.3 - pkgsrc/multimedia/xine-lib/patches/patch-ag 1.14 - pkgsrc/multimedia/xine-lib/patches/patch-ah 1.3 - pkgsrc/multimedia/xine-lib/patches/patch-ai 1.3 - pkgsrc/multimedia/xine-lib/patches/patch-ao 1.11 - pkgsrc/multimedia/xine-lib/patches/patch-ap 1.3 - pkgsrc/multimedia/xine-lib/patches/patch-av 1.3 - pkgsrc/multimedia/xine-lib/patches/patch-az 1.2 - pkgsrc/multimedia/xine-lib/patches/patch-bb removed - pkgsrc/multimedia/xine-lib/patches/patch-bd 1.2 - pkgsrc/multimedia/xine-lib/patches/patch-be 1.7 - pkgsrc/multimedia/xine-lib/patches/patch-bg 1.3 - pkgsrc/multimedia/xine-lib/patches/patch-bh removed - pkgsrc/multimedia/xine-lib/patches/patch-da 1.2 - pkgsrc/multimedia/xine-lib/patches/patch-db 1.2 - pkgsrc/multimedia/xine-lib/patches/patch-dc 1.2 Module Name: pkgsrc Committed By: abs Date: Fri Dec 8 09:24:26 UTC 2006 Modified Files: pkgsrc/multimedia/xine-lib: Makefile Makefile.common distinfo pkgsrc/multimedia/xine-lib/patches: patch-aa patch-ab patch-ac patch-ae patch-ag patch-ah patch-ai patch-ao patch-ap patch-av patch-az patch-bd patch-be patch-bg patch-da patch-db patch-dc Removed Files: pkgsrc/multimedia/xine-lib/patches: patch-bb patch-bh Log Message: Update xine-lib to 1.1.3 * Security fixes: - Heap overflow in libmms (related to CVE-2006-2200) - Buffer overrun in Real Media input plugin. [bug #1603458] Thanks to Roland Kay for reporting and JW for the patch. * Update build system to support x86 Darwin setups, and merge patches to support Darwin OS better. * Replace custom ALSA check with pkg-config check, and make sure 0.9.0 is the requried version. * When the compiler supports it, enable hidden visibility for all the plugins to export only the plugin info entry (and eventual needed special functions), to replace the min-symtab option that wasn't working. * Add "m4b" to the list of supported file extensions for the Qt demuxer, to allow playing (unprotected) audiobooks in AAC format. * Remove --disable-fpic hack, prefer using --without-pic instead. * Add new output plugin: PulseAudio (based on PolypAudio plugin), that uses 0.9 API (PulseAudio is PolypAudio renamed). * Remove PolypAudio plugin, latest version supported 0.7 API that is no more supported by upstream, and it's replaced by PulseAudio. * Allow 0 for DVD title/chapter (navigation or full title). * New experimental JACK audio driver. * Fix switch from alsa/dmix 2.0 to 5.1 [bug #1226595] * Don't use proxy for localhost connection. [bug #1553633] * Use mmap() to open local files if available. * Use pkg-config to look for external FFmpeg. * Allow FFmpeg to play MP3s in case MAD is not present. * Reduce the dead time when trying to connect to dead hosts, by falling back to non-blocking sockets on the last address found for an host, and allowing users to provide a connection timeout. [bug #1550844] * Return the correct error message to frontends when a file is inaccessible or the network connection is broken. [bug #1550763] * Support libcaca 0.99, thanks to cjacker huang. * Fix crash on video-only WMV streams. [bug #1564598] * Report audio stream on Shorten files (required for Amarok to play them). * Optionally use fontconfig to look up fonts to use for OSD. [bug #1551042] * Prefer FreeType2 rendered fonts to bitmap fonts. * Stone age platforms update * Enabled TrueSpeech codec * New X11 visual type: xine-lib may now use frontend's mutex/lock mechanism instead of XLockDisplay/XUnlockDisplay. * Allow playing of OggFlac files. [bug #1590690] * Allow playing FLAC files with an ID3 tag at the start. * Fix some crashes caused by MP3 files (and possibly others) being misdetected as AAC. @ text @d1 1 a1 1 $NetBSD: patch-dc,v 1.2 2006/12/08 09:24:26 abs Exp $ d6 1 a6 1 --- src/libffmpeg/libavcodec/msmpeg4.c.orig 2006-08-02 08:02:40.000000000 +0100 d8 1 a8 1 @@@@ -1408,181 +1408,6 @@@@ static int msmpeg4v2_decode_motion(MpegE d105 1 d131 1 d156 1 d167 1 d191 1 a191 1 //#define ERROR_DETAILS d194 2 a195 1 @@@@ -1831,6 +1656,182 @@@@ static inline int msmpeg4_decode_block(M d292 1 d318 1 d343 1 d354 1 d378 1 @