update to 1.2.1

changes:
-Rewrite of VDPAU OSD handling
-sndio plugin is now buildable
-Various bug fixes
This commit is contained in:
drochner 2012-03-21 16:37:15 +00:00
parent 80abe8f0a0
commit 1eafbc82b7
19 changed files with 205 additions and 3018 deletions

View file

@ -1,16 +1,16 @@
# $NetBSD: Makefile,v 1.95 2012/02/06 12:41:09 wiz Exp $
# $NetBSD: Makefile,v 1.96 2012/03/21 16:37:15 drochner Exp $
PKG_DESTDIR_SUPPORT= user-destdir
.include "Makefile.common"
PKGREVISION= 1
COMMENT= Multimedia player library
CONFLICTS+= xine-xcb-[0-9]*
CONFIGURE_ARGS+= --disable-v4l
CONFIGURE_ARGS+= --disable-real-codecs
CONFIGURE_ARGS+= --disable-aalib
BUILDLINK_API_DEPENDS.vcdimager+= vcdimager>=0.7.20nb1

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile.common,v 1.74 2012/01/09 17:20:01 drochner Exp $
# $NetBSD: Makefile.common,v 1.75 2012/03/21 16:37:15 drochner Exp $
#
# used by audio/xine-alsa/Makefile
# used by audio/xine-arts/Makefile
@ -7,8 +7,8 @@
# used by multimedia/xine-v4l/Makefile
# used by multimedia/xine-v4l2/Makefile
DISTNAME= xine-lib-1.1.20.1
XINE_PKGNAME= xine-lib-1.1.20.1
DISTNAME= xine-lib-1.2.1
XINE_PKGNAME= xine-lib-1.2.1
PKGNAME?= ${XINE_PKGNAME}
CATEGORIES?= multimedia
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=xine/}
@ -17,7 +17,7 @@ EXTRACT_SUFX= .tar.bz2
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://xinehq.de/
XINE_MOD_DIR_VER= 1.30
XINE_MOD_DIR_VER= 2.1
PLIST_SUBST+= XINE_MOD_DIR_VER=${XINE_MOD_DIR_VER:Q}
DISTINFO_FILE= ${.CURDIR}/../../multimedia/xine-lib/distinfo

View file

@ -1,6 +1,6 @@
@comment $NetBSD: PLIST.common,v 1.32 2011/11/16 19:45:37 drochner Exp $
@comment $NetBSD: PLIST.common,v 1.33 2012/03/21 16:37:15 drochner Exp $
bin/xine-config
bin/xine-list-1.1
bin/xine-list-1.2
include/xine.h
include/xine/alphablend.h
include/xine/array.h
@ -27,19 +27,22 @@ include/xine/resample.h
include/xine/ring_buffer.h
include/xine/scratch.h
include/xine/sorted_array.h
include/xine/spu.h
include/xine/spu_decoder.h
include/xine/vdr.h
include/xine/version.h
include/xine/video_decoder.h
include/xine/video_out.h
include/xine/video_overlay.h
include/xine/vo_scale.h
include/xine/xine_buffer.h
include/xine/xine_internal.h
include/xine/xine_mmx.h
include/xine/xine_plugin.h
include/xine/xineintl.h
include/xine/xineutils.h
include/xine/xmllexer.h
include/xine/xmlparser.h
lib/libxine-interface.la
lib/libxine.la
lib/pkgconfig/libxine.pc
lib/xine/plugins/${XINE_MOD_DIR_VER}/mime.types
@ -75,8 +78,6 @@ lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_ff.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_ff.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_gsm610.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_gsm610.so
@comment lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_image.a
@comment lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_image.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_lpcm.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_lpcm.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_mad.a
@ -85,12 +86,10 @@ lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_mpc.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_mpc.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_mpeg2.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_mpeg2.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_nsf.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_nsf.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_qt.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_qt.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_rgb.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_rgb.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_speex.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_speex.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_spu.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_spu.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_spucc.a
@ -101,12 +100,8 @@ lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_spudvb.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_spudvb.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_spuhdmv.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_spuhdmv.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_sputext.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_sputext.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_theora.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_theora.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_vorbis.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_vorbis.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_w32dll.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_w32dll.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_yuv.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_decode_yuv.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_asf.a
@ -123,8 +118,6 @@ lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_games.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_games.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_iff.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_iff.so
@comment lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_image.a
@comment lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_image.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_matroska.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_matroska.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_mng.a
@ -141,8 +134,8 @@ lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_mpeg_ts.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_mpeg_ts.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_nsv.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_nsv.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_ogg.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_ogg.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_playlist.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_playlist.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_pva.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_pva.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_qt.a
@ -153,16 +146,14 @@ lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_real.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_real.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_slave.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_slave.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_sputext.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_sputext.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_vc1_es.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_vc1_es.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_yuv4mpeg2.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_yuv4mpeg2.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_yuv_frames.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_dmx_yuv_frames.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_cdda.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_cdda.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_dvb.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_dvb.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_dvd.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_dvd.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_file.a
@ -175,26 +166,28 @@ lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_net.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_net.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_pnm.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_pnm.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_pvr.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_pvr.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_rtp.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_rtp.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_rtsp.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_rtsp.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_stdin_fifo.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_stdin_fifo.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_v4l2.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_v4l2.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_vcd.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_vcd.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_vcdo.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_inp_vcdo.so
@comment lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vo_out_aa.a
@comment lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vo_out_aa.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_nsf.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_nsf.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_sputext.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_sputext.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vdr.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vdr.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vo_out_none.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vo_out_none.so
@comment lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vo_out_opengl.a
@comment lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vo_out_opengl.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vo_out_raw.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vo_out_raw.so
@comment lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vo_out_sdl.a
@comment lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vo_out_sdl.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vo_out_xcbshm.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vo_out_xcbshm.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vo_out_xcbxv.a
@ -207,8 +200,10 @@ ${PLIST.xvmc}lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vo_out_xvmc.a
${PLIST.xvmc}lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vo_out_xvmc.so
${PLIST.xvmc}lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vo_out_xxmc.a
${PLIST.xvmc}lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_vo_out_xxmc.so
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_xiph.a
lib/xine/plugins/${XINE_MOD_DIR_VER}/xineplug_xiph.so
man/man1/xine-config.1
man/man1/xine-list-1.1.1
man/man1/xine-list-1.2.1
man/man5/xine.5
share/aclocal/xine.m4
share/doc/xine-lib/COPYING
@ -218,14 +213,15 @@ share/doc/xine-lib/NEWS
share/doc/xine-lib/README
share/doc/xine-lib/README.MINGWCROSS
share/doc/xine-lib/README.WIN32
share/doc/xine-lib/README.cetus
share/doc/xine-lib/README.dvb
share/doc/xine-lib/README.dxr3
share/doc/xine-lib/README.freebsd
share/doc/xine-lib/README.irix
share/doc/xine-lib/README.macosx
share/doc/xine-lib/README.network_dvd
share/doc/xine-lib/README.opengl
share/doc/xine-lib/README.solaris
share/doc/xine-lib/README.syncfb
share/doc/xine-lib/README_xxmc.html
share/doc/xine-lib/TODO
share/doc/xine-lib/faq.html
@ -235,52 +231,52 @@ share/doc/xine-lib/hackersguide/hackersguide.html
share/doc/xine-lib/hackersguide/library.png
share/doc/xine-lib/hackersguide/overlays.png
share/doc/xine-lib/hackersguide/post_frame.png
share/locale/cs/LC_MESSAGES/libxine1.mo
share/locale/de/LC_MESSAGES/libxine1.mo
share/locale/en_US/LC_MESSAGES/libxine1.mo
share/locale/eo/LC_MESSAGES/libxine1.mo
share/locale/es/LC_MESSAGES/libxine1.mo
share/locale/eu/LC_MESSAGES/libxine1.mo
share/locale/fr/LC_MESSAGES/libxine1.mo
share/locale/it/LC_MESSAGES/libxine1.mo
share/locale/ja/LC_MESSAGES/libxine1.mo
share/locale/pl/LC_MESSAGES/libxine1.mo
share/locale/pt_BR/LC_MESSAGES/libxine1.mo
share/locale/sk/LC_MESSAGES/libxine1.mo
share/locale/tr/LC_MESSAGES/libxine1.mo
share/xine/libxine1/fonts/cc-16.xinefont.gz
share/xine/libxine1/fonts/cc-20.xinefont.gz
share/xine/libxine1/fonts/cc-24.xinefont.gz
share/xine/libxine1/fonts/cc-32.xinefont.gz
share/xine/libxine1/fonts/cc-48.xinefont.gz
share/xine/libxine1/fonts/cc-64.xinefont.gz
share/xine/libxine1/fonts/cci-16.xinefont.gz
share/xine/libxine1/fonts/cci-20.xinefont.gz
share/xine/libxine1/fonts/cci-24.xinefont.gz
share/xine/libxine1/fonts/cci-32.xinefont.gz
share/xine/libxine1/fonts/cci-48.xinefont.gz
share/xine/libxine1/fonts/cci-64.xinefont.gz
share/xine/libxine1/fonts/cetus-16.xinefont.gz
share/xine/libxine1/fonts/cetus-20.xinefont.gz
share/xine/libxine1/fonts/cetus-24.xinefont.gz
share/xine/libxine1/fonts/cetus-32.xinefont.gz
share/xine/libxine1/fonts/cetus-48.xinefont.gz
share/xine/libxine1/fonts/cetus-64.xinefont.gz
share/xine/libxine1/fonts/mono-16.xinefont.gz
share/xine/libxine1/fonts/mono-20.xinefont.gz
share/xine/libxine1/fonts/mono-24.xinefont.gz
share/xine/libxine1/fonts/mono-32.xinefont.gz
share/xine/libxine1/fonts/mono-48.xinefont.gz
share/xine/libxine1/fonts/mono-64.xinefont.gz
share/xine/libxine1/fonts/sans-16.xinefont.gz
share/xine/libxine1/fonts/sans-20.xinefont.gz
share/xine/libxine1/fonts/sans-24.xinefont.gz
share/xine/libxine1/fonts/sans-32.xinefont.gz
share/xine/libxine1/fonts/sans-48.xinefont.gz
share/xine/libxine1/fonts/sans-64.xinefont.gz
share/xine/libxine1/fonts/serif-16.xinefont.gz
share/xine/libxine1/fonts/serif-20.xinefont.gz
share/xine/libxine1/fonts/serif-24.xinefont.gz
share/xine/libxine1/fonts/serif-32.xinefont.gz
share/xine/libxine1/fonts/serif-48.xinefont.gz
share/xine/libxine1/fonts/serif-64.xinefont.gz
share/locale/cs/LC_MESSAGES/libxine2.mo
share/locale/de/LC_MESSAGES/libxine2.mo
share/locale/en_US/LC_MESSAGES/libxine2.mo
share/locale/eo/LC_MESSAGES/libxine2.mo
share/locale/es/LC_MESSAGES/libxine2.mo
share/locale/eu/LC_MESSAGES/libxine2.mo
share/locale/fr/LC_MESSAGES/libxine2.mo
share/locale/it/LC_MESSAGES/libxine2.mo
share/locale/ja/LC_MESSAGES/libxine2.mo
share/locale/pl/LC_MESSAGES/libxine2.mo
share/locale/pt_BR/LC_MESSAGES/libxine2.mo
share/locale/sk/LC_MESSAGES/libxine2.mo
share/locale/tr/LC_MESSAGES/libxine2.mo
share/xine-lib/fonts/cc-16.xinefont.gz
share/xine-lib/fonts/cc-20.xinefont.gz
share/xine-lib/fonts/cc-24.xinefont.gz
share/xine-lib/fonts/cc-32.xinefont.gz
share/xine-lib/fonts/cc-48.xinefont.gz
share/xine-lib/fonts/cc-64.xinefont.gz
share/xine-lib/fonts/cci-16.xinefont.gz
share/xine-lib/fonts/cci-20.xinefont.gz
share/xine-lib/fonts/cci-24.xinefont.gz
share/xine-lib/fonts/cci-32.xinefont.gz
share/xine-lib/fonts/cci-48.xinefont.gz
share/xine-lib/fonts/cci-64.xinefont.gz
share/xine-lib/fonts/cetus-16.xinefont.gz
share/xine-lib/fonts/cetus-20.xinefont.gz
share/xine-lib/fonts/cetus-24.xinefont.gz
share/xine-lib/fonts/cetus-32.xinefont.gz
share/xine-lib/fonts/cetus-48.xinefont.gz
share/xine-lib/fonts/cetus-64.xinefont.gz
share/xine-lib/fonts/mono-16.xinefont.gz
share/xine-lib/fonts/mono-20.xinefont.gz
share/xine-lib/fonts/mono-24.xinefont.gz
share/xine-lib/fonts/mono-32.xinefont.gz
share/xine-lib/fonts/mono-48.xinefont.gz
share/xine-lib/fonts/mono-64.xinefont.gz
share/xine-lib/fonts/sans-16.xinefont.gz
share/xine-lib/fonts/sans-20.xinefont.gz
share/xine-lib/fonts/sans-24.xinefont.gz
share/xine-lib/fonts/sans-32.xinefont.gz
share/xine-lib/fonts/sans-48.xinefont.gz
share/xine-lib/fonts/sans-64.xinefont.gz
share/xine-lib/fonts/serif-16.xinefont.gz
share/xine-lib/fonts/serif-20.xinefont.gz
share/xine-lib/fonts/serif-24.xinefont.gz
share/xine-lib/fonts/serif-32.xinefont.gz
share/xine-lib/fonts/serif-48.xinefont.gz
share/xine-lib/fonts/serif-64.xinefont.gz

