update to 1.2.1
changes: -Rewrite of VDPAU OSD handling -sndio plugin is now buildable -Various bug fixes
This commit is contained in:
parent
80abe8f0a0
commit
1eafbc82b7
19 changed files with 205 additions and 3018 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
13
multimedia/xine-lib/patches/patch-at
Normal file
13
multimedia/xine-lib/patches/patch-at
Normal 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;
|
||||
}
|
13
multimedia/xine-lib/patches/patch-au
Normal file
13
multimedia/xine-lib/patches/patch-au
Normal 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
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
@ -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;
|
|
@ -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
|
|
@ -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"
|
||||
|
|
36
multimedia/xine-lib/patches/patch-na
Normal file
36
multimedia/xine-lib/patches/patch-na
Normal 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
|
|
@ -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 {
|
||||
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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}
|
||||
+
|
||||
|
|
Loading…
Reference in a new issue