View file

@ -1,4 +1,4 @@
# $NetBSD: buildlink3.mk,v 1.22 2009/03/20 19:25:06 joerg Exp $
# $NetBSD: buildlink3.mk,v 1.23 2012/03/21 16:37:15 drochner Exp $
BUILDLINK_TREE+= xine-lib
@ -9,6 +9,8 @@ BUILDLINK_API_DEPENDS.xine-lib+= xine-lib>=1rc3c
BUILDLINK_ABI_DEPENDS.xine-lib+=xine-lib>=1.0.3a
BUILDLINK_ABI_DEPENDS.xine-lib?= xine-lib>=1.1.3nb1
BUILDLINK_PKGSRCDIR.xine-lib?= ../../multimedia/xine-lib
.include "../../multimedia/ffmpeg/buildlink3.mk"
.endif # XINE_LIB_BUILDLINK3_MK
BUILDLINK_TREE+= -xine-lib

View file

@ -1,23 +1,22 @@
$NetBSD: distinfo,v 1.79 2012/01/09 17:20:01 drochner Exp $
$NetBSD: distinfo,v 1.80 2012/03/21 16:37:15 drochner Exp $
SHA1 (xine-lib-1.1.20.1.tar.bz2) = 68e85049723b491ccb22d5123bf8fa780529868a
RMD160 (xine-lib-1.1.20.1.tar.bz2) = 73adb48ca4e3bd73018eaeb92ea4740b2c004d29
Size (xine-lib-1.1.20.1.tar.bz2) = 7569871 bytes
SHA1 (xine-lib-1.2.1.tar.bz2) = c86591ff9fb6b073b8d115fa31b5a74a305e8628
RMD160 (xine-lib-1.2.1.tar.bz2) = eb6dab8418eebf0ee5f210efd085ae09367f624e
Size (xine-lib-1.2.1.tar.bz2) = 6197175 bytes
SHA1 (patch-Makefile.am) = 3cfff7a6941015921c166f9a67159a5bb3ca0204
SHA1 (patch-ad) = 94aaac03f74c72a1ca753d1320aac07d1bb8a846
SHA1 (patch-ag) = 96a2bab961ca90d7e3c1d67b6aa09388f9478d35
SHA1 (patch-ag) = ee91008cf6dc3afec3f7f1280bd8983a3be8e273
SHA1 (patch-aj) = 4215c3bc37cf636e563a509f9a391081ed8e773b
SHA1 (patch-ak) = 987700e6526b5112ac66bd6a8f9ee41f338c3508
SHA1 (patch-ap) = 4bc0c3923b50049f166f3bec703705ae33c166e9
SHA1 (patch-ap) = d48fa83879895d4b1f56bfbcbe31087dd57d8a82
SHA1 (patch-as) = a0a93a256589e87a66eef31494441aa1b200f834
SHA1 (patch-at) = 15a810379ccb345aeeb374b0148096684f5f179b
SHA1 (patch-au) = 7f78d400ac606e2f73eb4caf347013f2b55f9430
SHA1 (patch-cb) = db4ff27418e05e97bf30b554beecc24d6e578d15
SHA1 (patch-cd) = a080c745d08ded46db7c1173fe55350c1eb9ff33
SHA1 (patch-da) = f79701d7c036e78d760c12119d88fe3f0dd1762d
SHA1 (patch-db) = 3ad4ca6f43a379b251211477972cd6d34b1f821a
SHA1 (patch-dc) = 11c4212029e67f22796e57706b42400a0dbcac3a
SHA1 (patch-cd) = 192530e79568ea165b1fc675c7e794133a06c734
SHA1 (patch-fa) = 9312a3bab4ae8482a208948277f1d11fb7eaaf8c
SHA1 (patch-include_Makefile.am) = 9fa5a83a340358b1d3651ce2cc18f61772e9d128
SHA1 (patch-input_dvb.c) = 37aa191dca0df058dc09477624ff76dbc3a2f9b9
SHA1 (patch-input_dvb.c) = 712291f38e5eec79daecb524e990e67af0d2c427
SHA1 (patch-na) = b1158183f6caa772c1f3e08cb9abedc28326523f
SHA1 (patch-src-demuxers-demux_qt.c) = 2942911c09c0580c6017474af2a14f5b1f193c1d
SHA1 (patch-src-post-audio-stretch.c) = bc083541c410e8b8c2b5c23bc7b2b0ae312272a5
SHA1 (patch-src-post-audio-upmix.c) = ab01e157b42b8dd99622a17b5a8ecdb464ee694e
@ -35,6 +34,6 @@ SHA1 (patch-src-post-planar-expand.c) = 7c532feeae4078f40d6f9a28dfa207e5cbee60a1
SHA1 (patch-src-post-planar-noise.c) = b3baf82e150ca9a27e73753398c18839066748f1
SHA1 (patch-src-post-planar-pp.c) = 147dc05a09ff851af99c488112c6a77926ae5afb
SHA1 (patch-src-post-planar-unsharp.c) = 964ec33c8c3cfcc8783b5fae1093c8fba76ff2a9
SHA1 (patch-src-xine-engine-post.h) = 9a768aa3558bcde6f382f6945758a969f669338c
SHA1 (patch-src_audio__out_Makefile.am) = a4b5b55eb2b5e7a8d85fb58100f71fb89bd9d79c
SHA1 (patch-src_libw32dll_wine_Makefile.am) = 6be7574a5e0d120f1598b6cc34c39f1bf98a2a69
SHA1 (patch-src-xine-engine-post.h) = 3b96d1279bbec48b2f3df50a576bfa8ec25f796f
SHA1 (patch-src_audio__out_Makefile.am) = 5f8ba2ce81a63cb195407c3ce6649007ce15408f
SHA1 (patch-src_libw32dll_wine_Makefile.am) = 17c717c84531780dc06c3cd5db8f879a560aeb3a

View file

@ -1,94 +1,26 @@
$NetBSD: patch-ag,v 1.23 2011/10/12 17:30:22 hans Exp $
$NetBSD: patch-ag,v 1.24 2012/03/21 16:37:15 drochner Exp $
--- configure.ac.orig 2010-07-25 14:37:30.000000000 +0000
--- configure.ac.orig 2012-02-04 00:41:43.000000000 +0000
+++ configure.ac
@@ -581,6 +581,9 @@ AC_CHECK_LIB(socket, socket, NET_LIBS="-
AC_CHECK_LIB(nsl, gethostbyname, NET_LIBS="-lnsl $NET_LIBS",)
@@ -272,6 +272,10 @@ AC_CHECK_LIB([nsl], [gethostbyname],
AC_CHECK_LIB([resolv], [hstrerror], [NET_LIBS="-lresolv $NET_LIBS"])
AC_SUBST(NET_LIBS)
+WINE_LIBS=""
+AC_CHECK_LIB(i386, i386_set_ldt, WINE_LIBS="-li386 $WINE_LIBS",)
+AC_SUBST(WINE_LIBS)
dnl ---------------------------------------------
dnl socklen_t
@@ -710,6 +713,10 @@ if test "x$have_v4l2" = xyes && test "x$
fi
fi
+
AC_CHECK_LIB([rt], [clock_getres],
[RT_LIBS="-lrt"
AC_DEFINE(HAVE_POSIX_TIMERS, 1, [Define this if you have POSIX timers.])],
@@ -361,6 +365,10 @@ case "$host_os" in
esac
AC_CHECK_HEADERS([sys/dvdio.h sys/cdio.h sys/scsiio.h])
+dnl ----------------------------------------------
+dnl Check for NetBSD DTV headers
+dnl ----------------------------------------------
+AC_CHECK_HEADERS([dev/dtv/dtvio.h])
dnl ----------------------------------------------
dnl Check for Xv and XvMC support
@@ -968,7 +975,6 @@ if test "x$enable_xinerama" != "xno"; th
])
if test "x$ac_have_xinerama" = "xyes"; then
AC_DEFINE(HAVE_XINERAMA,1,[Define this if you have libXinerama installed])
- X_LIBS="${X_LIBS} ${XINERAMA_LIBS}"
fi
else
ac_have_xinerama=no
@@ -1480,8 +1486,21 @@ AC_ARG_ENABLE([oss],
AS_HELP_STRING([--disable-oss], [Do not build OSS audio output support]))
if test "x$enable_oss" != "xno"; then
+
+ case "$host" in
+ *-*-netbsd*|*-*-openbsd*)
+ OSS_LIBS="-lossaudio"
+ ;;
+ *)
+ OSS_LIBS=""
+ ;;
+ esac
+
AC_CHECK_HEADERS([sys/soundcard.h machine/soundcard.h soundcard.h], [break])
AC_CHECK_DECL([SNDCTL_DSP_SETFRAGMENT], [have_ossaudio=yes], [], [
+ #ifdef __NetBSD__
+ #include <sys/ioctl.h>
+ #endif
#ifdef HAVE_SYS_SOUNDCARD_H
# include <sys/soundcard.h>
#endif
@@ -1499,6 +1518,7 @@ if test "x$enable_oss" != "xno"; then
fi
AM_CONDITIONAL(HAVE_OSS, test "x$have_ossaudio" = "xyes")
+AC_SUBST(OSS_LIBS)
dnl ---------------------------------------------
@@ -1630,9 +1650,10 @@ AC_ARG_ENABLE([gnomevfs],
[with_gnome_vfs=$enableval], [with_gnome_vfs=yes])
if test "x$with_gnome_vfs" = "xyes"; then
- PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0,
- no_gnome_vfs=no,
- no_gnome_vfs=yes)
+dnl PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0,
+dnl no_gnome_vfs=no,
+dnl no_gnome_vfs=yes)
+no_gnome_vfs=yes
AC_SUBST(GNOME_VFS_CFLAGS)
AC_SUBST(GNOME_VFS_LIBS)
if test "x$no_gnome_vfs" != "xyes"; then
@@ -1973,7 +1994,7 @@ int has_timeout=sizeof(test.timeout);]])
AC_DEFINE([HAVE_WIN32_CDROM], [1],
[Define 1 if you have MinGW CD-ROM support])
;;
- freebsd4.*|kfreebsd*-gnu)
+ freebsd4.*|kfreebsd*-gnu|dragonfly*)
AC_DEFINE([HAVE_FREEBSD_CDROM], [1],
[Define 1 if you have FreeBSD CD-ROM support])
;;
@@ -2234,6 +2255,7 @@ if test "x$some_snprintf" != "xyes" -o \
fi
AC_FUNC_FSEEKO
AC_CHECK_HEADERS(assert.h byteswap.h malloc.h execinfo.h ucontext.h sys/mman.h sys/mixer.h libgen.h netdb.h dirent.h sys/times.h sys/ioctl.h sys/param.h alloca.h)
+AC_LIBOBJ(dummy)
AC_REPLACE_FUNCS(asprintf basename gettimeofday setenv strcasestr strndup strpbrk strsep strtok_r timegm unsetenv memmem)
AC_LIBSOURCE(hstrerror.c)
dnl ----------------
dnl checks for types

View file

@ -1,13 +1,10 @@
$NetBSD: patch-ap,v 1.11 2011/12/24 03:02:25 sbd Exp $
$NetBSD: patch-ap,v 1.12 2012/03/21 16:37:15 drochner Exp $
--- src/dxr3/Makefile.am.orig 2011-10-04 21:42:53.000000000 +0000
--- src/dxr3/Makefile.am.orig 2012-02-04 00:41:43.000000000 +0000
+++ src/dxr3/Makefile.am
@@ -45,7 +48,7 @@ xineplug_vo_out_dxr3_la_SOURCES = \
dxr3_scr.c \
@@ -49,4 +49,4 @@ xineplug_vo_out_dxr3_la_SOURCES = \
video_out_dxr3.c
-xineplug_vo_out_dxr3_la_LIBADD = $(XINE_LIB) $(link_fame) $(link_rte) $(link_x_libs) $(LTLIBINTL) $(DYNAMIC_LD_LIBS) -lm
+xineplug_vo_out_dxr3_la_LIBADD = $(XINE_LIB) $(link_fame) $(link_rte) $(link_x_libs) $(LTLIBINTL) $(DYNAMIC_LD_LIBS) -lm $(XINERAMA_LIBS)
xineplug_vo_out_dxr3_la_CFLAGS = $(VISIBILITY_FLAG) $(AM_CFLAGS)
xineplug_vo_out_dxr3_la_LDFLAGS = $(xineplug_ldflags)
xineplug_vo_out_dxr3_la_CFLAGS = $(AM_CFLAGS) $(AVUTIL_CFLAGS) $(FFMPEG_CFLAGS)
-xineplug_vo_out_dxr3_la_LIBADD = $(XINE_LIB) $(link_fame) $(link_rte) $(link_x_libs) $(LTLIBINTL) $(AVUTIL_LIBS) $(FFMPEG_LIBS) -lm
+xineplug_vo_out_dxr3_la_LIBADD = $(XINE_LIB) $(link_fame) $(link_rte) $(link_x_libs) $(LTLIBINTL) $(AVUTIL_LIBS) $(FFMPEG_LIBS) -lm $(XINERAMA_LIBS)

View file

@ -0,0 +1,13 @@
$NetBSD: patch-at,v 1.7 2012/03/21 16:37:15 drochner Exp $
--- src/xine-utils/memcpy.c.orig 2012-02-05 15:31:10.000000000 +0000
+++ src/xine-utils/memcpy.c
@@ -414,7 +414,7 @@ static uint64_t memcpy_timing[sizeof(mem
static int64_t _x_gettime(void)
{
struct timespec tm;
- return (clock_gettime (CLOCK_THREAD_CPUTIME_ID, &tm) == -1)
+ return (clock_gettime (CLOCK_MONOTONIC, &tm) == -1)
? times (NULL)
: (int64_t)tm.tv_sec * 1e9 + tm.tv_nsec;
}

View file

@ -0,0 +1,13 @@
$NetBSD: patch-au,v 1.8 2012/03/21 16:37:15 drochner Exp $
--- src/audio_dec/xine_musepack_decoder.c.orig 2012-02-05 15:44:05.000000000 +0000
+++ src/audio_dec/xine_musepack_decoder.c
@@ -53,7 +53,7 @@
#elif defined(HAVE_MPC_MPCDEC_H)
# include <mpc/mpcdec.h>
#else
-# include "musepack/musepack.h"
+# include "mpcdec/mpcdec.h"
#endif
#define MPC_DECODER_MEMSIZE 65536

View file

@ -1,7 +1,7 @@
$NetBSD: patch-cd,v 1.1 2005/10/10 22:51:04 joerg Exp $
$NetBSD: patch-cd,v 1.2 2012/03/21 16:37:15 drochner Exp $
--- src/video_out/libdha/sysdep/pci_freebsd.c.orig 2005-07-10 21:02:09.000000000 +0000
+++ src/video_out/libdha/sysdep/pci_freebsd.c
--- contrib/libdha/sysdep/pci_freebsd.c.orig 2005-07-10 21:02:09.000000000 +0000
+++ contrib/libdha/sysdep/pci_freebsd.c
@@ -8,7 +8,7 @@
/* machine/console.h seems to be outdated by recent FreeBSD *
* however pcvt_ioctl.h seems to exist for very long time */

View file

@ -1,848 +0,0 @@
$NetBSD: patch-da,v 1.3 2007/02/07 20:04:00 drochner 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/h263.c.orig 2007-01-28 19:38:33.000000000 +0100
+++ src/libffmpeg/libavcodec/h263.c
@@ -3459,6 +3459,53 @@ static inline int get_amv(MpegEncContext
}
/**
+ * decodes the dc value.
+ * @param n block index (0-3 are luma, 4-5 are chroma)
+ * @param dir_ptr the prediction direction will be stored here
+ * @return the quantized dc
+ */
+static inline int mpeg4_decode_dc(MpegEncContext * s, int n, int *dir_ptr)
+{
+ int level, code;
+
+ if (n < 4)
+ code = get_vlc2(&s->gb, dc_lum.table, DC_VLC_BITS, 1);
+ else
+ code = get_vlc2(&s->gb, dc_chrom.table, DC_VLC_BITS, 1);
+ if (code < 0 || code > 9 /* && s->nbit<9 */){
+ av_log(s->avctx, AV_LOG_ERROR, "illegal dc vlc\n");
+ return -1;
+ }
+ if (code == 0) {
+ level = 0;
+ } else {
+ if(IS_3IV1){
+ if(code==1)
+ level= 2*get_bits1(&s->gb)-1;
+ else{
+ if(get_bits1(&s->gb))
+ level = get_bits(&s->gb, code-1) + (1<<(code-1));
+ else
+ level = -get_bits(&s->gb, code-1) - (1<<(code-1));
+ }
+ }else{
+ level = get_xbits(&s->gb, code);
+ }
+
+ if (code > 8){
+ if(get_bits1(&s->gb)==0){ /* marker */
+ if(s->error_resilience>=2){
+ av_log(s->avctx, AV_LOG_ERROR, "dc marker bit missing\n");
+ return -1;
+ }
+ }
+ }
+ }
+
+ return ff_mpeg4_pred_dc(s, n, level, dir_ptr, 0);
+}
+
+/**
* decodes first partition.
* @return number of MBs decoded or <0 if an error occured
*/
@@ -3764,124 +3811,380 @@ int ff_mpeg4_decode_partitions(MpegEncCo
}
/**
- * decode partition C of one MB.
+ * decodes a block.
* @return <0 if an error occured
*/
-static int mpeg4_decode_partitioned_mb(MpegEncContext *s, DCTELEM block[6][64])
+static inline int mpeg4_decode_block(MpegEncContext * s, DCTELEM * block,
+ int n, int coded, int intra, int rvlc)
{
- int cbp, mb_type;
- const int xy= s->mb_x + s->mb_y*s->mb_stride;
-
- mb_type= s->current_picture.mb_type[xy];
- cbp = s->cbp_table[xy];
+ int level, i, last, run;
+ int dc_pred_dir;
+ RLTable * rl;
+ RL_VLC_ELEM * rl_vlc;
+ const uint8_t * scan_table;
+ int qmul, qadd;
- s->use_intra_dc_vlc= s->qscale < s->intra_dc_threshold;
+ //Note intra & rvlc should be optimized away if this is inlined
- if(s->current_picture.qscale_table[xy] != s->qscale){
- ff_set_qscale(s, s->current_picture.qscale_table[xy] );
- }
+ if(intra) {
+ if(s->use_intra_dc_vlc){
+ /* DC coef */
+ if(s->partitioned_frame){
+ level = s->dc_val[0][ s->block_index[n] ];
+ if(n<4) level= FASTDIV((level + (s->y_dc_scale>>1)), s->y_dc_scale);
+ else level= FASTDIV((level + (s->c_dc_scale>>1)), s->c_dc_scale);
+ dc_pred_dir= (s->pred_dir_table[s->mb_x + s->mb_y*s->mb_stride]<<n)&32;
+ }else{
+ level = mpeg4_decode_dc(s, n, &dc_pred_dir);
+ if (level < 0)
+ return -1;
+ }
+ block[0] = level;
+ i = 0;
+ }else{
+ i = -1;
+ ff_mpeg4_pred_dc(s, n, 0, &dc_pred_dir, 0);
+ }
+ if (!coded)
+ goto not_coded;
- if (s->pict_type == P_TYPE || s->pict_type==S_TYPE) {
- int i;
- for(i=0; i<4; i++){
- s->mv[0][i][0] = s->current_picture.motion_val[0][ s->block_index[i] ][0];
- s->mv[0][i][1] = s->current_picture.motion_val[0][ s->block_index[i] ][1];
+ if(rvlc){
+ rl = &rvlc_rl_intra;
+ rl_vlc = rvlc_rl_intra.rl_vlc[0];
+ }else{
+ rl = &rl_intra;
+ rl_vlc = rl_intra.rl_vlc[0];
}
- s->mb_intra = IS_INTRA(mb_type);
+ if (s->ac_pred) {
+ if (dc_pred_dir == 0)
+ scan_table = s->intra_v_scantable.permutated; /* left */
+ else
+ scan_table = s->intra_h_scantable.permutated; /* top */
+ } else {
+ scan_table = s->intra_scantable.permutated;
+ }
+ qmul=1;
+ qadd=0;
+ } else {
+ i = -1;
+ if (!coded) {
+ s->block_last_index[n] = i;
+ return 0;
+ }
+ if(rvlc) rl = &rvlc_rl_inter;
+ else rl = &rl_inter;
- if (IS_SKIP(mb_type)) {
- /* skip mb */
- for(i=0;i<6;i++)
- s->block_last_index[i] = -1;
- s->mv_dir = MV_DIR_FORWARD;
- s->mv_type = MV_TYPE_16X16;
- if(s->pict_type==S_TYPE && s->vol_sprite_usage==GMC_SPRITE){
- s->mcsel=1;
- s->mb_skipped = 0;
+ scan_table = s->intra_scantable.permutated;
+
+ if(s->mpeg_quant){
+ qmul=1;
+ qadd=0;
+ if(rvlc){
+ rl_vlc = rvlc_rl_inter.rl_vlc[0];
}else{
- s->mcsel=0;
- s->mb_skipped = 1;
+ rl_vlc = rl_inter.rl_vlc[0];
}
- }else if(s->mb_intra){
- s->ac_pred = IS_ACPRED(s->current_picture.mb_type[xy]);
- }else if(!s->mb_intra){
-// s->mcsel= 0; //FIXME do we need to init that
-
- s->mv_dir = MV_DIR_FORWARD;
- if (IS_8X8(mb_type)) {
- s->mv_type = MV_TYPE_8X8;
- } else {
- s->mv_type = MV_TYPE_16X16;
+ }else{
+ qmul = s->qscale << 1;
+ qadd = (s->qscale - 1) | 1;
+ if(rvlc){
+ rl_vlc = rvlc_rl_inter.rl_vlc[s->qscale];
+ }else{
+ rl_vlc = rl_inter.rl_vlc[s->qscale];
}
}
- } else { /* I-Frame */
- s->mb_intra = 1;
- s->ac_pred = IS_ACPRED(s->current_picture.mb_type[xy]);
}
+ {
+ OPEN_READER(re, &s->gb);
+ for(;;) {
+ UPDATE_CACHE(re, &s->gb);
+ GET_RL_VLC(level, run, re, &s->gb, rl_vlc, TEX_VLC_BITS, 2, 0);
+ if (level==0) {
+ /* escape */
+ if(rvlc){
+ if(SHOW_UBITS(re, &s->gb, 1)==0){
+ av_log(s->avctx, AV_LOG_ERROR, "1. marker bit missing in rvlc esc\n");
+ return -1;
+ }; SKIP_CACHE(re, &s->gb, 1);
- if (!IS_SKIP(mb_type)) {
- int i;
- s->dsp.clear_blocks(s->block[0]);
- /* decode each block */
- for (i = 0; i < 6; i++) {
- if(mpeg4_decode_block(s, block[i], i, cbp&32, s->mb_intra, s->rvlc) < 0){
- av_log(s->avctx, AV_LOG_ERROR, "texture corrupted at %d %d %d\n", s->mb_x, s->mb_y, s->mb_intra);
- return -1;
- }
- cbp+=cbp;
- }
- }
+ last= SHOW_UBITS(re, &s->gb, 1); SKIP_CACHE(re, &s->gb, 1);
+ run= SHOW_UBITS(re, &s->gb, 6); LAST_SKIP_CACHE(re, &s->gb, 6);
+ SKIP_COUNTER(re, &s->gb, 1+1+6);
+ UPDATE_CACHE(re, &s->gb);
- /* per-MB end of slice check */
+ if(SHOW_UBITS(re, &s->gb, 1)==0){
+ av_log(s->avctx, AV_LOG_ERROR, "2. marker bit missing in rvlc esc\n");
+ return -1;
+ }; SKIP_CACHE(re, &s->gb, 1);
- if(--s->mb_num_left <= 0){
-//printf("%06X %d\n", show_bits(&s->gb, 24), s->gb.size_in_bits - get_bits_count(&s->gb));
- if(mpeg4_is_resync(s))
- return SLICE_END;
- else
- return SLICE_NOEND;
- }else{
- if(mpeg4_is_resync(s)){
- const int delta= s->mb_x + 1 == s->mb_width ? 2 : 1;
- if(s->cbp_table[xy+delta])
- return SLICE_END;
- }
- return SLICE_OK;
- }
-}
+ level= SHOW_UBITS(re, &s->gb, 11); SKIP_CACHE(re, &s->gb, 11);
-/**
- * read the next MVs for OBMC. yes this is a ugly hack, feel free to send a patch :)
- */
-static void preview_obmc(MpegEncContext *s){
- GetBitContext gb= s->gb;
+ if(SHOW_UBITS(re, &s->gb, 5)!=0x10){
+ av_log(s->avctx, AV_LOG_ERROR, "reverse esc missing\n");
+ return -1;
+ }; SKIP_CACHE(re, &s->gb, 5);
- int cbpc, i, pred_x, pred_y, mx, my;
- int16_t *mot_val;
- const int xy= s->mb_x + 1 + s->mb_y * s->mb_stride;
- const int stride= s->b8_stride*2;
+ level= level * qmul + qadd;
+ level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1); LAST_SKIP_CACHE(re, &s->gb, 1);
+ SKIP_COUNTER(re, &s->gb, 1+11+5+1);
- for(i=0; i<4; i++)
- s->block_index[i]+= 2;
- for(i=4; i<6; i++)
- s->block_index[i]+= 1;
- s->mb_x++;
+ i+= run + 1;
+ if(last) i+=192;
+ }else{
+ int cache;
+ cache= GET_CACHE(re, &s->gb);
- assert(s->pict_type == P_TYPE);
+ if(IS_3IV1)
+ cache ^= 0xC0000000;
- do{
- if (get_bits1(&s->gb)) {
- /* skip mb */
- mot_val = s->current_picture.motion_val[0][ s->block_index[0] ];
- mot_val[0 ]= mot_val[2 ]=
- mot_val[0+stride]= mot_val[2+stride]= 0;
- mot_val[1 ]= mot_val[3 ]=
- mot_val[1+stride]= mot_val[3+stride]= 0;
+ if (cache&0x80000000) {
+ if (cache&0x40000000) {
+ /* third escape */
+ SKIP_CACHE(re, &s->gb, 2);
+ last= SHOW_UBITS(re, &s->gb, 1); SKIP_CACHE(re, &s->gb, 1);
+ run= SHOW_UBITS(re, &s->gb, 6); LAST_SKIP_CACHE(re, &s->gb, 6);
+ SKIP_COUNTER(re, &s->gb, 2+1+6);
+ UPDATE_CACHE(re, &s->gb);
- s->current_picture.mb_type[xy]= MB_TYPE_SKIP | MB_TYPE_16x16 | MB_TYPE_L0;
- goto end;
- }
- cbpc = get_vlc2(&s->gb, inter_MCBPC_vlc.table, INTER_MCBPC_VLC_BITS, 2);
+ if(IS_3IV1){
+ level= SHOW_SBITS(re, &s->gb, 12); LAST_SKIP_BITS(re, &s->gb, 12);
+ }else{
+ if(SHOW_UBITS(re, &s->gb, 1)==0){
+ av_log(s->avctx, AV_LOG_ERROR, "1. marker bit missing in 3. esc\n");
+ return -1;
+ }; SKIP_CACHE(re, &s->gb, 1);
+
+ level= SHOW_SBITS(re, &s->gb, 12); SKIP_CACHE(re, &s->gb, 12);
+
+ if(SHOW_UBITS(re, &s->gb, 1)==0){
+ av_log(s->avctx, AV_LOG_ERROR, "2. marker bit missing in 3. esc\n");
+ return -1;
+ }; LAST_SKIP_CACHE(re, &s->gb, 1);
+
+ SKIP_COUNTER(re, &s->gb, 1+12+1);
+ }
+
+#if 0
+ if(s->error_resilience >= FF_ER_COMPLIANT){
+ const int abs_level= FFABS(level);
+ if(abs_level<=MAX_LEVEL && run<=MAX_RUN){
+ const int run1= run - rl->max_run[last][abs_level] - 1;
+ if(abs_level <= rl->max_level[last][run]){
+ av_log(s->avctx, AV_LOG_ERROR, "illegal 3. esc, vlc encoding possible\n");
+ return -1;
+ }
+ if(s->error_resilience > FF_ER_COMPLIANT){
+ if(abs_level <= rl->max_level[last][run]*2){
+ av_log(s->avctx, AV_LOG_ERROR, "illegal 3. esc, esc 1 encoding possible\n");
+ return -1;
+ }
+ if(run1 >= 0 && abs_level <= rl->max_level[last][run1]){
+ av_log(s->avctx, AV_LOG_ERROR, "illegal 3. esc, esc 2 encoding possible\n");
+ return -1;
+ }
+ }
+ }
+ }
+#endif
+ if (level>0) level= level * qmul + qadd;
+ else level= level * qmul - qadd;
+
+ if((unsigned)(level + 2048) > 4095){
+ if(s->error_resilience > FF_ER_COMPLIANT){
+ if(level > 2560 || level<-2560){
+ av_log(s->avctx, AV_LOG_ERROR, "|level| overflow in 3. esc, qp=%d\n", s->qscale);
+ return -1;
+ }
+ }
+ level= level<0 ? -2048 : 2047;
+ }
+
+ i+= run + 1;
+ if(last) i+=192;
+ } else {
+ /* second escape */
+#if MIN_CACHE_BITS < 20
+ LAST_SKIP_BITS(re, &s->gb, 2);
+ UPDATE_CACHE(re, &s->gb);
+#else
+ SKIP_BITS(re, &s->gb, 2);
+#endif
+ GET_RL_VLC(level, run, re, &s->gb, rl_vlc, TEX_VLC_BITS, 2, 1);
+ i+= run + rl->max_run[run>>7][level/qmul] +1; //FIXME opt indexing
+ level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1);
+ LAST_SKIP_BITS(re, &s->gb, 1);
+ }
+ } else {
+ /* first escape */
+#if MIN_CACHE_BITS < 19
+ LAST_SKIP_BITS(re, &s->gb, 1);
+ UPDATE_CACHE(re, &s->gb);
+#else
+ SKIP_BITS(re, &s->gb, 1);
+#endif
+ GET_RL_VLC(level, run, re, &s->gb, rl_vlc, TEX_VLC_BITS, 2, 1);
+ i+= run;
+ level = level + rl->max_level[run>>7][(run-1)&63] * qmul;//FIXME opt indexing
+ level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1);
+ LAST_SKIP_BITS(re, &s->gb, 1);
+ }
+ }
+ } else {
+ i+= run;
+ level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1);
+ LAST_SKIP_BITS(re, &s->gb, 1);
+ }
+ if (i > 62){
+ i-= 192;
+ if(i&(~63)){
+ av_log(s->avctx, AV_LOG_ERROR, "ac-tex damaged at %d %d\n", s->mb_x, s->mb_y);
+ return -1;
+ }
+
+ block[scan_table[i]] = level;
+ break;
+ }
+
+ block[scan_table[i]] = level;
+ }
+ CLOSE_READER(re, &s->gb);
+ }
+ not_coded:
+ if (intra) {
+ if(!s->use_intra_dc_vlc){
+ block[0] = ff_mpeg4_pred_dc(s, n, block[0], &dc_pred_dir, 0);
+
+ i -= i>>31; //if(i == -1) i=0;
+ }
+
+ mpeg4_pred_ac(s, block, n, dc_pred_dir);
+ if (s->ac_pred) {
+ i = 63; /* XXX: not optimal */
+ }
+ }
+ s->block_last_index[n] = i;
+ return 0;
+}
+
+/**
+ * decode partition C of one MB.
+ * @return <0 if an error occured
+ */
+static int mpeg4_decode_partitioned_mb(MpegEncContext *s, DCTELEM block[6][64])
+{
+ int cbp, mb_type;
+ const int xy= s->mb_x + s->mb_y*s->mb_stride;
+
+ mb_type= s->current_picture.mb_type[xy];
+ cbp = s->cbp_table[xy];
+
+ s->use_intra_dc_vlc= s->qscale < s->intra_dc_threshold;
+
+ if(s->current_picture.qscale_table[xy] != s->qscale){
+ ff_set_qscale(s, s->current_picture.qscale_table[xy] );
+ }
+
+ if (s->pict_type == P_TYPE || s->pict_type==S_TYPE) {
+ int i;
+ for(i=0; i<4; i++){
+ s->mv[0][i][0] = s->current_picture.motion_val[0][ s->block_index[i] ][0];
+ s->mv[0][i][1] = s->current_picture.motion_val[0][ s->block_index[i] ][1];
+ }
+ s->mb_intra = IS_INTRA(mb_type);
+
+ if (IS_SKIP(mb_type)) {
+ /* skip mb */
+ for(i=0;i<6;i++)
+ s->block_last_index[i] = -1;
+ s->mv_dir = MV_DIR_FORWARD;
+ s->mv_type = MV_TYPE_16X16;
+ if(s->pict_type==S_TYPE && s->vol_sprite_usage==GMC_SPRITE){
+ s->mcsel=1;
+ s->mb_skipped = 0;
+ }else{
+ s->mcsel=0;
+ s->mb_skipped = 1;
+ }
+ }else if(s->mb_intra){
+ s->ac_pred = IS_ACPRED(s->current_picture.mb_type[xy]);
+ }else if(!s->mb_intra){
+// s->mcsel= 0; //FIXME do we need to init that
+
+ s->mv_dir = MV_DIR_FORWARD;
+ if (IS_8X8(mb_type)) {
+ s->mv_type = MV_TYPE_8X8;
+ } else {
+ s->mv_type = MV_TYPE_16X16;
+ }
+ }
+ } else { /* I-Frame */
+ s->mb_intra = 1;
+ s->ac_pred = IS_ACPRED(s->current_picture.mb_type[xy]);
+ }
+
+ if (!IS_SKIP(mb_type)) {
+ int i;
+ s->dsp.clear_blocks(s->block[0]);
+ /* decode each block */
+ for (i = 0; i < 6; i++) {
+ if(mpeg4_decode_block(s, block[i], i, cbp&32, s->mb_intra, s->rvlc) < 0){
+ av_log(s->avctx, AV_LOG_ERROR, "texture corrupted at %d %d %d\n", s->mb_x, s->mb_y, s->mb_intra);
+ return -1;
+ }
+ cbp+=cbp;
+ }
+ }
+
+ /* per-MB end of slice check */
+
+ if(--s->mb_num_left <= 0){
+//printf("%06X %d\n", show_bits(&s->gb, 24), s->gb.size_in_bits - get_bits_count(&s->gb));
+ if(mpeg4_is_resync(s))
+ return SLICE_END;
+ else
+ return SLICE_NOEND;
+ }else{
+ if(mpeg4_is_resync(s)){
+ const int delta= s->mb_x + 1 == s->mb_width ? 2 : 1;
+ if(s->cbp_table[xy+delta])
+ return SLICE_END;
+ }
+ return SLICE_OK;
+ }
+}
+
+/**
+ * read the next MVs for OBMC. yes this is a ugly hack, feel free to send a patch :)
+ */
+static void preview_obmc(MpegEncContext *s){
+ GetBitContext gb= s->gb;
+
+ int cbpc, i, pred_x, pred_y, mx, my;
+ int16_t *mot_val;
+ const int xy= s->mb_x + 1 + s->mb_y * s->mb_stride;
+ const int stride= s->b8_stride*2;
+
+ for(i=0; i<4; i++)
+ s->block_index[i]+= 2;
+ for(i=4; i<6; i++)
+ s->block_index[i]+= 1;
+ s->mb_x++;
+
+ assert(s->pict_type == P_TYPE);
+
+ do{
+ if (get_bits1(&s->gb)) {
+ /* skip mb */
+ mot_val = s->current_picture.motion_val[0][ s->block_index[0] ];
+ mot_val[0 ]= mot_val[2 ]=
+ mot_val[0+stride]= mot_val[2+stride]= 0;
+ mot_val[1 ]= mot_val[3 ]=
+ mot_val[1+stride]= mot_val[3+stride]= 0;
+
+ s->current_picture.mb_type[xy]= MB_TYPE_SKIP | MB_TYPE_16x16 | MB_TYPE_L0;
+ goto end;
+ }
+ cbpc = get_vlc2(&s->gb, inter_MCBPC_vlc.table, INTER_MCBPC_VLC_BITS, 2);
}while(cbpc == 20);
if(cbpc & 4){
@@ -4747,309 +5050,6 @@ not_coded:
return 0;
}
-/**
- * decodes the dc value.
- * @param n block index (0-3 are luma, 4-5 are chroma)
- * @param dir_ptr the prediction direction will be stored here
- * @return the quantized dc
- */
-static inline int mpeg4_decode_dc(MpegEncContext * s, int n, int *dir_ptr)
-{
- int level, code;
-
- if (n < 4)
- code = get_vlc2(&s->gb, dc_lum.table, DC_VLC_BITS, 1);
- else
- code = get_vlc2(&s->gb, dc_chrom.table, DC_VLC_BITS, 1);
- if (code < 0 || code > 9 /* && s->nbit<9 */){
- av_log(s->avctx, AV_LOG_ERROR, "illegal dc vlc\n");
- return -1;
- }
- if (code == 0) {
- level = 0;
- } else {
- if(IS_3IV1){
- if(code==1)
- level= 2*get_bits1(&s->gb)-1;
- else{
- if(get_bits1(&s->gb))
- level = get_bits(&s->gb, code-1) + (1<<(code-1));
- else
- level = -get_bits(&s->gb, code-1) - (1<<(code-1));
- }
- }else{
- level = get_xbits(&s->gb, code);
- }
-
- if (code > 8){
- if(get_bits1(&s->gb)==0){ /* marker */
- if(s->error_resilience>=2){
- av_log(s->avctx, AV_LOG_ERROR, "dc marker bit missing\n");
- return -1;
- }
- }
- }
- }
-
- return ff_mpeg4_pred_dc(s, n, level, dir_ptr, 0);
-}
-
-/**
- * decodes a block.
- * @return <0 if an error occured
- */
-static inline int mpeg4_decode_block(MpegEncContext * s, DCTELEM * block,
- int n, int coded, int intra, int rvlc)
-{
- int level, i, last, run;
- int dc_pred_dir;
- RLTable * rl;
- RL_VLC_ELEM * rl_vlc;
- const uint8_t * scan_table;
- int qmul, qadd;
-
- //Note intra & rvlc should be optimized away if this is inlined
-
- if(intra) {
- if(s->use_intra_dc_vlc){
- /* DC coef */
- if(s->partitioned_frame){
- level = s->dc_val[0][ s->block_index[n] ];
- if(n<4) level= FASTDIV((level + (s->y_dc_scale>>1)), s->y_dc_scale);
- else level= FASTDIV((level + (s->c_dc_scale>>1)), s->c_dc_scale);
- dc_pred_dir= (s->pred_dir_table[s->mb_x + s->mb_y*s->mb_stride]<<n)&32;
- }else{
- level = mpeg4_decode_dc(s, n, &dc_pred_dir);
- if (level < 0)
- return -1;
- }
- block[0] = level;
- i = 0;
- }else{
- i = -1;
- ff_mpeg4_pred_dc(s, n, 0, &dc_pred_dir, 0);
- }
- if (!coded)
- goto not_coded;
-
- if(rvlc){
- rl = &rvlc_rl_intra;
- rl_vlc = rvlc_rl_intra.rl_vlc[0];
- }else{
- rl = &rl_intra;
- rl_vlc = rl_intra.rl_vlc[0];
- }
- if (s->ac_pred) {
- if (dc_pred_dir == 0)
- scan_table = s->intra_v_scantable.permutated; /* left */
- else
- scan_table = s->intra_h_scantable.permutated; /* top */
- } else {
- scan_table = s->intra_scantable.permutated;
- }
- qmul=1;
- qadd=0;
- } else {
- i = -1;
- if (!coded) {
- s->block_last_index[n] = i;
- return 0;
- }
- if(rvlc) rl = &rvlc_rl_inter;
- else rl = &rl_inter;
-
- scan_table = s->intra_scantable.permutated;
-
- if(s->mpeg_quant){
- qmul=1;
- qadd=0;
- if(rvlc){
- rl_vlc = rvlc_rl_inter.rl_vlc[0];
- }else{
- rl_vlc = rl_inter.rl_vlc[0];
- }
- }else{
- qmul = s->qscale << 1;
- qadd = (s->qscale - 1) | 1;
- if(rvlc){
- rl_vlc = rvlc_rl_inter.rl_vlc[s->qscale];
- }else{
- rl_vlc = rl_inter.rl_vlc[s->qscale];
- }
- }
- }
- {
- OPEN_READER(re, &s->gb);
- for(;;) {
- UPDATE_CACHE(re, &s->gb);
- GET_RL_VLC(level, run, re, &s->gb, rl_vlc, TEX_VLC_BITS, 2, 0);
- if (level==0) {
- /* escape */
- if(rvlc){
- if(SHOW_UBITS(re, &s->gb, 1)==0){
- av_log(s->avctx, AV_LOG_ERROR, "1. marker bit missing in rvlc esc\n");
- return -1;
- }; SKIP_CACHE(re, &s->gb, 1);
-
- last= SHOW_UBITS(re, &s->gb, 1); SKIP_CACHE(re, &s->gb, 1);
- run= SHOW_UBITS(re, &s->gb, 6); LAST_SKIP_CACHE(re, &s->gb, 6);
- SKIP_COUNTER(re, &s->gb, 1+1+6);
- UPDATE_CACHE(re, &s->gb);
-
- if(SHOW_UBITS(re, &s->gb, 1)==0){
- av_log(s->avctx, AV_LOG_ERROR, "2. marker bit missing in rvlc esc\n");
- return -1;
- }; SKIP_CACHE(re, &s->gb, 1);
-
- level= SHOW_UBITS(re, &s->gb, 11); SKIP_CACHE(re, &s->gb, 11);
-
- if(SHOW_UBITS(re, &s->gb, 5)!=0x10){
- av_log(s->avctx, AV_LOG_ERROR, "reverse esc missing\n");
- return -1;
- }; SKIP_CACHE(re, &s->gb, 5);
-
- level= level * qmul + qadd;
- level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1); LAST_SKIP_CACHE(re, &s->gb, 1);
- SKIP_COUNTER(re, &s->gb, 1+11+5+1);
-
- i+= run + 1;
- if(last) i+=192;
- }else{
- int cache;
- cache= GET_CACHE(re, &s->gb);
-
- if(IS_3IV1)
- cache ^= 0xC0000000;
-
- if (cache&0x80000000) {
- if (cache&0x40000000) {
- /* third escape */
- SKIP_CACHE(re, &s->gb, 2);
- last= SHOW_UBITS(re, &s->gb, 1); SKIP_CACHE(re, &s->gb, 1);
- run= SHOW_UBITS(re, &s->gb, 6); LAST_SKIP_CACHE(re, &s->gb, 6);
- SKIP_COUNTER(re, &s->gb, 2+1+6);
- UPDATE_CACHE(re, &s->gb);
-
- if(IS_3IV1){
- level= SHOW_SBITS(re, &s->gb, 12); LAST_SKIP_BITS(re, &s->gb, 12);
- }else{
- if(SHOW_UBITS(re, &s->gb, 1)==0){
- av_log(s->avctx, AV_LOG_ERROR, "1. marker bit missing in 3. esc\n");
- return -1;
- }; SKIP_CACHE(re, &s->gb, 1);
-
- level= SHOW_SBITS(re, &s->gb, 12); SKIP_CACHE(re, &s->gb, 12);
-
- if(SHOW_UBITS(re, &s->gb, 1)==0){
- av_log(s->avctx, AV_LOG_ERROR, "2. marker bit missing in 3. esc\n");
- return -1;
- }; LAST_SKIP_CACHE(re, &s->gb, 1);
-
- SKIP_COUNTER(re, &s->gb, 1+12+1);
- }
-
-#if 0
- if(s->error_resilience >= FF_ER_COMPLIANT){
- const int abs_level= FFABS(level);
- if(abs_level<=MAX_LEVEL && run<=MAX_RUN){
- const int run1= run - rl->max_run[last][abs_level] - 1;
- if(abs_level <= rl->max_level[last][run]){
- av_log(s->avctx, AV_LOG_ERROR, "illegal 3. esc, vlc encoding possible\n");
- return -1;
- }
- if(s->error_resilience > FF_ER_COMPLIANT){
- if(abs_level <= rl->max_level[last][run]*2){
- av_log(s->avctx, AV_LOG_ERROR, "illegal 3. esc, esc 1 encoding possible\n");
- return -1;
- }
- if(run1 >= 0 && abs_level <= rl->max_level[last][run1]){
- av_log(s->avctx, AV_LOG_ERROR, "illegal 3. esc, esc 2 encoding possible\n");
- return -1;
- }
- }
- }
- }
-#endif
- if (level>0) level= level * qmul + qadd;
- else level= level * qmul - qadd;
-
- if((unsigned)(level + 2048) > 4095){
- if(s->error_resilience > FF_ER_COMPLIANT){
- if(level > 2560 || level<-2560){
- av_log(s->avctx, AV_LOG_ERROR, "|level| overflow in 3. esc, qp=%d\n", s->qscale);
- return -1;
- }
- }
- level= level<0 ? -2048 : 2047;
- }
-
- i+= run + 1;
- if(last) i+=192;
- } else {
- /* second escape */
-#if MIN_CACHE_BITS < 20
- LAST_SKIP_BITS(re, &s->gb, 2);
- UPDATE_CACHE(re, &s->gb);
-#else
- SKIP_BITS(re, &s->gb, 2);
-#endif
- GET_RL_VLC(level, run, re, &s->gb, rl_vlc, TEX_VLC_BITS, 2, 1);
- i+= run + rl->max_run[run>>7][level/qmul] +1; //FIXME opt indexing
- level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1);
- LAST_SKIP_BITS(re, &s->gb, 1);
- }
- } else {
- /* first escape */
-#if MIN_CACHE_BITS < 19
- LAST_SKIP_BITS(re, &s->gb, 1);
- UPDATE_CACHE(re, &s->gb);
-#else
- SKIP_BITS(re, &s->gb, 1);
-#endif
- GET_RL_VLC(level, run, re, &s->gb, rl_vlc, TEX_VLC_BITS, 2, 1);
- i+= run;
- level = level + rl->max_level[run>>7][(run-1)&63] * qmul;//FIXME opt indexing
- level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1);
- LAST_SKIP_BITS(re, &s->gb, 1);
- }
- }
- } else {
- i+= run;
- level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1);
- LAST_SKIP_BITS(re, &s->gb, 1);
- }
- if (i > 62){
- i-= 192;
- if(i&(~63)){
- av_log(s->avctx, AV_LOG_ERROR, "ac-tex damaged at %d %d\n", s->mb_x, s->mb_y);
- return -1;
- }
-
- block[scan_table[i]] = level;
- break;
- }
-
- block[scan_table[i]] = level;
- }
- CLOSE_READER(re, &s->gb);
- }
- not_coded:
- if (intra) {
- if(!s->use_intra_dc_vlc){
- block[0] = ff_mpeg4_pred_dc(s, n, block[0], &dc_pred_dir, 0);
-
- i -= i>>31; //if(i == -1) i=0;
- }
-
- mpeg4_pred_ac(s, block, n, dc_pred_dir);
- if (s->ac_pred) {
- i = 63; /* XXX: not optimal */
- }
- }
- s->block_last_index[n] = i;
- return 0;
-}
-
/* most is hardcoded. should extend to handle all h263 streams */
int h263_decode_picture_header(MpegEncContext *s)
{

File diff suppressed because it is too large Load diff

View file

@ -1,372 +0,0 @@
$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;

View file

@ -1,14 +0,0 @@
$NetBSD: patch-include_Makefile.am,v 1.1 2011/12/25 03:24:10 sbd Exp $
--- include/Makefile.am.orig 2010-03-09 22:17:04.000000000 +0000
+++ include/Makefile.am
@@ -26,7 +26,8 @@ maintainer-clean-generic:
-rm -f Makefile.in configure.h.in
install-data-local: install-includeHEADERS
- sed -e '/^\/\*_x_/d' xine.h > $(DESTDIR)$(includedir)/xine.h
+ sed -e '/^\/\*_x_/d' xine.h > installed-xine.h
+ $(INSTALL_HEADER) installed-xine.h $(DESTDIR)$(includedir)/xine.h
if GENERATED_INTTYPES_H
$(INSTALL) inttypes.h $(DESTDIR)$(includedir)
endif

View file

@ -1,17 +1,16 @@
$NetBSD: patch-input_dvb.c,v 1.1 2011/07/10 16:52:25 jmcneill Exp $
$NetBSD: patch-input_dvb.c,v 1.2 2012/03/21 16:37:15 drochner Exp $
--- src/input/input_dvb.c.orig 2010-07-24 22:09:09.000000000 +0000
--- src/input/input_dvb.c.orig 2012-02-04 00:41:43.000000000 +0000
+++ src/input/input_dvb.c
@@ -97,9 +97,13 @@
#endif
#include <ctype.h>
@@ -109,8 +109,12 @@
/* XDG */
#include <basedir.h>
+#ifdef HAVE_DEV_DTV_DTVIO_H
+#include <dev/dtv/dtvio.h>
+#else
/* These will eventually be #include <linux/dvb/...> */
#include "dvb/dmx.h"
#include "dvb/frontend.h"
#include <linux/dvb/dmx.h>
#include <linux/dvb/frontend.h>
+#endif
#define LOG_MODULE "input_dvb"

View file

@ -0,0 +1,36 @@
$NetBSD: patch-na,v 1.1 2012/03/21 16:37:15 drochner Exp $
--- m4/audio_out.m4.orig 2012-02-05 12:50:15.000000000 +0000
+++ m4/audio_out.m4
@@ -151,9 +151,22 @@ AC_DEFUN([XINE_AUDIO_OUT_PLUGINS], [
dnl OSS (Open Sound System)
XINE_ARG_ENABLE([oss], [Enable OSS (Open Sound System) support])
if test x"$enable_oss" != x"no"; then
+
+ case "$host" in
+ *-*-netbsd*|*-*-openbsd*)
+ OSS_LIBS="-lossaudio"
+ ;;
+ *)
+ OSS_LIBS=""
+ ;;
+ esac
+
AC_CHECK_HEADERS([sys/soundcard.h machine/soundcard.h soundcard.h], [break])
AC_CHECK_DECL([SNDCTL_DSP_SETFRAGMENT], [have_oss=yes], [have_oss=no],
- [#ifdef HAVE_SYS_SOUNDCARD_H
+ [#ifdef __NetBSD__
+ #include <sys/ioctl.h>
+ #endif
+ #ifdef HAVE_SYS_SOUNDCARD_H
# include <sys/soundcard.h>
#endif
#ifdef HAVE_MACHINE_SOUNDCARD_H
@@ -167,6 +180,7 @@ AC_DEFUN([XINE_AUDIO_OUT_PLUGINS], [
fi
fi
AM_CONDITIONAL([ENABLE_OSS], [test x"$have_oss" = x"yes"])
+ AC_SUBST(OSS_LIBS)
dnl PulseAudio

View file

@ -1,7 +1,7 @@
$NetBSD: patch-src-xine-engine-post.h,v 1.1 2011/09/04 14:34:52 joerg Exp $
$NetBSD: patch-src-xine-engine-post.h,v 1.2 2012/03/21 16:37:15 drochner Exp $
--- src/xine-engine/post.h.orig 2010-03-09 22:17:05.000000000 +0000
+++ src/xine-engine/post.h
--- include/xine/post.h.orig 2010-03-09 22:17:05.000000000 +0000
+++ include/xine/post.h
@@ -370,14 +370,15 @@ do {

View file

@ -1,13 +1,13 @@
$NetBSD: patch-src_audio__out_Makefile.am,v 1.1 2011/12/25 03:24:10 sbd Exp $
$NetBSD: patch-src_audio__out_Makefile.am,v 1.2 2012/03/21 16:37:15 drochner Exp $
--- src/audio_out/Makefile.am.orig 2011-12-25 03:03:07.490662740 +0000
--- src/audio_out/Makefile.am.orig 2012-02-04 00:41:43.000000000 +0000
+++ src/audio_out/Makefile.am
@@ -84,7 +84,7 @@ xineplug_ao_out_file_la_LIBADD = $(XINE_
xineplug_ao_out_file_la_CFLAGS = $(VISIBILITY_FLAG)
@@ -81,7 +81,7 @@ xineplug_ao_out_file_la_SOURCES = audio_
xineplug_ao_out_file_la_LIBADD = $(XINE_LIB) $(LTLIBINTL)
xineplug_ao_out_oss_la_SOURCES = audio_oss_out.c
-xineplug_ao_out_oss_la_LIBADD = $(XINE_LIB) $(LTLIBINTL)
+xineplug_ao_out_oss_la_LIBADD = $(XINE_LIB) $(LTLIBINTL) $(OSS_LIBS)
xineplug_ao_out_oss_la_CFLAGS = $(VISIBILITY_FLAG)
xineplug_ao_out_alsa_la_SOURCES = audio_alsa_out.c
xineplug_ao_out_alsa_la_LIBADD = $(XINE_LIB) $(ALSA_LIBS) $(PTHREAD_LIBS) $(LTLIBINTL)

View file

@ -1,10 +1,10 @@
$NetBSD: patch-src_libw32dll_wine_Makefile.am,v 1.1 2011/12/25 03:24:10 sbd Exp $
$NetBSD: patch-src_libw32dll_wine_Makefile.am,v 1.2 2012/03/21 16:37:15 drochner Exp $
--- src/libw32dll/wine/Makefile.am.orig 2011-12-25 02:59:19.234745775 +0000
--- src/libw32dll/wine/Makefile.am.orig 2012-02-04 00:41:43.000000000 +0000
+++ src/libw32dll/wine/Makefile.am
@@ -21,6 +21,8 @@ if HAVE_W32DLL
wine_lib = libwine.la
endif
@@ -51,6 +51,8 @@ noinst_HEADERS = \
noinst_LTLIBRARIES = libwine.la
+libwine_la_LIBADD = ${WINE_LIBS}
+