summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/fr/mplayer.127
-rw-r--r--DOCS/man/hu/mplayer.127
-rw-r--r--DOCS/man/it/mplayer.198
-rw-r--r--DOCS/tech/svn-howto.txt9
-rw-r--r--DOCS/xml/hu/documentation.xml4
-rw-r--r--DOCS/xml/hu/mencoder.xml2
-rw-r--r--DOCS/xml/hu/ports.xml2
-rw-r--r--DOCS/xml/hu/skin.xml70
-rw-r--r--DOCS/xml/hu/tvinput.xml2
-rw-r--r--DOCS/xml/hu/usage.xml2
-rw-r--r--DOCS/xml/hu/video.xml2
-rw-r--r--Makefile16
-rw-r--r--cfg-common-opts.h12
-rw-r--r--command.c8
-rwxr-xr-xconfigure142
-rw-r--r--etc/codecs.conf49
-rw-r--r--etc/mplayer.desktop11
-rw-r--r--help/help_mp-hu.h2
-rw-r--r--help/help_mp-it.h1311
-rw-r--r--help/help_mp-zh_CN.h272
-rw-r--r--input/input.c2
-rw-r--r--liba52/bitstream.c2
-rw-r--r--liba52/bitstream.h8
-rw-r--r--liba52/crc.c12
-rw-r--r--liba52/downmix.c178
-rw-r--r--liba52/imdct.c160
-rw-r--r--liba52/imdct_3dnow.h84
-rw-r--r--liba52/liba52_changes.diff464
-rw-r--r--liba52/parse.c16
-rw-r--r--liba52/srfftp.h20
-rw-r--r--liba52/srfftp_3dnow.h6
-rw-r--r--liba52/test.c8
-rw-r--r--libao2/ao_pcm.c12
-rw-r--r--libass/ass_font.c2
-rw-r--r--libfaad2/analysis.h8
-rw-r--r--libfaad2/bits.c8
-rw-r--r--libfaad2/cfft.h8
-rw-r--r--libfaad2/codebook/hcb.h8
-rw-r--r--libfaad2/codebook/hcb_1.h8
-rw-r--r--libfaad2/codebook/hcb_10.h8
-rw-r--r--libfaad2/codebook/hcb_11.h8
-rw-r--r--libfaad2/codebook/hcb_2.h8
-rw-r--r--libfaad2/codebook/hcb_3.h8
-rw-r--r--libfaad2/codebook/hcb_4.h8
-rw-r--r--libfaad2/codebook/hcb_5.h8
-rw-r--r--libfaad2/codebook/hcb_6.h8
-rw-r--r--libfaad2/codebook/hcb_7.h8
-rw-r--r--libfaad2/codebook/hcb_8.h8
-rw-r--r--libfaad2/codebook/hcb_9.h8
-rw-r--r--libfaad2/codebook/hcb_sf.h8
-rw-r--r--libfaad2/decoder.c4
-rw-r--r--libfaad2/decoder.h8
-rw-r--r--libfaad2/drc.c8
-rw-r--r--libfaad2/drc.h8
-rw-r--r--libfaad2/drm_dec.c240
-rw-r--r--libfaad2/drm_dec.h26
-rw-r--r--libfaad2/error.c8
-rw-r--r--libfaad2/error.h8
-rw-r--r--libfaad2/filtbank.c8
-rw-r--r--libfaad2/filtbank.h8
-rw-r--r--libfaad2/fixed.h8
-rw-r--r--libfaad2/hcr.c160
-rw-r--r--libfaad2/huffman.c20
-rw-r--r--libfaad2/huffman.h8
-rw-r--r--libfaad2/ic_predict.c10
-rw-r--r--libfaad2/ic_predict.h8
-rw-r--r--libfaad2/iq_table.h8
-rw-r--r--libfaad2/is.c8
-rw-r--r--libfaad2/is.h8
-rw-r--r--libfaad2/kbd_win.h8
-rw-r--r--libfaad2/local_changes.diff76
-rw-r--r--libfaad2/lt_predict.c8
-rw-r--r--libfaad2/lt_predict.h8
-rw-r--r--libfaad2/mdct.c10
-rw-r--r--libfaad2/mdct.h8
-rw-r--r--libfaad2/mdct_tab.h8
-rw-r--r--libfaad2/mp4.c8
-rw-r--r--libfaad2/mp4.h8
-rw-r--r--libfaad2/ms.c10
-rw-r--r--libfaad2/ms.h8
-rw-r--r--libfaad2/output.h8
-rw-r--r--libfaad2/pns.c8
-rw-r--r--libfaad2/pns.h8
-rw-r--r--libfaad2/ps_dec.c2
-rw-r--r--libfaad2/ps_dec.h8
-rw-r--r--libfaad2/pulse.c8
-rw-r--r--libfaad2/pulse.h8
-rw-r--r--libfaad2/rvlc.c10
-rw-r--r--libfaad2/rvlc.h8
-rw-r--r--libfaad2/sbr_dct.h8
-rw-r--r--libfaad2/sbr_dec.c10
-rw-r--r--libfaad2/sbr_e_nf.c8
-rw-r--r--libfaad2/sbr_e_nf.h8
-rw-r--r--libfaad2/sbr_fbt.c10
-rw-r--r--libfaad2/sbr_fbt.h8
-rw-r--r--libfaad2/sbr_hfadj.c52
-rw-r--r--libfaad2/sbr_hfadj.h8
-rw-r--r--libfaad2/sbr_hfgen.c10
-rw-r--r--libfaad2/sbr_hfgen.h8
-rw-r--r--libfaad2/sbr_huff.c8
-rw-r--r--libfaad2/sbr_huff.h8
-rw-r--r--libfaad2/sbr_noise.h8
-rw-r--r--libfaad2/sbr_qmf.h8
-rw-r--r--libfaad2/sbr_syntax.c8
-rw-r--r--libfaad2/sbr_syntax.h8
-rw-r--r--libfaad2/sbr_tf_grid.c8
-rw-r--r--libfaad2/sbr_tf_grid.h8
-rw-r--r--libfaad2/sine_win.h8
-rw-r--r--libfaad2/specrec.c6
-rw-r--r--libfaad2/specrec.h8
-rw-r--r--libfaad2/ssr.c8
-rw-r--r--libfaad2/ssr.h8
-rw-r--r--libfaad2/ssr_fb.c8
-rw-r--r--libfaad2/ssr_fb.h8
-rw-r--r--libfaad2/ssr_ipqf.c10
-rw-r--r--libfaad2/ssr_ipqf.h8
-rw-r--r--libfaad2/ssr_win.h8
-rw-r--r--libfaad2/syntax.c14
-rw-r--r--libfaad2/syntax.h8
-rw-r--r--libfaad2/tns.c8
-rw-r--r--libfaad2/tns.h10
-rw-r--r--libmpcodecs/ad_imaadpcm.c4
-rw-r--r--libmpcodecs/vd_ffmpeg.c9
-rw-r--r--libmpcodecs/vf_fspp.c4
-rw-r--r--libmpdemux/asfheader.c2
-rw-r--r--libmpdemux/aviheader.c2
-rw-r--r--libmpdemux/demux_lavf.c41
-rw-r--r--libmpdemux/demux_mov.c2
-rw-r--r--libmpdemux/demux_ogg.c2
-rw-r--r--libmpdemux/demux_real.c2
-rw-r--r--libmpdemux/demux_rtp.cpp11
-rw-r--r--libmpdemux/demux_ts.c22
-rw-r--r--libmpdemux/demux_viv.c2
-rw-r--r--libmpdemux/demuxer.c7
-rw-r--r--libmpdemux/mp_taglists.c4
-rw-r--r--libmpeg2/alpha_asm.h2
-rw-r--r--libmpeg2/cpu_accel.c4
-rw-r--r--libmpeg2/header.c6
-rw-r--r--libmpeg2/idct_alpha.c2
-rw-r--r--libmpeg2/libmpeg2_changes.diff108
-rw-r--r--libmpeg2/slice.c2
-rw-r--r--libswscale/ppc/swscale_altivec_template.c8
-rw-r--r--libswscale/ppc/yuv2rgb_altivec.c4
-rw-r--r--libswscale/swscale-example.c10
-rw-r--r--libswscale/swscale.c216
-rw-r--r--libswscale/swscale.h31
-rw-r--r--libswscale/swscale_internal.h70
-rw-r--r--libswscale/swscale_template.c194
-rw-r--r--libswscale/yuv2rgb.c41
-rw-r--r--libvo/font_load_ft.c2
-rw-r--r--libvo/geometry.c4
-rw-r--r--libvo/vo_corevideo.m16
-rw-r--r--libvo/vo_fbdev.c71
-rw-r--r--mp_msg.c7
-rw-r--r--mplayer.c5
-rw-r--r--osdep/getch2-os2.c3
-rw-r--r--osdep/getch2-win.c7
-rw-r--r--osdep/getch2.c2
-rw-r--r--stream/asf_mmst_streaming.c9
-rw-r--r--stream/stream_file.c6
-rw-r--r--stream/tcp.c3
-rw-r--r--tremor/asm_arm.h26
-rw-r--r--tremor/backends.h6
-rw-r--r--tremor/bitwise.c66
-rw-r--r--tremor/block.c56
-rw-r--r--tremor/codebook.c34
-rw-r--r--tremor/codebook.h14
-rw-r--r--tremor/codec_internal.h2
-rw-r--r--tremor/floor0.c62
-rw-r--r--tremor/floor1.c40
-rw-r--r--tremor/framing.c104
-rw-r--r--tremor/info.c22
-rw-r--r--tremor/ivorbiscodec.h22
-rw-r--r--tremor/mapping0.c34
-rw-r--r--tremor/mdct.c8
-rw-r--r--tremor/mdct_lookup.h6
-rw-r--r--tremor/misc.h10
-rw-r--r--tremor/ogg.h2
-rw-r--r--tremor/os.h2
-rw-r--r--tremor/os_types.h2
-rw-r--r--tremor/res012.c20
-rw-r--r--tremor/sharedbook.c42
-rw-r--r--tremor/synthesis.c8
-rw-r--r--tremor/tremor.diff40
-rw-r--r--tremor/window.c4
-rw-r--r--vobsub.c2
186 files changed, 3072 insertions, 2785 deletions
diff --git a/DOCS/man/fr/mplayer.1 b/DOCS/man/fr/mplayer.1
index a2f2022bbe..40c41aaf90 100644
--- a/DOCS/man/fr/mplayer.1
+++ b/DOCS/man/fr/mplayer.1
@@ -1,4 +1,4 @@
-.\" synced with r29147
+.\" synced with r29244
.\" Encoding: iso-8859-1
.\" MPlayer (C) 2000-2009 MPlayer Team
.\" The English man page was/is done by Gabucino, Diego Biurrun, Jonas Jermann
@@ -5350,12 +5350,25 @@ et les effets de masquage.
Ne fonctionne qu'avec deux canaux audio.
.PD 0
.RSs
-.IPs level=<1\-3>
-Dfini le niveau de mixage entre les deux canaux, o un niveau plus lev
-signifie un effet plus prononc (par dfaut\ : 3).
-.IPs profile=<0\-1>
-Difini le profil utiliser, o 1 donne un son plus doux que 0
-(par dfaut\ : 1).
+.IPs fcut=<300\-1000>
+Dfini la frquence de coupure (en Hz).
+.IPs feed=<10\-150>
+Dfini le niveau d'entre des basses frquences (en dixime de dB).
+.IPs profile=<valeur>
+Plusieurs profils sont disponibles\ :
+.RSs
+default\ : rglage par dfaut (fcut=700, feed=45);
+.br
+cmoy: implmentation du circuit Chu Moy (fcut=700, feed=60);
+.br
+jmeier: implmentation du circuit Jan Meier (fcut=650, feed=95).
+.REss
+.PD 1
+.RE
+.sp 1
+.RS
+Si les options fcut et/ou sont utilises en mme temps qu'un profil, ce sont
+ces options qui ont priorit sur les rglages apport par le profil.
.RE
.PD 1
.
diff --git a/DOCS/man/hu/mplayer.1 b/DOCS/man/hu/mplayer.1
index 6e3dfd9f66..6d49d7fd92 100644
--- a/DOCS/man/hu/mplayer.1
+++ b/DOCS/man/hu/mplayer.1
@@ -1,4 +1,4 @@
-.\" Synced with r29147
+.\" Synced with r29305
.\" MPlayer (C) 2000-2009 MPlayer Team
.\" Ezt a man oldalt Gabucino, Diego Biurrun s Jonas Jermann kszti/ksztette
.\" Karbantart: Gabrov
@@ -33,7 +33,7 @@
.\" Nv
.\" --------------------------------------------------------------------------
.
-.TH MPlayer 1 "2009. 04. 05." "MPlayer Project" "A film lejtsz"
+.TH MPlayer 1 "2009. 05. 24." "MPlayer Project" "A film lejtsz"
.
.SH NV
mplayer \- film lejtsz
@@ -5102,10 +5102,25 @@ a fej rnykol hatst.
Csak 2 csatorns audi esetn hasznlhat.
.PD 0
.RSs
-.IPs level=<1\-3>
-Belltja az sszemoss szintjt, a nagyobb szint ersebb effektet jelent (alaprtelmezett: 3).
-.IPs profile=<0\-1>
-Kivlasztja az sszemoss profilt, az 1 finomabb hangot ad, mint a 0 (alaprtelmezett: 1).
+.IPs fcut=<300\-1000>
+Megadja a vgsi frekvencit Hz-ben.
+.IPs feed=<10\-150>
+Megadja az ersts mrtkt az alacsony frekvencikhoz 0.1*dB-ben.
+.IPs profile=<rtk>
+Tbb profil is elrhet a knyelmesebb hasznlatrt:
+.RSs
+default: ez lesz hasznlva, ha nincs ms megadva (fcut=700, feed=45);
+.br
+cmoy: Chu Moy krkrs implementci (fcut=700, feed=60);
+.br
+jmeier: Jan Meier krkrs implementci (fcut=650, feed=95).
+.REss
+.PD 1
+.RE
+.sp 1
+.RS
+Ha az fcut vagy a feed opci meg van adva egy profil mellett, a profilon
+fell azok az rtkek lesznek felhasznlva.
.RE
.PD 1
.
diff --git a/DOCS/man/it/mplayer.1 b/DOCS/man/it/mplayer.1
index 5d2fb04fec..3d942fee2b 100644
--- a/DOCS/man/it/mplayer.1
+++ b/DOCS/man/it/mplayer.1
@@ -1,4 +1,4 @@
-.\" synced with r27454
+.\" synced with r27691
.\" Encoding: iso-8859-1
.\" MPlayer (C) 2000-2009 MPlayer Team
.\" Questa pagina di manuale stata fatta da Gabucino, Diego Biurrun,
@@ -940,7 +940,7 @@ assicurarti che non causi problemi di sicurezza (per es.\& assicurati di usare
percorsi assoluti se "." e nella tua PATH come in Windows).
.sp 1
Questo pu essere usato (male) per disabilitare salvaschermi che non usano le
-corrette API di X.
+corrette API di X (vedi anche \-stop\-xscreensaver).
Se pensi sia troppo complicato, chiedi all'autore del salvaschermo di supportare
le API di X adeguate.
.sp 1
@@ -3207,7 +3207,7 @@ della finestra stessa piuttosto che dello schermo.
.br
.I NOTA:
Questa opzione supportata dai driver di uscita video x11, xmga, xv, xvmc,
-xvidix, gl, gl2, directx e tdfxfb.
+xvidix, gl, gl2, directx, fbdev e tdfxfb.
.sp 1
.I ESEMPIO:
.PD 0
@@ -3354,6 +3354,8 @@ x11 e TV-out.
.TP
.B \-stop\-xscreensaver (solo X11)
Disattiva il salvaschermo di X alla partenza e lo riattiva all'uscita.
+Se il tuo salvaschermo non gestisce n la API XSS n XResetScreenSaver,
+perfavore usa al suo posto \-heartbeat\-cmd.
.
.TP
.B "\-vm \ \ \ "
@@ -4339,7 +4341,7 @@ fattore di 'lisciatura' (default: 0).
.IPs quality=<0\-100>
fattore di qualit (default: 75).
.IPs outdir=<nome_dir>
-Specifica la directory dove salvare i file (default: ./).
+Specifica la directory dove salvare i file JPEG (default: ./).
.IPs subdirs=<prefisso>
Crea sottodirectory numerate con il prefisso specificato in cui salvare i file
invece che nella directory corrente.
@@ -4370,8 +4372,7 @@ Scrive i file PNM in modalit raw, cio grezza (default).
.IPs ascii
Scrive i file PNM in modalit ASCII.
.IPs outdir=<nome_dir>
-Specifica la directory dove salvare i file.
-Se non specificata tutti i file verranno salvati nella directory corrente.
+Specifica la directory dove salvare i file PNM (default: ./).
.IPs subdirs=<prefisso>
Crea sottodirectory numerate con il prefisso specificato in cui salvare i file
invece che nella directory corrente.
@@ -4391,6 +4392,12 @@ Sono supportati i formati RGB e BGR a 24 bpp.
.IPs z=<0\-9>
Specifica il livello di compressione.
0 indica nessuna compressione, 9 invece il massimo.
+.IPs outdir=<nome_dir>
+Specifica la directory dove salvare i file PNG (default: ./).
+.IPs alpha (default: noalpha)
+Crea file PNG con un canale alpha.
+Nota che MPlayer solitamente non gestisce l'alpha, quindi questa opzione sar
+utile solo in rari casi.
.RE
.PD 1
.
@@ -4682,8 +4689,21 @@ a risoluzione completa.
Se <l> viene specificato la decodifica a bassa risoluzione verr usata solo
se la larghezza del video maggiore od uguale a <l>.
.RE
-.IPs "o\ \ \ \ "
-FIXME: Da documentare.
+.B o=<chiave>=<valore>[,<chiave>=<valore>[,...]]
+Passa varie opzioni AVOption al decoder di libavcodec.
+Nota, una patch che renda inutile o= e che possa passare al sistema di AVOption
+tutte le opzioni non conosciute benvenuta.
+Si pu trovare una lista completa delle opzioni AVOption nel manuale di FFmpeg.
+Nota che alcune opzioni possono andare in conflitto con quelle di MEncoder.
+.sp 1
+.RS
+.I ESEMPIO:
+.RE
+.RSs
+.PD 0
+.IPs o=debug=pict
+.PD 1
+.RE
.IPs "sb=<numero> (solo MPEG-2)"
Salta il numero indicato di righe di macroblocchi in basso.
.IPs "st=<numero> (solo MPEG-2)"
@@ -7740,11 +7760,11 @@ sintassi seguente:
.RE
.
.PP
-Dove <codec> pu essere: lavc, xvidenc, divx4, lame, toolame, twolame,
+Dove <codec> pu essere: lavc, xvidenc, divx4, mp3lame, toolame, twolame,
nuv, xvfw, faac, x264enc, mpeg, lavf.
.
.
-.SS lame (\-lameopts)
+.SS mp3lame (\-lameopts)
.
.TP
.B "help\ \ \ "
@@ -7983,6 +8003,23 @@ Leggi i sorgenti per avere i dettagli completi.
.PD 1
.
.TP
+.B o=<chiave>=<valore>[,<chiave>=<valore>[,...]]
+Passa varie opzioni AVOption al decoder di libavcodec.
+Nota, una patch che renda inutile o= e che possa passare al sistema di AVOption
+tutte le opzioni non conosciute benvenuta.
+Si pu trovare una lista completa delle opzioni AVOption nel manuale di FFmpeg.
+Nota che alcune opzioni possono andare in conflitto con quelle di MEncoder.
+.sp 1
+.RS
+.I ESEMPIO:
+.RE
+.RSs
+.PD 0
+.IPs o=bt=100k
+.PD 1
+.RE
+.
+.TP
.B acodec=<valore>
codec audio (default: mp2)
.PD 0
@@ -9464,10 +9501,6 @@ FIXME: Da documentare.
.B skip_threshold=<0\-1000000>
FIXME: Da documentare.
.
-.TP
-.B "o\ \ \ \ \ \ "
-FIXME: Da documentare.
-.
.
.SS nuv (\-nuvopts)
.
@@ -10932,8 +10965,22 @@ Durata massima in secondi per analizzare le propriet del flusso.
Forza uno specifico demuxer di libavformat.
.
.TP
-.B "o\ \ \ \ \ \ "
-FIXME: Da documentare.
+.B o=<chiave>=<valore>[,<chiave>=<valore>[,...]]
+Passa varie opzioni AVOption al decoder di libavcodec.
+Nota, una patch che renda inutile o= e che possa passare al sistema di AVOption
+tutte le opzioni non conosciute benvenuta.
+Si pu trovare una lista completa delle opzioni AVOption nel manuale di FFmpeg.
+Nota che alcune opzioni possono andare in conflitto con quelle di MPlayer o
+MEncoder.
+.sp 1
+.RS
+.I ESEMPIO:
+.RE
+.RSs
+.PD 0
+.IPs o=ignidx
+.PD 1
+.RE
.
.TP
.B probesize=<valore>
@@ -10991,6 +11038,8 @@ Formato MPEG-4
Formato MPEG-4 con intestazioni extra richieste dal firmware di Apple iPod
.IPs "dv\ \ \ "
Formato contenitore Sony Digital Video
+.IPs "matroska\ \ \ "
+Matroska
.RE
.PD 1
.TP
@@ -11000,8 +11049,21 @@ attualmente significativo solo per MPEG[12].
A volte necessario aumentarlo per evitare errori di 'buffer underflows'.
.
.TP
-.B "o\ \ \ \ \ \ "
-FIXME: Da documentare.
+.B o=<chiave>=<valore>[,<chiave>=<valore>[,...]]
+Passa varie opzioni AVOption al decoder di libavcodec.
+Nota, una patch che renda inutile o= e che possa passare al sistema di AVOption
+tutte le opzioni non conosciute benvenuta.
+Si pu trovare una lista completa delle opzioni AVOption nel manuale di FFmpeg.
+Nota che alcune opzioni possono andare in conflitto con quelle di MEncoder.
+.sp 1
+.RS
+.I ESEMPIO:
+.RE
+.RSs
+.PD 0
+.IPs o=packetsize=100
+.PD 1
+.RE
.
.TP
.B packetsize=<dimensione>
diff --git a/DOCS/tech/svn-howto.txt b/DOCS/tech/svn-howto.txt
index 126e809ee4..6bdc2bfcfc 100644
--- a/DOCS/tech/svn-howto.txt
+++ b/DOCS/tech/svn-howto.txt
@@ -315,6 +315,15 @@ II. POLICY / RULES:
IRC is good for quick discussions, but nobody is there 24/7.
+14. MPlayer contains some external code that is partly patched, partly copied
+ verbatim (see Copyright for details). This code should not be modified
+ unless there is a very good reason. Much of it is maintained upstream.
+ We should be good open source citizens, submit our fixes upstream and keep
+ the differences as small as possible.
+ If you have to modify external code, do not forget to update the diff file
+ with our local changes.
+
+
Also read DOCS/tech/patches.txt !!!!
We think our rules are not too hard. If you have comments, contact us.
diff --git a/DOCS/xml/hu/documentation.xml b/DOCS/xml/hu/documentation.xml
index edf4ae969d..57c00999d9 100644
--- a/DOCS/xml/hu/documentation.xml
+++ b/DOCS/xml/hu/documentation.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- synced with r28266 -->
+<!-- synced with r29305 -->
<bookinfo id="toc">
<title><application>MPlayer</application> - The Movie Player</title>
<subtitle><ulink url="http://www.mplayerhq.hu"></ulink></subtitle>
-<date>March 24, 2003</date>
+<date>2009. május 24.</date>
<copyright>
<year>2000</year>
<year>2001</year>
diff --git a/DOCS/xml/hu/mencoder.xml b/DOCS/xml/hu/mencoder.xml
index 2b429d67b3..8ab02d7a54 100644
--- a/DOCS/xml/hu/mencoder.xml
+++ b/DOCS/xml/hu/mencoder.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- synced with r27843 -->
+<!-- synced with r29001 -->
<chapter id="mencoder">
<title>A <application>MEncoder</application> használatának alapjai</title>
diff --git a/DOCS/xml/hu/ports.xml b/DOCS/xml/hu/ports.xml
index f000f67194..24e6a682da 100644
--- a/DOCS/xml/hu/ports.xml
+++ b/DOCS/xml/hu/ports.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- synced with r28432 -->
+<!-- synced with r29252 -->
<chapter id="ports" xreflabel="Ports">
<title>Portok</title>
diff --git a/DOCS/xml/hu/skin.xml b/DOCS/xml/hu/skin.xml
index cfbb4581bf..f9cb2ed6c0 100644
--- a/DOCS/xml/hu/skin.xml
+++ b/DOCS/xml/hu/skin.xml
@@ -1,68 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- synced with r26990 -->
+<!-- synced with r29305 -->
<appendix id="skin">
<title><application>MPlayer</application> skin formátum</title>
<sect1 id="skin-overview">
<title>Áttekintés</title>
-<para>
-Igazából ennek nincs köze a skin formátumához, de tudnod kell, hogy
-az <application>MPlayer</application>nek
-<emphasis role="bold">nincs</emphasis> beépített skin-je,
-így <emphasis role="bold">legalább egy skin-nek telepítve kell
-lennie, hogy használni tudd a GUI-t.</emphasis>
-</para>
-
-<!-- ********** -->
-
-<sect2 id="skin-overview-directories">
-<title>Könyvtárak</title>
-
-<para>
-Az alábbi könyvtárak kerülnek átvizsgálásra (sorrendben):
-<orderedlist>
-<listitem><para>
- <filename class="directory">$(DATADIR)/skins/</filename>
-</para></listitem>
-<listitem><para>
- <filename class="directory">$(PREFIX)/share/mplayer/skins/</filename>
-</para></listitem>
-<listitem><para>
- <filename class="directory">~/.mplayer/skins/</filename>
-</para></listitem>
-</orderedlist>
-</para>
-
-<para>
-Figyelj rá, hogy az első elérési út változhat az
-<application>MPlayer</application> konfigurációjának megfelelően
-(lásd a <command>configure</command> script
-<option>--prefix</option> és <option>--datadir</option> kapcsolóit).
-</para>
-
-<para>
-Minden skin a saját könyvtárába kerül telepítésre a fent felsorolt könyvtárakon
-belül, például:
-<screen>$(PREFIX)/share/mplayer/skins/default/</screen>
-</para>
-</sect2>
-
<!-- ********** -->
-<sect2 id="skin-overview-formats">
-<title>Képformátumok</title>
-
-<para>A képeknek truecolor-os (24 vagy 32 bpp) PNG-knek kell lenniük.</para>
-<para>
-A fő ablakban és a playbar-on (lásd lejjebb) használhatsz transzparens képeket:
-Az #FF00FF (bíborvörös) színnel feltöltött területek teljesen
-transzparensek lesznek, ha az <application>MPlayer</application>-rel
-nézed. Ez azt jelenti, hogy formázott ablakjaid is lehetnek, ha az X
-szerverednek van XShape kiterjesztése.
-</para>
-</sect2>
-
<sect2 id="skin-overview-components">
<title>Skin komponensek</title>
@@ -164,6 +109,19 @@ hogy mit csináljon, ha rákattintanak. Ez <link linkend="skin-gui">üzenetekkel
</para>
</sect2>
+<sect2 id="skin-overview-formats">
+<title>Képformátumok</title>
+
+<para>A képeknek truecolor-os (24 vagy 32 bpp) PNG-knek kell lenniük.</para>
+<para>
+A fő ablakban és a playbar-on (lásd lejjebb) használhatsz transzparens képeket:
+Az #FF00FF (bíborvörös) színnel feltöltött területek teljesen
+transzparensek lesznek, ha az <application>MPlayer</application>-rel
+nézed. Ez azt jelenti, hogy formázott ablakjaid is lehetnek, ha az X
+szerverednek van XShape kiterjesztése.
+</para>
+</sect2>
+
<!-- ********** -->
<sect2 id="skin-files">
diff --git a/DOCS/xml/hu/tvinput.xml b/DOCS/xml/hu/tvinput.xml
index 51f945d023..d452a0a533 100644
--- a/DOCS/xml/hu/tvinput.xml
+++ b/DOCS/xml/hu/tvinput.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- synced with r27815 -->
+<!-- synced with r29001 -->
<chapter id="tv">
<title>TV</title>
diff --git a/DOCS/xml/hu/usage.xml b/DOCS/xml/hu/usage.xml
index 160e2a97ae..b3463c93bd 100644
--- a/DOCS/xml/hu/usage.xml
+++ b/DOCS/xml/hu/usage.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- synced with r28532 -->
+<!-- synced with r29001 -->
<chapter id="usage">
<title>Használat</title>
diff --git a/DOCS/xml/hu/video.xml b/DOCS/xml/hu/video.xml
index 7f1d109253..38c8da2320 100644
--- a/DOCS/xml/hu/video.xml
+++ b/DOCS/xml/hu/video.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- synced with r27770 -->
+<!-- synced with r29001 -->
<chapter id="video">
<title>Videó kimeneti eszközök</title>
diff --git a/Makefile b/Makefile
index 3b183e76a7..7131000471 100644
--- a/Makefile
+++ b/Makefile
@@ -193,8 +193,6 @@ SRCS_COMMON-$(LIBNUT) += libmpdemux/demux_nut.c
SRCS_COMMON-$(LIBPOSTPROC) += libmpcodecs/vf_pp.c
SRCS_COMMON-$(LIBSMBCLIENT) += stream/stream_smb.c
SRCS_COMMON-$(LIBTHEORA) += libmpcodecs/vd_theora.c
-SRCS_COMMON-$(LIBVORBIS) += libmpcodecs/ad_libvorbis.c \
- libmpdemux/demux_ogg.c
SRCS_COMMON-$(LIVE555) += libmpdemux/demux_rtp.cpp \
libmpdemux/demux_rtp_codec.cpp \
stream/stream_live555.c
@@ -288,6 +286,8 @@ SRCS_COMMON-$(TV_V4L1) += stream/tvi_v4l.c stream/audio_in.c
SRCS_COMMON-$(TV_V4L2) += stream/tvi_v4l2.c stream/audio_in.c
SRCS_COMMON-$(UNRAR_EXEC) += unrar_exec.c
SRCS_COMMON-$(VCD) += stream/stream_vcd.c
+SRCS_COMMON-$(VORBIS) += libmpcodecs/ad_libvorbis.c \
+ libmpdemux/demux_ogg.c
SRCS_COMMON-$(VSTREAM) += stream/stream_vstream.c
SRCS_COMMON-$(WIN32_EMULATION) += loader/elfdll.c \
loader/ext.c \
@@ -661,18 +661,18 @@ SRCS_MPLAYER-$(XVR100) += libvo/vo_xvr100.c
SRCS_MPLAYER-$(YUV4MPEG) += libvo/vo_yuv4mpeg.c
SRCS_MPLAYER-$(ZR) += libvo/jpeg_enc.c libvo/vo_zr.c libvo/vo_zr2.c
-SRCS_MPLAYER = mplayer.c \
+SRCS_MPLAYER = command.c \
m_property.c \
+ mixer.c \
mp_fifo.c \
mp_msg.c \
- mixer.c \
+ mplayer.c \
parser-mpcmd.c \
- command.c \
input/input.c \
- libao2/audio_out.c \
libao2/ao_mpegpes.c \
libao2/ao_null.c \
libao2/ao_pcm.c \
+ libao2/audio_out.c \
libvo/aspect.c \
libvo/geometry.c \
libvo/old_vo_wrapper.c \
@@ -990,10 +990,10 @@ doxygen:
doxygen DOCS/tech/Doxyfile
TAGS:
- rm -f $@; ( find -name '*.[chS]' -o -name '*.asm' -print ) | xargs etags -a
+ rm -f $@; find . -name '*.[chS]' -o -name '*.asm' | xargs etags -a
tags:
- rm -f $@; ( find -name '*.[chS]' -o -name '*.asm' -print ) | xargs ctags -a
+ rm -f $@; find . -name '*.[chS]' -o -name '*.asm' | xargs ctags -a
diff --git a/cfg-common-opts.h b/cfg-common-opts.h
index 16aa566385..a96ff40798 100644
--- a/cfg-common-opts.h
+++ b/cfg-common-opts.h
@@ -74,14 +74,18 @@
#ifdef CONFIG_LIVE555
{"sdp", "-sdp has been removed, use sdp://file instead.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL},
+#endif /* CONFIG_LIVE555 */
+#if defined(CONFIG_LIBNEMESI) || defined(CONFIG_LIVE555)
// -rtsp-stream-over-tcp option, specifying TCP streaming of RTP/RTCP
- {"rtsp-stream-over-tcp", &rtspStreamOverTCP, CONF_TYPE_FLAG, 0, 0, 1, NULL},
-#elif defined (CONFIG_LIBNEMESI)
{"rtsp-stream-over-tcp", &rtsp_transport_tcp, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+#else
+ {"rtsp-stream-over-tcp", "-rtsp-stream-over-tcp requires the \"LIVE555 Streaming Media\" or \"libnemesi\" libraries.\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
+#endif /* defined(CONFIG_LIBNEMESI) || defined(CONFIG_LIVE555) */
+#ifdef CONFIG_LIBNEMESI
{"rtsp-stream-over-sctp", &rtsp_transport_sctp, CONF_TYPE_FLAG, 0, 0, 1, NULL},
#else
- {"rtsp-stream-over-tcp", "-rtsp-stream-over-tcp requires the \"LIVE555 Streaming Media\" libraries.\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
-#endif /* CONFIG_LIVE555 */
+ {"rtsp-stream-over-sctp", "-rtsp-stream-over-sctp requires the", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
+#endif /* CONFIG_LIBNEMESI */
#ifdef CONFIG_NETWORK
{"rtsp-port", &rtsp_port, CONF_TYPE_INT, CONF_RANGE, -1, 65535, NULL},
{"rtsp-destination", &rtsp_destination, CONF_TYPE_STRING, CONF_MIN, 0, 0, NULL},
diff --git a/command.c b/command.c
index dcf8348e4b..9bcaa884e6 100644
--- a/command.c
+++ b/command.c
@@ -415,7 +415,7 @@ static int mp_property_chapter(m_option_t *prop, int action, void *arg,
if (!arg)
return M_PROPERTY_ERROR;
M_PROPERTY_CLAMP(prop, *(int*)arg);
- step_all = *(int *)arg - (chapter + 1);
+ step_all = *(int *)arg - chapter;
chapter += step_all;
break;
case M_PROPERTY_STEP_UP:
@@ -2035,7 +2035,7 @@ static const m_option_t mp_properties[] = {
{ "time_pos", mp_property_time_pos, CONF_TYPE_TIME,
M_OPT_MIN, 0, 0, NULL },
{ "chapter", mp_property_chapter, CONF_TYPE_INT,
- M_OPT_MIN, 1, 0, NULL },
+ M_OPT_MIN, 0, 0, NULL },
{ "chapters", mp_property_chapters, CONF_TYPE_INT,
0, 0, 0, NULL },
{ "angle", mp_property_angle, CONF_TYPE_INT,
@@ -2063,7 +2063,7 @@ static const m_option_t mp_properties[] = {
{ "channels", mp_property_channels, CONF_TYPE_INT,
0, 0, 0, NULL },
{ "switch_audio", mp_property_audio, CONF_TYPE_INT,
- CONF_RANGE, -2, MAX_A_STREAMS - 1, NULL },
+ CONF_RANGE, -2, 65535, NULL },
{ "balance", mp_property_balance, CONF_TYPE_FLOAT,
M_OPT_RANGE, -1, 1, NULL },
@@ -2109,7 +2109,7 @@ static const m_option_t mp_properties[] = {
{ "aspect", mp_property_aspect, CONF_TYPE_FLOAT,
0, 0, 0, NULL },
{ "switch_video", mp_property_video, CONF_TYPE_INT,
- CONF_RANGE, -2, MAX_V_STREAMS - 1, NULL },
+ CONF_RANGE, -2, 65535, NULL },
{ "switch_program", mp_property_program, CONF_TYPE_INT,
CONF_RANGE, -1, 65535, NULL },
diff --git a/configure b/configure
index dd03b02efd..c3381fd800 100755
--- a/configure
+++ b/configure
@@ -425,6 +425,20 @@ Audio output:
--disable-coreaudio disable CoreAudio audio output [autodetect]
--disable-select disable using select() on the audio device [enable]
+Language options:
+ --charset=charset convert the console messages to this character set
+ --language-doc=lang language to use for the documentation [en]
+ --language-man=lang language to use for the man pages [en]
+ --language-msg=lang language to use for the messages and the GUI [en]
+ --language=lang default language to use [en]
+Specific options override --language. You can pass a list of languages separated
+by whitespace or commas instead of a single language. Nonexisting translations
+will be dropped from each list. All documentation and man page translations
+available in the list will be installed, for the messages the first available
+translation will be used. The value "all" will activate all translations. The
+LINGUAS environment variable is honored. In all cases the fallback is English.
+Available values are: all $msg_lang_all
+
Miscellaneous options:
--enable-runtime-cpudetection enable runtime CPU detection [disable]
--enable-cross-compile enable cross-compilation [autodetect]
@@ -438,12 +452,6 @@ Miscellaneous options:
--windres=WINDRES windres to build MPlayer [windres]
--target=PLATFORM target platform (i386-linux, arm-linux, etc)
--enable-static build a statically linked binary
- --charset=charset convert the console messages to this character set
- --language=list a white space or comma separated list of languages for
- translated man pages, the first language is used for
- messages and the GUI (the environment variable
- \$LINGUAS is also honored) [en]
- (Available: all $msg_lang_all)
--with-install=PATH path to a custom install program
Advanced options:
@@ -694,7 +702,7 @@ _directfb=auto
_zr=auto
_bl=no
_largefiles=yes
-#_language=en
+#language=en
_shm=auto
_linux_devfs=no
_charset="UTF-8"
@@ -849,8 +857,17 @@ for ac_option do
--charset=*)
_charset=$(echo $ac_option | cut -d '=' -f 2)
;;
+ --language-doc=*)
+ language_doc=$(echo $ac_option | cut -d '=' -f 2)
+ ;;
+ --language-man=*)
+ language_man=$(echo $ac_option | cut -d '=' -f 2)
+ ;;
+ --language-msg=*)
+ language_msg=$(echo $ac_option | cut -d '=' -f 2)
+ ;;
--language=*)
- _language=$(echo $ac_option | cut -d '=' -f 2)
+ language=$(echo $ac_option | cut -d '=' -f 2)
;;
--enable-static)
@@ -1386,7 +1403,8 @@ if test -z "$_target" ; then
host_arch=i386
fi
;;
- macppc|ppc|ppc64) host_arch=ppc ;;
+ macppc|ppc) host_arch=ppc ;;
+ ppc64) host_arch=ppc64 ;;
alpha) host_arch=alpha ;;
sparc) host_arch=sparc ;;
sparc64) host_arch=sparc64 ;;
@@ -1715,12 +1733,12 @@ fi
def_fast_64bit='#define HAVE_FAST_64BIT 0'
def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
-_arch_all='X86 X86_32 X86_64 IA64 SPARC ARM AVR32 SH4 PPC ALPHA SGI_MIPS PA_RISC S390 S390X VAX BFIN XTENSA GENERIC'
+_arch_all='X86 X86_32 X86_64 IA64 SPARC ARM AVR32 SH4 PPC PPC64 ALPHA MIPS SGI_MIPS PA_RISC S390 S390X VAX BFIN XTENSA GENERIC'
case "$host_arch" in
i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
_arch='X86 X86_32'
- _target_arch_x86="ARCH_X86 = yes"
- _target_arch="ARCH_X86_32 = yes"
+ _target_arch="ARCH_X86 = yes"
+ _target_subarch="ARCH_X86_32 = yes"
def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
iproc=486
proc=i486
@@ -1959,8 +1977,8 @@ EOF
x86_64|amd64)
_arch='X86 X86_64'
- _target_arch='ARCH_X86_64 = yes'
- _target_arch_x86="ARCH_X86 = yes"
+ _target_subarch='ARCH_X86_64 = yes'
+ _target_arch="ARCH_X86 = yes"
def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
def_fast_64bit='#define HAVE_FAST_64BIT 1'
iproc='x86_64'
@@ -2090,14 +2108,14 @@ EOF
ppc|ppc64|powerpc|powerpc64)
_arch='PPC'
def_dcbzl='#define HAVE_DCBZL 0'
- def_ppc64='#define HAVE_PPC64 0'
_target_arch='ARCH_PPC = yes'
def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
iproc='ppc'
if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
+ _arch='PPC PPC64'
+ _target_subarch='ARCH_PPC64 = yes'
def_fast_64bit='#define HAVE_FAST_64BIT 1'
- def_ppc64='#define HAVE_PPC64 1'
fi
echocheck "CPU type"
case $system_name in
@@ -2794,40 +2812,40 @@ echores "$_langinfo"
echocheck "language"
-test -z "$_language" && _language=$LINGUAS
-_language=$(echo $_language | tr , " ")
-if $(echo $_language | grep -q all) ; then
- doc_lang=en ; doc_langs=$doc_lang_all
- man_lang=en ; man_langs=$man_lang_all
- msg_lang=en
-else
- for lang in $_language ; do
- if test -d DOCS/man/$lang ; then
- tmp_man_langs="$tmp_man_langs $lang"
- fi
- if test -d DOCS/xml/$lang ; then
- tmp_doc_langs="$tmp_doc_langs $lang"
- fi
- done
- man_langs=$tmp_man_langs
- doc_langs=$tmp_man_langs
- for lang in $_language ; do
- if test -f "help/help_mp-${lang}.h" ; then
- msg_lang=$lang
- break
- else
- echo ${_echo_n} "$lang not found, ${_echo_c}"
- _language=$(echo $_language | sed "s/$lang *//")
- fi
- done
-fi
-test -z "$doc_langs" && doc_langs=en
-test -z "$man_langs" && man_langs=en
-test -z "$doc_lang" && doc_lang=$(echo $doc_langs | cut -f1 -d" ")
-test -z "$man_lang" && man_lang=$(echo $man_langs | cut -f1 -d" ")
-test -z "$msg_lang" && msg_lang=en
-_mp_help="help/help_mp-${msg_lang}.h"
-echores "messages: $msg_lang - man pages: $man_langs - documentation: $doc_langs"
+# Set preferred languages, "all" uses English as main language.
+test -z "$language" && language=$LINGUAS
+test -z "$language_doc" && language_doc=$language
+test -z "$language_man" && language_man=$language
+test -z "$language_msg" && language_msg=$language
+language_doc=$(echo $language_doc | tr , " ")
+language_man=$(echo $language_man | tr , " ")
+language_msg=$(echo $language_msg | tr , " ")
+
+test "$language_doc" = "all" && language_doc=$doc_lang_all
+test "$language_man" = "all" && language_man=$man_lang_all
+test "$language_msg" = "all" && language_msg=en
+
+# Prune non-existing translations from language lists.
+# Set message translation to the first available language.
+# Fall back on English.
+for lang in $language_doc ; do
+ test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
+done
+language_doc=$tmp_language_doc
+test -z "$language_doc" && language_doc=en
+
+for lang in $language_man ; do
+ test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
+done
+language_man=$tmp_language_man
+test -z "$language_man" && language_man=en
+
+for lang in $language_msg ; do
+ test -f "help/help_mp-${lang}.h" && language_msg=$lang && break
+done
+test -z "$language_msg" && language_msg=en
+_mp_help="help/help_mp-${language_msg}.h"
+echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
echocheck "enable sighandler"
@@ -5766,6 +5784,9 @@ elif openbsd ; then
default_cdrom_device="/dev/rcd0a"
elif sunos ; then
default_cdrom_device="/vol/dev/aliases/cdrom0"
+ # Modern Solaris versions use HAL instead of the vold daemon, the volfs
+ # file system and the volfs service.
+ test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
elif amigaos ; then
default_cdrom_device="a1ide.device:2"
else
@@ -7286,6 +7307,7 @@ if test "$_libnut" = auto ; then
#include <stdlib.h>
#include <inttypes.h>
#include <libnut.h>
+nut_context_tt * nut;
int main(void) { (void)nut_error(0); return 0; }
EOF
_libnut=no
@@ -7952,7 +7974,7 @@ fi
# (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
_ld_dl_dynamic=''
freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
-if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 ; then
+if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
_ld_dl_dynamic='-rdynamic'
fi
@@ -8131,11 +8153,9 @@ export LC_ALL = C
CONFIGURATION = $_configuration
CHARSET = $_charset
-DOC_LANG = $doc_lang
-DOC_LANGS = $doc_langs
+DOC_LANGS = $language_doc
DOC_LANG_ALL = $doc_lang_all
-MAN_LANG = $man_lang
-MAN_LANGS = $man_langs
+MAN_LANGS = $language_man
MAN_LANG_ALL = $man_lang_all
prefix = \$(DESTDIR)$_prefix
@@ -8146,6 +8166,7 @@ MANDIR = \$(DESTDIR)$_mandir
CONFDIR = \$(DESTDIR)$_confdir
AR = $_ar
+AS = $_cc
CC = $_cc
CXX = $_cc
HOST_CC = $_host_cc
@@ -8188,7 +8209,7 @@ EXESUF = $_exesuf
EXESUFS_ALL = .exe
$_target_arch
-$_target_arch_x86
+$_target_subarch
$(echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/')
MENCODER = $_mencoder
@@ -8272,7 +8293,6 @@ LIBNEMESI = $_nemesi
LIBNUT = $_libnut
LIBSMBCLIENT = $_smb
LIBTHEORA = $_theora
-LIBVORBIS = $_vorbis
LIRC = $_lirc
LIVE555 = $_live
MACOSX_BUNDLE = $_macosx_bundle
@@ -8342,6 +8362,7 @@ VIDIX_S3=$_vidix_drv_s3
VIDIX_SH_VEU=$_vidix_drv_sh_veu
VIDIX_SIS=$_vidix_drv_sis
VIDIX_UNICHROME=$_vidix_drv_unichrome
+VORBIS = $_vorbis
VSTREAM = $_vstream
WII = $_wii
WIN32DLL = $_win32dll
@@ -8357,6 +8378,7 @@ XV = $_xv
XVID4 = $_xvid
XVIDIX = $xvidix
XVMC = $_xvmc
+XVR100 = $_xvr100
YUV4MPEG = $_yuv4mpeg
ZR = $_zr
@@ -8841,7 +8863,6 @@ $def_memalign_hack
$def_mlib
$def_mkstemp
$def_posix_memalign
-$def_ppc64
$def_pthreads
$def_ten_operands
$def_threads
@@ -8931,8 +8952,9 @@ Config files successfully generated by ./configure $_configuration !
Optimizing for: $_optimizing
Languages:
- Messages/GUI: $msg_lang
- Manual pages: $man_langs
+ Messages/GUI: $language_msg
+ Manual pages: $language_man
+ Documentation: $language_doc
Enabled optional drivers:
Input: $_inputmodules
diff --git a/etc/codecs.conf b/etc/codecs.conf
index d35c2f6f6a..f5aeee3eea 100644
--- a/etc/codecs.conf
+++ b/etc/codecs.conf
@@ -111,7 +111,11 @@ videocodec mpegpes
fourcc mx3n,mx3p
fourcc AVmp
fourcc mp2v,mpgv
+ fourcc m2v1,m1v1
+ fourcc PIM1 ; Pinnacle hardware-MPEG-1
+ fourcc PIM2 ; Pinnacle hardware-MPEG-2
fourcc VCR2
+ fourcc LMP2 ; Lead mpeg2 in avi
driver mpegpes
out MPES
@@ -123,6 +127,7 @@ videocodec ffmpeg1
fourcc PIM1 ; Pinnacle hardware-MPEG-1
fourcc VCR2
fourcc MPEG
+ fourcc m1v1
driver ffmpeg
dll "mpeg1video"
out YV12,I420,IYUV
@@ -154,6 +159,7 @@ videocodec ffmpeg2
fourcc AVmp
fourcc VCR2
fourcc mp2v,mpgv
+ fourcc m2v1
fourcc PIM2
fourcc LMP2 ; Lead mpeg2 in avi
driver ffmpeg
@@ -192,6 +198,7 @@ videocodec ffmpeg12
fourcc mx3n,mx3p
fourcc AVmp
fourcc mp2v,mpgv
+ fourcc m2v1,m1v1
fourcc LMP2 ; Lead mpeg2 in avi
driver ffmpeg
dll "mpegvideo"
@@ -230,6 +237,7 @@ videocodec mpeg12
fourcc mx3n,mx3p
fourcc AVmp
fourcc mp2v,mpgv
+ fourcc m2v1,m1v1
fourcc LMP2 ; Lead mpeg2 in avi
driver libmpeg2
; dll "libmpeg2"
@@ -266,6 +274,7 @@ videocodec ffmpeg12mc
fourcc mx3n,mx3p
fourcc AVmp
fourcc mp2v,mpgv
+ fourcc m2v1,m1v1
fourcc LMP2 ; Lead mpeg2 in avi
driver ffmpeg
dll "mpegvideo_xvmc"
@@ -303,6 +312,7 @@ videocodec ffmpeg12vdpau
fourcc AVmp
fourcc mp2v,mpgv
fourcc LMP2 ; Lead mpeg2 in avi
+ fourcc m2v1,m1v1
driver ffmpeg
dll "mpegvideo_vdpau"
out VDPAU_MPEG1
@@ -525,6 +535,21 @@ videocodec theora
;WIN32:
+videocodec nogatech
+ status working
+ fourcc NTN1,NTN2
+ driver vfw
+ dll "nuvision.ax"
+ out BGR24 flip
+
+videocodec ylc
+ info "YUY2 Lossless Codec"
+ status working
+ fourcc YLC0
+ driver vfw
+ dll "ylc.vcm"
+ out BGR24 flip
+
videocodec smartsight
info "Verint Video Manager"
status working
@@ -769,7 +794,7 @@ videocodec ffmp42
info "FFmpeg MSMPEG-4 v2"
status working
fourcc DIV2,div2 mp42
- fourcc MP42,mp42
+ fourcc MP42,mp42,Mp42
driver ffmpeg
dll msmpeg4v2
out YV12,I420,IYUV
@@ -841,6 +866,7 @@ videocodec ffh264
fourcc X264,x264
fourcc avc1,AVC1
fourcc davc,DAVC
+ fourcc HDMV
format 0x10000005
driver ffmpeg
dll h264
@@ -853,6 +879,7 @@ videocodec ffh264vdpau
fourcc X264,x264
fourcc avc1,AVC1
fourcc davc,DAVC
+ fourcc HDMV
format 0x10000005
driver ffmpeg
dll h264_vdpau
@@ -1538,7 +1565,7 @@ videocodec ffdv
fourcc dvhq,dvhp
fourcc dvh5,dvh6,dvh3
fourcc dvhd,dvsl,dv25
- fourcc dvs1
+ fourcc dvs1,dvh1
driver ffmpeg
dll dvvideo
out 411P,422P,YV12
@@ -2064,7 +2091,7 @@ videocodec fftm20
fourcc TM20
driver ffmpeg
dll truemotion2
- out YV12
+ out BGR24
; our BGR15->BGR32 is bad or the DLL?
videocodec tm20
@@ -2077,6 +2104,14 @@ videocodec tm20
guid 0x4cb63e61, 0xc611, 0x11D0, 0x83, 0xaa, 0x00, 0x00, 0x92, 0x90, 0x01, 0x84
out BGR32,BGR24,BGR16 flip
+videocodec tr20
+ info "TrueMotion RT"
+ status working
+ fourcc TR20
+ driver vfw
+ dll "tr2032.dll"
+ out BGR15
+
videocodec sif1vfw
info "sif1 alpha4"
status working
@@ -3040,6 +3075,7 @@ audiocodec ffqclp
status buggy
format 0x706C6351 ; "Qclp"
format 0x70637173 ; "sqcp"
+ format 0x716C6351 ; "Qclq"
driver ffmpeg
dll "qcelp"
@@ -3268,6 +3304,7 @@ audiocodec ffadpcmimawav
status working
format 0x11
format 0x1100736d ; "ms\x00\x11" (MOV files)
+ format 0x11005354 ; "TS\x00\x11" (MOV files) works with -demuxer mov
driver ffmpeg
dll adpcm_ima_wav
@@ -3442,6 +3479,7 @@ audiocodec faad
format 0xff
format 0x706D
format 0x4143 ; aac in asf
+ format 0xA106 ; aac in avi
driver faad
dll libfaad2
@@ -3456,6 +3494,7 @@ audiocodec ffaac
format 0xff
format 0x706D
format 0x4143 ; aac in asf
+ format 0xA106 ; aac in avi not yet working
driver ffmpeg
dll aac
@@ -3654,6 +3693,8 @@ audiocodec ffmp2
comment "integer only"
status working
format 0x50
+ fourcc ".mp2" ; MP2 (MOV files)
+ fourcc ".mp1" ; MP1 (MOV files)
driver ffmpeg
dll "mp2"
@@ -3721,6 +3762,7 @@ audiocodec ulaw
status working
format 0x7
format 0x77616c75 ; "ulaw" (MOV files)
+ format 0x6c75
driver alaw
audiocodec dvdpcm
@@ -3744,6 +3786,7 @@ audiocodec ffac3
format 0x2000
format 0x332D6361 ; ac-3 in mp4
fourcc dnet
+ fourcc sac3
driver ffmpeg
dll ac3
diff --git a/etc/mplayer.desktop b/etc/mplayer.desktop
index 0ef3ce737a..5cf03c40aa 100644
--- a/etc/mplayer.desktop
+++ b/etc/mplayer.desktop
@@ -1,11 +1,12 @@
[Desktop Entry]
Type=Application
-Encoding=UTF-8
-Name=MPlayer
+Name=MPlayer Media Player
+Name[ca]=Reproductor multimèdia MPlayer
GenericName=Multimedia player
-Comment=Multimedia player
-Comment[de]=Multimedia-Player
-Comment[es]=Reproductor multimedia
+Comment=Play movies and songs
+Comment[ca]=Reproduïu vídeos i cançons
+Comment[de]=Filme und Musik abspielen
+Comment[es]=Reproduzca vídeos y canciones
Comment[fr]=Lecteur multimédia
Comment[it]=Lettore multimediale
Comment[zh]=多媒体播放器
diff --git a/help/help_mp-hu.h b/help/help_mp-hu.h
index 75c87575b5..920a6698a6 100644
--- a/help/help_mp-hu.h
+++ b/help/help_mp-hu.h
@@ -3,7 +3,7 @@
//... Okay enough of the hw, now send the other two!
//
// Updated by: Gabrov <gabrov@freemail.hu>
-// Sync'ed with help_mp-en.h r28860 (2009. 03. 09.)
+// Sync'ed with help_mp-en.h r29209 (2009. 05. 24.)
// ========================= MPlayer help ===========================
diff --git a/help/help_mp-it.h b/help/help_mp-it.h
index 23e4a5cf2e..60006cd4c9 100644
--- a/help/help_mp-it.h
+++ b/help/help_mp-it.h
@@ -2,7 +2,7 @@
// Updated by: Roberto Togni <see AUTHORS for email address>
// Updated by: PaulTT <see AUTHORS for email address>
-// Updated to help_mp-en.h r27402
+// Updated to help_mp-en.h r29209
// ========================= MPlayer help ===========================
@@ -49,12 +49,9 @@ static const char help_text[]=
"\n";
#endif
-// libmpcodecs/ad_dvdpcm.c:
-#define MSGTR_SamplesWanted "Servono esempi di questo formato per migliorarne il supporto. Contatta sviluppatori.\n"
-
// ========================= MPlayer messages ===========================
-// mplayer.c:
+// mplayer.c
#define MSGTR_Exiting "\nIn uscita...\n"
#define MSGTR_ExitingHow "\nIn uscita... (%s)\n"
#define MSGTR_Exit_quit "Uscita"
@@ -184,6 +181,7 @@ static const char help_text[]=
#define MSGTR_DvdnavNavSeekDone "DVDNAV Evento: Nev Ricerca eseguita\n"
#define MSGTR_MenuCall "Chiamata a Menu\n"
+// --- edit decision lists
#define MSGTR_EdlOutOfMem "Non posso allocare abbastanza memoria per i dati EDL.\n"
#define MSGTR_EdlRecordsNo "Lette azioni EDL %d.\n"
#define MSGTR_EdlQueueEmpty "Non ci sono azioni EDL di cui curarsi.\n"
@@ -204,6 +202,7 @@ static const char help_text[]=
#define MSGTR_OSDenabled "abilitat"
#define MSGTR_OSDdisabled "disabilitat"
#define MSGTR_OSDAudio "Audio: %s"
+#define MSGTR_OSDVideo "Video: %s"
#define MSGTR_OSDChannel "Canale: %s"
#define MSGTR_OSDSubDelay "Ritardo sottotitoli: %d ms"
#define MSGTR_OSDSpeed "Velocità: x %6.2f"
@@ -250,7 +249,7 @@ static const char help_text[]=
#define MSGTR_SubVisibleStatus "Sottotitoli: %si"
#define MSGTR_SubForcedOnlyStatus "Solo sottotitoli forzati: %si"
-// mencoder.c:
+// mencoder.c
#define MSGTR_UsingPass3ControlFile "Sto usando il file di controllo passo3: %s\n"
#define MSGTR_MissingFilename "\nNome file mancante.\n\n"
#define MSGTR_CannotOpenFile_Device "Impossibile aprire il file/dispositivo.\n"
@@ -416,7 +415,7 @@ static const char help_text[]=
#define MSGTR_CouldntOpenCodec "Non posso aprire il codec %s, br=%d.\n"
#define MSGTR_CantCopyAudioFormat "Il formato audio 0x%x è incompatibile con '-oac copy', prova invece '-oac pcm' o usa '-fafmttag' per forzare.\n"
-// cfg-mencoder.h:
+// cfg-mencoder.h
#define MSGTR_MEncoderMP3LameHelp "\n\n"\
" vbr=<0-4> metodo bitrate variabile\n"\
" 0: cbr (bitrate costante)\n"\
@@ -465,7 +464,7 @@ static const char help_text[]=
" (bitrate 320 kbps)\n"\
" <8-320>: codifica ABR con bitrate medio impostato in kbps.\n\n"
-//codec-cfg.c:
+//codec-cfg.c
#define MSGTR_DuplicateFourcc "FourCC duplicato"
#define MSGTR_TooManyFourccs "troppi FourCCs/formati..."
#define MSGTR_ParseError "errore lettura"
@@ -524,192 +523,8 @@ static const char help_text[]=
#define MSGTR_PropertyListHeader "\n Nome Tipo Min Max\n\n"
#define MSGTR_TotalProperties "\nTotale: %d proprietà\n"
-// open.c, stream.c:
-#define MSGTR_CdDevNotfound "Dispositivo CD-ROM '%s' non trovato!\n"
-#define MSGTR_ErrTrackSelect "Errore nella selezione della traccia del VCD!"
-#define MSGTR_ReadSTDIN "Leggo da stdin...\n"
-#define MSGTR_UnableOpenURL "Impossibile aprire l'URL: %s\n"
-#define MSGTR_ConnToServer "Connesso al server: %s\n"
-#define MSGTR_FileNotFound "File non trovato: '%s'\n"
-
-#define MSGTR_SMBInitError "Impossibile inizializzare la libreria libsmbclient: %d\n"
-#define MSGTR_SMBFileNotFound "Impossibile aprire dalla rete: '%s'\n"
-#define MSGTR_SMBNotCompiled "MPlayer non è stato compilato con supporto di lettura da SMB.\n"
-
-// stream_dvd.c
-#define MSGTR_DVDspeedCantOpen "Impossibile aprire il dispositivo DVD in scrittura, modificarne la velocità\nrichiede accesso in scrittura.\n"
-#define MSGTR_DVDrestoreSpeed "Ripristino la velocità del DVD... "
-#define MSGTR_DVDlimitSpeed "Limitazione della velocità del DVD a %dKB/s... "
-#define MSGTR_DVDlimitFail "non riuscita\n"
-#define MSGTR_DVDlimitOk "riuscita\n"
-#define MSGTR_CantOpenDVD "Impossibile aprire il dispositivo DVD: %s (%s)\n"
-#define MSGTR_NoDVDSupport "MPlayer è stato compilato senza il supporto per DVD, esco\n"
-#define MSGTR_DVDnumTitles "Ci sono %d titolo/i su questo DVD.\n"
-#define MSGTR_DVDinvalidTitle "Numero del titolo del DVD non valido: %d\n"
-#define MSGTR_DVDnumChapters "Ci sono %d capitolo/i in questo titolo del DVD.\n"
-#define MSGTR_DVDinvalidChapter "Numero del capitolo del DVD non valido: %d\n"
-#define MSGTR_DVDinvalidChapterRange "Intervallo dei capitoli indicato non valido: %s\n"
-#define MSGTR_DVDinvalidLastChapter "Numero del capitolo finale del DVD non valido: %d\n"
-#define MSGTR_DVDnumAngles "Ci sono %d angolazione/i in questo titolo del DVD.\n"
-#define MSGTR_DVDinvalidAngle "Numero delle angolazioni del DVD non valido: %d\n"
-#define MSGTR_DVDnoIFO "Impossibile aprire il file IFO per il titolo del DVD %d.\n"
-#define MSGTR_DVDnoVMG "Impossibile aprire le informazioni VMG!\n"
-#define MSGTR_DVDnoVOBs "Impossibile aprire il VOB del titolo (VTS_%02d_1.VOB).\n"
-#define MSGTR_DVDnoMatchingAudio "Non trovata la lingua dell'audio DVD corrispondente!\n"
-#define MSGTR_DVDaudioChannel "Scelto canale audio DVD: %d lingua: %c%c\n"
-#define MSGTR_DVDaudioStreamInfo "flusso audio: %d formato: %s (%s) lingua: %s aid: %d.\n"
-#define MSGTR_DVDnumAudioChannels "numero di canali audio sul disco: %d.\n"
-#define MSGTR_DVDnoMatchingSubtitle "Non trovata la lingua dei sottotitoli DVD corrispondente!\n"
-#define MSGTR_DVDsubtitleChannel "Scelto canale sottotitoli DVD: %d lingua: %c%c\n"
-#define MSGTR_DVDsubtitleLanguage "sottotitoli ( sid ): %d lingua: %s\n"
-#define MSGTR_DVDnumSubtitles "numero di sottotitoli sul disco: %d\n"
-
-// muxer.c, muxer_*.c:
-#define MSGTR_TooManyStreams "Troppi flussi!"
-#define MSGTR_RawMuxerOnlyOneStream "Il muxer rawaudio supporta solo un flusso audio!\n"
-#define MSGTR_IgnoringVideoStream "Ignoro il flusso video!\n"
-#define MSGTR_UnknownStreamType "Attenzione, Tipo flusso sconosciuto: %d\n"
-#define MSGTR_WarningLenIsntDivisible "Attenzione, len non è divisibile per samplesize!\n"
-// TODO: muxer frame buffer ???
-#define MSGTR_MuxbufMallocErr "Il buffer fotogrammi del muxer non può allocare la memoria!\n"
-#define MSGTR_MuxbufReallocErr "Il buffer fotogrammi del muxer non può riallocare la memoria!\n"
-#define MSGTR_MuxbufSending "Il buffer fotogrammi del muxer sta inviando %d fotogramma/i al muxer.\n"
-#define MSGTR_WritingHeader "Scrittura intestazione in corso...\n"
-#define MSGTR_WritingTrailer "Scrittura indice in corso...\n"
-
-// demuxer.c, demux_*.c:
-#define MSGTR_AudioStreamRedefined "Avvertimento! Intestazione del flusso audio %d ridefinito!\n"
-#define MSGTR_VideoStreamRedefined "Avvertimento! Intestazione del flusso video %d ridefinito!\n"
-#define MSGTR_TooManyAudioInBuffer "\nDEMUXER: Troppi (%d in %d byte) pacchetti audio nel buffer!\n"
-#define MSGTR_TooManyVideoInBuffer "\nDEMUXER: Troppi (%d in %d byte) pacchetti video nel buffer!\n"
-#define MSGTR_MaybeNI "Forse stai riproducendo un flusso/file non-interleaved o il codec non funziona?\n" \
- "Per i file .AVI, prova a forzare la modalità 'non-interleaved' con l'opz. -ni.\n"
-// TODO XXX working around
-#define MSGTR_WorkAroundBlockAlignHeaderBug "AVI: XXX il bug dell'intestazione nBlockAlign CBR-MP3!\n"
-#define MSGTR_SwitchToNi "\nRilevato file .AVI con interleave errato - passo alla modalità -ni!\n"
-#define MSGTR_InvalidAudioStreamNosound "AVI: ID flusso audio invalido: %d - lo ignoro (nosound)\n"
-#define MSGTR_InvalidAudioStreamUsingDefault "AVI: ID flusso video invalido: %d - lo ignoro (uso il default)\n"
-#define MSGTR_ON2AviFormat "Formato AVI ON2"
-#define MSGTR_Detected_XXX_FileFormat "Rilevato formato file %s!\n"
-#define MSGTR_DetectedAudiofile "Rilevato file audio!\n"
-#define MSGTR_NotSystemStream "il formato non è 'MPEG System Stream'... (è forse 'Transport Stream'?)\n"
-#define MSGTR_InvalidMPEGES "Flusso MPEG-ES non valido??? Contatta l'autore, può essere un baco :(\n"
-#define MSGTR_FormatNotRecognized "===== Mi dispiace, questo formato file non è riconosciuto/supportato ======\n"\
- "=== Se questo è un file AVI, ASF o MPEG, per favore contatta l'autore! ===\n"
-#define MSGTR_SettingProcessPriority "Imposto la priorità del processo: %s\n"
-#define MSGTR_CannotInitializeMuxer "Impossibile inizializzare il muxer."
-#define MSGTR_MissingVideoStream "Nessun flusso video trovato!\n"
-#define MSGTR_MissingAudioStream "Nessun flusso audio trovato -> nessun suono\n"
-#define MSGTR_MissingVideoStreamBug "Manca il flusso video!? Contatta l'autore, può essere un baco :(\n"
-
-#define MSGTR_DoesntContainSelectedStream "demux: il file non contiene il flusso audio o video selezionato\n"
-
-#define MSGTR_NI_Forced "Forzato"
-#define MSGTR_NI_Detected "Rilevato"
-#define MSGTR_NI_Message "%s formato file AVI NON-INTERLEAVED!\n"
-
-#define MSGTR_UsingNINI "Uso di formato file AVI NON-INTERLEAVED corrotto.\n"
-#define MSGTR_CouldntDetFNo "Impossibile determinare il numero di fotogrammi (per lo spostamento assoluto).\n"
-#define MSGTR_CantSeekRawAVI "Impossibile spostarsi nei flussi .AVI grezzi. (richiesto un indice, prova con l'opzione -idx.)\n"
-#define MSGTR_CantSeekFile "Impossibile spostarsi in questo file! \n"
-
-#define MSGTR_MOVcomprhdr "MOV: Il supporto delle intestazioni compresse richiede ZLIB!\n"
-#define MSGTR_MOVvariableFourCC "MOV: Avvertimento! Rilevato FourCC variabile!?\n"
-#define MSGTR_MOVtooManyTrk "MOV: Avvertimento! troppe tracce!"
-#define MSGTR_FoundAudioStream "==> Trovato flusso audio: %d\n"
-#define MSGTR_FoundVideoStream "==> Trovato flusso video: %d\n"
-#define MSGTR_DetectedTV "Ho trovato una TV! ;-)\n"
-#define MSGTR_ErrorOpeningOGGDemuxer "Impossibile aprire il demuxer Ogg.\n"
-#define MSGTR_ASFSearchingForAudioStream "ASF: sto cercando il flusso audio (id:%d)\n"
-#define MSGTR_CannotOpenAudioStream "Impossibile aprire il flusso audio: %s\n"
-#define MSGTR_CannotOpenSubtitlesStream "Impossibile aprire il flusso dei sottotitoli: %s\n"
-#define MSGTR_OpeningAudioDemuxerFailed "Errore nell'apertura del demuxer audio: %s\n"
-#define MSGTR_OpeningSubtitlesDemuxerFailed "Errore nell'apertura del demuxer dei sottotitoli: %s\n"
-#define MSGTR_TVInputNotSeekable "Impossibile spostarsi in un programma TV!\n"\
-"(Probabilmente lo spostamento verrà usato per cambiare canale ;)\n"
-#define MSGTR_DemuxerInfoChanged "Info demuxer %s cambiate a %s\n"
-#define MSGTR_ClipInfo "Informazioni file multimediale:\n"
-
-#define MSGTR_LeaveTelecineMode "\ndemux_mpg: Rilevato formato NTSC 30000/1001fps, cambio framerate.\n"
-#define MSGTR_EnterTelecineMode "\ndemux_mpg: Rilevato formato NTSC 24000/1001fps progressivo, cambio framerate.\n"
-
-#define MSGTR_CacheFill "\rRiempio cache: %5.2f%% (%"PRId64" byte) "
-#define MSGTR_NoBindFound "Nessun controllo legato al tasto '%s'."
-#define MSGTR_FailedToOpen "Apertura di '%s' fallita.\n"
- //
-#define MSGTR_VideoID "[%s] Trovato flusso video, -vid %d\n"
-#define MSGTR_AudioID "[%s] Trovato flusso audio, -aid %d\n"
-#define MSGTR_SubtitleID "[%s] Trovato flusso sottotitoli, -sid %d\n"
-
-// dec_video.c & dec_audio.c:
-#define MSGTR_CantOpenCodec "impossibile aprire il codec\n"
-#define MSGTR_CantCloseCodec "impossibile chiudere il codec\n"
-
-#define MSGTR_MissingDLLcodec "ERRORE: Impossibile aprire il codec DirectShow richiesto: %s\n"
-#define MSGTR_ACMiniterror "Impossibile caricare/inizializz. il codec audio Win32/ACM (manca il file DLL?)\n"
-#define MSGTR_MissingLAVCcodec "Impossibile trovare il codec '%s' in libavcodec...\n"
-
-#define MSGTR_MpegNoSequHdr "MPEG: FATAL: EOF mentre cercavo la sequenza di intestazione\n"
-#define MSGTR_CannotReadMpegSequHdr "FATAL: Impossibile leggere la sequenza di intestazione!\n"
-#define MSGTR_CannotReadMpegSequHdrEx "FATAL: Impossibile leggere l'estensione della sequenza di intestazione!\n"
-#define MSGTR_BadMpegSequHdr "MPEG: Sequenza di intestazione non valida!\n"
-#define MSGTR_BadMpegSequHdrEx "MPEG: Estensione della sequenza di intestazione non valida!\n"
-
-#define MSGTR_ShMemAllocFail "Impossibile allocare la memoria condivisa\n"
-#define MSGTR_CantAllocAudioBuf "Impossibile allocare il buffer di uscita dell'audio\n"
-
-#define MSGTR_UnknownAudio "Formato audio sconosciuto/mancante, non uso l'audio\n"
-
-#define MSGTR_UsingExternalPP "[PP] Utilizzo un filtro di postprocessing esterno, max q = %d\n"
-#define MSGTR_UsingCodecPP "[PP] Utilizzo il postprocessing del codec, max q = %d\n"
-#define MSGTR_VideoAttributeNotSupportedByVO_VD "L'attributo video '%s' non è gestibile dal vo & vd selezionati! \n"
-#define MSGTR_VideoCodecFamilyNotAvailableStr "Famiglia di codec video voluta [%s] (vfm=%s) non disponibile.\nAbilitala in compilazione.\n"
-#define MSGTR_AudioCodecFamilyNotAvailableStr "Famiglia di codec audio voluta [%s] (afm=%s) non disponibile.\nAbilitala in compilazione.\n"
-#define MSGTR_OpeningVideoDecoder "Apertura decoder video: [%s] %s\n"
-#define MSGTR_SelectedVideoCodec "Scelto codec video: [%s] vfm: %s (%s)\n"
-#define MSGTR_OpeningAudioDecoder "Apertura decoder audio: [%s] %s\n"
-#define MSGTR_SelectedAudioCodec "Scelto codec audio: [%s] afm: %s (%s)\n"
-#define MSGTR_BuildingAudioFilterChain "Costruisco catena filtri audio per %dHz/%dch/%s -> %dHz/%dch/%s...\n"
-#define MSGTR_UninitVideoStr "Uninit video: %s \n"
-#define MSGTR_UninitAudioStr "Uninit audio: %s \n"
-#define MSGTR_VDecoderInitFailed "Inizializzazione VDecoder fallita :(\n"
-#define MSGTR_ADecoderInitFailed "Inizializzazione ADecoder fallita :(\n"
-#define MSGTR_ADecoderPreinitFailed "Preinizializzazione ADecoder fallita :(\n"
-#define MSGTR_AllocatingBytesForInputBuffer "dec_audio: Alloco %d byte per il buffer di input\n"
-#define MSGTR_AllocatingBytesForOutputBuffer "dec_audio: Alloco %d + %d = %d byte per il buffer di output\n"
-
-// LIRC:
-#define MSGTR_SettingUpLIRC "Configurazione del supporto per LIRC...\n"
-#define MSGTR_LIRCopenfailed "Apertura del supporto per LIRC fallita. Non potrai usare il tuo telecomando.\n"
-#define MSGTR_LIRCcfgerr "Fallimento nella lettura del file di configurazione di LIRC %s.\n"
-
-// vf.c
-#define MSGTR_CouldNotFindVideoFilter "Impossibile trovare il filtro video '%s'\n"
-#define MSGTR_CouldNotOpenVideoFilter "Impossibile aprire il filtro video '%s'\n"
-#define MSGTR_OpeningVideoFilter "Apertura filtro video: "
-#define MSGTR_CannotFindColorspace "Impossibile trovare uno spazio colore in comune, anche inserendo 'scale' :(\n"
-
-// vd.c
-#define MSGTR_CodecDidNotSet "VDec: Il codec non ha impostato sh->disp_w and sh->disp_h, tento di risolvere.\n"
-#define MSGTR_VoConfigRequest "VDec: configurazione chiesta dal vo - %d x %d (sp.col. preferito: %s)\n"
-#define MSGTR_UsingXAsOutputCspNoY "VDec: uso %s come sp.colore di uscita (non %d)\n"
-#define MSGTR_CouldNotFindColorspace "Impossibile trovare uno spazio colore adatto - riprovo con -vf scale...\n"
-#define MSGTR_MovieAspectIsSet "Movie-Aspect è %.2f:1 - riscalo per ottenere un rapporto corretto.\n"
-#define MSGTR_MovieAspectUndefined "Movie-Aspect non definito - nessuna scalatura.\n"
-
-// vd_dshow.c, vd_dmo.c
-#define MSGTR_DownloadCodecPackage "Devi installare o aggiornare i codec binari.\nVai su http://www.mplayerhq.hu/dload.html\n"
-#define MSGTR_DShowInitOK "INFO: Win32/DShow inizializzato correttamente.\n"
-#define MSGTR_DMOInitOK "INFO: Win32/DMO inizializzato correttamente.\n"
-
-// x11_common.c
-#define MSGTR_EwmhFullscreenStateFailed "\nX11: Impossibile inviare l'evento schermo pieno EWMH!\n"
-#define MSGTR_CouldNotFindXScreenSaver "xscreensaver_disable: Non riesco a trovare la finestra di XScreenSaver.\n"
-#define MSGTR_SelectedVideoMode "XF86VM: Scelta modalità video %dx%d per la dimensione immagine %dx%d.\n"
-
-#define MSGTR_InsertingAfVolume "[Mixer] Nessun mixer hardware, filtro volume inserito automaticamente.\n"
-#define MSGTR_NoVolume "[Mixer] Regolazione del volume non disponibile.\n"
-#define MSGTR_NoBalance "[Mixer] Controllo del bilanciamento non disponibile.\n"
+// loader/ldt_keeper.c
+#define MSGTR_LOADER_DYLD_Warning "ATTENZIONE: Tentativo di utilizzare codec DLL, senza la variabile d'ambiente\n DYLD_BIND_AT_LAUNCH impostata. Ciò porterà probabilmente a un crash.\n"
// ====================== GUI messages/buttons ========================
@@ -854,6 +669,8 @@ static const char help_text[]=
// --- preferences
#define MSGTR_PREFERENCES_Audio MSGTR_EQU_Audio
#define MSGTR_PREFERENCES_Video MSGTR_EQU_Video
+#define MSGTR_PREFERENCES_SubtitleOSD "Sottotitoli & OSD"
+#define MSGTR_PREFERENCES_Codecs "Codec e demuxer"
#define MSGTR_PREFERENCES_Misc "Varie"
#define MSGTR_PREFERENCES_None "Nessuno"
#define MSGTR_PREFERENCES_DriverDefault "Driver predefinito"
@@ -888,7 +705,6 @@ static const char help_text[]=
#define MSGTR_PREFERENCES_SUB_ASS_TOP_MARGIN "Sopra: "
#define MSGTR_PREFERENCES_SUB_ASS_BOTTOM_MARGIN "Sotto: "
#define MSGTR_PREFERENCES_Font "Tipo Carattere:"
-#define MSGTR_PREFERENCES_Codecs "Codec e demuxer"
#define MSGTR_PREFERENCES_FontFactor "Fattore Carattere:"
#define MSGTR_PREFERENCES_PostProcess "Abilita postprocessing"
#define MSGTR_PREFERENCES_AutoQuality "Qualità automatica: "
@@ -941,7 +757,6 @@ static const char help_text[]=
#define MSGTR_PREFERENCES_FontOutLine "Bordo:"
#define MSGTR_PREFERENCES_FontTextScale "Scala testo:"
#define MSGTR_PREFERENCES_FontOSDScale "Scala OSD:"
-#define MSGTR_PREFERENCES_SubtitleOSD "Sottotitoli & OSD"
#define MSGTR_PREFERENCES_Cache "Cache on/off"
#define MSGTR_PREFERENCES_LoadFullscreen "Avvia a pieno schermo"
#define MSGTR_PREFERENCES_CacheSize "Dimensione cache: "
@@ -957,6 +772,7 @@ static const char help_text[]=
#define MSGTR_PREFERENCES_ArtsBroken "Le nuove versioni di aRts sono incompatibili "\
"con GTK 1.x e GMPlayer crasherà!"
+// -- aboutbox
#define MSGTR_ABOUT_UHU "Lo sviluppo della GUI è sponsorizzato da UHU Linux\n"
#define MSGTR_ABOUT_Contributors "Contributori codice e documentazione\n"
#define MSGTR_ABOUT_Codecs_libs_contributions "Codec e librerie di terze parti\n"
@@ -1001,7 +817,6 @@ static const char help_text[]=
#define MSGTR_WS_NotAFile "Questo non sembra essere un file...\n"
#define MSGTR_WS_DDNothing "D&D: Nessun valore di ritorno!\n"
-
// ======================= video output drivers ========================
#define MSGTR_VOincompCodec "Il dispositivo di uscita video_out scelto è incompatibile con questo codec.\n"\
@@ -1021,6 +836,47 @@ static const char help_text[]=
#define MSGTR_VO_NoValueSpecified "Nessun valore specificato."
#define MSGTR_VO_UnknownSuboptions "Sottoopzione/i sconosciuta/e"
+
+// aspect.c
+#define MSGTR_LIBVO_ASPECT_NoSuitableNewResFound "[ASPECT] Attenzione: Non ho trovato alcuna nuova risoluzione accettabile!\n"
+#define MSGTR_LIBVO_ASPECT_NoNewSizeFoundThatFitsIntoRes "[ASPECT] Errore: Non ho trovato una nuova dimensione inferiore alla risoluz.!\n"
+
+// font_load_ft.c
+#define MSGTR_LIBVO_FONT_LOAD_FT_NewFaceFailed "New_Face in errore. Forse il percorso del font è errato.\nPer favore indica il file dei font per il testo (~/.mplayer/subfont.ttf).\n"
+#define MSGTR_LIBVO_FONT_LOAD_FT_NewMemoryFaceFailed "New_Memory_Face in errore..\n"
+#define MSGTR_LIBVO_FONT_LOAD_FT_SubFaceFailed "font sottotitoli: load_sub_face in errore.\n"
+#define MSGTR_LIBVO_FONT_LOAD_FT_SubFontCharsetFailed "font sottotitoli: prepare_charset in errore.\n"
+#define MSGTR_LIBVO_FONT_LOAD_FT_CannotPrepareSubtitleFont "Impossibile preparare il font dei sottotitoli.\n"
+#define MSGTR_LIBVO_FONT_LOAD_FT_CannotPrepareOSDFont "Impossibile preparare il font per l'OSD.\n"
+#define MSGTR_LIBVO_FONT_LOAD_FT_CannotGenerateTables "Impossibile generare le tabelle.\n"
+#define MSGTR_LIBVO_FONT_LOAD_FT_DoneFreeTypeFailed "FT_Done_FreeType in errore.\n"
+
+
+
+// sub.c
+#define MSGTR_VO_SUB_Seekbar "Barra ricerca"
+#define MSGTR_VO_SUB_Play "Riproduci"
+#define MSGTR_VO_SUB_Pause "Pausa"
+#define MSGTR_VO_SUB_Stop "Stop"
+#define MSGTR_VO_SUB_Rewind "Indietro"
+#define MSGTR_VO_SUB_Forward "Avanti"
+#define MSGTR_VO_SUB_Clock "Orologio"
+#define MSGTR_VO_SUB_Contrast "Contrasto"
+#define MSGTR_VO_SUB_Saturation "Saturazione"
+#define MSGTR_VO_SUB_Volume "Volume"
+#define MSGTR_VO_SUB_Brightness "Luminosità"
+#define MSGTR_VO_SUB_Hue "Tonalità"
+#define MSGTR_VO_SUB_Balance "Bilanciamento"
+
+// vo_3dfx.c
+#define MSGTR_LIBVO_3DFX_Only16BppSupported "[VO_3DFX] Supportati solo 16bpp!"
+#define MSGTR_LIBVO_3DFX_VisualIdIs "[VO_3DFX] L'ID visuale è %lx.\n"
+#define MSGTR_LIBVO_3DFX_UnableToOpenDevice "[VO_3DFX] Impossibile aprire /dev/3dfx.\n"
+#define MSGTR_LIBVO_3DFX_Error "[VO_3DFX] Errore: %d.\n"
+#define MSGTR_LIBVO_3DFX_CouldntMapMemoryArea "[VO_3DFX] Impossibile mappare le aree di memoria 3dfx: %p,%p,%d.\n"
+#define MSGTR_LIBVO_3DFX_DisplayInitialized "[VO_3DFX] Initializzato: %p.\n"
+#define MSGTR_LIBVO_3DFX_UnknownSubdevice "[VO_3DFX] sottodispositivo sconosciuto: %s.\n"
+
// vo_aa.c
#define MSGTR_VO_AA_HelpHeader "\n\nEcco le sottoopzioni per l'aalib vo_aa:\n"
#define MSGTR_VO_AA_AdditionalOptions "Le opzioni addizionali di vo_aa:\n" \
@@ -1035,12 +891,80 @@ static const char help_text[]=
" 4 : reverse\n" \
" 5 : special\n\n\n"
+// vo_dxr3.c
+#define MSGTR_LIBVO_DXR3_UnableToLoadNewSPUPalette "[VO_DXR3] Impossibile caricare una nuova palette SPU!\n"
+#define MSGTR_LIBVO_DXR3_UnableToSetPlaymode "[VO_DXR3] Impossibile impostare la modalità riproduzione!\n"
+#define MSGTR_LIBVO_DXR3_UnableToSetSubpictureMode "[VO_DXR3] Impossibile impostare la modalità subpicture!\n"
+#define MSGTR_LIBVO_DXR3_UnableToGetTVNorm "[VO_DXR3] Impossibile ricavare la norma TV!\n"
+#define MSGTR_LIBVO_DXR3_AutoSelectedTVNormByFrameRate "[VO_DXR3] Scelta automaticamente la norma TV dalla frequenza: "
+#define MSGTR_LIBVO_DXR3_UnableToSetTVNorm "[VO_DXR3] Impossibile impostare la norma TV!\n"
+#define MSGTR_LIBVO_DXR3_SettingUpForNTSC "[VO_DXR3] Imposto per NTSC.\n"
+#define MSGTR_LIBVO_DXR3_SettingUpForPALSECAM "[VO_DXR3] Imposto per PAL/SECAM.\n"
+#define MSGTR_LIBVO_DXR3_SettingAspectRatioTo43 "[VO_DXR3] Imposto il rapporto di aspetto a 4:3.\n"
+#define MSGTR_LIBVO_DXR3_SettingAspectRatioTo169 "[VO_DXR3] Imposto il rapporto di aspetto a 16:9.\n"
+#define MSGTR_LIBVO_DXR3_OutOfMemory "[VO_DXR3] memoria esaurita\n"
+#define MSGTR_LIBVO_DXR3_UnableToAllocateKeycolor "[VO_DXR3] Impossibile allocare keycolor!\n"
+#define MSGTR_LIBVO_DXR3_UnableToAllocateExactKeycolor "[VO_DXR3] Impossibile allocare keycolor esatto, uso il più vicino (0x%lx).\n"
+#define MSGTR_LIBVO_DXR3_Uninitializing "[VO_DXR3] De-inizializzo.\n"
+#define MSGTR_LIBVO_DXR3_FailedRestoringTVNorm "[VO_DXR3] Ripristino norma TV fallito!\n"
+#define MSGTR_LIBVO_DXR3_EnablingPrebuffering "[VO_DXR3] Abilito il prebuffering.\n"
+#define MSGTR_LIBVO_DXR3_UsingNewSyncEngine "[VO_DXR3] Uso il nuovo motore di sincronizzazione.\n"
+#define MSGTR_LIBVO_DXR3_UsingOverlay "[VO_DXR3] Uso l'overlay.\n"
+#define MSGTR_LIBVO_DXR3_ErrorYouNeedToCompileMplayerWithX11 "[VO_DXR3] Errore: Overlay richiede la compilazione con gli header/librerie X11 installati.\n"
+#define MSGTR_LIBVO_DXR3_WillSetTVNormTo "[VO_DXR3] Imposterò la norma TV a: "
+#define MSGTR_LIBVO_DXR3_AutoAdjustToMovieFrameRatePALPAL60 "imposto automaticamente alla frequenza filmato (PAL/PAL-60)"
+#define MSGTR_LIBVO_DXR3_AutoAdjustToMovieFrameRatePALNTSC "imposto automaticamente alla frequenza filmato (PAL/NTSC)"
+#define MSGTR_LIBVO_DXR3_UseCurrentNorm "Uso la norma attuale."
+#define MSGTR_LIBVO_DXR3_UseUnknownNormSuppliedCurrentNorm "Norma richiesta sconosciuta. Uso la norma attuale."
+#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTrying "[VO_DXR3] Errore aprendo %s in scrittura, provo con /dev/em8300.\n"
+#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTryingMV "[VO_DXR3] Errore aprendo %s in scrittura, provo con /dev/em8300_mv.\n"
+#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWell "[VO_DXR3] Errore anche aprendo /dev/em8300 in scrittura!\nAbbandono.\n"
+#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWellMV "[VO_DXR3] Errore anche aprendo /dev/em8300_mv in scrittura!\nAbbandono.\n"
+#define MSGTR_LIBVO_DXR3_Opened "[VO_DXR3] Aperto: %s.\n"
+#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTryingSP "[VO_DXR3] Errore aprendo %s in scrittura, provo con /dev/em8300_sp.\n"
+#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWellSP "[VO_DXR3] Errore anche aprendo /dev/em8300_sp in scrittura!\nAbbandono.\n"
+#define MSGTR_LIBVO_DXR3_UnableToOpenDisplayDuringHackSetup "[VO_DXR3] Impossibile aprire il display nell'hack di impostazione overlay!\n"
+#define MSGTR_LIBVO_DXR3_UnableToInitX11 "[VO_DXR3] Impossibile inizializzare X11!\n"
+#define MSGTR_LIBVO_DXR3_FailedSettingOverlayAttribute "[VO_DXR3] Impostazione attributo overlay fallita.\n"
+#define MSGTR_LIBVO_DXR3_FailedSettingOverlayScreen "[VO_DXR3] Impostazione schermo overlay fallita!\nEsco.\n"
+#define MSGTR_LIBVO_DXR3_FailedEnablingOverlay "[VO_DXR3] Impostazione overlay fallita!\nEsco.\n"
+#define MSGTR_LIBVO_DXR3_FailedResizingOverlayWindow "[VO_DXR3] Ridimensionamento finestra overlay fallita!\n"
+#define MSGTR_LIBVO_DXR3_FailedSettingOverlayBcs "[VO_DXR3] Impostazione bcs overlay fallita!\n"
+#define MSGTR_LIBVO_DXR3_FailedGettingOverlayYOffsetValues "[VO_DXR3] Impossibile ricavare i valori di overlay Y-offset!\nEsco.\n"
+#define MSGTR_LIBVO_DXR3_FailedGettingOverlayXOffsetValues "[VO_DXR3] Impossibile ricavare i valori di overlay Y-offset!\nEsco.\n"
+#define MSGTR_LIBVO_DXR3_FailedGettingOverlayXScaleCorrection "[VO_DXR3] Impossibile ricavare la correzione overlay della dimensione X!\nEsco.\n"
+#define MSGTR_LIBVO_DXR3_FailedSetSignalMix "[VO_DXR3] Impossibile impostare il mix segnale!\n"
+
// vo_jpeg.c
#define MSGTR_VO_JPEG_ProgressiveJPEG "Progressive JPEG abilitata."
#define MSGTR_VO_JPEG_NoProgressiveJPEG "Progressive JPEG disabilitata."
#define MSGTR_VO_JPEG_BaselineJPEG "Baseline JPEG abilitata."
#define MSGTR_VO_JPEG_NoBaselineJPEG "Baseline JPEG disabilitata."
+// vo_mga.c
+#define MSGTR_LIBVO_MGA_AspectResized "[VO_MGA] aspect(): ridimensionato a %dx%d.\n"
+
+// mga_common.c
+#define MSGTR_LIBVO_MGA_ErrorInConfigIoctl "[MGA] errore in ioctl di mga_vid_config (versione sbagliata di mga_vid.o?)"
+#define MSGTR_LIBVO_MGA_CouldNotGetLumaValuesFromTheKernelModule "[MGA] Impossibile ottenere i valori di luminanza dal modulo del kernel!\n"
+#define MSGTR_LIBVO_MGA_CouldNotSetLumaValuesFromTheKernelModule "[MGA] Impossibile impostare i valori di luminanza dal modulo del kernel!\n"
+#define MSGTR_LIBVO_MGA_ScreenWidthHeightUnknown "[MGA] Larghezza/altezza schermo sconosciute!\n"
+#define MSGTR_LIBVO_MGA_InvalidOutputFormat "[MGA] formato di uscita %0X invalido\n"
+#define MSGTR_LIBVO_MGA_IncompatibleDriverVersion "[MGA] La versione del tuo driver mga_vid è incompatibile con questo MPlayer!\n"
+#define MSGTR_LIBVO_MGA_CouldntOpen "[MGA] Impossibile aprire: %s\n"
+#define MSGTR_LIBVO_MGA_ResolutionTooHigh "[MGA] La risoluzione del sorgente ha almeno una delle due dimensioni maggiore di 1023x1023. Per favore ridimensiona via software o usa -lavdopts lowres=1\n"
+#define MSGTR_LIBVO_MGA_mgavidVersionMismatch "[MGA] incongruenza tra le versioni del driver mga_vid del kernel (%u) e di MPlayer (%u)\n"
+
+// vo_null.c
+#define MSGTR_LIBVO_NULL_UnknownSubdevice "[VO_NULL] Sottodispositivo sconosciuto: %s.\n"
+
+// vo_png.c
+#define MSGTR_LIBVO_PNG_Warning1 "[VO_PNG] Attenzine: livello compressione a 0, compressione disabilitata!\n"
+#define MSGTR_LIBVO_PNG_Warning2 "[VO_PNG] Info: Usa -vo png:z=<n> per impostare il livello compressione da 0 a 9.\n"
+#define MSGTR_LIBVO_PNG_Warning3 "[VO_PNG] Info: (0 = nessuna, 1 = più veloce e peggiore - 9 migliore e più lenta)\n"
+#define MSGTR_LIBVO_PNG_ErrorOpeningForWriting "\n[VO_PNG] Errore aprendo '%s' in scrittura!\n"
+#define MSGTR_LIBVO_PNG_ErrorInCreatePng "[VO_PNG] Errore in create_png.\n"
+
// vo_pnm.c
#define MSGTR_VO_PNM_ASCIIMode "Modalità ASCII abilitata."
#define MSGTR_VO_PNM_RawMode "Modalità Raw abilitata."
@@ -1048,6 +972,131 @@ static const char help_text[]=
#define MSGTR_VO_PNM_PGMType "Scriverò files PGM."
#define MSGTR_VO_PNM_PGMYUVType "Scriverò files PGMYUV."
+// vo_sdl.c
+#define MSGTR_LIBVO_SDL_CouldntGetAnyAcceptableSDLModeForOutput "[VO_SDL] Impossibile ottenere una modalità SDL accettabile per l'output.\n"
+#define MSGTR_LIBVO_SDL_SetVideoModeFailed "[VO_SDL] set_video_mode: SDL_SetVideoMode fallito: %s.\n"
+#define MSGTR_LIBVO_SDL_SetVideoModeFailedFull "[VO_SDL] Set_fullmode: SDL_SetVideoMode fallito: %s.\n"
+#define MSGTR_LIBVO_SDL_MappingI420ToIYUV "[VO_SDL] Mappo I420 su IYUV.\n"
+#define MSGTR_LIBVO_SDL_UnsupportedImageFormat "[VO_SDL] Formato immagine non supportato (0x%X).\n"
+#define MSGTR_LIBVO_SDL_InfoPleaseUseVmOrZoom "[VO_SDL] Info - per favore usa -vm or -zoom per passare alla risoluzione migliore.\n"
+#define MSGTR_LIBVO_SDL_FailedToSetVideoMode "[VO_SDL] Impossibile impostare la modalità video: %s.\n"
+#define MSGTR_LIBVO_SDL_CouldntCreateAYUVOverlay "[VO_SDL] Impossibile creare un overlay YUV: %s.\n"
+#define MSGTR_LIBVO_SDL_CouldntCreateARGBSurface "[VO_SDL] Impossibile creare una superficie RGB: %s.\n"
+#define MSGTR_LIBVO_SDL_UsingDepthColorspaceConversion "[VO_SDL] Uso conversione profondità/sp.colore, per questo sarà più lento (%ibpp -> %ibpp).\n"
+#define MSGTR_LIBVO_SDL_UnsupportedImageFormatInDrawslice "[VO_SDL] Formato immagine non supportato in draw_slice, contatta gli sviluppatori di MPlayer!\n"
+#define MSGTR_LIBVO_SDL_BlitFailed "[VO_SDL] Blit fallito: %s.\n"
+#define MSGTR_LIBVO_SDL_InitializationFailed "[VO_SDL] Inizializzazione SDL fallita: %s.\n"
+#define MSGTR_LIBVO_SDL_UsingDriver "[VO_SDL] Uso il driver: %s.\n"
+
+// vo_svga.c
+#define MSGTR_LIBVO_SVGA_ForcedVidmodeNotAvailable "[VO_SVGA] Il vid_mode %d (%s) forzato non è disponibile.\n"
+#define MSGTR_LIBVO_SVGA_ForcedVidmodeTooSmall "[VO_SVGA] Il vid_mode %d (%s) è troppo piccolo.\n"
+#define MSGTR_LIBVO_SVGA_VgasetmodeFailed "[VO_SVGA] Errore in vga_setmode(%d).\n"
+#define MSGTR_LIBVO_SVGA_VideoModeIsLinearAndMemcpyCouldBeUsed "[VO_SVGA] Video mode is linear and memcpy could be used for image transfer.\n"
+#define MSGTR_LIBVO_SVGA_VideoModeHasHardwareAcceleration "[VO_SVGA] Video mode has hardware acceleration and put_image could be used.\n"
+#define MSGTR_LIBVO_SVGA_IfItWorksForYouIWouldLikeToKnow "[VO_SVGA] If it works for you I would like to know.\n[VO_SVGA] (send log with `mplayer test.avi -v -v -v -v &> svga.log`). Thx!\n"
+#define MSGTR_LIBVO_SVGA_VideoModeHas "[VO_SVGA] La modalità video ha %d pagina/e.\n"
+#define MSGTR_LIBVO_SVGA_CenteringImageStartAt "[VO_SVGA] Centro l'immagine. Partendo da (%d,%d)\n"
+#define MSGTR_LIBVO_SVGA_UsingVidix "[VO_SVGA] Uso VIDIX. l=%i a=%i lm=%i am=%i\n"
+
+// vo_tdfx_vid.c
+#define MSGTR_LIBVO_TDFXVID_Move "[VO_TDXVID] Sposta %d(%d) x %d => %d.\n"
+#define MSGTR_LIBVO_TDFXVID_AGPMoveFailedToClearTheScreen "[VO_TDFXVID] L'AGP move non ha potuto ripulire lo schermo.\n"
+#define MSGTR_LIBVO_TDFXVID_BlitFailed "[VO_TDFXVID] Blit fallito.\n"
+#define MSGTR_LIBVO_TDFXVID_NonNativeOverlayFormatNeedConversion "[VO_TDFXVID] Al formato di overlay non nativo serve una conversione.\n"
+#define MSGTR_LIBVO_TDFXVID_UnsupportedInputFormat "[VO_TDFXVID] Formato 0x%x in entrata non supportato.\n"
+#define MSGTR_LIBVO_TDFXVID_OverlaySetupFailed "[VO_TDFXVID] Impostazione overlay non riuscita.\n"
+#define MSGTR_LIBVO_TDFXVID_OverlayOnFailed "[VO_TDFXVID] Attivazione overlay non riuscita.\n"
+#define MSGTR_LIBVO_TDFXVID_OverlayReady "[VO_TDFXVID] Overlay pronto: %d(%d) x %d @ %d => %d(%d) x %d @ %d.\n"
+#define MSGTR_LIBVO_TDFXVID_TextureBlitReady "[VO_TDFXVID] Texture blit pronto: %d(%d) x %d @ %d => %d(%d) x %d @ %d.\n"
+#define MSGTR_LIBVO_TDFXVID_OverlayOffFailed "[VO_TDFXVID] Disattivazione overlay non riuscita\n"
+#define MSGTR_LIBVO_TDFXVID_CantOpen "[VO_TDFXVID] Impossibile aprire %s: %s.\n"
+#define MSGTR_LIBVO_TDFXVID_CantGetCurrentCfg "[VO_TDFXVID] Impossibile ricavare la configurazione attuale: %s.\n"
+#define MSGTR_LIBVO_TDFXVID_MemmapFailed "[VO_TDFXVID] Errore in memmap !!!!!\n"
+#define MSGTR_LIBVO_TDFXVID_AgpMoveFailed "[VO_TDFXVID] Erroe in AGP move.\n"
+#define MSGTR_LIBVO_TDFXVID_SetYuvFailed "[VO_TDFXVID] Errore impostazione YUV.\n"
+#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnYPlane "[VO_TDFXVID] AGP move non riuscita sul piano Y.\n"
+#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnUPlane "[VO_TDFXVID] AGP move non riuscita sul piano U.\n"
+#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnVPlane "[VO_TDFXVID] AGP move non riuscita sul piano V.\n"
+#define MSGTR_LIBVO_TDFXVID_UnknownFormat "[VO_TDFXVID] formato sconosciuto: 0x%x.\n"
+
+// vo_tdfxfb.c
+#define MSGTR_LIBVO_TDFXFB_CantOpen "[VO_TDFXFB] Impossibile aprire %s: %s.\n"
+#define MSGTR_LIBVO_TDFXFB_ProblemWithFbitgetFscreenInfo "[VO_TDFXFB] Problema con l'ioctl FBITGET_FSCREENINFO: %s.\n"
+#define MSGTR_LIBVO_TDFXFB_ProblemWithFbitgetVscreenInfo "[VO_TDFXFB] Problema con l'ioctl FBITGET_VSCREENINFO: %s.\n"
+#define MSGTR_LIBVO_TDFXFB_ThisDriverOnlySupports "[VO_TDFXFB] Questo driver supporta solo le 3Dfx Banshee, Voodoo3 e Voodoo 5.\n"
+#define MSGTR_LIBVO_TDFXFB_OutputIsNotSupported "[VO_TDFXFB] Uscita con %d bpp non supportata.\n"
+#define MSGTR_LIBVO_TDFXFB_CouldntMapMemoryAreas "[VO_TDFXFB] Impossibile mappare le aree di memoria: %s.\n"
+#define MSGTR_LIBVO_TDFXFB_BppOutputIsNotSupported "[VO_TDFXFB] Uscita con %d bpp non supportata (Ciò non sarebbe dovuto accadere).\n"
+#define MSGTR_LIBVO_TDFXFB_SomethingIsWrongWithControl "[VO_TDFXFB] Eik! Qualche problema in control().\n"
+#define MSGTR_LIBVO_TDFXFB_NotEnoughVideoMemoryToPlay "[VO_TDFXFB] Troppo poca memoria video per la riproduzione. Prova una risoluzione inferiore.\n"
+#define MSGTR_LIBVO_TDFXFB_ScreenIs "[VO_TDFXFB] screen è %dx%d a %d bpp, in è %dx%d a %d bpp, norm è %dx%d.\n"
+
+// vo_tga.c
+#define MSGTR_LIBVO_TGA_UnknownSubdevice "[VO_TGA] Sottodispositivo sconosciuto: %s.\n"
+
+// vo_vesa.c
+#define MSGTR_LIBVO_VESA_FatalErrorOccurred "[VO_VESA] Errore fatale! Impossibile continuare.\n"
+#define MSGTR_LIBVO_VESA_UnknownSubdevice "[VO_VESA] Sottodispositivo sconosciuto: '%s'.\n"
+#define MSGTR_LIBVO_VESA_YouHaveTooLittleVideoMemory "[VO_VESA] Hai troppo poca memoria video per questa modalità:\n[VO_VESA] Richiesta: %08lX presente: %08lX.\n"
+#define MSGTR_LIBVO_VESA_YouHaveToSpecifyTheCapabilitiesOfTheMonitor "[VO_VESA] Devi specificare le caratteristiche del monitor. Non cambio frequenza di refresh.\n"
+#define MSGTR_LIBVO_VESA_UnableToFitTheMode "[VO_VESA] Modalità al di fuori dei limiti del monitor. Non cambio frequenza di refresh.\n"
+#define MSGTR_LIBVO_VESA_DetectedInternalFatalError "[VO_VESA] Errore interno fatale rilevato: init eseguito prima di preinit.\n"
+#define MSGTR_LIBVO_VESA_SwitchFlipIsNotSupported "[VO_VESA] L'opzione -flip non è gestita.\n"
+#define MSGTR_LIBVO_VESA_PossibleReasonNoVbe2BiosFound "[VO_VESA] Ragione possibile: Nessun BIOS VBE2 trovato.\n"
+#define MSGTR_LIBVO_VESA_FoundVesaVbeBiosVersion "[VO_VESA] Trovato BIOS VESA VBE Versione %x.%x Revisione: %x.\n"
+#define MSGTR_LIBVO_VESA_VideoMemory "[VO_VESA] Memoria video: %u Kb.\n"
+#define MSGTR_LIBVO_VESA_Capabilites "[VO_VESA] Caratteristiche VESA: %s %s %s %s %s.\n"
+#define MSGTR_LIBVO_VESA_BelowWillBePrintedOemInfo "[VO_VESA] !!! Informazioni OEM stampate qui sotto !!!\n"
+#define MSGTR_LIBVO_VESA_YouShouldSee5OemRelatedLines "[VO_VESA] Dovresti vedere qui sotto 5 righe relative all'OEM; Se no, hai una vm86 bacata.\n"
+#define MSGTR_LIBVO_VESA_Hint "[VO_VESA] Suggerimento: Per utilizzare l'uscita-TV devi avere il connettore TV attaccato\n"\
+"[VO_VESA] prima dell'avvio visto che il BIOS VESA si inizializza solo durante il POST.\n"
+#define MSGTR_LIBVO_VESA_UsingVesaMode "[VO_VESA] Uso modalità VESA (%u) = %x [%ux%u@%u]\n"
+#define MSGTR_LIBVO_VESA_CantInitializeSwscaler "[VO_VESA] Impossibile inizializzare il ridimensionatore sotfware.\n"
+#define MSGTR_LIBVO_VESA_CantUseDga "[VO_VESA] Impossibile usare DGA. Forzo la modalità 'bank switching mode'. :(\n"
+#define MSGTR_LIBVO_VESA_UsingDga "[VO_VESA] Uso DGA (risorse fisiche: %08lXh, %08lXh)"
+#define MSGTR_LIBVO_VESA_CantUseDoubleBuffering "[VO_VESA] Impossibile usare il double buffering: non abbastanza memoria video.\n"
+#define MSGTR_LIBVO_VESA_CantFindNeitherDga "[VO_VESA] Non riesco a trovare né DGA né un frame di finestra riposizionabile.\n"
+#define MSGTR_LIBVO_VESA_YouveForcedDga "[VO_VESA] Hai forzato DGA. Esco\n"
+#define MSGTR_LIBVO_VESA_CantFindValidWindowAddress "[VO_VESA] Impossibile trovare un indirizzo finestra valido.\n"
+#define MSGTR_LIBVO_VESA_UsingBankSwitchingMode "[VO_VESA] Uso la modalità 'bank switching mode' (risorse fisiche: %08lXh, %08lXh).\n"
+#define MSGTR_LIBVO_VESA_CantAllocateTemporaryBuffer "[VO_VESA] Imposibile allocare un buffer temporaneo.\n"
+#define MSGTR_LIBVO_VESA_SorryUnsupportedMode "[VO_VESA] Spiacente, modalità non supportata -- prova -x 640 -zoom.\n"
+#define MSGTR_LIBVO_VESA_OhYouReallyHavePictureOnTv "[VO_VESA] Oh, hai davvero un'immagine sulla Tivu!\n"
+#define MSGTR_LIBVO_VESA_CantInitialozeLinuxVideoOverlay "[VO_VESA] Impossibile inizializzare l'Overlay Video Linux.\n"
+#define MSGTR_LIBVO_VESA_UsingVideoOverlay "[VO_VESA] Uso l'overlay video: %s.\n"
+#define MSGTR_LIBVO_VESA_CantInitializeVidixDriver "[VO_VESA] Impossibile inizializzare il driver VIDIX.\n"
+#define MSGTR_LIBVO_VESA_UsingVidix "[VO_VESA] Uso VIDIX.\n"
+#define MSGTR_LIBVO_VESA_CantFindModeFor "[VO_VESA] Impossibile trovare una modalità per: %ux%u@%u.\n"
+#define MSGTR_LIBVO_VESA_InitializationComplete "[VO_VESA] Inizializzazione VESA completa.\n"
+
+// vesa_lvo.c
+#define MSGTR_LIBVO_VESA_ThisBranchIsNoLongerSupported "[VESA_LVO] Questo branch non è più supportato.\n[VESA_LVO] Per favore usa al suo posto -vo vesa:vidix.\n"
+#define MSGTR_LIBVO_VESA_CouldntOpen "[VESA_LVO] Impossibile aprire: '%s'\n"
+#define MSGTR_LIBVO_VESA_InvalidOutputFormat "[VESA_LVI] formato di uscita non valido: %s(%0X)\n"
+#define MSGTR_LIBVO_VESA_IncompatibleDriverVersion "[VESA_LVO] La versione del tuo driver fb_vid è incompatibile con questo MPlayer!\n"
+
+// vo_x11.c
+#define MSGTR_LIBVO_X11_DrawFrameCalled "[VO_X11] chiamata a draw_frame()!!!!!!\n"
+
+// vo_xv.c
+#define MSGTR_LIBVO_XV_DrawFrameCalled "[VO_XV] chiamata a draw_frame()!!!!!!\n"
+#define MSGTR_LIBVO_XV_SharedMemoryNotSupported "[VO_XV] Memoria condivisa non supportata\nRitorno a Xv normale.\n"
+#define MSGTR_LIBVO_XV_XvNotSupportedByX11 "[VO_XV] Scusa, Xv non è gestito dalla versione/driver di X11 corrente\n[VO_XV] ******** Prova con -vo x11 o -vo sdl *********\n"
+#define MSGTR_LIBVO_XV_XvQueryAdaptorsFailed "[VO_XV] Funzione XvQueryAdaptors fallita.\n"
+#define MSGTR_LIBVO_XV_InvalidPortParameter "[VO_XV] Parametro porta non valido, lo sovrascrivo con la porta 0.\n"
+#define MSGTR_LIBVO_XV_CouldNotGrabPort "[VO_XV] Impossibile aprire la porta %i.\n"
+#define MSGTR_LIBVO_XV_CouldNotFindFreePort "[VO_XV] Impossibile trovare una porta Xvideo libera - forse un altro processo\n"\
+"[VO_XV] la sta già usando. Chiudi tutte le applicazioni video, e riprova.\n"\
+"[VO_XV] Se ciò non ti aiuta, vedi 'mplayer -vo help' per altri (non-xv)\n"\
+"[VO_XV] driver di uscita video.\n"
+#define MSGTR_LIBVO_XV_NoXvideoSupport "[VO_XV] Sembra non sia disponibile il supporto Xvideo per la tua scheda video.\n"\
+"[VO_XV] Esegui 'xvinfo' per verificare il supporto Xv e leggi\n"\
+"[VO_XV] DOCS/HTML/it/video.html#xv!\n"\
+"[VO_XV] Vedi 'mplayer -vo help' per altri (non-xv) driver di uscita video.\n"\
+"[VO_XV] Prova con -vo x11.\n"
+#define MSGTR_VO_XV_ImagedimTooHigh "Dimensioni dell'immagine origine troppo grandi: %ux%u (il massimo è %ux%u)\n"
+
// vo_yuv4mpeg.c
#define MSGTR_VO_YUV4MPEG_InterlacedHeightDivisibleBy4 "La modalità interlacciata richiede l'altezza immagine divisibile per 4."
#define MSGTR_VO_YUV4MPEG_InterlacedLineBufAllocFail "Impossibile allocare il buffer di linea per la modalità interlacciata."
@@ -1063,26 +1112,32 @@ static const char help_text[]=
#define MSGTR_VO_YUV4MPEG_InterlacedBFFMode "Uso modalità di uscita interlacciata, bottom-field first."
#define MSGTR_VO_YUV4MPEG_ProgressiveMode "Uso la modalità fotogramma progressivo (default)."
-// sub.c
-#define MSGTR_VO_SUB_Seekbar "Barra ricerca"
-#define MSGTR_VO_SUB_Play "Riproduci"
-#define MSGTR_VO_SUB_Pause "Pausa"
-#define MSGTR_VO_SUB_Stop "Stop"
-#define MSGTR_VO_SUB_Rewind "Indietro"
-#define MSGTR_VO_SUB_Forward "Avanti"
-#define MSGTR_VO_SUB_Clock "Orologio"
-#define MSGTR_VO_SUB_Contrast "Contrasto"
-#define MSGTR_VO_SUB_Saturation "Saturazione"
-#define MSGTR_VO_SUB_Volume "Volume"
-#define MSGTR_VO_SUB_Brightness "Luminosità"
-#define MSGTR_VO_SUB_Hue "Tonalità"
-#define MSGTR_VO_SUB_Balance "Bilanciamento"
+// vobsub_vidix.c
+#define MSGTR_LIBVO_SUB_VIDIX_CantStartPlayback "[VO_SUB_VIDIX] Impossibile iniziare la riproduzione: %s\n"
+#define MSGTR_LIBVO_SUB_VIDIX_CantStopPlayback "[VO_SUB_VIDIX] Impossibile terminare la riproduzione: %s\n"
+#define MSGTR_LIBVO_SUB_VIDIX_InterleavedUvForYuv410pNotSupported "[VO_SUB_VIDIX] UV interlacciato per YUV410P non supportato.\n"
+#define MSGTR_LIBVO_SUB_VIDIX_DummyVidixdrawsliceWasCalled "[VO_SUB_VIDIX] Chiamata alla funzione posticcia vidix_draw_slice().\n"
+#define MSGTR_LIBVO_SUB_VIDIX_DummyVidixdrawframeWasCalled "[VO_SUB_VIDIX] Chiamata alla funzione posticcia vidix_draw_frame().\n"
+#define MSGTR_LIBVO_SUB_VIDIX_UnsupportedFourccForThisVidixDriver "[VO_SUB_VIDIX] FourCC non supportato per questo driver VIDIX: %x (%s).\n"
+#define MSGTR_LIBVO_SUB_VIDIX_VideoServerHasUnsupportedResolution "[VO_SUB_VIDIX] Il server grafico ha una risoluzione non supportata (%dx%d), supportate: %dx%d-%dx%d.\n"
+#define MSGTR_LIBVO_SUB_VIDIX_VideoServerHasUnsupportedColorDepth "[VO_SUB_VIDIX] Il server grafico ha una profondità colore non supportata da vidix (%d).\n"
+#define MSGTR_LIBVO_SUB_VIDIX_DriverCantUpscaleImage "[VO_SUB_VIDIX] Il driver VIDIX non può ingrandire l'immagine (%d%d -> %d%d).\n"
+#define MSGTR_LIBVO_SUB_VIDIX_DriverCantDownscaleImage "[VO_SUB_VIDIX] Il driver VIDIX non può rimpicciolire l'immagine (%d%d -> %d%d).\n"
+#define MSGTR_LIBVO_SUB_VIDIX_CantConfigurePlayback "[VO_SUB_VIDIX] Impossibile configurare la riproduzione: %s.\n"
+#define MSGTR_LIBVO_SUB_VIDIX_YouHaveWrongVersionOfVidixLibrary "[VO_SUB_VIDIX] Hai la versione errata della libreria VIDIX.\n"
+#define MSGTR_LIBVO_SUB_VIDIX_CouldntFindWorkingVidixDriver "[VO_SUB_VIDIX] Impossibile trovare un driver VIDIX che possa funzionare.\n"
+#define MSGTR_LIBVO_SUB_VIDIX_CouldntGetCapability "[VO_SUB_VIDIX] Impossibile ricavare caratteristiche: %s.\n"
-// vo_xv.c
-#define MSGTR_VO_XV_ImagedimTooHigh "Dimensioni dell'immagine origine troppo grandi: %ux%u (il massimo è %ux%u)\n"
+// x11_common.c
+#define MSGTR_EwmhFullscreenStateFailed "\nX11: Impossibile inviare l'evento schermo pieno EWMH!\n"
+#define MSGTR_CouldNotFindXScreenSaver "xscreensaver_disable: Non riesco a trovare la finestra di XScreenSaver.\n"
+#define MSGTR_SelectedVideoMode "XF86VM: Scelta modalità video %dx%d per la dimensione immagine %dx%d.\n"
-// old vo drivers that have been replaced
+#define MSGTR_InsertingAfVolume "[Mixer] Nessun mixer hardware, filtro volume inserito automaticamente.\n"
+#define MSGTR_NoVolume "[Mixer] Regolazione del volume non disponibile.\n"
+#define MSGTR_NoBalance "[Mixer] Controllo del bilanciamento non disponibile.\n"
+// old vo drivers that have been replaced
#define MSGTR_VO_PGM_HasBeenReplaced "Il driver di uscita video pgm è stato sostituito con -vo pnm:pgmyuv.\n"
#define MSGTR_VO_MD5_HasBeenReplaced "Il driver di uscita video md5 è stato sostituito con -vo md5sum.\n"
@@ -1244,13 +1299,13 @@ static const char help_text[]=
#define MSGTR_AO_ALSA_CannotGetPcmStatus "[AO_ALSA] Impossibile ricavare lo stato pcm: %s\n"
// ao_plugin.c
-
#define MSGTR_AO_PLUGIN_InvalidPlugin "[AO PLUGIN] plugin non valido: %s\n"
// ======================= audio filters ================================
-// libaf
+// af_scaletempo.c
+#define MSGTR_AF_ValueOutOfRange MSGTR_VO_ValueOutOfRange
// af_ladspa.c
#define MSGTR_AF_LADSPA_AvailableLabels "etichette disponibili in"
@@ -1315,43 +1370,90 @@ static const char help_text[]=
#define MSGTR_INPUT_INPUT_ErrCantOpenFile "Impossibile aprire %s: %s\n"
#define MSGTR_INPUT_INPUT_ErrCantInitAppleRemote "Impossibile inizializzare l'Apple Remote.\n"
+// lirc.c
+#define MSGTR_SettingUpLIRC "Configurazione del supporto per LIRC...\n"
+#define MSGTR_LIRCopenfailed "Apertura del supporto per LIRC fallita. Non potrai usare il tuo telecomando.\n"
+#define MSGTR_LIRCcfgerr "Fallimento nella lettura del file di configurazione di LIRC %s.\n"
+
// ========================== LIBMPDEMUX ===================================
-// url.c
-#define MSGTR_MPDEMUX_URL_StringAlreadyEscaped "La stringa sembra essere già filtrata in url_escape %c%c1%c2\n"
+// muxer.c, muxer_*.c
+#define MSGTR_TooManyStreams "Troppi flussi!"
+#define MSGTR_RawMuxerOnlyOneStream "Il muxer rawaudio supporta solo un flusso audio!\n"
+#define MSGTR_IgnoringVideoStream "Ignoro il flusso video!\n"
+#define MSGTR_UnknownStreamType "Attenzione, Tipo flusso sconosciuto: %d\n"
+#define MSGTR_WarningLenIsntDivisible "Attenzione, len non è divisibile per samplesize!\n"
+// TODO: muxer frame buffer ???
+#define MSGTR_MuxbufMallocErr "Il buffer fotogrammi del muxer non può allocare la memoria!\n"
+#define MSGTR_MuxbufReallocErr "Il buffer fotogrammi del muxer non può riallocare la memoria!\n"
+#define MSGTR_MuxbufSending "Il buffer fotogrammi del muxer sta inviando %d fotogramma/i al muxer.\n"
+#define MSGTR_WritingHeader "Scrittura intestazione in corso...\n"
+#define MSGTR_WritingTrailer "Scrittura indice in corso...\n"
-// ai_alsa1x.c
-#define MSGTR_MPDEMUX_AIALSA1X_CannotSetSamplerate "Non posso impostare il samplerate.\n"
-#define MSGTR_MPDEMUX_AIALSA1X_CannotSetBufferTime "Non posso impostare il tempo del buffer.\n"
-#define MSGTR_MPDEMUX_AIALSA1X_CannotSetPeriodTime "Non posso impostare il tempo del periodo.\n"
+// demuxer.c, demux_*.c
+#define MSGTR_AudioStreamRedefined "Avvertimento! Intestazione del flusso audio %d ridefinito!\n"
+#define MSGTR_VideoStreamRedefined "Avvertimento! Intestazione del flusso video %d ridefinito!\n"
+#define MSGTR_TooManyAudioInBuffer "\nDEMUXER: Troppi (%d in %d byte) pacchetti audio nel buffer!\n"
+#define MSGTR_TooManyVideoInBuffer "\nDEMUXER: Troppi (%d in %d byte) pacchetti video nel buffer!\n"
+#define MSGTR_MaybeNI "Forse stai riproducendo un flusso/file non-interleaved o il codec non funziona?\n" \
+ "Per i file .AVI, prova a forzare la modalità 'non-interleaved' con l'opz. -ni.\n"
+// TODO XXX working around
+#define MSGTR_WorkAroundBlockAlignHeaderBug "AVI: XXX il bug dell'intestazione nBlockAlign CBR-MP3!\n"
+#define MSGTR_SwitchToNi "\nRilevato file .AVI con interleave errato - passo alla modalità -ni!\n"
+#define MSGTR_InvalidAudioStreamNosound "AVI: ID flusso audio invalido: %d - lo ignoro (nosound)\n"
+#define MSGTR_InvalidAudioStreamUsingDefault "AVI: ID flusso video invalido: %d - lo ignoro (uso il default)\n"
+#define MSGTR_ON2AviFormat "Formato AVI ON2"
+#define MSGTR_Detected_XXX_FileFormat "Rilevato formato file %s!\n"
+#define MSGTR_DetectedAudiofile "Rilevato file audio!\n"
+#define MSGTR_NotSystemStream "il formato non è 'MPEG System Stream'... (è forse 'Transport Stream'?)\n"
+#define MSGTR_InvalidMPEGES "Flusso MPEG-ES non valido??? Contatta l'autore, può essere un baco :(\n"
+#define MSGTR_FormatNotRecognized "===== Mi dispiace, questo formato file non è riconosciuto/supportato ======\n"\
+ "=== Se questo è un file AVI, ASF o MPEG, per favore contatta l'autore! ===\n"
+#define MSGTR_SettingProcessPriority "Imposto la priorità del processo: %s\n"
+#define MSGTR_CannotInitializeMuxer "Impossibile inizializzare il muxer."
+#define MSGTR_MissingVideoStream "Nessun flusso video trovato!\n"
+#define MSGTR_MissingAudioStream "Nessun flusso audio trovato -> nessun suono\n"
+#define MSGTR_MissingVideoStreamBug "Manca il flusso video!? Contatta l'autore, può essere un baco :(\n"
-// ai_alsa1x.c / ai_alsa.c
-#define MSGTR_MPDEMUX_AIALSA_PcmBrokenConfig "Configurazione PCM rovinata: nessuna configurazione disponibile.\n"
-#define MSGTR_MPDEMUX_AIALSA_UnavailableAccessType "Tipo di accesso non disponibile.\n"
-#define MSGTR_MPDEMUX_AIALSA_UnavailableSampleFmt "Formato sample non disponibile.\n"
-#define MSGTR_MPDEMUX_AIALSA_UnavailableChanCount "Calcolo canali non disponibile - reimposto al default: %d\n"
-#define MSGTR_MPDEMUX_AIALSA_CannotInstallHWParams "Impossibile impostare i parametri hardware: %s\n"
-#define MSGTR_MPDEMUX_AIALSA_PeriodEqualsBufferSize "Non posso usare il periodo uguale al buffer (%u == %lu)\n"
-#define MSGTR_MPDEMUX_AIALSA_CannotInstallSWParams "Impossibile impostare i parametri software:\n"
-#define MSGTR_MPDEMUX_AIALSA_ErrorOpeningAudio "Non posso aprire l'audio: %s\n"
-#define MSGTR_MPDEMUX_AIALSA_AlsaStatusError "ALSA Errore di stato: %s"
-#define MSGTR_MPDEMUX_AIALSA_AlsaXRUN "ALSA xrun!!! (almeno di %.3f ms)\n"
-#define MSGTR_MPDEMUX_AIALSA_AlsaStatus "ALSA Stato:\n"
-#define MSGTR_MPDEMUX_AIALSA_AlsaXRUNPrepareError "ALSA xrun: errore preparazione: %s"
-#define MSGTR_MPDEMUX_AIALSA_AlsaReadWriteError "ALSA errore di lettura/scrittura"
+#define MSGTR_DoesntContainSelectedStream "demux: il file non contiene il flusso audio o video selezionato\n"
-// ai_oss.c
-#define MSGTR_MPDEMUX_AIOSS_Unable2SetChanCount "Impossibile impostare il numero di canali: %d\n"
-#define MSGTR_MPDEMUX_AIOSS_Unable2SetStereo "Impossibile impostare lo stereo: %d\n"
-#define MSGTR_MPDEMUX_AIOSS_Unable2Open "Non posso aprire '%s': %s\n"
-#define MSGTR_MPDEMUX_AIOSS_UnsupportedFmt "Formato non supportato\n"
-#define MSGTR_MPDEMUX_AIOSS_Unable2SetAudioFmt "Impossibile impostare il formato audio."
-#define MSGTR_MPDEMUX_AIOSS_Unable2SetSamplerate "Impossibile impostare il samplerate: %d\n"
-#define MSGTR_MPDEMUX_AIOSS_Unable2SetTrigger "Impossibile impostare il trigger: %d\n"
-#define MSGTR_MPDEMUX_AIOSS_Unable2GetBlockSize "Non posso ricavare la dimensione del blocco!\n"
-#define MSGTR_MPDEMUX_AIOSS_AudioBlockSizeZero "La dimensione del blocco audio è zero, la imposto a %d!\n"
-#define MSGTR_MPDEMUX_AIOSS_AudioBlockSize2Low "La dimensione del blocco audio è troppo bassa, la imposto a %d!\n"
+#define MSGTR_NI_Forced "Forzato"
+#define MSGTR_NI_Detected "Rilevato"
+#define MSGTR_NI_Message "%s formato file AVI NON-INTERLEAVED!\n"
+
+#define MSGTR_UsingNINI "Uso di formato file AVI NON-INTERLEAVED corrotto.\n"
+#define MSGTR_CouldntDetFNo "Impossibile determinare il numero di fotogrammi (per lo spostamento assoluto).\n"
+#define MSGTR_CantSeekRawAVI "Impossibile spostarsi nei flussi .AVI grezzi. (richiesto un indice, prova con l'opzione -idx.)\n"
+#define MSGTR_CantSeekFile "Impossibile spostarsi in questo file! \n"
+
+#define MSGTR_MOVcomprhdr "MOV: Il supporto delle intestazioni compresse richiede ZLIB!\n"
+#define MSGTR_MOVvariableFourCC "MOV: Avvertimento! Rilevato FourCC variabile!?\n"
+#define MSGTR_MOVtooManyTrk "MOV: Avvertimento! troppe tracce!"
+#define MSGTR_FoundAudioStream "==> Trovato flusso audio: %d\n"
+#define MSGTR_FoundVideoStream "==> Trovato flusso video: %d\n"
+#define MSGTR_DetectedTV "Ho trovato una TV! ;-)\n"
+#define MSGTR_ErrorOpeningOGGDemuxer "Impossibile aprire il demuxer Ogg.\n"
+#define MSGTR_ASFSearchingForAudioStream "ASF: sto cercando il flusso audio (id:%d)\n"
+#define MSGTR_CannotOpenAudioStream "Impossibile aprire il flusso audio: %s\n"
+#define MSGTR_CannotOpenSubtitlesStream "Impossibile aprire il flusso dei sottotitoli: %s\n"
+#define MSGTR_OpeningAudioDemuxerFailed "Errore nell'apertura del demuxer audio: %s\n"
+#define MSGTR_OpeningSubtitlesDemuxerFailed "Errore nell'apertura del demuxer dei sottotitoli: %s\n"
+#define MSGTR_TVInputNotSeekable "Impossibile spostarsi in un programma TV!\n"\
+"(Probabilmente lo spostamento verrà usato per cambiare canale ;)\n"
+#define MSGTR_DemuxerInfoChanged "Info demuxer %s cambiate a %s\n"
+#define MSGTR_ClipInfo "Informazioni file multimediale:\n"
+
+#define MSGTR_LeaveTelecineMode "\ndemux_mpg: Rilevato formato NTSC 30000/1001fps, cambio framerate.\n"
+#define MSGTR_EnterTelecineMode "\ndemux_mpg: Rilevato formato NTSC 24000/1001fps progressivo, cambio framerate.\n"
+
+#define MSGTR_CacheFill "\rRiempio cache: %5.2f%% (%"PRId64" byte) "
+#define MSGTR_NoBindFound "Nessun controllo legato al tasto '%s'."
+#define MSGTR_FailedToOpen "Apertura di '%s' fallita.\n"
+ //
+#define MSGTR_VideoID "[%s] Trovato flusso video, -vid %d\n"
+#define MSGTR_AudioID "[%s] Trovato flusso audio, -aid %d\n"
+#define MSGTR_SubtitleID "[%s] Trovato flusso sottotitoli, -sid %d\n"
// asfheader.c
#define MSGTR_MPDEMUX_ASFHDR_HeaderSizeOver1MB "FATALE: la dimensione dell'intestazione è più grande di 1 MB (%d)!\nPerfavore contatta gli autori di MPlayer e invia/rendi disponibile questo file.\n"
@@ -1364,64 +1466,6 @@ static const char help_text[]=
#define MSGTR_MPDEMUX_ASFHDR_DRMLicenseURL "URL Licenza DRM: %s\n"
#define MSGTR_MPDEMUX_ASFHDR_DRMProtected "Questo file è stato oscurato con protezione DRM, non potrà esser riprodotto in MPlayer!\n"
-// asf_mmst_streaming.c
-#define MSGTR_MPDEMUX_MMST_WriteError "Errore di scrittura\n"
-#define MSGTR_MPDEMUX_MMST_EOFAlert "\nAttenzione! EOF\n"
-#define MSGTR_MPDEMUX_MMST_PreHeaderReadFailed "lettura pre-intestazione fallita.\n"
-#define MSGTR_MPDEMUX_MMST_InvalidHeaderSize "Dimensione intestazione non valida, mi arrendo.\n"
-#define MSGTR_MPDEMUX_MMST_HeaderDataReadFailed "lettura dati intestazione fallita.\n"
-#define MSGTR_MPDEMUX_MMST_packet_lenReadFailed "lettura packet_len fallita.\n"
-#define MSGTR_MPDEMUX_MMST_InvalidRTSPPacketSize "Dimensione pacchetto rtsp invalida, mi arrendo.\n"
-#define MSGTR_MPDEMUX_MMST_CmdDataReadFailed "lettura dati comando fallita.\n"
-#define MSGTR_MPDEMUX_MMST_HeaderObject "oggetto intestazione\n"
-#define MSGTR_MPDEMUX_MMST_DataObject "oggetto dati\n"
-#define MSGTR_MPDEMUX_MMST_FileObjectPacketLen "oggetto file, lunghezza pacchetto (packet length) = %d (%d)\n"
-#define MSGTR_MPDEMUX_MMST_StreamObjectStreamID "oggetto flusso, id flusso: %d\n"
-#define MSGTR_MPDEMUX_MMST_2ManyStreamID "troppi id, flusso scartato"
-#define MSGTR_MPDEMUX_MMST_UnknownObject "oggetto sconosciuto\n"
-#define MSGTR_MPDEMUX_MMST_MediaDataReadFailed "Lettura dati contenuto fallita.\n"
-#define MSGTR_MPDEMUX_MMST_MissingSignature "firma mancante\n"
-#define MSGTR_MPDEMUX_MMST_PatentedTechnologyJoke "Tutto fatto. Grazie per aver scaricato un file che contiene tecnologie proprietarie e brevettate.\n"
-#define MSGTR_MPDEMUX_MMST_UnknownCmd "comando sconosciuto %02x\n"
-#define MSGTR_MPDEMUX_MMST_GetMediaPacketErr "errore get_media_packet: %s\n"
-#define MSGTR_MPDEMUX_MMST_Connected "connesso\n"
-
-// asf_streaming.c
-#define MSGTR_MPDEMUX_ASF_StreamChunkSize2Small "Ahhhh, la dimensione stream_chunk è troppo piccola: %d\n"
-#define MSGTR_MPDEMUX_ASF_SizeConfirmMismatch "disallineamento size_confirm!: %d %d\n"
-#define MSGTR_MPDEMUX_ASF_WarnDropHeader "Attenzione: scarto intestazione ????\n"
-#define MSGTR_MPDEMUX_ASF_ErrorParsingChunkHeader "Errore durante l'interpretazione di una parte di intestazione\n"
-#define MSGTR_MPDEMUX_ASF_NoHeaderAtFirstChunk "Non ho avuto un'intestazione come prima parte!!!!\n"
-#define MSGTR_MPDEMUX_ASF_BufferMallocFailed "Errore non posso allocare un buffer di %d byte.\n"
-#define MSGTR_MPDEMUX_ASF_ErrReadingNetworkStream "Errore durante la lettura del flusso via rete.\n"
-#define MSGTR_MPDEMUX_ASF_ErrChunk2Small "Errore chunk troppo piccolo.\n"
-#define MSGTR_MPDEMUX_ASF_ErrSubChunkNumberInvalid "Errore il numero delle sotto-parti non è valido.\n"
-#define MSGTR_MPDEMUX_ASF_Bandwidth2SmallCannotPlay "banda troppo piccola, il file non può esser riprodotto!\n"
-#define MSGTR_MPDEMUX_ASF_Bandwidth2SmallDeselectedAudio "banda troppo piccola, deselezionato flusso audio.\n"
-#define MSGTR_MPDEMUX_ASF_Bandwidth2SmallDeselectedVideo "banda troppo piccola, deselezionato flusso video.\n"
-#define MSGTR_MPDEMUX_ASF_InvalidLenInHeader "Lunghezza non valida nell'intestazione ASF!\n"
-#define MSGTR_MPDEMUX_ASF_ErrReadingChunkHeader "Errore durante la lettura di una parte di intestazione.\n"
-#define MSGTR_MPDEMUX_ASF_ErrChunkBiggerThanPacket "Errore chunk_size > packet_size\n"
-#define MSGTR_MPDEMUX_ASF_ErrReadingChunk "Errore durante la lettura di una parte (chunk).\n"
-#define MSGTR_MPDEMUX_ASF_ASFRedirector "=====> ASF Ridirezionatore\n"
-#define MSGTR_MPDEMUX_ASF_InvalidProxyURL "URL proxy non valido\n"
-#define MSGTR_MPDEMUX_ASF_UnknownASFStreamType "Tipo del flusso asf sconosciuto\n"
-#define MSGTR_MPDEMUX_ASF_Failed2ParseHTTPResponse "Interpretazione della risposta HTTP fallita.\n"
-#define MSGTR_MPDEMUX_ASF_ServerReturn "Il server risponde %d:%s\n"
-#define MSGTR_MPDEMUX_ASF_ASFHTTPParseWarnCuttedPragma "AVVISO INTERPRETAZIONE ASF HTTP : Pragma %s tagliato da %d byte a %d\n"
-#define MSGTR_MPDEMUX_ASF_SocketWriteError "Errore scrittura socket: %s\n"
-#define MSGTR_MPDEMUX_ASF_HeaderParseFailed "Interpretazione intestazione fallita.\n"
-#define MSGTR_MPDEMUX_ASF_NoStreamFound "Nessun flusso trovato.\n"
-#define MSGTR_MPDEMUX_ASF_UnknownASFStreamingType "Modo do fornire il flusso ASF sconociuto\n"
-#define MSGTR_MPDEMUX_ASF_InfoStreamASFURL "STREAM_ASF, URL: %s\n"
-#define MSGTR_MPDEMUX_ASF_StreamingFailed "fallimento, esco.\n"
-
-// audio_in.c
-#define MSGTR_MPDEMUX_AUDIOIN_ErrReadingAudio "\nerrore leggendo l'audio: %s\n"
-#define MSGTR_MPDEMUX_AUDIOIN_XRUNSomeFramesMayBeLeftOut "Recupero da un cross-run, alcuni fotogrammi possono essere stati persi!\n"
-#define MSGTR_MPDEMUX_AUDIOIN_ErrFatalCannotRecover "Errore fatale, non posso recuperare!\n"
-#define MSGTR_MPDEMUX_AUDIOIN_NotEnoughSamples "\nnon ci sono abbastanza parti audio!\n"
-
// aviheader.c
#define MSGTR_MPDEMUX_AVIHDR_EmptyList "** lista vuota?!\n"
#define MSGTR_MPDEMUX_AVIHDR_FoundMovieAt "Trovato filmato a 0x%X - 0x%X\n"
@@ -1447,74 +1491,6 @@ static const char help_text[]=
#define MSGTR_MPDEMUX_AVIHDR_Failed2WriteIdxFile "Non ho potuto scrivere il file indice %s: %s\n"
#define MSGTR_MPDEMUX_AVIHDR_IdxFileSaved "Salvato file indice: %s\n"
-// cache2.c
-#define MSGTR_MPDEMUX_CACHE2_NonCacheableStream "\rNon posso riempire la cache per questo flusso.\n"
-#define MSGTR_MPDEMUX_CACHE2_ReadFileposDiffers "!!! read_filepos è differente!!! Riporta questo errore...\n"
-
-// cdda.c
-#define MSGTR_MPDEMUX_CDDA_CantOpenCDDADevice "Impossibile aprire il dispositivo CDDA.\n"
-#define MSGTR_MPDEMUX_CDDA_CantOpenDisc "Impossibile aprire il disco.\n"
-#define MSGTR_MPDEMUX_CDDA_AudioCDFoundWithNTracks "Trovato CD audio con %ld tracce.\n"
-
-// cddb.c
-#define MSGTR_MPDEMUX_CDDB_FailedToReadTOC "Imposibile leggere la TOC.\n"
-#define MSGTR_MPDEMUX_CDDB_FailedToOpenDevice "Apertura del dispositivo %s fallita.\n"
-#define MSGTR_MPDEMUX_CDDB_NotAValidURL "URL non valido\n"
-#define MSGTR_MPDEMUX_CDDB_FailedToSendHTTPRequest "Fallimento nell'invio della richiesta HTTP.\n"
-#define MSGTR_MPDEMUX_CDDB_FailedToReadHTTPResponse "Fallimento nella lettura della risposta HTTP.\n"
-#define MSGTR_MPDEMUX_CDDB_HTTPErrorNOTFOUND "Non Trovato.\n"
-#define MSGTR_MPDEMUX_CDDB_HTTPErrorUnknown "Codice di Errore sconosciuto\n"
-#define MSGTR_MPDEMUX_CDDB_NoCacheFound "Cache non trovata.\n"
-#define MSGTR_MPDEMUX_CDDB_NotAllXMCDFileHasBeenRead "Non tutti i file xmcd sono stati letti.\n"
-#define MSGTR_MPDEMUX_CDDB_FailedToCreateDirectory "Creazione della directory %s fallita.\n"
-#define MSGTR_MPDEMUX_CDDB_NotAllXMCDFileHasBeenWritten "Non tutti i file xmcd sono stati scritti.\n"
-#define MSGTR_MPDEMUX_CDDB_InvalidXMCDDatabaseReturned "Ricevuto file database xmcd non valido.\n"
-#define MSGTR_MPDEMUX_CDDB_UnexpectedFIXME "'FIXME' inatteso\n"
-#define MSGTR_MPDEMUX_CDDB_UnhandledCode "codice non gestito\n"
-#define MSGTR_MPDEMUX_CDDB_UnableToFindEOL "Impossibile trovare il carattere di 'fine linea'.\n"
-#define MSGTR_MPDEMUX_CDDB_ParseOKFoundAlbumTitle "Lettura OK, trovato: %s\n"
-#define MSGTR_MPDEMUX_CDDB_AlbumNotFound "Album non trovato.\n"
-#define MSGTR_MPDEMUX_CDDB_ServerReturnsCommandSyntaxErr "Il server ha risposto: Errore sintassi comando ('Command syntax error')\n"
-#define MSGTR_MPDEMUX_CDDB_NoSitesInfoAvailable "Nessuna informazione disponibile sul sito.\n"
-#define MSGTR_MPDEMUX_CDDB_FailedToGetProtocolLevel "Fallimento nell'ottenere il livello del protocollo.\n"
-#define MSGTR_MPDEMUX_CDDB_NoCDInDrive "Nessun CD nel lettore.\n"
-
-// cue_read.c
-#define MSGTR_MPDEMUX_CUEREAD_UnexpectedCuefileLine "[bincue] Linea del file cue inattesa: %s\n"
-#define MSGTR_MPDEMUX_CUEREAD_BinFilenameTested "[bincue] Verificato nome del file bin: %s\n"
-#define MSGTR_MPDEMUX_CUEREAD_CannotFindBinFile "[bincue] Impossibile trovare il file bin - mi arrendo.\n"
-#define MSGTR_MPDEMUX_CUEREAD_UsingBinFile "[bincue] Uso il file bin %s\n"
-#define MSGTR_MPDEMUX_CUEREAD_UnknownModeForBinfile "[bincue] Modalità del file bin sconosciuta. Non dovrebbe capitare. Annullamento.\n"
-#define MSGTR_MPDEMUX_CUEREAD_CannotOpenCueFile "[bincue] Impossibile aprire %s.\n"
-#define MSGTR_MPDEMUX_CUEREAD_ErrReadingFromCueFile "[bincue] Errore in lettura da %s\n"
-#define MSGTR_MPDEMUX_CUEREAD_ErrGettingBinFileSize "[bincue] Errore nell'ottenere la dimensione del file bin.\n"
-#define MSGTR_MPDEMUX_CUEREAD_InfoTrackFormat "traccia %02d: formato=%d %02d:%02d:%02d\n"
-#define MSGTR_MPDEMUX_CUEREAD_UnexpectedBinFileEOF "[bincue] Fine inaspettata del file bin\n"
-#define MSGTR_MPDEMUX_CUEREAD_CannotReadNBytesOfPayload "[bincue] Non ho potuto leggere %d byte di payload.\n"
-#define MSGTR_MPDEMUX_CUEREAD_CueStreamInfo_FilenameTrackTracksavail "CUE stream_open, nomefile=%s, traccia=%d, tracce disponibili: %d -> %d\n"
-
-// network.c
-#define MSGTR_MPDEMUX_NW_UnknownAF "Famiglia d'indirizzi %d sconosciuta\n"
-#define MSGTR_MPDEMUX_NW_ResolvingHostForAF "Risolvo %s per %s...\n"
-#define MSGTR_MPDEMUX_NW_CantResolv "Impossibile risolvere il nome per %s: %s\n"
-#define MSGTR_MPDEMUX_NW_ConnectingToServer "Connessione al server %s[%s]: %d ...\n"
-#define MSGTR_MPDEMUX_NW_CantConnect2Server "Connessione al server fallita con %s\n"
-#define MSGTR_MPDEMUX_NW_SelectFailed "Selezione fallita.\n"
-#define MSGTR_MPDEMUX_NW_ConnTimeout "Timeout connessione.\n"
-#define MSGTR_MPDEMUX_NW_GetSockOptFailed "Fallimento di getsockopt: %s\n"
-#define MSGTR_MPDEMUX_NW_ConnectError "Errore di connessione: %s\n"
-#define MSGTR_MPDEMUX_NW_InvalidProxySettingTryingWithout "Impostazioni proxy non valide... Provo senza proxy.\n"
-#define MSGTR_MPDEMUX_NW_CantResolvTryingWithoutProxy "Non ho potuto risolvere il nome host remoto per AF_INET. Provo senza proxy.\n"
-#define MSGTR_MPDEMUX_NW_ErrSendingHTTPRequest "Errore nell'invio della richiesta HTTP: Non è stata inviata tutta la richiesta.\n"
-#define MSGTR_MPDEMUX_NW_ReadFailed "Lettura fallita.\n"
-#define MSGTR_MPDEMUX_NW_Read0CouldBeEOF "http_read_response ha letto uno 0 (per esempio EOF).\n"
-#define MSGTR_MPDEMUX_NW_AuthFailed "Autenticazione fallita. Per favore usa le opzioni -user e -passwd per fornire\nun nome utente/password per una lista di URL, o indica un URL come questo:\nhttp://utente:password@nomehost/file\n"
-#define MSGTR_MPDEMUX_NW_AuthRequiredFor "Autenticazione richiesta per %s\n"
-#define MSGTR_MPDEMUX_NW_AuthRequired "Autenticazione richiesta.\n"
-#define MSGTR_MPDEMUX_NW_NoPasswdProvidedTryingBlank "Nessuna password fornita, provo senza.\n"
-#define MSGTR_MPDEMUX_NW_ErrServerReturned "Risposta del server %d: %s\n"
-#define MSGTR_MPDEMUX_NW_CacheSizeSetTo "Dimensione cache impostata a %d KByte\n"
-
// demux_audio.c
#define MSGTR_MPDEMUX_AUDIO_UnknownFormat "Demuxer audio: formato %d sconosciuto.\n"
@@ -1611,9 +1587,62 @@ static const char help_text[]=
// ========================== LIBMPCODECS ===================================
+// dec_video.c & dec_audio.c:
+#define MSGTR_CantOpenCodec "impossibile aprire il codec\n"
+#define MSGTR_CantCloseCodec "impossibile chiudere il codec\n"
+
+#define MSGTR_MissingDLLcodec "ERRORE: Impossibile aprire il codec DirectShow richiesto: %s\n"
+#define MSGTR_ACMiniterror "Impossibile caricare/inizializz. il codec audio Win32/ACM (manca il file DLL?)\n"
+#define MSGTR_MissingLAVCcodec "Impossibile trovare il codec '%s' in libavcodec...\n"
+
+#define MSGTR_MpegNoSequHdr "MPEG: FATAL: EOF mentre cercavo la sequenza di intestazione\n"
+#define MSGTR_CannotReadMpegSequHdr "FATAL: Impossibile leggere la sequenza di intestazione!\n"
+#define MSGTR_CannotReadMpegSequHdrEx "FATAL: Impossibile leggere l'estensione della sequenza di intestazione!\n"
+#define MSGTR_BadMpegSequHdr "MPEG: Sequenza di intestazione non valida!\n"
+#define MSGTR_BadMpegSequHdrEx "MPEG: Estensione della sequenza di intestazione non valida!\n"
+
+#define MSGTR_ShMemAllocFail "Impossibile allocare la memoria condivisa\n"
+#define MSGTR_CantAllocAudioBuf "Impossibile allocare il buffer di uscita dell'audio\n"
+
+#define MSGTR_UnknownAudio "Formato audio sconosciuto/mancante, non uso l'audio\n"
+
+#define MSGTR_UsingExternalPP "[PP] Utilizzo un filtro di postprocessing esterno, max q = %d\n"
+#define MSGTR_UsingCodecPP "[PP] Utilizzo il postprocessing del codec, max q = %d\n"
+#define MSGTR_VideoAttributeNotSupportedByVO_VD "L'attributo video '%s' non è gestibile dal vo & vd selezionati! \n"
+#define MSGTR_VideoCodecFamilyNotAvailableStr "Famiglia di codec video voluta [%s] (vfm=%s) non disponibile.\nAbilitala in compilazione.\n"
+#define MSGTR_AudioCodecFamilyNotAvailableStr "Famiglia di codec audio voluta [%s] (afm=%s) non disponibile.\nAbilitala in compilazione.\n"
+#define MSGTR_OpeningVideoDecoder "Apertura decoder video: [%s] %s\n"
+#define MSGTR_SelectedVideoCodec "Scelto codec video: [%s] vfm: %s (%s)\n"
+#define MSGTR_OpeningAudioDecoder "Apertura decoder audio: [%s] %s\n"
+#define MSGTR_SelectedAudioCodec "Scelto codec audio: [%s] afm: %s (%s)\n"
+#define MSGTR_BuildingAudioFilterChain "Costruisco catena filtri audio per %dHz/%dch/%s -> %dHz/%dch/%s...\n"
+#define MSGTR_UninitVideoStr "Uninit video: %s \n"
+#define MSGTR_UninitAudioStr "Uninit audio: %s \n"
+#define MSGTR_VDecoderInitFailed "Inizializzazione VDecoder fallita :(\n"
+#define MSGTR_ADecoderInitFailed "Inizializzazione ADecoder fallita :(\n"
+#define MSGTR_ADecoderPreinitFailed "Preinizializzazione ADecoder fallita :(\n"
+#define MSGTR_AllocatingBytesForInputBuffer "dec_audio: Alloco %d byte per il buffer di input\n"
+#define MSGTR_AllocatingBytesForOutputBuffer "dec_audio: Alloco %d + %d = %d byte per il buffer di output\n"
+
+// ad_dvdpcm.c:
+#define MSGTR_SamplesWanted "Servono esempi di questo formato per migliorarne il supporto. Contatta sviluppatori.\n"
+
// libmpcodecs/ad_libdv.c
#define MSGTR_MPCODECS_AudioFramesizeDiffers "[AD_LIBDV] Attenzione! Dimensione frame audio diversa! letta=%d hdr=%d.\n"
+// vd.c
+#define MSGTR_CodecDidNotSet "VDec: Il codec non ha impostato sh->disp_w and sh->disp_h, tento di risolvere.\n"
+#define MSGTR_VoConfigRequest "VDec: configurazione chiesta dal vo - %d x %d (sp.col. preferito: %s)\n"
+#define MSGTR_UsingXAsOutputCspNoY "VDec: uso %s come sp.colore di uscita (non %d)\n"
+#define MSGTR_CouldNotFindColorspace "Impossibile trovare uno spazio colore adatto - riprovo con -vf scale...\n"
+#define MSGTR_MovieAspectIsSet "Movie-Aspect è %.2f:1 - riscalo per ottenere un rapporto corretto.\n"
+#define MSGTR_MovieAspectUndefined "Movie-Aspect non definito - nessuna scalatura.\n"
+
+// vd_dshow.c, vd_dmo.c
+#define MSGTR_DownloadCodecPackage "Devi installare o aggiornare i codec binari.\nVai su http://www.mplayerhq.hu/dload.html\n"
+#define MSGTR_DShowInitOK "INFO: Win32/DShow inizializzato correttamente.\n"
+#define MSGTR_DMOInitOK "INFO: Win32/DMO inizializzato correttamente.\n"
+
// libmpcodecs/vd_dmo.c vd_dshow.c vd_vfw.c
#define MSGTR_MPCODECS_CouldntAllocateImageForCinepakCodec "[VD_DMO] Impossibile allocare l'immagine per il codec cinepak.\n"
@@ -1637,6 +1666,12 @@ static const char help_text[]=
#define MSGTR_MPCODECS_OutputWithFourccNotSupported "[VE_RAW] Output grezzo con FourCC [%x] non supportato!\n"
#define MSGTR_MPCODECS_NoVfwCodecSpecified "[VE_RAW] Il codec VfW richiesto non è specificato!!\n"
+// vf.c
+#define MSGTR_CouldNotFindVideoFilter "Impossibile trovare il filtro video '%s'\n"
+#define MSGTR_CouldNotOpenVideoFilter "Impossibile aprire il filtro video '%s'\n"
+#define MSGTR_OpeningVideoFilter "Apertura filtro video: "
+#define MSGTR_CannotFindColorspace "Impossibile trovare uno spazio colore in comune, anche inserendo 'scale' :(\n"
+
// libmpcodecs/vf_crop.c
#define MSGTR_MPCODECS_CropBadPositionWidthHeight "[CROP] Posizione/larghezza/altezza invalide - area ritagliata al di fuori dell'originaria!\n"
@@ -1665,288 +1700,6 @@ static const char help_text[]=
#define MSGTR_MPCODECS_WarnNextFilterDoesntSupport "%s non supportato dal filtro/vo successivo :(\n"
-// ================================== LIBVO ====================================
-
-// mga_common.c
-#define MSGTR_LIBVO_MGA_ErrorInConfigIoctl "[MGA] errore in ioctl di mga_vid_config (versione sbagliata di mga_vid.o?)"
-#define MSGTR_LIBVO_MGA_CouldNotGetLumaValuesFromTheKernelModule "[MGA] Impossibile ottenere i valori di luminanza dal modulo del kernel!\n"
-#define MSGTR_LIBVO_MGA_CouldNotSetLumaValuesFromTheKernelModule "[MGA] Impossibile impostare i valori di luminanza dal modulo del kernel!\n"
-#define MSGTR_LIBVO_MGA_ScreenWidthHeightUnknown "[MGA] Larghezza/altezza schermo sconosciute!\n"
-#define MSGTR_LIBVO_MGA_InvalidOutputFormat "[MGA] formato di uscita %0X invalido\n"
-#define MSGTR_LIBVO_MGA_IncompatibleDriverVersion "[MGA] La versione del tuo driver mga_vid è incompatibile con questo MPlayer!\n"
-#define MSGTR_LIBVO_MGA_CouldntOpen "[MGA] Impossibile aprire: %s\n"
-#define MSGTR_LIBVO_MGA_ResolutionTooHigh "[MGA] La risoluzione del sorgente ha almeno una delle due dimensioni maggiore di 1023x1023. Per favore ridimensiona via software o usa -lavdopts lowres=1\n"
-#define MSGTR_LIBVO_MGA_mgavidVersionMismatch "[MGA] incongruenza tra le versioni del driver mga_vid del kernel (%u) e di MPlayer (%u)\n"
-
-// libvo/vesa_lvo.c
-#define MSGTR_LIBVO_VESA_ThisBranchIsNoLongerSupported "[VESA_LVO] Questo branch non è più supportato.\n[VESA_LVO] Per favore usa al suo posto -vo vesa:vidix.\n"
-#define MSGTR_LIBVO_VESA_CouldntOpen "[VESA_LVO] Impossibile aprire: '%s'\n"
-#define MSGTR_LIBVO_VESA_InvalidOutputFormat "[VESA_LVI] formato di uscita non valido: %s(%0X)\n"
-#define MSGTR_LIBVO_VESA_IncompatibleDriverVersion "[VESA_LVO] La versione del tuo driver fb_vid è incompatibile con questo MPlayer!\n"
-
-// libvo/vo_3dfx.c
-#define MSGTR_LIBVO_3DFX_Only16BppSupported "[VO_3DFX] Supportati solo 16bpp!"
-#define MSGTR_LIBVO_3DFX_VisualIdIs "[VO_3DFX] L'ID visuale è %lx.\n"
-#define MSGTR_LIBVO_3DFX_UnableToOpenDevice "[VO_3DFX] Impossibile aprire /dev/3dfx.\n"
-#define MSGTR_LIBVO_3DFX_Error "[VO_3DFX] Errore: %d.\n"
-#define MSGTR_LIBVO_3DFX_CouldntMapMemoryArea "[VO_3DFX] Impossibile mappare le aree di memoria 3dfx: %p,%p,%d.\n"
-#define MSGTR_LIBVO_3DFX_DisplayInitialized "[VO_3DFX] Initializzato: %p.\n"
-#define MSGTR_LIBVO_3DFX_UnknownSubdevice "[VO_3DFX] sottodispositivo sconosciuto: %s.\n"
-
-// libvo/aspect.c
-#define MSGTR_LIBVO_ASPECT_NoSuitableNewResFound "[ASPECT] Attenzione: Non ho trovato alcuna nuova risoluzione accettabile!\n"
-#define MSGTR_LIBVO_ASPECT_NoNewSizeFoundThatFitsIntoRes "[ASPECT] Errore: Non ho trovato una nuova dimensione inferiore alla risoluz.!\n"
-
-// libvo/vo_dxr3.c
-#define MSGTR_LIBVO_DXR3_UnableToLoadNewSPUPalette "[VO_DXR3] Impossibile caricare una nuova palette SPU!\n"
-#define MSGTR_LIBVO_DXR3_UnableToSetPlaymode "[VO_DXR3] Impossibile impostare la modalità riproduzione!\n"
-#define MSGTR_LIBVO_DXR3_UnableToSetSubpictureMode "[VO_DXR3] Impossibile impostare la modalità subpicture!\n"
-#define MSGTR_LIBVO_DXR3_UnableToGetTVNorm "[VO_DXR3] Impossibile ricavare la norma TV!\n"
-#define MSGTR_LIBVO_DXR3_AutoSelectedTVNormByFrameRate "[VO_DXR3] Scelta automaticamente la norma TV dalla frequenza: "
-#define MSGTR_LIBVO_DXR3_UnableToSetTVNorm "[VO_DXR3] Impossibile impostare la norma TV!\n"
-#define MSGTR_LIBVO_DXR3_SettingUpForNTSC "[VO_DXR3] Imposto per NTSC.\n"
-#define MSGTR_LIBVO_DXR3_SettingUpForPALSECAM "[VO_DXR3] Imposto per PAL/SECAM.\n"
-#define MSGTR_LIBVO_DXR3_SettingAspectRatioTo43 "[VO_DXR3] Imposto il rapporto di aspetto a 4:3.\n"
-#define MSGTR_LIBVO_DXR3_SettingAspectRatioTo169 "[VO_DXR3] Imposto il rapporto di aspetto a 16:9.\n"
-#define MSGTR_LIBVO_DXR3_OutOfMemory "[VO_DXR3] memoria esaurita\n"
-#define MSGTR_LIBVO_DXR3_UnableToAllocateKeycolor "[VO_DXR3] Impossibile allocare keycolor!\n"
-#define MSGTR_LIBVO_DXR3_UnableToAllocateExactKeycolor "[VO_DXR3] Impossibile allocare keycolor esatto, uso il più vicino (0x%lx).\n"
-#define MSGTR_LIBVO_DXR3_Uninitializing "[VO_DXR3] De-inizializzo.\n"
-#define MSGTR_LIBVO_DXR3_FailedRestoringTVNorm "[VO_DXR3] Ripristino norma TV fallito!\n"
-#define MSGTR_LIBVO_DXR3_EnablingPrebuffering "[VO_DXR3] Abilito il prebuffering.\n"
-#define MSGTR_LIBVO_DXR3_UsingNewSyncEngine "[VO_DXR3] Uso il nuovo motore di sincronizzazione.\n"
-#define MSGTR_LIBVO_DXR3_UsingOverlay "[VO_DXR3] Uso l'overlay.\n"
-#define MSGTR_LIBVO_DXR3_ErrorYouNeedToCompileMplayerWithX11 "[VO_DXR3] Errore: Overlay richiede la compilazione con gli header/librerie X11 installati.\n"
-#define MSGTR_LIBVO_DXR3_WillSetTVNormTo "[VO_DXR3] Imposterò la norma TV a: "
-#define MSGTR_LIBVO_DXR3_AutoAdjustToMovieFrameRatePALPAL60 "imposto automaticamente alla frequenza filmato (PAL/PAL-60)"
-#define MSGTR_LIBVO_DXR3_AutoAdjustToMovieFrameRatePALNTSC "imposto automaticamente alla frequenza filmato (PAL/NTSC)"
-#define MSGTR_LIBVO_DXR3_UseCurrentNorm "Uso la norma attuale."
-#define MSGTR_LIBVO_DXR3_UseUnknownNormSuppliedCurrentNorm "Norma richiesta sconosciuta. Uso la norma attuale."
-#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTrying "[VO_DXR3] Errore aprendo %s in scrittura, provo con /dev/em8300.\n"
-#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTryingMV "[VO_DXR3] Errore aprendo %s in scrittura, provo con /dev/em8300_mv.\n"
-#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWell "[VO_DXR3] Errore anche aprendo /dev/em8300 in scrittura!\nAbbandono.\n"
-#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWellMV "[VO_DXR3] Errore anche aprendo /dev/em8300_mv in scrittura!\nAbbandono.\n"
-#define MSGTR_LIBVO_DXR3_Opened "[VO_DXR3] Aperto: %s.\n"
-#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTryingSP "[VO_DXR3] Errore aprendo %s in scrittura, provo con /dev/em8300_sp.\n"
-#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWellSP "[VO_DXR3] Errore anche aprendo /dev/em8300_sp in scrittura!\nAbbandono.\n"
-#define MSGTR_LIBVO_DXR3_UnableToOpenDisplayDuringHackSetup "[VO_DXR3] Impossibile aprire il display nell'hack di impostazione overlay!\n"
-#define MSGTR_LIBVO_DXR3_UnableToInitX11 "[VO_DXR3] Impossibile inizializzare X11!\n"
-#define MSGTR_LIBVO_DXR3_FailedSettingOverlayAttribute "[VO_DXR3] Impostazione attributo overlay fallita.\n"
-#define MSGTR_LIBVO_DXR3_FailedSettingOverlayScreen "[VO_DXR3] Impostazione schermo overlay fallita!\nEsco.\n"
-#define MSGTR_LIBVO_DXR3_FailedEnablingOverlay "[VO_DXR3] Impostazione overlay fallita!\nEsco.\n"
-#define MSGTR_LIBVO_DXR3_FailedResizingOverlayWindow "[VO_DXR3] Ridimensionamento finestra overlay fallita!\n"
-#define MSGTR_LIBVO_DXR3_FailedSettingOverlayBcs "[VO_DXR3] Impostazione bcs overlay fallita!\n"
-#define MSGTR_LIBVO_DXR3_FailedGettingOverlayYOffsetValues "[VO_DXR3] Impossibile ricavare i valori di overlay Y-offset!\nEsco.\n"
-#define MSGTR_LIBVO_DXR3_FailedGettingOverlayXOffsetValues "[VO_DXR3] Impossibile ricavare i valori di overlay Y-offset!\nEsco.\n"
-#define MSGTR_LIBVO_DXR3_FailedGettingOverlayXScaleCorrection "[VO_DXR3] Impossibile ricavare la correzione overlay della dimensione X!\nEsco.\n"
-#define MSGTR_LIBVO_DXR3_FailedSetSignalMix "[VO_DXR3] Impossibile impostare il mix segnale!\n"
-
-// libvo/font_load_ft.c
-#define MSGTR_LIBVO_FONT_LOAD_FT_NewFaceFailed "New_Face in errore. Forse il percorso del font è errato.\nPer favore indica il file dei font per il testo (~/.mplayer/subfont.ttf).\n"
-#define MSGTR_LIBVO_FONT_LOAD_FT_NewMemoryFaceFailed "New_Memory_Face in errore..\n"
-#define MSGTR_LIBVO_FONT_LOAD_FT_SubFaceFailed "font sottotitoli: load_sub_face in errore.\n"
-#define MSGTR_LIBVO_FONT_LOAD_FT_SubFontCharsetFailed "font sottotitoli: prepare_charset in errore.\n"
-#define MSGTR_LIBVO_FONT_LOAD_FT_CannotPrepareSubtitleFont "Impossibile preparare il font dei sottotitoli.\n"
-#define MSGTR_LIBVO_FONT_LOAD_FT_CannotPrepareOSDFont "Impossibile preparare il font per l'OSD.\n"
-#define MSGTR_LIBVO_FONT_LOAD_FT_CannotGenerateTables "Impossibile generare le tabelle.\n"
-#define MSGTR_LIBVO_FONT_LOAD_FT_DoneFreeTypeFailed "FT_Done_FreeType in errore.\n"
-
-// libvo/vo_mga.c
-#define MSGTR_LIBVO_MGA_AspectResized "[VO_MGA] aspect(): ridimensionato a %dx%d.\n"
-
-// libvo/vo_null.c
-#define MSGTR_LIBVO_NULL_UnknownSubdevice "[VO_NULL] Sottodispositivo sconosciuto: %s.\n"
-
-// libvo/vo_png.c
-#define MSGTR_LIBVO_PNG_Warning1 "[VO_PNG] Attenzine: livello compressione a 0, compressione disabilitata!\n"
-#define MSGTR_LIBVO_PNG_Warning2 "[VO_PNG] Info: Usa -vo png:z=<n> per impostare il livello compressione da 0 a 9.\n"
-#define MSGTR_LIBVO_PNG_Warning3 "[VO_PNG] Info: (0 = nessuna, 1 = più veloce e peggiore - 9 migliore e più lenta)\n"
-#define MSGTR_LIBVO_PNG_ErrorOpeningForWriting "\n[VO_PNG] Errore aprendo '%s' in scrittura!\n"
-#define MSGTR_LIBVO_PNG_ErrorInCreatePng "[VO_PNG] Errore in create_png.\n"
-
-// libvo/vo_sdl.c
-#define MSGTR_LIBVO_SDL_CouldntGetAnyAcceptableSDLModeForOutput "[VO_SDL] Impossibile ottenere una modalità SDL accettabile per l'output.\n"
-#define MSGTR_LIBVO_SDL_SetVideoModeFailed "[VO_SDL] set_video_mode: SDL_SetVideoMode fallito: %s.\n"
-#define MSGTR_LIBVO_SDL_SetVideoModeFailedFull "[VO_SDL] Set_fullmode: SDL_SetVideoMode fallito: %s.\n"
-#define MSGTR_LIBVO_SDL_MappingI420ToIYUV "[VO_SDL] Mappo I420 su IYUV.\n"
-#define MSGTR_LIBVO_SDL_UnsupportedImageFormat "[VO_SDL] Formato immagine non supportato (0x%X).\n"
-#define MSGTR_LIBVO_SDL_InfoPleaseUseVmOrZoom "[VO_SDL] Info - per favore usa -vm or -zoom per passare alla risoluzione migliore.\n"
-#define MSGTR_LIBVO_SDL_FailedToSetVideoMode "[VO_SDL] Impossibile impostare la modalità video: %s.\n"
-#define MSGTR_LIBVO_SDL_CouldntCreateAYUVOverlay "[VO_SDL] Impossibile creare un overlay YUV: %s.\n"
-#define MSGTR_LIBVO_SDL_CouldntCreateARGBSurface "[VO_SDL] Impossibile creare una superficie RGB: %s.\n"
-#define MSGTR_LIBVO_SDL_UsingDepthColorspaceConversion "[VO_SDL] Uso conversione profondità/sp.colore, per questo sarà più lento (%ibpp -> %ibpp).\n"
-#define MSGTR_LIBVO_SDL_UnsupportedImageFormatInDrawslice "[VO_SDL] Formato immagine non supportato in draw_slice, contatta gli sviluppatori di MPlayer!\n"
-#define MSGTR_LIBVO_SDL_BlitFailed "[VO_SDL] Blit fallito: %s.\n"
-#define MSGTR_LIBVO_SDL_InitializationFailed "[VO_SDL] Inizializzazione SDL fallita: %s.\n"
-#define MSGTR_LIBVO_SDL_UsingDriver "[VO_SDL] Uso il driver: %s.\n"
-
-// libvo/vobsub_vidix.c
-#define MSGTR_LIBVO_SUB_VIDIX_CantStartPlayback "[VO_SUB_VIDIX] Impossibile iniziare la riproduzione: %s\n"
-#define MSGTR_LIBVO_SUB_VIDIX_CantStopPlayback "[VO_SUB_VIDIX] Impossibile terminare la riproduzione: %s\n"
-#define MSGTR_LIBVO_SUB_VIDIX_InterleavedUvForYuv410pNotSupported "[VO_SUB_VIDIX] UV interlacciato per YUV410P non supportato.\n"
-#define MSGTR_LIBVO_SUB_VIDIX_DummyVidixdrawsliceWasCalled "[VO_SUB_VIDIX] Chiamata alla funzione posticcia vidix_draw_slice().\n"
-#define MSGTR_LIBVO_SUB_VIDIX_DummyVidixdrawframeWasCalled "[VO_SUB_VIDIX] Chiamata alla funzione posticcia vidix_draw_frame().\n"
-#define MSGTR_LIBVO_SUB_VIDIX_UnsupportedFourccForThisVidixDriver "[VO_SUB_VIDIX] FourCC non supportato per questo driver VIDIX: %x (%s).\n"
-#define MSGTR_LIBVO_SUB_VIDIX_VideoServerHasUnsupportedResolution "[VO_SUB_VIDIX] Il server grafico ha una risoluzione non supportata (%dx%d), supportate: %dx%d-%dx%d.\n"
-#define MSGTR_LIBVO_SUB_VIDIX_VideoServerHasUnsupportedColorDepth "[VO_SUB_VIDIX] Il server grafico ha una profondità colore non supportata da vidix (%d).\n"
-#define MSGTR_LIBVO_SUB_VIDIX_DriverCantUpscaleImage "[VO_SUB_VIDIX] Il driver VIDIX non può ingrandire l'immagine (%d%d -> %d%d).\n"
-#define MSGTR_LIBVO_SUB_VIDIX_DriverCantDownscaleImage "[VO_SUB_VIDIX] Il driver VIDIX non può rimpicciolire l'immagine (%d%d -> %d%d).\n"
-#define MSGTR_LIBVO_SUB_VIDIX_CantConfigurePlayback "[VO_SUB_VIDIX] Impossibile configurare la riproduzione: %s.\n"
-#define MSGTR_LIBVO_SUB_VIDIX_YouHaveWrongVersionOfVidixLibrary "[VO_SUB_VIDIX] Hai la versione errata della libreria VIDIX.\n"
-#define MSGTR_LIBVO_SUB_VIDIX_CouldntFindWorkingVidixDriver "[VO_SUB_VIDIX] Impossibile trovare un driver VIDIX che possa funzionare.\n"
-#define MSGTR_LIBVO_SUB_VIDIX_CouldntGetCapability "[VO_SUB_VIDIX] Impossibile ricavare caratteristiche: %s.\n"
-
-// libvo/vo_svga.c
-#define MSGTR_LIBVO_SVGA_ForcedVidmodeNotAvailable "[VO_SVGA] Il vid_mode %d (%s) forzato non è disponibile.\n"
-#define MSGTR_LIBVO_SVGA_ForcedVidmodeTooSmall "[VO_SVGA] Il vid_mode %d (%s) è troppo piccolo.\n"
-#define MSGTR_LIBVO_SVGA_VgasetmodeFailed "[VO_SVGA] Errore in vga_setmode(%d).\n"
-#define MSGTR_LIBVO_SVGA_VideoModeIsLinearAndMemcpyCouldBeUsed "[VO_SVGA] Video mode is linear and memcpy could be used for image transfer.\n"
-#define MSGTR_LIBVO_SVGA_VideoModeHasHardwareAcceleration "[VO_SVGA] Video mode has hardware acceleration and put_image could be used.\n"
-#define MSGTR_LIBVO_SVGA_IfItWorksForYouIWouldLikeToKnow "[VO_SVGA] If it works for you I would like to know.\n[VO_SVGA] (send log with `mplayer test.avi -v -v -v -v &> svga.log`). Thx!\n"
-#define MSGTR_LIBVO_SVGA_VideoModeHas "[VO_SVGA] La modalità video ha %d pagina/e.\n"
-#define MSGTR_LIBVO_SVGA_CenteringImageStartAt "[VO_SVGA] Centro l'immagine. Partendo da (%d,%d)\n"
-#define MSGTR_LIBVO_SVGA_UsingVidix "[VO_SVGA] Uso VIDIX. l=%i a=%i lm=%i am=%i\n"
-
-// libvo/vo_tdfxfb.c
-#define MSGTR_LIBVO_TDFXFB_CantOpen "[VO_TDFXFB] Impossibile aprire %s: %s.\n"
-#define MSGTR_LIBVO_TDFXFB_ProblemWithFbitgetFscreenInfo "[VO_TDFXFB] Problema con l'ioctl FBITGET_FSCREENINFO: %s.\n"
-#define MSGTR_LIBVO_TDFXFB_ProblemWithFbitgetVscreenInfo "[VO_TDFXFB] Problema con l'ioctl FBITGET_VSCREENINFO: %s.\n"
-#define MSGTR_LIBVO_TDFXFB_ThisDriverOnlySupports "[VO_TDFXFB] Questo driver supporta solo le 3Dfx Banshee, Voodoo3 e Voodoo 5.\n"
-#define MSGTR_LIBVO_TDFXFB_OutputIsNotSupported "[VO_TDFXFB] Uscita con %d bpp non supportata.\n"
-#define MSGTR_LIBVO_TDFXFB_CouldntMapMemoryAreas "[VO_TDFXFB] Impossibile mappare le aree di memoria: %s.\n"
-#define MSGTR_LIBVO_TDFXFB_BppOutputIsNotSupported "[VO_TDFXFB] Uscita con %d bpp non supportata (Ciò non sarebbe dovuto accadere).\n"
-#define MSGTR_LIBVO_TDFXFB_SomethingIsWrongWithControl "[VO_TDFXFB] Eik! Qualche problema in control().\n"
-#define MSGTR_LIBVO_TDFXFB_NotEnoughVideoMemoryToPlay "[VO_TDFXFB] Troppo poca memoria video per la riproduzione. Prova una risoluzione inferiore.\n"
-#define MSGTR_LIBVO_TDFXFB_ScreenIs "[VO_TDFXFB] screen è %dx%d a %d bpp, in è %dx%d a %d bpp, norm è %dx%d.\n"
-
-// libvo/vo_tdfx_vid.c
-#define MSGTR_LIBVO_TDFXVID_Move "[VO_TDXVID] Sposta %d(%d) x %d => %d.\n"
-#define MSGTR_LIBVO_TDFXVID_AGPMoveFailedToClearTheScreen "[VO_TDFXVID] L'AGP move non ha potuto ripulire lo schermo.\n"
-#define MSGTR_LIBVO_TDFXVID_BlitFailed "[VO_TDFXVID] Blit fallito.\n"
-#define MSGTR_LIBVO_TDFXVID_NonNativeOverlayFormatNeedConversion "[VO_TDFXVID] Al formato di overlay non nativo serve una conversione.\n"
-#define MSGTR_LIBVO_TDFXVID_UnsupportedInputFormat "[VO_TDFXVID] Formato 0x%x in entrata non supportato.\n"
-#define MSGTR_LIBVO_TDFXVID_OverlaySetupFailed "[VO_TDFXVID] Impostazione overlay non riuscita.\n"
-#define MSGTR_LIBVO_TDFXVID_OverlayOnFailed "[VO_TDFXVID] Attivazione overlay non riuscita.\n"
-#define MSGTR_LIBVO_TDFXVID_OverlayReady "[VO_TDFXVID] Overlay pronto: %d(%d) x %d @ %d => %d(%d) x %d @ %d.\n"
-#define MSGTR_LIBVO_TDFXVID_TextureBlitReady "[VO_TDFXVID] Texture blit pronto: %d(%d) x %d @ %d => %d(%d) x %d @ %d.\n"
-#define MSGTR_LIBVO_TDFXVID_OverlayOffFailed "[VO_TDFXVID] Disattivazione overlay non riuscita\n"
-#define MSGTR_LIBVO_TDFXVID_CantOpen "[VO_TDFXVID] Impossibile aprire %s: %s.\n"
-#define MSGTR_LIBVO_TDFXVID_CantGetCurrentCfg "[VO_TDFXVID] Impossibile ricavare la configurazione attuale: %s.\n"
-#define MSGTR_LIBVO_TDFXVID_MemmapFailed "[VO_TDFXVID] Errore in memmap !!!!!\n"
-#define MSGTR_LIBVO_TDFXVID_AgpMoveFailed "[VO_TDFXVID] Erroe in AGP move.\n"
-#define MSGTR_LIBVO_TDFXVID_SetYuvFailed "[VO_TDFXVID] Errore impostazione YUV.\n"
-#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnYPlane "[VO_TDFXVID] AGP move non riuscita sul piano Y.\n"
-#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnUPlane "[VO_TDFXVID] AGP move non riuscita sul piano U.\n"
-#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnVPlane "[VO_TDFXVID] AGP move non riuscita sul piano V.\n"
-#define MSGTR_LIBVO_TDFXVID_UnknownFormat "[VO_TDFXVID] formato sconosciuto: 0x%x.\n"
-
-// libvo/vo_tga.c
-#define MSGTR_LIBVO_TGA_UnknownSubdevice "[VO_TGA] Sottodispositivo sconosciuto: %s.\n"
-
-// libvo/vo_vesa.c
-#define MSGTR_LIBVO_VESA_FatalErrorOccurred "[VO_VESA] Errore fatale! Impossibile continuare.\n"
-#define MSGTR_LIBVO_VESA_UnknownSubdevice "[VO_VESA] Sottodispositivo sconosciuto: '%s'.\n"
-#define MSGTR_LIBVO_VESA_YouHaveTooLittleVideoMemory "[VO_VESA] Hai troppo poca memoria video per questa modalità:\n[VO_VESA] Richiesta: %08lX presente: %08lX.\n"
-#define MSGTR_LIBVO_VESA_YouHaveToSpecifyTheCapabilitiesOfTheMonitor "[VO_VESA] Devi specificare le caratteristiche del monitor. Non cambio frequenza di refresh.\n"
-#define MSGTR_LIBVO_VESA_UnableToFitTheMode "[VO_VESA] Modalità al di fuori dei limiti del monitor. Non cambio frequenza di refresh.\n"
-#define MSGTR_LIBVO_VESA_DetectedInternalFatalError "[VO_VESA] Errore interno fatale rilevato: init eseguito prima di preinit.\n"
-#define MSGTR_LIBVO_VESA_SwitchFlipIsNotSupported "[VO_VESA] L'opzione -flip non è gestita.\n"
-#define MSGTR_LIBVO_VESA_PossibleReasonNoVbe2BiosFound "[VO_VESA] Ragione possibile: Nessun BIOS VBE2 trovato.\n"
-#define MSGTR_LIBVO_VESA_FoundVesaVbeBiosVersion "[VO_VESA] Trovato BIOS VESA VBE Versione %x.%x Revisione: %x.\n"
-#define MSGTR_LIBVO_VESA_VideoMemory "[VO_VESA] Memoria video: %u Kb.\n"
-#define MSGTR_LIBVO_VESA_Capabilites "[VO_VESA] Caratteristiche VESA: %s %s %s %s %s.\n"
-#define MSGTR_LIBVO_VESA_BelowWillBePrintedOemInfo "[VO_VESA] !!! Informazioni OEM stampate qui sotto !!!\n"
-#define MSGTR_LIBVO_VESA_YouShouldSee5OemRelatedLines "[VO_VESA] Dovresti vedere qui sotto 5 righe relative all'OEM; Se no, hai una vm86 bacata.\n"
-#define MSGTR_LIBVO_VESA_Hint "[VO_VESA] Suggerimento: Per utilizzare l'uscita-TV devi avere il connettore TV attaccato\n"\
-"[VO_VESA] prima dell'avvio visto che il BIOS VESA si inizializza solo durante il POST.\n"
-#define MSGTR_LIBVO_VESA_UsingVesaMode "[VO_VESA] Uso modalità VESA (%u) = %x [%ux%u@%u]\n"
-#define MSGTR_LIBVO_VESA_CantInitializeSwscaler "[VO_VESA] Impossibile inizializzare il ridimensionatore sotfware.\n"
-#define MSGTR_LIBVO_VESA_CantUseDga "[VO_VESA] Impossibile usare DGA. Forzo la modalità 'bank switching mode'. :(\n"
-#define MSGTR_LIBVO_VESA_UsingDga "[VO_VESA] Uso DGA (risorse fisiche: %08lXh, %08lXh)"
-#define MSGTR_LIBVO_VESA_CantUseDoubleBuffering "[VO_VESA] Impossibile usare il double buffering: non abbastanza memoria video.\n"
-#define MSGTR_LIBVO_VESA_CantFindNeitherDga "[VO_VESA] Non riesco a trovare né DGA né un frame di finestra riposizionabile.\n"
-#define MSGTR_LIBVO_VESA_YouveForcedDga "[VO_VESA] Hai forzato DGA. Esco\n"
-#define MSGTR_LIBVO_VESA_CantFindValidWindowAddress "[VO_VESA] Impossibile trovare un indirizzo finestra valido.\n"
-#define MSGTR_LIBVO_VESA_UsingBankSwitchingMode "[VO_VESA] Uso la modalità 'bank switching mode' (risorse fisiche: %08lXh, %08lXh).\n"
-#define MSGTR_LIBVO_VESA_CantAllocateTemporaryBuffer "[VO_VESA] Imposibile allocare un buffer temporaneo.\n"
-#define MSGTR_LIBVO_VESA_SorryUnsupportedMode "[VO_VESA] Spiacente, modalità non supportata -- prova -x 640 -zoom.\n"
-#define MSGTR_LIBVO_VESA_OhYouReallyHavePictureOnTv "[VO_VESA] Oh, hai davvero un'immagine sulla Tivu!\n"
-#define MSGTR_LIBVO_VESA_CantInitialozeLinuxVideoOverlay "[VO_VESA] Impossibile inizializzare l'Overlay Video Linux.\n"
-#define MSGTR_LIBVO_VESA_UsingVideoOverlay "[VO_VESA] Uso l'overlay video: %s.\n"
-#define MSGTR_LIBVO_VESA_CantInitializeVidixDriver "[VO_VESA] Impossibile inizializzare il driver VIDIX.\n"
-#define MSGTR_LIBVO_VESA_UsingVidix "[VO_VESA] Uso VIDIX.\n"
-#define MSGTR_LIBVO_VESA_CantFindModeFor "[VO_VESA] Impossibile trovare una modalità per: %ux%u@%u.\n"
-#define MSGTR_LIBVO_VESA_InitializationComplete "[VO_VESA] Inizializzazione VESA completa.\n"
-
-// libvo/vo_x11.c
-#define MSGTR_LIBVO_X11_DrawFrameCalled "[VO_X11] chiamata a draw_frame()!!!!!!\n"
-
-// libvo/vo_xv.c
-#define MSGTR_LIBVO_XV_DrawFrameCalled "[VO_XV] chiamata a draw_frame()!!!!!!\n"
-#define MSGTR_LIBVO_XV_SharedMemoryNotSupported "[VO_XV] Memoria condivisa non supportata\nRitorno a Xv normale.\n"
-#define MSGTR_LIBVO_XV_XvNotSupportedByX11 "[VO_XV] Scusa, Xv non è gestito dalla versione/driver di X11 corrente\n[VO_XV] ******** Prova con -vo x11 o -vo sdl *********\n"
-#define MSGTR_LIBVO_XV_XvQueryAdaptorsFailed "[VO_XV] Funzione XvQueryAdaptors fallita.\n"
-#define MSGTR_LIBVO_XV_InvalidPortParameter "[VO_XV] Parametro porta non valido, lo sovrascrivo con la porta 0.\n"
-#define MSGTR_LIBVO_XV_CouldNotGrabPort "[VO_XV] Impossibile aprire la porta %i.\n"
-#define MSGTR_LIBVO_XV_CouldNotFindFreePort "[VO_XV] Impossibile trovare una porta Xvideo libera - forse un altro processo\n"\
-"[VO_XV] la sta già usando. Chiudi tutte le applicazioni video, e riprova.\n"\
-"[VO_XV] Se ciò non ti aiuta, vedi 'mplayer -vo help' per altri (non-xv)\n"\
-"[VO_XV] driver di uscita video.\n"
-#define MSGTR_LIBVO_XV_NoXvideoSupport "[VO_XV] Sembra non sia disponibile il supporto Xvideo per la tua scheda video.\n"\
-"[VO_XV] Esegui 'xvinfo' per verificare il supporto Xv e leggi\n"\
-"[VO_XV] DOCS/HTML/it/video.html#xv!\n"\
-"[VO_XV] Vedi 'mplayer -vo help' per altri (non-xv) driver di uscita video.\n"\
-"[VO_XV] Prova con -vo x11.\n"
-
-
-// loader/ldt_keeper.c
-#define MSGTR_LOADER_DYLD_Warning "ATTENZIONE: Tentativo di utilizzare codec DLL, senza la variabile d'ambiente\n DYLD_BIND_AT_LAUNCH impostata. Ciò porterà probabilmente a un crash.\n"
-
-
-// stream/stream_radio.c
-#define MSGTR_RADIO_ChannelNamesDetected "[radio] Rilevati i nomi dei canali radio.\n"
-#define MSGTR_RADIO_FreqRange "[radio] La gamma delle frequenze permesse è %.2f-%.2f MHz.\n"
-#define MSGTR_RADIO_WrongFreqForChannel "[radio] Frequenza errata per il canale %s\n"
-#define MSGTR_RADIO_WrongChannelNumberFloat "[radio] Numero canale errato: %.2f\n"
-#define MSGTR_RADIO_WrongChannelNumberInt "[radio] Numero canale errato: %d\n"
-#define MSGTR_RADIO_WrongChannelName "[radio] Nome canale errato: %s\n"
-#define MSGTR_RADIO_FreqParameterDetected "[radio] Rilevato parametro frequenza radio.\n"
-#define MSGTR_RADIO_DoneParsingChannels "[radio] Lettura canali terminata.\n"
-#define MSGTR_RADIO_GetTunerFailed "[radio] Attenzione: ioctl tuner fallito: %s. Imposto frac a %d.\n"
-#define MSGTR_RADIO_NotRadioDevice "[radio] %s non è un dispositivo radio!\n"
-#define MSGTR_RADIO_TunerCapLowYes "[radio] il tuner è low:yes frac=%d\n"
-#define MSGTR_RADIO_TunerCapLowNo "[radio] il tuner è low:no frac=%d\n"
-#define MSGTR_RADIO_SetFreqFailed "[radio] ioctl impostazione frequenza 0x%x (%.2f) fallito: %s\n"
-#define MSGTR_RADIO_GetFreqFailed "[radio] ioctl rilevazione frequenza fallito: %s\n"
-#define MSGTR_RADIO_SetMuteFailed "[radio] ioctl impostazione muto fallito: %s\n"
-#define MSGTR_RADIO_QueryControlFailed "[radio] ioctl query control fallito: %s\n"
-#define MSGTR_RADIO_GetVolumeFailed "[radio] ioctl irilevazione volume fallito: %s\n"
-#define MSGTR_RADIO_SetVolumeFailed "[radio] ioctl impostazione volume fallito: %s\n"
-#define MSGTR_RADIO_DroppingFrame "\n[radio] too bad - dropping audio frame (%d byte)!\n"
-#define MSGTR_RADIO_BufferEmpty "[radio] grab_audio_frame: buffer vuoto, aspetto %d byte di dati.\n"
-#define MSGTR_RADIO_AudioInitFailed "[radio] audio_in_init fallito: %s\n"
-#define MSGTR_RADIO_AudioBuffer "[radio] Cattura audio - buffer=%d byte (blocco=%d byte).\n"
-#define MSGTR_RADIO_AllocateBufferFailed "[radio] impossibile allocare il buffer audio (blocco=%d,buf=%d): %s\n"
-#define MSGTR_RADIO_CurrentFreq "[radio] Frequenza attuale: %.2f\n"
-#define MSGTR_RADIO_SelectedChannel "[radio] Canale selezionato: %d - %s (freq: %.2f)\n"
-#define MSGTR_RADIO_ChangeChannelNoChannelList "[radio] Impossibile cambiare canale: nessuna lista canali fornita.\n"
-#define MSGTR_RADIO_UnableOpenDevice "[radio] Impossibile aprire '%s': %s\n"
-#define MSGTR_RADIO_InitFracFailed "[radio] init_frac fallito.\n"
-#define MSGTR_RADIO_WrongFreq "[radio] Frequenza errata: %.2f\n"
-#define MSGTR_RADIO_UsingFreq "[radio] Uso la frequenza: %.2f.\n"
-#define MSGTR_RADIO_AudioInInitFailed "[radio] audio_in_init fallito.\n"
-#define MSGTR_RADIO_BufferString "[radio] %s: in buffer=%d scartati=%d\n"
-#define MSGTR_RADIO_AudioInSetupFailed "[radio] Chiamata a audio_in_setup fallita: %s\n"
-#define MSGTR_RADIO_CaptureStarting "[radio] Inizio la parte di cattura.\n"
-#define MSGTR_RADIO_ClearBufferFailed "[radio] Pulizia buffer fallita: %s\n"
-#define MSGTR_RADIO_StreamEnableCacheFailed "[radio] Chiamata a stream_enable_cache fallita: %s\n"
-#define MSGTR_RADIO_DriverUnknownStr "[radio] Nome driver sconosciuto: %s\n"
-#define MSGTR_RADIO_DriverV4L2 "[radio] Uso l'interfaccia radio V4Lv2.\n"
-#define MSGTR_RADIO_DriverV4L "[radio] Uso l'interfaccia radio V4Lv1.\n"
-#define MSGTR_RADIO_DriverBSDBT848 "[radio] Utilizzo l'interfaccia radio *BSD BT848.\n"
-#define MSGTR_RADIO_AvailableDrivers "[radio] Driver disponibili: "
-
-
// ================================== LIBASS ====================================
// ass_bitmap.c
@@ -2013,6 +1766,251 @@ static const char help_text[]=
#define MSGTR_LIBASS_NoCharmaps "[ass] font face senza alcuna mappa caratteri\n"
#define MSGTR_LIBASS_NoCharmapAutodetected "[ass] nessuna mappa caratteri rilevata automaticamente, provo la prima\n"
+
+// ================================== stream ====================================
+
+// ai_alsa1x.c
+#define MSGTR_MPDEMUX_AIALSA1X_CannotSetSamplerate "Non posso impostare il samplerate.\n"
+#define MSGTR_MPDEMUX_AIALSA1X_CannotSetBufferTime "Non posso impostare il tempo del buffer.\n"
+#define MSGTR_MPDEMUX_AIALSA1X_CannotSetPeriodTime "Non posso impostare il tempo del periodo.\n"
+
+// ai_alsa1x.c / ai_alsa.c
+#define MSGTR_MPDEMUX_AIALSA_PcmBrokenConfig "Configurazione PCM rovinata: nessuna configurazione disponibile.\n"
+#define MSGTR_MPDEMUX_AIALSA_UnavailableAccessType "Tipo di accesso non disponibile.\n"
+#define MSGTR_MPDEMUX_AIALSA_UnavailableSampleFmt "Formato sample non disponibile.\n"
+#define MSGTR_MPDEMUX_AIALSA_UnavailableChanCount "Calcolo canali non disponibile - reimposto al default: %d\n"
+#define MSGTR_MPDEMUX_AIALSA_CannotInstallHWParams "Impossibile impostare i parametri hardware: %s\n"
+#define MSGTR_MPDEMUX_AIALSA_PeriodEqualsBufferSize "Non posso usare il periodo uguale al buffer (%u == %lu)\n"
+#define MSGTR_MPDEMUX_AIALSA_CannotInstallSWParams "Impossibile impostare i parametri software:\n"
+#define MSGTR_MPDEMUX_AIALSA_ErrorOpeningAudio "Non posso aprire l'audio: %s\n"
+#define MSGTR_MPDEMUX_AIALSA_AlsaStatusError "ALSA Errore di stato: %s"
+#define MSGTR_MPDEMUX_AIALSA_AlsaXRUN "ALSA xrun!!! (almeno di %.3f ms)\n"
+#define MSGTR_MPDEMUX_AIALSA_AlsaStatus "ALSA Stato:\n"
+#define MSGTR_MPDEMUX_AIALSA_AlsaXRUNPrepareError "ALSA xrun: errore preparazione: %s"
+#define MSGTR_MPDEMUX_AIALSA_AlsaReadWriteError "ALSA errore di lettura/scrittura"
+
+// ai_oss.c
+#define MSGTR_MPDEMUX_AIOSS_Unable2SetChanCount "Impossibile impostare il numero di canali: %d\n"
+#define MSGTR_MPDEMUX_AIOSS_Unable2SetStereo "Impossibile impostare lo stereo: %d\n"
+#define MSGTR_MPDEMUX_AIOSS_Unable2Open "Non posso aprire '%s': %s\n"
+#define MSGTR_MPDEMUX_AIOSS_UnsupportedFmt "Formato non supportato\n"
+#define MSGTR_MPDEMUX_AIOSS_Unable2SetAudioFmt "Impossibile impostare il formato audio."
+#define MSGTR_MPDEMUX_AIOSS_Unable2SetSamplerate "Impossibile impostare il samplerate: %d\n"
+#define MSGTR_MPDEMUX_AIOSS_Unable2SetTrigger "Impossibile impostare il trigger: %d\n"
+#define MSGTR_MPDEMUX_AIOSS_Unable2GetBlockSize "Non posso ricavare la dimensione del blocco!\n"
+#define MSGTR_MPDEMUX_AIOSS_AudioBlockSizeZero "La dimensione del blocco audio è zero, la imposto a %d!\n"
+#define MSGTR_MPDEMUX_AIOSS_AudioBlockSize2Low "La dimensione del blocco audio è troppo bassa, la imposto a %d!\n"
+
+// asf_mmst_streaming.c
+#define MSGTR_MPDEMUX_MMST_WriteError "Errore di scrittura\n"
+#define MSGTR_MPDEMUX_MMST_EOFAlert "\nAttenzione! EOF\n"
+#define MSGTR_MPDEMUX_MMST_PreHeaderReadFailed "lettura pre-intestazione fallita.\n"
+#define MSGTR_MPDEMUX_MMST_InvalidHeaderSize "Dimensione intestazione non valida, mi arrendo.\n"
+#define MSGTR_MPDEMUX_MMST_HeaderDataReadFailed "lettura dati intestazione fallita.\n"
+#define MSGTR_MPDEMUX_MMST_packet_lenReadFailed "lettura packet_len fallita.\n"
+#define MSGTR_MPDEMUX_MMST_InvalidRTSPPacketSize "Dimensione pacchetto rtsp invalida, mi arrendo.\n"
+#define MSGTR_MPDEMUX_MMST_CmdDataReadFailed "lettura dati comando fallita.\n"
+#define MSGTR_MPDEMUX_MMST_HeaderObject "oggetto intestazione\n"
+#define MSGTR_MPDEMUX_MMST_DataObject "oggetto dati\n"
+#define MSGTR_MPDEMUX_MMST_FileObjectPacketLen "oggetto file, lunghezza pacchetto (packet length) = %d (%d)\n"
+#define MSGTR_MPDEMUX_MMST_StreamObjectStreamID "oggetto flusso, id flusso: %d\n"
+#define MSGTR_MPDEMUX_MMST_2ManyStreamID "troppi id, flusso scartato"
+#define MSGTR_MPDEMUX_MMST_UnknownObject "oggetto sconosciuto\n"
+#define MSGTR_MPDEMUX_MMST_MediaDataReadFailed "Lettura dati contenuto fallita.\n"
+#define MSGTR_MPDEMUX_MMST_MissingSignature "firma mancante\n"
+#define MSGTR_MPDEMUX_MMST_PatentedTechnologyJoke "Tutto fatto. Grazie per aver scaricato un file che contiene tecnologie proprietarie e brevettate.\n"
+#define MSGTR_MPDEMUX_MMST_UnknownCmd "comando sconosciuto %02x\n"
+#define MSGTR_MPDEMUX_MMST_GetMediaPacketErr "errore get_media_packet: %s\n"
+#define MSGTR_MPDEMUX_MMST_Connected "connesso\n"
+
+// asf_streaming.c
+#define MSGTR_MPDEMUX_ASF_StreamChunkSize2Small "Ahhhh, la dimensione stream_chunk è troppo piccola: %d\n"
+#define MSGTR_MPDEMUX_ASF_SizeConfirmMismatch "disallineamento size_confirm!: %d %d\n"
+#define MSGTR_MPDEMUX_ASF_WarnDropHeader "Attenzione: scarto intestazione ????\n"
+#define MSGTR_MPDEMUX_ASF_ErrorParsingChunkHeader "Errore durante l'interpretazione di una parte di intestazione\n"
+#define MSGTR_MPDEMUX_ASF_NoHeaderAtFirstChunk "Non ho avuto un'intestazione come prima parte!!!!\n"
+#define MSGTR_MPDEMUX_ASF_BufferMallocFailed "Errore non posso allocare un buffer di %d byte.\n"
+#define MSGTR_MPDEMUX_ASF_ErrReadingNetworkStream "Errore durante la lettura del flusso via rete.\n"
+#define MSGTR_MPDEMUX_ASF_ErrChunk2Small "Errore chunk troppo piccolo.\n"
+#define MSGTR_MPDEMUX_ASF_ErrSubChunkNumberInvalid "Errore il numero delle sotto-parti non è valido.\n"
+#define MSGTR_MPDEMUX_ASF_Bandwidth2SmallCannotPlay "banda troppo piccola, il file non può esser riprodotto!\n"
+#define MSGTR_MPDEMUX_ASF_Bandwidth2SmallDeselectedAudio "banda troppo piccola, deselezionato flusso audio.\n"
+#define MSGTR_MPDEMUX_ASF_Bandwidth2SmallDeselectedVideo "banda troppo piccola, deselezionato flusso video.\n"
+#define MSGTR_MPDEMUX_ASF_InvalidLenInHeader "Lunghezza non valida nell'intestazione ASF!\n"
+#define MSGTR_MPDEMUX_ASF_ErrReadingChunkHeader "Errore durante la lettura di una parte di intestazione.\n"
+#define MSGTR_MPDEMUX_ASF_ErrChunkBiggerThanPacket "Errore chunk_size > packet_size\n"
+#define MSGTR_MPDEMUX_ASF_ErrReadingChunk "Errore durante la lettura di una parte (chunk).\n"
+#define MSGTR_MPDEMUX_ASF_ASFRedirector "=====> ASF Ridirezionatore\n"
+#define MSGTR_MPDEMUX_ASF_InvalidProxyURL "URL proxy non valido\n"
+#define MSGTR_MPDEMUX_ASF_UnknownASFStreamType "Tipo del flusso asf sconosciuto\n"
+#define MSGTR_MPDEMUX_ASF_Failed2ParseHTTPResponse "Interpretazione della risposta HTTP fallita.\n"
+#define MSGTR_MPDEMUX_ASF_ServerReturn "Il server risponde %d:%s\n"
+#define MSGTR_MPDEMUX_ASF_ASFHTTPParseWarnCuttedPragma "AVVISO INTERPRETAZIONE ASF HTTP : Pragma %s tagliato da %d byte a %d\n"
+#define MSGTR_MPDEMUX_ASF_SocketWriteError "Errore scrittura socket: %s\n"
+#define MSGTR_MPDEMUX_ASF_HeaderParseFailed "Interpretazione intestazione fallita.\n"
+#define MSGTR_MPDEMUX_ASF_NoStreamFound "Nessun flusso trovato.\n"
+#define MSGTR_MPDEMUX_ASF_UnknownASFStreamingType "Modo do fornire il flusso ASF sconociuto\n"
+#define MSGTR_MPDEMUX_ASF_InfoStreamASFURL "STREAM_ASF, URL: %s\n"
+#define MSGTR_MPDEMUX_ASF_StreamingFailed "fallimento, esco.\n"
+
+// audio_in.c
+#define MSGTR_MPDEMUX_AUDIOIN_ErrReadingAudio "\nerrore leggendo l'audio: %s\n"
+#define MSGTR_MPDEMUX_AUDIOIN_XRUNSomeFramesMayBeLeftOut "Recupero da un cross-run, alcuni fotogrammi possono essere stati persi!\n"
+#define MSGTR_MPDEMUX_AUDIOIN_ErrFatalCannotRecover "Errore fatale, non posso recuperare!\n"
+#define MSGTR_MPDEMUX_AUDIOIN_NotEnoughSamples "\nnon ci sono abbastanza parti audio!\n"
+
+// cache2.c
+#define MSGTR_MPDEMUX_CACHE2_NonCacheableStream "\rNon posso riempire la cache per questo flusso.\n"
+#define MSGTR_MPDEMUX_CACHE2_ReadFileposDiffers "!!! read_filepos è differente!!! Riporta questo errore...\n"
+
+// network.c
+#define MSGTR_MPDEMUX_NW_UnknownAF "Famiglia d'indirizzi %d sconosciuta\n"
+#define MSGTR_MPDEMUX_NW_ResolvingHostForAF "Risolvo %s per %s...\n"
+#define MSGTR_MPDEMUX_NW_CantResolv "Impossibile risolvere il nome per %s: %s\n"
+#define MSGTR_MPDEMUX_NW_ConnectingToServer "Connessione al server %s[%s]: %d ...\n"
+#define MSGTR_MPDEMUX_NW_CantConnect2Server "Connessione al server fallita con %s\n"
+#define MSGTR_MPDEMUX_NW_SelectFailed "Selezione fallita.\n"
+#define MSGTR_MPDEMUX_NW_ConnTimeout "Timeout connessione.\n"
+#define MSGTR_MPDEMUX_NW_GetSockOptFailed "Fallimento di getsockopt: %s\n"
+#define MSGTR_MPDEMUX_NW_ConnectError "Errore di connessione: %s\n"
+#define MSGTR_MPDEMUX_NW_InvalidProxySettingTryingWithout "Impostazioni proxy non valide... Provo senza proxy.\n"
+#define MSGTR_MPDEMUX_NW_CantResolvTryingWithoutProxy "Non ho potuto risolvere il nome host remoto per AF_INET. Provo senza proxy.\n"
+#define MSGTR_MPDEMUX_NW_ErrSendingHTTPRequest "Errore nell'invio della richiesta HTTP: Non è stata inviata tutta la richiesta.\n"
+#define MSGTR_MPDEMUX_NW_ReadFailed "Lettura fallita.\n"
+#define MSGTR_MPDEMUX_NW_Read0CouldBeEOF "http_read_response ha letto uno 0 (per esempio EOF).\n"
+#define MSGTR_MPDEMUX_NW_AuthFailed "Autenticazione fallita. Per favore usa le opzioni -user e -passwd per fornire\nun nome utente/password per una lista di URL, o indica un URL come questo:\nhttp://utente:password@nomehost/file\n"
+#define MSGTR_MPDEMUX_NW_AuthRequiredFor "Autenticazione richiesta per %s\n"
+#define MSGTR_MPDEMUX_NW_AuthRequired "Autenticazione richiesta.\n"
+#define MSGTR_MPDEMUX_NW_NoPasswdProvidedTryingBlank "Nessuna password fornita, provo senza.\n"
+#define MSGTR_MPDEMUX_NW_ErrServerReturned "Risposta del server %d: %s\n"
+#define MSGTR_MPDEMUX_NW_CacheSizeSetTo "Dimensione cache impostata a %d KByte\n"
+
+// open.c, stream.c:
+#define MSGTR_CdDevNotfound "Dispositivo CD-ROM '%s' non trovato!\n"
+#define MSGTR_ErrTrackSelect "Errore nella selezione della traccia del VCD!"
+#define MSGTR_ReadSTDIN "Leggo da stdin...\n"
+#define MSGTR_UnableOpenURL "Impossibile aprire l'URL: %s\n"
+#define MSGTR_ConnToServer "Connesso al server: %s\n"
+#define MSGTR_FileNotFound "File non trovato: '%s'\n"
+
+#define MSGTR_SMBInitError "Impossibile inizializzare la libreria libsmbclient: %d\n"
+#define MSGTR_SMBFileNotFound "Impossibile aprire dalla rete: '%s'\n"
+#define MSGTR_SMBNotCompiled "MPlayer non è stato compilato con supporto di lettura da SMB.\n"
+
+#define MSGTR_CantOpenDVD "Impossibile aprire il dispositivo DVD: %s (%s)\n"
+
+// stream_cdda.c
+#define MSGTR_MPDEMUX_CDDA_CantOpenCDDADevice "Impossibile aprire il dispositivo CDDA.\n"
+#define MSGTR_MPDEMUX_CDDA_CantOpenDisc "Impossibile aprire il disco.\n"
+#define MSGTR_MPDEMUX_CDDA_AudioCDFoundWithNTracks "Trovato CD audio con %ld tracce.\n"
+
+// stream_cddb.c
+#define MSGTR_MPDEMUX_CDDB_FailedToReadTOC "Imposibile leggere la TOC.\n"
+#define MSGTR_MPDEMUX_CDDB_FailedToOpenDevice "Apertura del dispositivo %s fallita.\n"
+#define MSGTR_MPDEMUX_CDDB_NotAValidURL "URL non valido\n"
+#define MSGTR_MPDEMUX_CDDB_FailedToSendHTTPRequest "Fallimento nell'invio della richiesta HTTP.\n"
+#define MSGTR_MPDEMUX_CDDB_FailedToReadHTTPResponse "Fallimento nella lettura della risposta HTTP.\n"
+#define MSGTR_MPDEMUX_CDDB_HTTPErrorNOTFOUND "Non Trovato.\n"
+#define MSGTR_MPDEMUX_CDDB_HTTPErrorUnknown "Codice di Errore sconosciuto\n"
+#define MSGTR_MPDEMUX_CDDB_NoCacheFound "Cache non trovata.\n"
+#define MSGTR_MPDEMUX_CDDB_NotAllXMCDFileHasBeenRead "Non tutti i file xmcd sono stati letti.\n"
+#define MSGTR_MPDEMUX_CDDB_FailedToCreateDirectory "Creazione della directory %s fallita.\n"
+#define MSGTR_MPDEMUX_CDDB_NotAllXMCDFileHasBeenWritten "Non tutti i file xmcd sono stati scritti.\n"
+#define MSGTR_MPDEMUX_CDDB_InvalidXMCDDatabaseReturned "Ricevuto file database xmcd non valido.\n"
+#define MSGTR_MPDEMUX_CDDB_UnexpectedFIXME "'FIXME' inatteso\n"
+#define MSGTR_MPDEMUX_CDDB_UnhandledCode "codice non gestito\n"
+#define MSGTR_MPDEMUX_CDDB_UnableToFindEOL "Impossibile trovare il carattere di 'fine linea'.\n"
+#define MSGTR_MPDEMUX_CDDB_ParseOKFoundAlbumTitle "Lettura OK, trovato: %s\n"
+#define MSGTR_MPDEMUX_CDDB_AlbumNotFound "Album non trovato.\n"
+#define MSGTR_MPDEMUX_CDDB_ServerReturnsCommandSyntaxErr "Il server ha risposto: Errore sintassi comando ('Command syntax error')\n"
+#define MSGTR_MPDEMUX_CDDB_NoSitesInfoAvailable "Nessuna informazione disponibile sul sito.\n"
+#define MSGTR_MPDEMUX_CDDB_FailedToGetProtocolLevel "Fallimento nell'ottenere il livello del protocollo.\n"
+#define MSGTR_MPDEMUX_CDDB_NoCDInDrive "Nessun CD nel lettore.\n"
+
+// stream_cue.c
+#define MSGTR_MPDEMUX_CUEREAD_UnexpectedCuefileLine "[bincue] Linea del file cue inattesa: %s\n"
+#define MSGTR_MPDEMUX_CUEREAD_BinFilenameTested "[bincue] Verificato nome del file bin: %s\n"
+#define MSGTR_MPDEMUX_CUEREAD_CannotFindBinFile "[bincue] Impossibile trovare il file bin - mi arrendo.\n"
+#define MSGTR_MPDEMUX_CUEREAD_UsingBinFile "[bincue] Uso il file bin %s\n"
+#define MSGTR_MPDEMUX_CUEREAD_UnknownModeForBinfile "[bincue] Modalità del file bin sconosciuta. Non dovrebbe capitare. Annullamento.\n"
+#define MSGTR_MPDEMUX_CUEREAD_CannotOpenCueFile "[bincue] Impossibile aprire %s.\n"
+#define MSGTR_MPDEMUX_CUEREAD_ErrReadingFromCueFile "[bincue] Errore in lettura da %s\n"
+#define MSGTR_MPDEMUX_CUEREAD_ErrGettingBinFileSize "[bincue] Errore nell'ottenere la dimensione del file bin.\n"
+#define MSGTR_MPDEMUX_CUEREAD_InfoTrackFormat "traccia %02d: formato=%d %02d:%02d:%02d\n"
+#define MSGTR_MPDEMUX_CUEREAD_UnexpectedBinFileEOF "[bincue] Fine inaspettata del file bin\n"
+#define MSGTR_MPDEMUX_CUEREAD_CannotReadNBytesOfPayload "[bincue] Non ho potuto leggere %d byte di payload.\n"
+#define MSGTR_MPDEMUX_CUEREAD_CueStreamInfo_FilenameTrackTracksavail "CUE stream_open, nomefile=%s, traccia=%d, tracce disponibili: %d -> %d\n"
+
+// stream_dvd.c
+#define MSGTR_DVDspeedCantOpen "Impossibile aprire il dispositivo DVD in scrittura, modificarne la velocità\nrichiede accesso in scrittura.\n"
+#define MSGTR_DVDrestoreSpeed "Ripristino la velocità del DVD... "
+#define MSGTR_DVDlimitSpeed "Limitazione della velocità del DVD a %dKB/s... "
+#define MSGTR_DVDlimitFail "non riuscita\n"
+#define MSGTR_DVDlimitOk "riuscita\n"
+#define MSGTR_NoDVDSupport "MPlayer è stato compilato senza il supporto per DVD, esco\n"
+#define MSGTR_DVDnumTitles "Ci sono %d titolo/i su questo DVD.\n"
+#define MSGTR_DVDinvalidTitle "Numero del titolo del DVD non valido: %d\n"
+#define MSGTR_DVDnumChapters "Ci sono %d capitolo/i in questo titolo del DVD.\n"
+#define MSGTR_DVDinvalidChapter "Numero del capitolo del DVD non valido: %d\n"
+#define MSGTR_DVDinvalidChapterRange "Intervallo dei capitoli indicato non valido: %s\n"
+#define MSGTR_DVDinvalidLastChapter "Numero del capitolo finale del DVD non valido: %d\n"
+#define MSGTR_DVDnumAngles "Ci sono %d angolazione/i in questo titolo del DVD.\n"
+#define MSGTR_DVDinvalidAngle "Numero delle angolazioni del DVD non valido: %d\n"
+#define MSGTR_DVDnoIFO "Impossibile aprire il file IFO per il titolo del DVD %d.\n"
+#define MSGTR_DVDnoVMG "Impossibile aprire le informazioni VMG!\n"
+#define MSGTR_DVDnoVOBs "Impossibile aprire il VOB del titolo (VTS_%02d_1.VOB).\n"
+#define MSGTR_DVDnoMatchingAudio "Non trovata la lingua dell'audio DVD corrispondente!\n"
+#define MSGTR_DVDaudioChannel "Scelto canale audio DVD: %d lingua: %c%c\n"
+#define MSGTR_DVDaudioStreamInfo "flusso audio: %d formato: %s (%s) lingua: %s aid: %d.\n"
+#define MSGTR_DVDnumAudioChannels "numero di canali audio sul disco: %d.\n"
+#define MSGTR_DVDnoMatchingSubtitle "Non trovata la lingua dei sottotitoli DVD corrispondente!\n"
+#define MSGTR_DVDsubtitleChannel "Scelto canale sottotitoli DVD: %d lingua: %c%c\n"
+#define MSGTR_DVDsubtitleLanguage "sottotitoli ( sid ): %d lingua: %s\n"
+#define MSGTR_DVDnumSubtitles "numero di sottotitoli sul disco: %d\n"
+
+// stream_radio.c
+#define MSGTR_RADIO_ChannelNamesDetected "[radio] Rilevati i nomi dei canali radio.\n"
+#define MSGTR_RADIO_FreqRange "[radio] La gamma delle frequenze permesse è %.2f-%.2f MHz.\n"
+#define MSGTR_RADIO_WrongFreqForChannel "[radio] Frequenza errata per il canale %s\n"
+#define MSGTR_RADIO_WrongChannelNumberFloat "[radio] Numero canale errato: %.2f\n"
+#define MSGTR_RADIO_WrongChannelNumberInt "[radio] Numero canale errato: %d\n"
+#define MSGTR_RADIO_WrongChannelName "[radio] Nome canale errato: %s\n"
+#define MSGTR_RADIO_FreqParameterDetected "[radio] Rilevato parametro frequenza radio.\n"
+#define MSGTR_RADIO_DoneParsingChannels "[radio] Lettura canali terminata.\n"
+#define MSGTR_RADIO_GetTunerFailed "[radio] Attenzione: ioctl tuner fallito: %s. Imposto frac a %d.\n"
+#define MSGTR_RADIO_NotRadioDevice "[radio] %s non è un dispositivo radio!\n"
+#define MSGTR_RADIO_TunerCapLowYes "[radio] il tuner è low:yes frac=%d\n"
+#define MSGTR_RADIO_TunerCapLowNo "[radio] il tuner è low:no frac=%d\n"
+#define MSGTR_RADIO_SetFreqFailed "[radio] ioctl impostazione frequenza 0x%x (%.2f) fallito: %s\n"
+#define MSGTR_RADIO_GetFreqFailed "[radio] ioctl rilevazione frequenza fallito: %s\n"
+#define MSGTR_RADIO_SetMuteFailed "[radio] ioctl impostazione muto fallito: %s\n"
+#define MSGTR_RADIO_QueryControlFailed "[radio] ioctl query control fallito: %s\n"
+#define MSGTR_RADIO_GetVolumeFailed "[radio] ioctl irilevazione volume fallito: %s\n"
+#define MSGTR_RADIO_SetVolumeFailed "[radio] ioctl impostazione volume fallito: %s\n"
+#define MSGTR_RADIO_DroppingFrame "\n[radio] too bad - dropping audio frame (%d byte)!\n"
+#define MSGTR_RADIO_BufferEmpty "[radio] grab_audio_frame: buffer vuoto, aspetto %d byte di dati.\n"
+#define MSGTR_RADIO_AudioInitFailed "[radio] audio_in_init fallito: %s\n"
+#define MSGTR_RADIO_AudioBuffer "[radio] Cattura audio - buffer=%d byte (blocco=%d byte).\n"
+#define MSGTR_RADIO_AllocateBufferFailed "[radio] impossibile allocare il buffer audio (blocco=%d,buf=%d): %s\n"
+#define MSGTR_RADIO_CurrentFreq "[radio] Frequenza attuale: %.2f\n"
+#define MSGTR_RADIO_SelectedChannel "[radio] Canale selezionato: %d - %s (freq: %.2f)\n"
+#define MSGTR_RADIO_ChangeChannelNoChannelList "[radio] Impossibile cambiare canale: nessuna lista canali fornita.\n"
+#define MSGTR_RADIO_UnableOpenDevice "[radio] Impossibile aprire '%s': %s\n"
+#define MSGTR_RADIO_InitFracFailed "[radio] init_frac fallito.\n"
+#define MSGTR_RADIO_WrongFreq "[radio] Frequenza errata: %.2f\n"
+#define MSGTR_RADIO_UsingFreq "[radio] Uso la frequenza: %.2f.\n"
+#define MSGTR_RADIO_AudioInInitFailed "[radio] audio_in_init fallito.\n"
+#define MSGTR_RADIO_BufferString "[radio] %s: in buffer=%d scartati=%d\n"
+#define MSGTR_RADIO_AudioInSetupFailed "[radio] Chiamata a audio_in_setup fallita: %s\n"
+#define MSGTR_RADIO_CaptureStarting "[radio] Inizio la parte di cattura.\n"
+#define MSGTR_RADIO_ClearBufferFailed "[radio] Pulizia buffer fallita: %s\n"
+#define MSGTR_RADIO_StreamEnableCacheFailed "[radio] Chiamata a stream_enable_cache fallita: %s\n"
+#define MSGTR_RADIO_DriverUnknownStr "[radio] Nome driver sconosciuto: %s\n"
+#define MSGTR_RADIO_DriverV4L2 "[radio] Uso l'interfaccia radio V4Lv2.\n"
+#define MSGTR_RADIO_DriverV4L "[radio] Uso l'interfaccia radio V4Lv1.\n"
+#define MSGTR_RADIO_DriverBSDBT848 "[radio] Utilizzo l'interfaccia radio *BSD BT848.\n"
+#define MSGTR_RADIO_AvailableDrivers "[radio] Driver disponibili: "
+
//tv.c
#define MSGTR_TV_BogusNormParameter "tv.c: norm_from_string(%s): Parametro norm invalido, lo imposto a %s.\n"
#define MSGTR_TV_NoVideoInputPresent "Errore: Nessuna entrata video presente!\n"
@@ -2110,3 +2108,6 @@ static const char help_text[]=
#define MSGTR_TVI_DS_NoVideoCaptureDevice "tvi_dshow: Impossibile trovare il dispositivo di acquisizione video.\n"
#define MSGTR_TVI_DS_NoAudioCaptureDevice "tvi_dshow: Impossibile trovare il dispositivo di acquisizione audio.\n"
#define MSGTR_TVI_DS_GetActualMediatypeFailed "tvi_dshow: Impossibile ricavare il mediatype attuale (Errore:0x%x). Assumo sia uguale a quello richiesto.\n"
+
+// url.c
+#define MSGTR_MPDEMUX_URL_StringAlreadyEscaped "La stringa sembra essere già filtrata in url_escape %c%c1%c2\n"
diff --git a/help/help_mp-zh_CN.h b/help/help_mp-zh_CN.h
index 00384f1431..263f3668aa 100644
--- a/help/help_mp-zh_CN.h
+++ b/help/help_mp-zh_CN.h
@@ -1,4 +1,4 @@
-// Synced with help_mp-en.h r29209 (MSGTR_RecommendedVideoBitrate)
+// Synced with help_mp-en.h r29209 (MSGTR_SaveSlotTooOld)
// Reminder of hard terms which need better/final solution later:
// (file links to be updated later if available!);
// NAV; section/subsection; XScreenSaver; keycolor;
@@ -282,105 +282,103 @@ static const char help_text[]=
#define MSGTR_ErrorWritingFile "%s:写入文件出错。\n"
#define MSGTR_FlushingVideoFrames "\n立即输出视频帧缓冲中的内容。\n"
#define MSGTR_FiltersHaveNotBeenConfiguredEmptyFile "过滤器尚未配置!文件为空?\n"
-#define MSGTR_RecommendedVideoBitrate "%s CD 推荐的视频比特率为: %d\n"
-#define MSGTR_VideoStreamResult "\n视频流: %8.3f kbit/s (%d B/s) 大小: %"PRIu64" 字节 %5.3f 秒 %d 帧\n"
-#define MSGTR_AudioStreamResult "\n音频流: %8.3f kbit/s (%d B/s) 大小: %"PRIu64" 字节 %5.3f 秒\n"
-#define MSGTR_EdlSkipStartEndCurrent "EDL跳过: 开始: %.2f 结束: %.2f 当前: V: %.2f A: %.2f \r"
-#define MSGTR_OpenedStream "成功: 格式: %d数据: 0x%X - 0x%x\n"
-#define MSGTR_VCodecFramecopy "视频编解码器: 帧复制 (%dx%d %dbpp fourcc=%x)\n"
-#define MSGTR_ACodecFramecopy "音频编解码器: 帧复制 (format=%x chans=%d rate=%d bits=%d B/s=%d sample-%d)\n"
-#define MSGTR_CBRPCMAudioSelected "已选 CBR PCM 音频。\n"
-#define MSGTR_MP3AudioSelected "已选 MP3音频。\n"
-#define MSGTR_CannotAllocateBytes "不能分配 %d 字节。\n"
+#define MSGTR_RecommendedVideoBitrate "%s CD 的推荐视频比特率为:%d\n"
+#define MSGTR_VideoStreamResult "\n视频流:%8.3f kbit/s (%d B/s) 大小:%"PRIu64" 字节 %5.3f 秒 %d 帧\n"
+#define MSGTR_AudioStreamResult "\n音频流:%8.3f kbit/s (%d B/s) 大小:%"PRIu64" 字节 %5.3f 秒\n"
+#define MSGTR_EdlSkipStartEndCurrent "EDL 跳跃:开始位置:%.2f 结束位置:%.2f 当前位置:V:%.2f A:%.2f \r"
+#define MSGTR_OpenedStream "成功:格式:%d 数据:0x%X - 0x%x\n"
+#define MSGTR_VCodecFramecopy "视频编解码器:复制帧(%dx%d %dbpp fourcc=%x)\n"
+#define MSGTR_ACodecFramecopy "音频编解码器:复制帧(format=%x chans=%d rate=%d bits=%d B/s=%d sample-%d)\n"
+#define MSGTR_CBRPCMAudioSelected "已选择 CBR PCM 音频。\n"
+#define MSGTR_MP3AudioSelected "已选择 MP3音频。\n"
+#define MSGTR_CannotAllocateBytes "无法分配出 %d 字节。\n"
#define MSGTR_SettingAudioDelay "设置音频延迟为 %5.3fs。\n"
#define MSGTR_SettingVideoDelay "设置视频延迟为 %5.3fs。\n"
#define MSGTR_SettingAudioInputGain "设置音频输出增益为 %f。\n"
#define MSGTR_LamePresetEquals "\npreset=%s\n\n"
-#define MSGTR_LimitingAudioPreload "限制音频预载值为 0.4s。\n"
-#define MSGTR_IncreasingAudioDensity "增加音频密度为 4。\n"
-#define MSGTR_ZeroingAudioPreloadAndMaxPtsCorrection "锁定音频预载值为 0, 最大 PTS 校验为 0。\n"
-#define MSGTR_CBRAudioByterate "\n\nCBR 音频: %d 字节/秒, %d 字节/块\n"
-#define MSGTR_LameVersion "LAME 版本 %s (%s)\n\n"
-#define MSGTR_InvalidBitrateForLamePreset "错误: 在此预设值上指定的比特率超出有效范围。\n"\
+#define MSGTR_LimitingAudioPreload "限制音频预加载长度为 0.4s。\n"
+#define MSGTR_IncreasingAudioDensity "增加音频密度至 4。\n"
+#define MSGTR_ZeroingAudioPreloadAndMaxPtsCorrection "强制音频预加载长度为 0,最大 PTS 校验长度为 0。\n"
+#define MSGTR_CBRAudioByterate "\n\nCBR 音频:%d 字节/秒,%d 字节/块\n"
+#define MSGTR_LameVersion "LAME 版本 %s(%s)\n\n"
+#define MSGTR_InvalidBitrateForLamePreset "错误:指定的比特率超出该预设配置的有效范围。\n"\
"\n"\
-"当使用这种模式时你必须给定一个在\"8\"到\"320\"之间的数值。\n"\
+"当使用该模式时,你必须输入一个\"8\"到\"320\"之间的数值。\n"\
"\n"\
-"更多信息,请试试: \"-lameopts preset=help\"\n"
-#define MSGTR_InvalidLamePresetOptions "错误: 你没有给定一个有效的配置和/或预设值选项。\n"\
+"获取更多信息,请尝试:\"-lameopts preset=help\"\n"
+#define MSGTR_InvalidLamePresetOptions "错误:你没有给 preset 指定一个有效的配置集和/或选项。\n"\
"\n"\
-"可用的配置轮廓(profile)包括:\n"\
+"可用的配置集包括:\n"\
"\n"\
" <fast> standard\n"\
" <fast> extreme\n"\
" insane\n"\
-" <cbr> (ABR Mode) - ABR 模式是暗含的。要使用这个选项,\n"\
-" 简单地指定一个比特率就行了。例如:\n"\
-" \"preset=185\"就可以激活这个\n"\
-" 预设值并使用 185 作为平均比特率。\n"\
+" <cbr>(ABR 模式) - 默认使用的是 ABR 模式。\n"\
+" 要使用该模式,只要指定一个比特率就行了。\n"\
+" 例如:“preset=185”启用该预设配置,\n"\
+" 使用 185 作为平均比特率。\n"\
"\n"\
-" 一些例子:\n"\
+" 一些例子:\n"\
"\n"\
" \"-lameopts fast:preset=standard \"\n"\
" or \"-lameopts cbr:preset=192 \"\n"\
" or \"-lameopts preset=172 \"\n"\
" or \"-lameopts preset=extreme \"\n"\
"\n"\
-"更多信息,请试试: \"-lameopts preset=help\"\n"
+"要获取更多信息,请尝试使用:\"-lameopts preset=help\"\n"
#define MSGTR_LamePresetsLongInfo "\n"\
-"预设值开关设计为提供最好的品质。\n"\
+"预设配置开关经过设计以提供最好的编码质量。\n"\
"\n"\
-"它们大多数已经经过严格的双盲聆听测试来调整和检验性能,\n"\
-"以达到我们预期的目标。\n"\
+"大多数配置已经经过严格的双盲聆听的测试和调整,以验证并达到这个目标。\n"\
"\n"\
-"它们不断地被升级以便和最新的发展保持一致,\n"\
-"所以应该能给你提供目前 LAME 所能提供的将近最好的品质。\n"\
+"这些配置经过不断升级以跟上最近的开发成果,所以应该能给你提供目前 LAME \n"\
+"所能提供的将近最好的质量。\n"\
"\n"\
-"预设值激活:\n"\
+"启用这些预设配置:\n"\
"\n"\
-" VBR 模式 (通常情况下的最高品质):\n"\
+" 使用 VBR 模式(通常质量最高):\n"\
"\n"\
-" \"preset=standard\" 此项预设值显然应该是大多数人在处理大多数的音乐的时候\n"\
-" 所用到的选项, 它的品质已经相当高。\n" \
+" “preset=standard” 该预设配置在处理大多数音乐上,通常大多数人应该是感\n"\
+" 觉不到差异的,其质量已经相当高。\n" \
"\n"\
-" \"preset=extreme\" 如果你有极好的听力和相当的设备, 这项预设值一般会比\n"\
-" \"standard\"模式的品质还要提高一点。\n"\
+" “preset=extreme” 如果你有极好的听力和相当的设备,该预设配置一般会比\n"\
+" “standard”模式提供更高一点的质量。\n"\
"\n"\
-" CBR 320kbps (预设值开关选项里的最高品质):\n"\
+" 使用 CBR 320kbps(预设配置开关选项里的最高质量):\n"\
"\n"\
-" \"preset=insane\" 对于大多数人和在大多数情况下, 这个选项都显得有些过度。\n"\
-" 但是如果你一定要有最高品质并且完全不关心文件大小,\n"\
+" “preset=insane” 对于大多数人在大多数情况下,该选项通常有些过度。但是\n"\
+" 如果你一定要有最高质量并且完全不关心文件大小,\n"\
" 那这正是适合你的。\n"\
"\n"\
-" ABR 模式 (根据给定比特率高品质, 但不及 VBR):\n"\
+" 使用 ABR 模式(给定比特率下提供较高质量,但不及 VBR 质量高):\n"\
"\n"\
-" \"preset=<kbps>\" 使用这个预设值总是会在一个指定的比特率下有不错的品质。\n"\
-" 根据的比特率, 预设值将会决定这种情况下所能达到最\n"\
-" 好效果的设置。\n"\
-" 虽然这种方法可行, 但它并没有 VBR 模式那么灵活, \n"\
-" 同样, 一般也达不到 VBR 在高比特率下的同等品质。\n"\
+" \"preset=<kbps>\" 使用该预设配置通常会在一个指定的比特率下提错良好的质量。\n"\
+" 根据输入的比特率,预设配置将判断该情形下的最优设置。\n"\
+" 虽然该方法行之有效,但并没有 VBR 模式那么灵活,\n"\
+" 并且通常在高比特率下达不到 VBR 所具有的同等质量。\n"\
"\n"\
-"以下选项在相应的配置文件里也可使用:\n"\
+"以下选项在相应的配置集中也可使用:\n"\
"\n"\
" <fast> standard\n"\
" <fast> extreme\n"\
" insane\n"\
-" <cbr> (ABR Mode) - ABR 模式是暗含的。要使用这个选项,\n"\
-" 简单地指定一个比特率就行了。例如:\n"\
-" \"preset=185\"就可以激活这个\n"\
-" 预设值并使用 185 作为平均比特率。\n"\
+" <cbr>(ABR Mode)- 默认使用的是 ABR 模式。要使用该模式,\n"\
+" 只要指定一个比特率就行了。例如:\n"\
+" “preset=185”启用该预设配置,\n"\
+" 使用 185 作为平均比特率。\n"\
"\n"\
-" \"fast\" - 在一个特定的配置文件里启用这新的快速 VBR 模式。\n"\
-" 速度切换的坏处是比特率常常要比一般情况下的稍高, \n"\
-" 品质也会稍低一点。\n"\
-" 警告: 在当前版本下, 快速预设值可能比一般模式偏高得太多。\n"\
+" “fast” - 在特定的配置集中启用新的高速 VBR 模式。\n"\
+" 速度开关的坏处是比特率往往比普通模式下稍高,\n"\
+" 并且质量也会稍低一点。\n"\
+" 警告:在当前版本下, 高速预设配置可能产生比一般模式高太多的比特率。\n"\
"\n"\
-" \"cbr\" - 如果你使用 ABR 模式(见上)时, 采用特定的比特率, 如\n"\
-" 80, 96, 112, 128, 160, 192, 224, 256, 320, 你可以使\n"\
-" 用\"cbr\"选项强制以 CBR 模式代替标准 ABR 模式编码。\n"\
-" ABR 固然提供更高的品质, 但是 CBR 在某些情况下可能会\n"\
-" 相当重要, 比如从 internet 送一个 MP3 流。\n"\
+" “cbr” - 如果你使用 ABR 模式(见上)时指定了一个比特率, 如\n"\
+" 80、96、112、128、160、192、224、256、320,你可以使\n"\
+" 用“cbr”选项强制以 CBR 模式编码代替标准 ABR 模式。\n"\
+" ABR 固然提供更高的质量,但是 CBR 在某些情况下可能会\n"\
+" 相当有用,比如当在因特网上传送 MP3 流可能十分重要时。\n"\
"\n"\
-" 例如:\n"\
+" 举例:\n"\
"\n"\
" \"-lameopts fast:preset=standard \"\n"\
" 或 \"-lameopts cbr:preset=192 \"\n"\
@@ -388,117 +386,117 @@ static const char help_text[]=
" 或 \"-lameopts preset=extreme \"\n"\
"\n"\
"\n"\
-"ABR 模式下一些可用的别名:\n"\
+"ABR 模式下有一些可用的别名:\n"\
"phone => 16kbps/mono phon+/lw/mw-eu/sw => 24kbps/mono\n"\
"mw-us => 40kbps/mono voice => 56kbps/mono\n"\
"fm/radio/tape => 112kbps hifi => 160kbps\n"\
"cd => 192kbps studio => 256kbps"
#define MSGTR_LameCantInit \
-"不能设定 LAME 选项, 检查比特率/采样率, 一些\n"\
-"非常低的比特率(<32)需要低采样率(如 -srate 8000)。\n"\
-"如果都不行, 试试使用预设值。"
+"无法设定 LAME 选项,请检查比特率/采样率,一些\n"\
+"非常低的比特率(<32)需要低采样率(如 -srate 8000)。\n"\
+"如果其它方法都不行,请试试使用预设配置。"
#define MSGTR_ConfigFileError "配置文件错误"
#define MSGTR_ErrorParsingCommandLine "解析命令行错误"
-#define MSGTR_VideoStreamRequired "视频流是必须的!\n"
-#define MSGTR_ForcingInputFPS "输入帧率将被替换为 %5.3f。\n"
-#define MSGTR_RawvideoDoesNotSupportAudio "RAWVIDEO 输出文件格式不支持音频 - 停用音频。\n"
-#define MSGTR_DemuxerDoesntSupportNosound "目前此分路器还不支持 -nosound。\n"
+#define MSGTR_VideoStreamRequired "必须有视频流!\n"
+#define MSGTR_ForcingInputFPS "输入帧率将视为 %5.3f。\n"
+#define MSGTR_RawvideoDoesNotSupportAudio "RAWVIDEO 输出文件格式不支持音频 - 禁用音频。\n"
+#define MSGTR_DemuxerDoesntSupportNosound "该流分离器还不支持 -nosound。\n"
#define MSGTR_MemAllocFailed "内存分配失败。\n"
-#define MSGTR_NoMatchingFilter "没找到匹配的 filter/ao 格式!\n"
-#define MSGTR_MP3WaveFormatSizeNot30 "sizeof(MPEGLAYER3WAVEFORMAT)==%d!=30, C 编译器可能挂了?\n"
-#define MSGTR_NoLavcAudioCodecName "音频 LAVC, 没有编解码器名!\n"
-#define MSGTR_LavcAudioCodecNotFound "音频 LAVC, 找不到对应的编码器 %s。\n"
-#define MSGTR_CouldntAllocateLavcContext "音频 LAVC, 不能分配上下文!\n"
-#define MSGTR_CouldntOpenCodec "打不开编解码器 %s, br=%d。\n"
-#define MSGTR_CantCopyAudioFormat "音频格式 0x%x 和 '-oac copy' 不兼容, 请试试用 '-oac pcm' 代替或者用 '-fafmttag'。\n"
+#define MSGTR_NoMatchingFilter "没找到匹配的过滤器/音频输出格式!\n"
+#define MSGTR_MP3WaveFormatSizeNot30 "sizeof(MPEGLAYER3WAVEFORMAT)==%d!=30,C 编译器可能已损坏?\n"
+#define MSGTR_NoLavcAudioCodecName "音频 LAVC,没有指定编解码器名称!\n"
+#define MSGTR_LavcAudioCodecNotFound "音频 LAVC,无法找到编解码器 %s 对应的编码器。\n"
+#define MSGTR_CouldntAllocateLavcContext "音频 LAVC,无法分配运行环境!\n"
+#define MSGTR_CouldntOpenCodec "无法打开编解码器 %s,br=%d。\n"
+#define MSGTR_CantCopyAudioFormat "音频格式 0x%x 与‘-oac copy’不兼容,请尝试换成‘-oac pcm’或者用‘-fafmttag’屏蔽该选项。\n"
// cfg-mencoder.h
#define MSGTR_MEncoderMP3LameHelp "\n\n"\
" vbr=<0-4> 可变比特率方式\n"\
-" 0: cbr (常比特率)\n"\
-" 1: mt (Mark Taylor VBR 算法)\n"\
-" 2: rh (Robert Hegemann VBR 算法 - 默认)\n"\
-" 3: abr (平均比特率)\n"\
-" 4: mtrh (Mark Taylor Robert Hegemann VBR 算法)\n"\
+" 0:cbr(恒定比特率)\n"\
+" 1:mt(Mark Taylor VBR 算法)\n"\
+" 2:rh(Robert Hegemann VBR 算法 - 默认值)\n"\
+" 3:abr(平均比特率)\n"\
+" 4:mtrh(Mark Taylor Robert Hegemann VBR 算法)\n"\
"\n"\
" abr 平均比特率\n"\
"\n"\
-" cbr 常比特率\n"\
-" 也会在后继 ABR 预设值模式中强制以 CBR 模式编码。\n"\
+" cbr 恒定比特率\n"\
+" 同时在后面指定的 ABR 预设模式中强制以 CBR 模式编码。\n"\
"\n"\
-" br=<0-1024> 以 kBit 为单位设置比特率 (仅用于 CBR 和 ABR)\n"\
+" br=<0-1024> 以 kBit 为单位设置比特率(仅用于 CBR 和 ABR)\n"\
"\n"\
-" q=<0-9> 编码质量 (0-最高, 9-最低) (仅用于 VBR)\n"\
+" q=<0-9> 编码质量(0-最高,9-最低)(仅用于 VBR)\n"\
"\n"\
-" aq=<0-9> 算法质量 (0-最好/最慢, 9-最低/最快)\n"\
+" aq=<0-9> 算法质量(0-最好/运行最慢,9-最差/运行最快)\n"\
"\n"\
" ratio=<1-100> 压缩率\n"\
"\n"\
" vol=<0-10> 设置音频输入增益\n"\
"\n"\
-" mode=<0-3> (默认: 自动)\n"\
-" 0: 立体声\n"\
-" 1: 联合立体声\n"\
-" 2: 双声道\n"\
-" 3: 单声道\n"\
+" mode=<0-3> (默认值:自动)\n"\
+" 0:立体声\n"\
+" 1:联合立体声\n"\
+" 2:双声道\n"\
+" 3:单声道\n"\
"\n"\
" padding=<0-2>\n"\
-" 0: 无\n"\
-" 1: 所有\n"\
-" 2: 调整\n"\
+" 0:无\n"\
+" 1:所有\n"\
+" 2:调整\n"\
"\n"\
-" fast 在后继 VBR 预设值模式中切换到更快的编码方式,\n"\
-" 品质稍低而比特率稍高。\n"\
+" fast 在后面指定 VBR 预设模式中打开更快的编码方式,\n"\
+" 质量较低而比特率较高。\n"\
"\n"\
-" preset=<value> 可能提供最高品质的设置。\n"\
-" medium: VBR 编码,品质:好\n"\
-" (比特率范围 150-180 kbps)\n"\
-" standard: VBR 编码, 品质:高\n"\
-" (比特率范围 170-210 kbps)\n"\
-" extreme: VBR 编码,品质:非常高\n"\
-" (比特率范围 200-240 kbps)\n"\
-" insane: CBR 编码,品质:最高\n"\
-" (比特率 320 kbps)\n"\
-" <8-320>: 以给定比特率为平均比特率的 ABR 编码。\n\n"
+" preset=<value> 提供尽可能最高质量的设置。\n"\
+" medium:VBR 编码,质量好\n"\
+" (比特率范围 150-180 kbps)\n"\
+" standard:VBR 编码,质量高\n"\
+" (比特率范围 170-210 kbps)\n"\
+" extreme:VBR 编码,质量非常高\n"\
+" (比特率范围 200-240 kbps)\n"\
+" insane:CBR 编码,质量最高\n"\
+" (比特率 320 kbps)\n"\
+" <8-320>:以给定比特率为平均比特率的 ABR 编码方式。\n\n"
//codec-cfg.c
-#define MSGTR_DuplicateFourcc "重复的 FourCC"
-#define MSGTR_TooManyFourccs "太多的 FourCCs/formats..."
+#define MSGTR_DuplicateFourcc "FourCC 代码重复"
+#define MSGTR_TooManyFourccs "FourCC/格式代码过多……"
#define MSGTR_ParseError "解析错误"
-#define MSGTR_ParseErrorFIDNotNumber "解析错误(格式 ID 不是一个数字?)"
-#define MSGTR_ParseErrorFIDAliasNotNumber "解析错误(格式 ID 别名不是一个数字?)"
-#define MSGTR_DuplicateFID "重复的格式 ID"
-#define MSGTR_TooManyOut "太多输出..."
-#define MSGTR_InvalidCodecName "\n编解码器(%s) 的名称无效!\n"
-#define MSGTR_CodecLacksFourcc "\n编解码器(%s) 没有 FourCC/format!\n"
-#define MSGTR_CodecLacksDriver "\n编解码器(%s) 没有驱动!\n"
-#define MSGTR_CodecNeedsDLL "\n编解码器(%s) 需要一个 'dll'!\n"
-#define MSGTR_CodecNeedsOutfmt "\n编解码器(%s) 需要一个 'outfmt'!\n"
-#define MSGTR_CantAllocateComment "不能为注释分配内存。"
-#define MSGTR_GetTokenMaxNotLessThanMAX_NR_TOKEN "get_token(): max >= MAX_MR_TOKEN!"
-#define MSGTR_ReadingFile "读取 %s: "
-#define MSGTR_CantOpenFileError "打不开 '%s': %s\n"
-#define MSGTR_CantGetMemoryForLine "不能为 'line' 获取内存: %s\n"
-#define MSGTR_CantReallocCodecsp "不能重新分配 '*codecsp': %s\n"
-#define MSGTR_CodecNameNotUnique "编解码器名 '%s' 不唯一。"
-#define MSGTR_CantStrdupName "不能 strdup -> 'name': %s\n"
-#define MSGTR_CantStrdupInfo "不能 strdup -> 'info': %s\n"
-#define MSGTR_CantStrdupDriver "不能 strdup -> 'driver': %s\n"
-#define MSGTR_CantStrdupDLL "不能 strdup -> 'dll': %s"
-#define MSGTR_AudioVideoCodecTotals "%d 音频和 %d 视频编解码器\n"
+#define MSGTR_ParseErrorFIDNotNumber "解析错误(格式代码 ID 不是一个数字?)"
+#define MSGTR_ParseErrorFIDAliasNotNumber "解析错误(格式代码 ID 别名不是一个数字?)"
+#define MSGTR_DuplicateFID "格式代码 ID 重复"
+#define MSGTR_TooManyOut "输出过多……"
+#define MSGTR_InvalidCodecName "\n编解码器(%s)的名称无效!\n"
+#define MSGTR_CodecLacksFourcc "\n编解码器(%s)没有 FourCC/格式代码!\n"
+#define MSGTR_CodecLacksDriver "\n编解码器(%s)没有驱动程序!\n"
+#define MSGTR_CodecNeedsDLL "\n编解码器(%s)缺少一个‘dll’!\n"
+#define MSGTR_CodecNeedsOutfmt "\n编解码器(%s)缺少一个‘outfmt’!\n"
+#define MSGTR_CantAllocateComment "无法为注释文本分配内存。"
+#define MSGTR_GetTokenMaxNotLessThanMAX_NR_TOKEN "get_token():max >= MAX_MR_TOKEN!"
+#define MSGTR_ReadingFile "正在读取 %s:"
+#define MSGTR_CantOpenFileError "无法打开‘%s’:%s\n"
+#define MSGTR_CantGetMemoryForLine "无法获取内存提供给‘line’:%s\n"
+#define MSGTR_CantReallocCodecsp "无法重新分配‘*codecsp’:%s\n"
+#define MSGTR_CodecNameNotUnique "编解码器名‘%s’重复。"
+#define MSGTR_CantStrdupName "无法执行 strdup ->‘name’的复制:%s\n"
+#define MSGTR_CantStrdupInfo "无法执行 strdup ->‘info’的复制:%s\n"
+#define MSGTR_CantStrdupDriver "无法执行 strdup ->‘driver’的复制:%s\n"
+#define MSGTR_CantStrdupDLL "无法执行 strdup ->‘dll’的复制:%s"
+#define MSGTR_AudioVideoCodecTotals "%d 个音频和 %d 个视频编解码器\n"
#define MSGTR_CodecDefinitionIncorrect "编解码器没有正确定义。"
-#define MSGTR_OutdatedCodecsConf "此 codecs.conf 太旧,与当前的 MPlayer 不兼容!"
+#define MSGTR_OutdatedCodecsConf "此 codecs.conf 太旧,与当前发布的 MPlayer 版本不兼容!"
// fifo.c
-#define MSGTR_CannotMakePipe "不能建立 PIPE!\n"
+#define MSGTR_CannotMakePipe "无法创建通信管道!\n"
// parser-mecmd.c, parser-mpcmd.c
-#define MSGTR_NoFileGivenOnCommandLine "'--' 表示没有更多选项, 但命令行没有给出文件名。\n"
-#define MSGTR_TheLoopOptionMustBeAnInteger "这个loop选项必须是个整数: %s\n"
-#define MSGTR_UnknownOptionOnCommandLine "命令行有未知的选项: -%s\n"
-#define MSGTR_ErrorParsingOptionOnCommandLine "解析命令行选项出错: -%s\n"
+#define MSGTR_NoFileGivenOnCommandLine "‘--’表示不再给出更多选项,但命令行上没有给出文件名。\n"
+#define MSGTR_TheLoopOptionMustBeAnInteger "这个循环选项必须是整数:%s\n"
+#define MSGTR_UnknownOptionOnCommandLine "命令行上有未知选项:-%s\n"
+#define MSGTR_ErrorParsingOptionOnCommandLine "解析命令行选项出错:-%s\n"
#define MSGTR_InvalidPlayEntry "无效的播放条目 %s\n"
-#define MSGTR_NotAnMEncoderOption "-%s 不是一个MEncoder选项\n"
+#define MSGTR_NotAnMEncoderOption "-%s 不是 MEncoder 的选项\n"
#define MSGTR_NoFileGiven "没有给出文件\n"
// m_config.c
diff --git a/input/input.c b/input/input.c
index 92d6a212ab..71d378057e 100644
--- a/input/input.c
+++ b/input/input.c
@@ -901,7 +901,7 @@ mp_input_parse_cmd(char* str) {
return cmd;
}
-#define MP_CMD_MAX_SIZE 256
+#define MP_CMD_MAX_SIZE 4096
static int read_cmd(mp_input_fd_t* mp_fd, char** ret)
{
diff --git a/liba52/bitstream.c b/liba52/bitstream.c
index a46ccced6b..7307527194 100644
--- a/liba52/bitstream.c
+++ b/liba52/bitstream.c
@@ -99,7 +99,7 @@ int32_t a52_bitstream_get_bh_2 (a52_state_t * state, uint32_t num_bits)
if (num_bits != 0)
result = (result << num_bits) | (state->current_word >> (32 - num_bits));
-
+
state->bits_left = 32 - num_bits;
return result;
diff --git a/liba52/bitstream.h b/liba52/bitstream.h
index 8500212c7e..e894f16781 100644
--- a/liba52/bitstream.h
+++ b/liba52/bitstream.h
@@ -104,11 +104,11 @@ static inline uint32_t bitstream_get (a52_state_t * state, uint32_t num_bits)
result<<= (indx&0x07);
result>>= 32 - num_bits;
indx+= num_bits;
-
+
return result;
#else
uint32_t result;
-
+
if (num_bits < state->bits_left) {
result = (state->current_word << (32 - state->bits_left)) >> (32 - num_bits);
state->bits_left -= num_bits;
@@ -136,11 +136,11 @@ static inline int32_t bitstream_get_2 (a52_state_t * state, uint32_t num_bits)
result<<= (indx&0x07);
result>>= 32 - num_bits;
indx+= num_bits;
-
+
return result;
#else
int32_t result;
-
+
if (num_bits < state->bits_left) {
result = (((int32_t)state->current_word) << (32 - state->bits_left)) >> (32 - num_bits);
state->bits_left -= num_bits;
diff --git a/liba52/crc.c b/liba52/crc.c
index d19a4a2e11..aa0a19c005 100644
--- a/liba52/crc.c
+++ b/liba52/crc.c
@@ -1,23 +1,23 @@
-/*
+/*
* crc.c
*
* Copyright (C) Aaron Holtzman - May 1999
*
* This file is part of ac3dec, a free Dolby AC-3 stream decoder.
- *
+ *
* ac3dec is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
- *
+ *
* ac3dec is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
@@ -25,7 +25,7 @@
#include <stdio.h>
#include <inttypes.h>
-static const uint16_t crc_lut[256] =
+static const uint16_t crc_lut[256] =
{
0x0000,0x8005,0x800f,0x000a,0x801b,0x001e,0x0014,0x8011,
0x8033,0x0036,0x003c,0x8039,0x0028,0x802d,0x8027,0x0022,
diff --git a/liba52/downmix.c b/liba52/downmix.c
index c44317fd6f..212c87d921 100644
--- a/liba52/downmix.c
+++ b/liba52/downmix.c
@@ -62,7 +62,7 @@ void downmix_accel_init(uint32_t mm_accel)
if(mm_accel & MM_ACCEL_X86_3DNOW) a52_downmix= downmix_3dnow;
#endif
}
-
+
int a52_downmix_init (int input, int flags, sample_t * level,
sample_t clev, sample_t slev)
{
@@ -695,10 +695,10 @@ static void mix2to1_SSE (sample_t * dest, sample_t * src, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
- "movaps 16(%0, %%"REG_S"), %%xmm1\n\t"
- "addps (%1, %%"REG_S"), %%xmm0 \n\t"
- "addps 16(%1, %%"REG_S"), %%xmm1\n\t"
+ "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
+ "movaps 16(%0, %%"REG_S"), %%xmm1\n\t"
+ "addps (%1, %%"REG_S"), %%xmm0 \n\t"
+ "addps 16(%1, %%"REG_S"), %%xmm1\n\t"
"addps %%xmm7, %%xmm0 \n\t"
"addps %%xmm7, %%xmm1 \n\t"
"movaps %%xmm0, (%1, %%"REG_S") \n\t"
@@ -718,9 +718,9 @@ static void mix3to1_SSE (sample_t * samples, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
- "movaps 1024(%0, %%"REG_S"), %%xmm1\n\t"
- "addps 2048(%0, %%"REG_S"), %%xmm0\n\t"
+ "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
+ "movaps 1024(%0, %%"REG_S"), %%xmm1\n\t"
+ "addps 2048(%0, %%"REG_S"), %%xmm0\n\t"
"addps %%xmm7, %%xmm1 \n\t"
"addps %%xmm1, %%xmm0 \n\t"
"movaps %%xmm0, (%0, %%"REG_S") \n\t"
@@ -739,10 +739,10 @@ static void mix4to1_SSE (sample_t * samples, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
- "movaps 1024(%0, %%"REG_S"), %%xmm1\n\t"
- "addps 2048(%0, %%"REG_S"), %%xmm0\n\t"
- "addps 3072(%0, %%"REG_S"), %%xmm1\n\t"
+ "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
+ "movaps 1024(%0, %%"REG_S"), %%xmm1\n\t"
+ "addps 2048(%0, %%"REG_S"), %%xmm0\n\t"
+ "addps 3072(%0, %%"REG_S"), %%xmm1\n\t"
"addps %%xmm7, %%xmm0 \n\t"
"addps %%xmm1, %%xmm0 \n\t"
"movaps %%xmm0, (%0, %%"REG_S") \n\t"
@@ -761,12 +761,12 @@ static void mix5to1_SSE (sample_t * samples, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
- "movaps 1024(%0, %%"REG_S"), %%xmm1\n\t"
- "addps 2048(%0, %%"REG_S"), %%xmm0\n\t"
- "addps 3072(%0, %%"REG_S"), %%xmm1\n\t"
+ "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
+ "movaps 1024(%0, %%"REG_S"), %%xmm1\n\t"
+ "addps 2048(%0, %%"REG_S"), %%xmm0\n\t"
+ "addps 3072(%0, %%"REG_S"), %%xmm1\n\t"
"addps %%xmm7, %%xmm0 \n\t"
- "addps 4096(%0, %%"REG_S"), %%xmm1\n\t"
+ "addps 4096(%0, %%"REG_S"), %%xmm1\n\t"
"addps %%xmm1, %%xmm0 \n\t"
"movaps %%xmm0, (%0, %%"REG_S") \n\t"
"add $16, %%"REG_S" \n\t"
@@ -784,9 +784,9 @@ static void mix3to2_SSE (sample_t * samples, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
+ "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
"addps %%xmm7, %%xmm0 \n\t" //common
- "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
+ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
"movaps 2048(%0, %%"REG_S"), %%xmm2\n\t"
"addps %%xmm0, %%xmm1 \n\t"
"addps %%xmm0, %%xmm2 \n\t"
@@ -807,9 +807,9 @@ static void mix21to2_SSE (sample_t * left, sample_t * right, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movaps 1024(%1, %%"REG_S"), %%xmm0\n\t"
+ "movaps 1024(%1, %%"REG_S"), %%xmm0\n\t"
"addps %%xmm7, %%xmm0 \n\t" //common
- "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
+ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
"movaps (%1, %%"REG_S"), %%xmm2 \n\t"
"addps %%xmm0, %%xmm1 \n\t"
"addps %%xmm0, %%xmm2 \n\t"
@@ -831,7 +831,7 @@ static void mix21toS_SSE (sample_t * samples, sample_t bias)
ASMALIGN(4)
"1: \n\t"
"movaps 2048(%0, %%"REG_S"), %%xmm0\n\t" // surround
- "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
+ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
"movaps 1024(%0, %%"REG_S"), %%xmm2\n\t"
"addps %%xmm7, %%xmm1 \n\t"
"addps %%xmm7, %%xmm2 \n\t"
@@ -854,10 +854,10 @@ static void mix31to2_SSE (sample_t * samples, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
- "addps 3072(%0, %%"REG_S"), %%xmm0\n\t"
+ "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
+ "addps 3072(%0, %%"REG_S"), %%xmm0\n\t"
"addps %%xmm7, %%xmm0 \n\t" // common
- "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
+ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
"movaps 2048(%0, %%"REG_S"), %%xmm2\n\t"
"addps %%xmm0, %%xmm1 \n\t"
"addps %%xmm0, %%xmm2 \n\t"
@@ -878,10 +878,10 @@ static void mix31toS_SSE (sample_t * samples, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
+ "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
"movaps 3072(%0, %%"REG_S"), %%xmm3\n\t" // surround
"addps %%xmm7, %%xmm0 \n\t" // common
- "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
+ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
"movaps 2048(%0, %%"REG_S"), %%xmm2\n\t"
"addps %%xmm0, %%xmm1 \n\t"
"addps %%xmm0, %%xmm2 \n\t"
@@ -904,9 +904,9 @@ static void mix22toS_SSE (sample_t * samples, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movaps 2048(%0, %%"REG_S"), %%xmm0\n\t"
+ "movaps 2048(%0, %%"REG_S"), %%xmm0\n\t"
"addps 3072(%0, %%"REG_S"), %%xmm0\n\t" // surround
- "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
+ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
"movaps 1024(%0, %%"REG_S"), %%xmm2\n\t"
"addps %%xmm7, %%xmm1 \n\t"
"addps %%xmm7, %%xmm2 \n\t"
@@ -929,13 +929,13 @@ static void mix32to2_SSE (sample_t * samples, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
+ "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
"addps %%xmm7, %%xmm0 \n\t" // common
"movaps %%xmm0, %%xmm1 \n\t" // common
- "addps (%0, %%"REG_S"), %%xmm0 \n\t"
- "addps 2048(%0, %%"REG_S"), %%xmm1\n\t"
- "addps 3072(%0, %%"REG_S"), %%xmm0\n\t"
- "addps 4096(%0, %%"REG_S"), %%xmm1\n\t"
+ "addps (%0, %%"REG_S"), %%xmm0 \n\t"
+ "addps 2048(%0, %%"REG_S"), %%xmm1\n\t"
+ "addps 3072(%0, %%"REG_S"), %%xmm0\n\t"
+ "addps 4096(%0, %%"REG_S"), %%xmm1\n\t"
"movaps %%xmm0, (%0, %%"REG_S") \n\t"
"movaps %%xmm1, 1024(%0, %%"REG_S")\n\t"
"add $16, %%"REG_S" \n\t"
@@ -953,16 +953,16 @@ static void mix32toS_SSE (sample_t * samples, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
- "movaps 3072(%0, %%"REG_S"), %%xmm2\n\t"
+ "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
+ "movaps 3072(%0, %%"REG_S"), %%xmm2\n\t"
"addps %%xmm7, %%xmm0 \n\t" // common
- "addps 4096(%0, %%"REG_S"), %%xmm2\n\t" // surround
- "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
- "movaps 2048(%0, %%"REG_S"), %%xmm3\n\t"
- "subps %%xmm2, %%xmm1 \n\t"
- "addps %%xmm2, %%xmm3 \n\t"
- "addps %%xmm0, %%xmm1 \n\t"
- "addps %%xmm0, %%xmm3 \n\t"
+ "addps 4096(%0, %%"REG_S"), %%xmm2\n\t" // surround
+ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
+ "movaps 2048(%0, %%"REG_S"), %%xmm3\n\t"
+ "subps %%xmm2, %%xmm1 \n\t"
+ "addps %%xmm2, %%xmm3 \n\t"
+ "addps %%xmm0, %%xmm1 \n\t"
+ "addps %%xmm0, %%xmm3 \n\t"
"movaps %%xmm1, (%0, %%"REG_S") \n\t"
"movaps %%xmm3, 1024(%0, %%"REG_S")\n\t"
"add $16, %%"REG_S" \n\t"
@@ -980,8 +980,8 @@ static void move2to1_SSE (sample_t * src, sample_t * dest, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
- "movaps 16(%0, %%"REG_S"), %%xmm1\n\t"
+ "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
+ "movaps 16(%0, %%"REG_S"), %%xmm1\n\t"
"addps 1024(%0, %%"REG_S"), %%xmm0\n\t"
"addps 1040(%0, %%"REG_S"), %%xmm1\n\t"
"addps %%xmm7, %%xmm0 \n\t"
@@ -1229,13 +1229,13 @@ static void mix2to1_3dnow (sample_t * dest, sample_t * src, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movq (%0, %%"REG_S"), %%mm0 \n\t"
+ "movq (%0, %%"REG_S"), %%mm0 \n\t"
"movq 8(%0, %%"REG_S"), %%mm1 \n\t"
- "movq 16(%0, %%"REG_S"), %%mm2 \n\t"
+ "movq 16(%0, %%"REG_S"), %%mm2 \n\t"
"movq 24(%0, %%"REG_S"), %%mm3 \n\t"
- "pfadd (%1, %%"REG_S"), %%mm0 \n\t"
+ "pfadd (%1, %%"REG_S"), %%mm0 \n\t"
"pfadd 8(%1, %%"REG_S"), %%mm1 \n\t"
- "pfadd 16(%1, %%"REG_S"), %%mm2 \n\t"
+ "pfadd 16(%1, %%"REG_S"), %%mm2 \n\t"
"pfadd 24(%1, %%"REG_S"), %%mm3 \n\t"
"pfadd %%mm7, %%mm0 \n\t"
"pfadd %%mm7, %%mm1 \n\t"
@@ -1260,11 +1260,11 @@ static void mix3to1_3dnow (sample_t * samples, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movq (%0, %%"REG_S"), %%mm0 \n\t"
+ "movq (%0, %%"REG_S"), %%mm0 \n\t"
"movq 8(%0, %%"REG_S"), %%mm1 \n\t"
- "movq 1024(%0, %%"REG_S"), %%mm2\n\t"
+ "movq 1024(%0, %%"REG_S"), %%mm2\n\t"
"movq 1032(%0, %%"REG_S"), %%mm3\n\t"
- "pfadd 2048(%0, %%"REG_S"), %%mm0\n\t"
+ "pfadd 2048(%0, %%"REG_S"), %%mm0\n\t"
"pfadd 2056(%0, %%"REG_S"), %%mm1\n\t"
"pfadd %%mm7, %%mm0 \n\t"
"pfadd %%mm7, %%mm1 \n\t"
@@ -1287,13 +1287,13 @@ static void mix4to1_3dnow (sample_t * samples, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movq (%0, %%"REG_S"), %%mm0 \n\t"
+ "movq (%0, %%"REG_S"), %%mm0 \n\t"
"movq 8(%0, %%"REG_S"), %%mm1 \n\t"
- "movq 1024(%0, %%"REG_S"), %%mm2\n\t"
+ "movq 1024(%0, %%"REG_S"), %%mm2\n\t"
"movq 1032(%0, %%"REG_S"), %%mm3\n\t"
- "pfadd 2048(%0, %%"REG_S"), %%mm0\n\t"
+ "pfadd 2048(%0, %%"REG_S"), %%mm0\n\t"
"pfadd 2056(%0, %%"REG_S"), %%mm1\n\t"
- "pfadd 3072(%0, %%"REG_S"), %%mm2\n\t"
+ "pfadd 3072(%0, %%"REG_S"), %%mm2\n\t"
"pfadd 3080(%0, %%"REG_S"), %%mm3\n\t"
"pfadd %%mm7, %%mm0 \n\t"
"pfadd %%mm7, %%mm1 \n\t"
@@ -1316,17 +1316,17 @@ static void mix5to1_3dnow (sample_t * samples, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movq (%0, %%"REG_S"), %%mm0 \n\t"
+ "movq (%0, %%"REG_S"), %%mm0 \n\t"
"movq 8(%0, %%"REG_S"), %%mm1 \n\t"
- "movq 1024(%0, %%"REG_S"), %%mm2\n\t"
+ "movq 1024(%0, %%"REG_S"), %%mm2\n\t"
"movq 1032(%0, %%"REG_S"), %%mm3\n\t"
- "pfadd 2048(%0, %%"REG_S"), %%mm0\n\t"
+ "pfadd 2048(%0, %%"REG_S"), %%mm0\n\t"
"pfadd 2056(%0, %%"REG_S"), %%mm1\n\t"
- "pfadd 3072(%0, %%"REG_S"), %%mm2\n\t"
+ "pfadd 3072(%0, %%"REG_S"), %%mm2\n\t"
"pfadd 3080(%0, %%"REG_S"), %%mm3\n\t"
"pfadd %%mm7, %%mm0 \n\t"
"pfadd %%mm7, %%mm1 \n\t"
- "pfadd 4096(%0, %%"REG_S"), %%mm2\n\t"
+ "pfadd 4096(%0, %%"REG_S"), %%mm2\n\t"
"pfadd 4104(%0, %%"REG_S"), %%mm3\n\t"
"pfadd %%mm2, %%mm0 \n\t"
"pfadd %%mm3, %%mm1 \n\t"
@@ -1347,11 +1347,11 @@ static void mix3to2_3dnow (sample_t * samples, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
+ "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
"movq 1032(%0, %%"REG_S"), %%mm1\n\t"
"pfadd %%mm7, %%mm0 \n\t" //common
"pfadd %%mm7, %%mm1 \n\t" //common
- "movq (%0, %%"REG_S"), %%mm2 \n\t"
+ "movq (%0, %%"REG_S"), %%mm2 \n\t"
"movq 8(%0, %%"REG_S"), %%mm3 \n\t"
"movq 2048(%0, %%"REG_S"), %%mm4\n\t"
"movq 2056(%0, %%"REG_S"), %%mm5\n\t"
@@ -1378,11 +1378,11 @@ static void mix21to2_3dnow (sample_t * left, sample_t * right, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movq 1024(%1, %%"REG_S"), %%mm0\n\t"
+ "movq 1024(%1, %%"REG_S"), %%mm0\n\t"
"movq 1032(%1, %%"REG_S"), %%mm1\n\t"
"pfadd %%mm7, %%mm0 \n\t" //common
"pfadd %%mm7, %%mm1 \n\t" //common
- "movq (%0, %%"REG_S"), %%mm2 \n\t"
+ "movq (%0, %%"REG_S"), %%mm2 \n\t"
"movq 8(%0, %%"REG_S"), %%mm3 \n\t"
"movq (%1, %%"REG_S"), %%mm4 \n\t"
"movq 8(%1, %%"REG_S"), %%mm5 \n\t"
@@ -1411,7 +1411,7 @@ static void mix21toS_3dnow (sample_t * samples, sample_t bias)
"1: \n\t"
"movq 2048(%0, %%"REG_S"), %%mm0\n\t" // surround
"movq 2056(%0, %%"REG_S"), %%mm1\n\t" // surround
- "movq (%0, %%"REG_S"), %%mm2 \n\t"
+ "movq (%0, %%"REG_S"), %%mm2 \n\t"
"movq 8(%0, %%"REG_S"), %%mm3 \n\t"
"movq 1024(%0, %%"REG_S"), %%mm4\n\t"
"movq 1032(%0, %%"REG_S"), %%mm5\n\t"
@@ -1442,13 +1442,13 @@ static void mix31to2_3dnow (sample_t * samples, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
+ "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
"movq 1032(%0, %%"REG_S"), %%mm1\n\t"
- "pfadd 3072(%0, %%"REG_S"), %%mm0\n\t"
+ "pfadd 3072(%0, %%"REG_S"), %%mm0\n\t"
"pfadd 3080(%0, %%"REG_S"), %%mm1\n\t"
"pfadd %%mm7, %%mm0 \n\t" // common
"pfadd %%mm7, %%mm1 \n\t" // common
- "movq (%0, %%"REG_S"), %%mm2 \n\t"
+ "movq (%0, %%"REG_S"), %%mm2 \n\t"
"movq 8(%0, %%"REG_S"), %%mm3 \n\t"
"movq 2048(%0, %%"REG_S"), %%mm4\n\t"
"movq 2056(%0, %%"REG_S"), %%mm5\n\t"
@@ -1475,11 +1475,11 @@ static void mix31toS_3dnow (sample_t * samples, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
+ "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
"movq 1032(%0, %%"REG_S"), %%mm1\n\t"
"pfadd %%mm7, %%mm0 \n\t" // common
"pfadd %%mm7, %%mm1 \n\t" // common
- "movq (%0, %%"REG_S"), %%mm2 \n\t"
+ "movq (%0, %%"REG_S"), %%mm2 \n\t"
"movq 8(%0, %%"REG_S"), %%mm3 \n\t"
"movq 2048(%0, %%"REG_S"), %%mm4\n\t"
"movq 2056(%0, %%"REG_S"), %%mm5\n\t"
@@ -1512,11 +1512,11 @@ static void mix22toS_3dnow (sample_t * samples, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movq 2048(%0, %%"REG_S"), %%mm0\n\t"
+ "movq 2048(%0, %%"REG_S"), %%mm0\n\t"
"movq 2056(%0, %%"REG_S"), %%mm1\n\t"
"pfadd 3072(%0, %%"REG_S"), %%mm0\n\t" // surround
"pfadd 3080(%0, %%"REG_S"), %%mm1\n\t" // surround
- "movq (%0, %%"REG_S"), %%mm2 \n\t"
+ "movq (%0, %%"REG_S"), %%mm2 \n\t"
"movq 8(%0, %%"REG_S"), %%mm3 \n\t"
"movq 1024(%0, %%"REG_S"), %%mm4\n\t"
"movq 1032(%0, %%"REG_S"), %%mm5\n\t"
@@ -1547,19 +1547,19 @@ static void mix32to2_3dnow (sample_t * samples, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
+ "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
"movq 1032(%0, %%"REG_S"), %%mm1\n\t"
"pfadd %%mm7, %%mm0 \n\t" // common
"pfadd %%mm7, %%mm1 \n\t" // common
"movq %%mm0, %%mm2 \n\t" // common
"movq %%mm1, %%mm3 \n\t" // common
- "pfadd (%0, %%"REG_S"), %%mm0 \n\t"
+ "pfadd (%0, %%"REG_S"), %%mm0 \n\t"
"pfadd 8(%0, %%"REG_S"), %%mm1 \n\t"
- "pfadd 2048(%0, %%"REG_S"), %%mm2\n\t"
+ "pfadd 2048(%0, %%"REG_S"), %%mm2\n\t"
"pfadd 2056(%0, %%"REG_S"), %%mm3\n\t"
- "pfadd 3072(%0, %%"REG_S"), %%mm0\n\t"
+ "pfadd 3072(%0, %%"REG_S"), %%mm0\n\t"
"pfadd 3080(%0, %%"REG_S"), %%mm1\n\t"
- "pfadd 4096(%0, %%"REG_S"), %%mm2\n\t"
+ "pfadd 4096(%0, %%"REG_S"), %%mm2\n\t"
"pfadd 4104(%0, %%"REG_S"), %%mm3\n\t"
"movq %%mm0, (%0, %%"REG_S") \n\t"
"movq %%mm1, 8(%0, %%"REG_S") \n\t"
@@ -1581,25 +1581,25 @@ static void mix32toS_3dnow (sample_t * samples, sample_t bias)
"1: \n\t"
"movd %1, %%mm7 \n\t"
"punpckldq %1, %%mm7 \n\t"
- "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
+ "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
"movq 1032(%0, %%"REG_S"), %%mm1\n\t"
- "movq 3072(%0, %%"REG_S"), %%mm4\n\t"
+ "movq 3072(%0, %%"REG_S"), %%mm4\n\t"
"movq 3080(%0, %%"REG_S"), %%mm5\n\t"
"pfadd %%mm7, %%mm0 \n\t" // common
"pfadd %%mm7, %%mm1 \n\t" // common
- "pfadd 4096(%0, %%"REG_S"), %%mm4\n\t" // surround
+ "pfadd 4096(%0, %%"REG_S"), %%mm4\n\t" // surround
"pfadd 4104(%0, %%"REG_S"), %%mm5\n\t" // surround
- "movq (%0, %%"REG_S"), %%mm2 \n\t"
+ "movq (%0, %%"REG_S"), %%mm2 \n\t"
"movq 8(%0, %%"REG_S"), %%mm3 \n\t"
- "movq 2048(%0, %%"REG_S"), %%mm6\n\t"
+ "movq 2048(%0, %%"REG_S"), %%mm6\n\t"
"movq 2056(%0, %%"REG_S"), %%mm7\n\t"
- "pfsub %%mm4, %%mm2 \n\t"
+ "pfsub %%mm4, %%mm2 \n\t"
"pfsub %%mm5, %%mm3 \n\t"
- "pfadd %%mm4, %%mm6 \n\t"
+ "pfadd %%mm4, %%mm6 \n\t"
"pfadd %%mm5, %%mm7 \n\t"
- "pfadd %%mm0, %%mm2 \n\t"
+ "pfadd %%mm0, %%mm2 \n\t"
"pfadd %%mm1, %%mm3 \n\t"
- "pfadd %%mm0, %%mm6 \n\t"
+ "pfadd %%mm0, %%mm6 \n\t"
"pfadd %%mm1, %%mm7 \n\t"
"movq %%mm2, (%0, %%"REG_S") \n\t"
"movq %%mm3, 8(%0, %%"REG_S") \n\t"
@@ -1620,9 +1620,9 @@ static void move2to1_3dnow (sample_t * src, sample_t * dest, sample_t bias)
"mov $-1024, %%"REG_S" \n\t"
ASMALIGN(4)
"1: \n\t"
- "movq (%0, %%"REG_S"), %%mm0 \n\t"
+ "movq (%0, %%"REG_S"), %%mm0 \n\t"
"movq 8(%0, %%"REG_S"), %%mm1 \n\t"
- "movq 16(%0, %%"REG_S"), %%mm2 \n\t"
+ "movq 16(%0, %%"REG_S"), %%mm2 \n\t"
"movq 24(%0, %%"REG_S"), %%mm3 \n\t"
"pfadd 1024(%0, %%"REG_S"), %%mm0\n\t"
"pfadd 1032(%0, %%"REG_S"), %%mm1\n\t"
diff --git a/liba52/imdct.c b/liba52/imdct.c
index b813345537..089fa0acae 100644
--- a/liba52/imdct.c
+++ b/liba52/imdct.c
@@ -72,24 +72,24 @@ static const int pm128[128] attribute_used __attribute__((aligned(16))) =
5, 21, 37, 53, 69, 85, 101, 117, 13, 29, 45, 61, 77, 93, 109, 125,
3, 19, 35, 51, 67, 83, 99, 115, 11, 43, 75, 107, 27, 59, 91, 123,
7, 23, 39, 55, 71, 87, 103, 119, 15, 31, 47, 63, 79, 95, 111, 127
-};
+};
static uint8_t attribute_used bit_reverse_512[] = {
- 0x00, 0x40, 0x20, 0x60, 0x10, 0x50, 0x30, 0x70,
- 0x08, 0x48, 0x28, 0x68, 0x18, 0x58, 0x38, 0x78,
- 0x04, 0x44, 0x24, 0x64, 0x14, 0x54, 0x34, 0x74,
- 0x0c, 0x4c, 0x2c, 0x6c, 0x1c, 0x5c, 0x3c, 0x7c,
- 0x02, 0x42, 0x22, 0x62, 0x12, 0x52, 0x32, 0x72,
- 0x0a, 0x4a, 0x2a, 0x6a, 0x1a, 0x5a, 0x3a, 0x7a,
- 0x06, 0x46, 0x26, 0x66, 0x16, 0x56, 0x36, 0x76,
- 0x0e, 0x4e, 0x2e, 0x6e, 0x1e, 0x5e, 0x3e, 0x7e,
- 0x01, 0x41, 0x21, 0x61, 0x11, 0x51, 0x31, 0x71,
- 0x09, 0x49, 0x29, 0x69, 0x19, 0x59, 0x39, 0x79,
- 0x05, 0x45, 0x25, 0x65, 0x15, 0x55, 0x35, 0x75,
- 0x0d, 0x4d, 0x2d, 0x6d, 0x1d, 0x5d, 0x3d, 0x7d,
- 0x03, 0x43, 0x23, 0x63, 0x13, 0x53, 0x33, 0x73,
- 0x0b, 0x4b, 0x2b, 0x6b, 0x1b, 0x5b, 0x3b, 0x7b,
- 0x07, 0x47, 0x27, 0x67, 0x17, 0x57, 0x37, 0x77,
+ 0x00, 0x40, 0x20, 0x60, 0x10, 0x50, 0x30, 0x70,
+ 0x08, 0x48, 0x28, 0x68, 0x18, 0x58, 0x38, 0x78,
+ 0x04, 0x44, 0x24, 0x64, 0x14, 0x54, 0x34, 0x74,
+ 0x0c, 0x4c, 0x2c, 0x6c, 0x1c, 0x5c, 0x3c, 0x7c,
+ 0x02, 0x42, 0x22, 0x62, 0x12, 0x52, 0x32, 0x72,
+ 0x0a, 0x4a, 0x2a, 0x6a, 0x1a, 0x5a, 0x3a, 0x7a,
+ 0x06, 0x46, 0x26, 0x66, 0x16, 0x56, 0x36, 0x76,
+ 0x0e, 0x4e, 0x2e, 0x6e, 0x1e, 0x5e, 0x3e, 0x7e,
+ 0x01, 0x41, 0x21, 0x61, 0x11, 0x51, 0x31, 0x71,
+ 0x09, 0x49, 0x29, 0x69, 0x19, 0x59, 0x39, 0x79,
+ 0x05, 0x45, 0x25, 0x65, 0x15, 0x55, 0x35, 0x75,
+ 0x0d, 0x4d, 0x2d, 0x6d, 0x1d, 0x5d, 0x3d, 0x7d,
+ 0x03, 0x43, 0x23, 0x63, 0x13, 0x53, 0x33, 0x73,
+ 0x0b, 0x4b, 0x2b, 0x6b, 0x1b, 0x5b, 0x3b, 0x7b,
+ 0x07, 0x47, 0x27, 0x67, 0x17, 0x57, 0x37, 0x77,
0x0f, 0x4f, 0x2f, 0x6f, 0x1f, 0x5f, 0x3f, 0x7f};
static uint8_t fftorder[] = {
@@ -120,8 +120,8 @@ static sample_t __attribute__((aligned(16))) xcos1[128];
static sample_t __attribute__((aligned(16))) xsin1[128];
#if ARCH_X86 || ARCH_X86_64
-// NOTE: SSE needs 16byte alignment or it will segfault
-//
+// NOTE: SSE needs 16byte alignment or it will segfault
+//
static float __attribute__((aligned(16))) sseSinCos1c[256];
static float __attribute__((aligned(16))) sseSinCos1d[256];
static float attribute_used __attribute__((aligned(16))) ps111_1[4]={1,1,1,-1};
@@ -328,7 +328,7 @@ void imdct_do_512 (sample_t * data, sample_t * delay, sample_t bias)
sample_t t_r, t_i, a_r, a_i, b_r, b_i, w_1, w_2;
const sample_t * window = a52_imdct_window;
complex_t buf[128];
-
+
for (i = 0; i < 128; i++) {
k = fftorder[i];
t_r = pre1[i].real;
@@ -417,17 +417,17 @@ imdct_do_512_altivec(sample_t data[],sample_t delay[], sample_t bias)
sample_t *data_ptr;
sample_t *delay_ptr;
sample_t *window_ptr;
-
+
/* 512 IMDCT with source and dest data in 'data' */
-
+
/* Pre IFFT complex multiply plus IFFT cmplx conjugate & reordering*/
for( i=0; i < 128; i++) {
- /* z[i] = (X[256-2*i-1] + j * X[2*i]) * (xcos1[i] + j * xsin1[i]) ; */
+ /* z[i] = (X[256-2*i-1] + j * X[2*i]) * (xcos1[i] + j * xsin1[i]) ; */
int j= bit_reverse_512[i];
buf[i].real = (data[256-2*j-1] * xcos1[j]) - (data[2*j] * xsin1[j]);
buf[i].imag = -1.0 * ((data[2*j] * xcos1[j]) + (data[256-2*j-1] * xsin1[j]));
}
-
+
/* 1. iteration */
for(i = 0; i < 128; i += 2) {
#if 0
@@ -440,7 +440,7 @@ imdct_do_512_altivec(sample_t data[],sample_t delay[], sample_t bias)
buf[i+1].real = tmp_a_r - tmp_b_r;
buf[i+1].imag = tmp_a_i - tmp_b_i;
#else
- vector float temp, bufv;
+ vector float temp, bufv;
bufv = vec_ld(i << 3, (float*)buf);
temp = vec_perm(bufv, bufv, vcprm(2,3,0,1));
@@ -448,7 +448,7 @@ imdct_do_512_altivec(sample_t data[],sample_t delay[], sample_t bias)
vec_st(bufv, i << 3, (float*)buf);
#endif
}
-
+
/* 2. iteration */
// Note w[1]={{1,0}, {0,-1}}
for(i = 0; i < 128; i += 4) {
@@ -472,7 +472,7 @@ imdct_do_512_altivec(sample_t data[],sample_t delay[], sample_t bias)
buf[i+3].imag = tmp_a_i + tmp_b_i;
#else
vector float buf01, buf23, temp1, temp2;
-
+
buf01 = vec_ld((i + 0) << 3, (float*)buf);
buf23 = vec_ld((i + 2) << 3, (float*)buf);
buf23 = vec_perm(buf23,buf23,vcprm(0,1,3,2));
@@ -540,14 +540,14 @@ imdct_do_512_altivec(sample_t data[],sample_t delay[], sample_t bias)
buf45 = vec_ld((i + 4) << 3, (float*)buf);
buf67 = vec_ld((i + 6) << 3, (float*)buf);
buf67 = vec_perm(buf67, buf67, vcprm(1,0,2,3));
-
+
vec_st(vec_add(buf01, buf45), (i + 0) << 3, (float*)buf);
vec_st(vec_madd(buf67, vcii(p,n,p,p), buf23), (i + 2) << 3, (float*)buf);
vec_st(vec_sub(buf01, buf45), (i + 4) << 3, (float*)buf);
vec_st(vec_nmsub(buf67, vcii(p,n,p,p), buf23), (i + 6) << 3, (float*)buf);
#endif
}
-
+
/* 4-7. iterations */
for (m=3; m < 7; m++) {
two_m = (1 << m);
@@ -600,10 +600,10 @@ imdct_do_512_altivec(sample_t data[],sample_t delay[], sample_t bias)
vecq = vec_madd(temp4, vcii(n,p,n,p), temp3);
// then butterfly with buf[p] and buf[p+1]
vecp = vec_ld(p << 3, (float*)buf);
-
+
temp1 = vec_add(vecp, vecq);
temp2 = vec_sub(vecp, vecq);
-
+
vec_st(temp1, p << 3, (float*)buf);
vec_st(temp2, q << 3, (float*)buf);
#endif
@@ -660,7 +660,7 @@ imdct_do_512_altivec(sample_t data[],sample_t delay[], sample_t bias)
tempCS01 = vec_perm(cosv, sinv, vcprm(s0,0,s1,1));
temp2 = vec_madd(temp1133, tempCS01, vczero);
bufv_0 = vec_madd(temp2, vcii(p,n,p,n), temp1);
-
+
vec_st(bufv_0, (i + 0) << 3, (float*)buf);
/* idem with bufv_2 and high-order cosv/sinv */
@@ -674,36 +674,36 @@ imdct_do_512_altivec(sample_t data[],sample_t delay[], sample_t bias)
bufv_2 = vec_madd(temp2, vcii(p,n,p,n), temp1);
vec_st(bufv_2, (i + 2) << 3, (float*)buf);
-
+
#endif
}
-
+
data_ptr = data;
delay_ptr = delay;
window_ptr = a52_imdct_window;
/* Window and convert to real valued signal */
- for(i=0; i< 64; i++) {
- *data_ptr++ = -buf[64+i].imag * *window_ptr++ + *delay_ptr++ + bias;
- *data_ptr++ = buf[64-i-1].real * *window_ptr++ + *delay_ptr++ + bias;
+ for(i=0; i< 64; i++) {
+ *data_ptr++ = -buf[64+i].imag * *window_ptr++ + *delay_ptr++ + bias;
+ *data_ptr++ = buf[64-i-1].real * *window_ptr++ + *delay_ptr++ + bias;
}
-
- for(i=0; i< 64; i++) {
- *data_ptr++ = -buf[i].real * *window_ptr++ + *delay_ptr++ + bias;
- *data_ptr++ = buf[128-i-1].imag * *window_ptr++ + *delay_ptr++ + bias;
+
+ for(i=0; i< 64; i++) {
+ *data_ptr++ = -buf[i].real * *window_ptr++ + *delay_ptr++ + bias;
+ *data_ptr++ = buf[128-i-1].imag * *window_ptr++ + *delay_ptr++ + bias;
}
-
+
/* The trailing edge of the window goes into the delay line */
delay_ptr = delay;
- for(i=0; i< 64; i++) {
- *delay_ptr++ = -buf[64+i].real * *--window_ptr;
- *delay_ptr++ = buf[64-i-1].imag * *--window_ptr;
+ for(i=0; i< 64; i++) {
+ *delay_ptr++ = -buf[64+i].real * *--window_ptr;
+ *delay_ptr++ = buf[64-i-1].imag * *--window_ptr;
}
-
+
for(i=0; i<64; i++) {
- *delay_ptr++ = buf[i].imag * *--window_ptr;
- *delay_ptr++ = -buf[128-i-1].real * *--window_ptr;
+ *delay_ptr++ = buf[i].imag * *--window_ptr;
+ *delay_ptr++ = -buf[128-i-1].real * *--window_ptr;
}
}
#endif
@@ -716,8 +716,8 @@ imdct_do_512_altivec(sample_t data[],sample_t delay[], sample_t bias)
#define HAVE_AMD3DNOW 1
#include "srfftp_3dnow.h"
-const i_cmplx_t x_plus_minus_3dnow __attribute__ ((aligned (8))) = {{ 0x00000000UL, 0x80000000UL }};
-const i_cmplx_t x_minus_plus_3dnow __attribute__ ((aligned (8))) = {{ 0x80000000UL, 0x00000000UL }};
+const i_cmplx_t x_plus_minus_3dnow __attribute__ ((aligned (8))) = {{ 0x00000000UL, 0x80000000UL }};
+const i_cmplx_t x_minus_plus_3dnow __attribute__ ((aligned (8))) = {{ 0x80000000UL, 0x00000000UL }};
const complex_t HSQRT2_3DNOW __attribute__ ((aligned (8))) = { 0.707106781188, 0.707106781188 };
#undef HAVE_AMD3DNOWEXT
@@ -746,9 +746,9 @@ imdct_do_512_sse(sample_t data[],sample_t delay[], sample_t bias)
sample_t *data_ptr;
sample_t *delay_ptr;
sample_t *window_ptr;
-
+
/* 512 IMDCT with source and dest data in 'data' */
- /* see the c version (dct_do_512()), its allmost identical, just in C */
+ /* see the c version (dct_do_512()), its allmost identical, just in C */
/* Pre IFFT complex multiply plus IFFT cmplx conjugate */
/* Bit reversed shuffling */
@@ -809,7 +809,7 @@ imdct_do_512_sse(sample_t data[],sample_t delay[], sample_t bias)
}
}
*/
-
+
/* 1. iteration */
// Note w[0][0]={1,0}
__asm__ volatile(
@@ -831,7 +831,7 @@ imdct_do_512_sse(sample_t data[],sample_t delay[], sample_t bias)
:: "g" (buf), "r" (buf + 128)
: "%"REG_S
);
-
+
/* 2. iteration */
// Note w[1]={{1,0}, {0,-1}}
__asm__ volatile(
@@ -863,8 +863,8 @@ imdct_do_512_sse(sample_t data[],sample_t delay[], sample_t bias)
Note sseW2+48={1,-1,sqrt(2),-sqrt(2))
*/
__asm__ volatile(
- "movaps 48+"MANGLE(sseW2)", %%xmm6\n\t"
- "movaps 16+"MANGLE(sseW2)", %%xmm7\n\t"
+ "movaps 48+"MANGLE(sseW2)", %%xmm6\n\t"
+ "movaps 16+"MANGLE(sseW2)", %%xmm7\n\t"
"xorps %%xmm5, %%xmm5 \n\t"
"xorps %%xmm2, %%xmm2 \n\t"
"mov %0, %%"REG_S" \n\t"
@@ -890,10 +890,10 @@ imdct_do_512_sse(sample_t data[],sample_t delay[], sample_t bias)
"addps %%xmm1, %%xmm3 \n\t"
"subps %%xmm4, %%xmm0 \n\t"
"subps %%xmm5, %%xmm1 \n\t"
- "movaps %%xmm2, (%%"REG_S") \n\t"
- "movaps %%xmm3, 16(%%"REG_S") \n\t"
- "movaps %%xmm0, 32(%%"REG_S") \n\t"
- "movaps %%xmm1, 48(%%"REG_S") \n\t"
+ "movaps %%xmm2, (%%"REG_S") \n\t"
+ "movaps %%xmm3, 16(%%"REG_S") \n\t"
+ "movaps %%xmm0, 32(%%"REG_S") \n\t"
+ "movaps %%xmm1, 48(%%"REG_S") \n\t"
"add $64, %%"REG_S" \n\t"
"cmp %1, %%"REG_S" \n\t"
" jb 1b \n\t"
@@ -927,7 +927,7 @@ imdct_do_512_sse(sample_t data[],sample_t delay[], sample_t bias)
"movaps %%xmm1, (%%"REG_S", %%"REG_D") \n\t"
"movaps %%xmm0, (%%"REG_d", %%"REG_D") \n\t"
"add $16, %%"REG_D" \n\t"
- "cmp %3, %%"REG_D" \n\t" //FIXME (opt) count against 0
+ "cmp %3, %%"REG_D" \n\t" //FIXME (opt) count against 0
"jb 2b \n\t"
"add %2, %%"REG_S" \n\t"
"cmp %1, %%"REG_S" \n\t"
@@ -954,9 +954,9 @@ imdct_do_512_sse(sample_t data[],sample_t delay[], sample_t bias)
" jnz 1b \n\t"
:: "r" (buf+128)
: "%"REG_S
- );
+ );
+
-
data_ptr = data;
delay_ptr = delay;
window_ptr = a52_imdct_window;
@@ -980,7 +980,7 @@ imdct_do_512_sse(sample_t data[],sample_t delay[], sample_t bias)
"movaps %%xmm0, (%1, %%"REG_S") \n\t"
"add $16, %%"REG_S" \n\t"
"sub $16, %%"REG_D" \n\t"
- "cmp $512, %%"REG_S" \n\t"
+ "cmp $512, %%"REG_S" \n\t"
" jb 1b \n\t"
:: "r" (buf+64), "r" (data_ptr), "r" (delay_ptr), "m" (bias)
: "%"REG_S, "%"REG_D
@@ -988,7 +988,7 @@ imdct_do_512_sse(sample_t data[],sample_t delay[], sample_t bias)
data_ptr+=128;
delay_ptr+=128;
// window_ptr+=128;
-
+
__asm__ volatile(
"mov $1024, %%"REG_D" \n\t" // 512
"xor %%"REG_S", %%"REG_S" \n\t" // 0
@@ -1007,7 +1007,7 @@ imdct_do_512_sse(sample_t data[],sample_t delay[], sample_t bias)
"movaps %%xmm0, (%1, %%"REG_S") \n\t"
"add $16, %%"REG_S" \n\t"
"sub $16, %%"REG_D" \n\t"
- "cmp $512, %%"REG_S" \n\t"
+ "cmp $512, %%"REG_S" \n\t"
" jb 1b \n\t"
:: "r" (buf), "r" (data_ptr), "r" (delay_ptr), "m" (bias)
: "%"REG_S, "%"REG_D
@@ -1025,21 +1025,21 @@ imdct_do_512_sse(sample_t data[],sample_t delay[], sample_t bias)
"1: \n\t"
"movlps (%0, %%"REG_S"), %%xmm0 \n\t" // ? ? ? A
"movlps 8(%0, %%"REG_S"), %%xmm1 \n\t" // ? ? ? C
- "movhps -16(%0, %%"REG_D"), %%xmm1 \n\t" // D ? ? C
- "movhps -8(%0, %%"REG_D"), %%xmm0 \n\t" // B ? ? A
+ "movhps -16(%0, %%"REG_D"), %%xmm1 \n\t" // D ? ? C
+ "movhps -8(%0, %%"REG_D"), %%xmm0 \n\t" // B ? ? A
"shufps $0xCC, %%xmm1, %%xmm0 \n\t" // D C B A
"mulps 1024+"MANGLE(sseWindow)"(%%"REG_S"), %%xmm0\n\t"
"movaps %%xmm0, (%1, %%"REG_S") \n\t"
"add $16, %%"REG_S" \n\t"
"sub $16, %%"REG_D" \n\t"
- "cmp $512, %%"REG_S" \n\t"
+ "cmp $512, %%"REG_S" \n\t"
" jb 1b \n\t"
:: "r" (buf+64), "r" (delay_ptr)
: "%"REG_S, "%"REG_D
);
delay_ptr+=128;
// window_ptr-=128;
-
+
__asm__ volatile(
"mov $1024, %%"REG_D" \n\t" // 1024
"xor %%"REG_S", %%"REG_S" \n\t" // 0
@@ -1047,14 +1047,14 @@ imdct_do_512_sse(sample_t data[],sample_t delay[], sample_t bias)
"1: \n\t"
"movlps (%0, %%"REG_S"), %%xmm0 \n\t" // ? ? A ?
"movlps 8(%0, %%"REG_S"), %%xmm1 \n\t" // ? ? C ?
- "movhps -16(%0, %%"REG_D"), %%xmm1 \n\t" // ? D C ?
- "movhps -8(%0, %%"REG_D"), %%xmm0 \n\t" // ? B A ?
+ "movhps -16(%0, %%"REG_D"), %%xmm1 \n\t" // ? D C ?
+ "movhps -8(%0, %%"REG_D"), %%xmm0 \n\t" // ? B A ?
"shufps $0x99, %%xmm1, %%xmm0 \n\t" // D C B A
"mulps 1536+"MANGLE(sseWindow)"(%%"REG_S"), %%xmm0\n\t"
"movaps %%xmm0, (%1, %%"REG_S") \n\t"
"add $16, %%"REG_S" \n\t"
"sub $16, %%"REG_D" \n\t"
- "cmp $512, %%"REG_S" \n\t"
+ "cmp $512, %%"REG_S" \n\t"
" jb 1b \n\t"
:: "r" (buf), "r" (delay_ptr)
: "%"REG_S, "%"REG_D
@@ -1088,7 +1088,7 @@ void a52_imdct_256(sample_t * data, sample_t * delay, sample_t bias)
/* Post IFFT complex multiply */
/* Window and convert to real valued signal */
for (i = 0; i < 32; i++) {
- /* y1[n] = z1[n] * (xcos2[n] + j * xs in2[n]) ; */
+ /* y1[n] = z1[n] * (xcos2[n] + j * xs in2[n]) ; */
t_r = post2[i].real;
t_i = post2[i].imag;
@@ -1209,12 +1209,12 @@ void a52_imdct_init (uint32_t mm_accel)
sseSinCos1c[2*i+0]= xcos1[i];
sseSinCos1c[2*i+1]= -xcos1[i];
sseSinCos1d[2*i+0]= xsin1[i];
- sseSinCos1d[2*i+1]= xsin1[i];
+ sseSinCos1d[2*i+1]= xsin1[i];
}
for (i = 1; i < 7; i++) {
j = 1 << i;
for (k = 0; k < j; k+=2) {
-
+
sseW[i][4*k + 0] = w[i][k+0].real;
sseW[i][4*k + 1] = w[i][k+0].real;
sseW[i][4*k + 2] = w[i][k+1].real;
@@ -1223,15 +1223,15 @@ void a52_imdct_init (uint32_t mm_accel)
sseW[i][4*k + 4] = -w[i][k+0].imag;
sseW[i][4*k + 5] = w[i][k+0].imag;
sseW[i][4*k + 6] = -w[i][k+1].imag;
- sseW[i][4*k + 7] = w[i][k+1].imag;
-
+ sseW[i][4*k + 7] = w[i][k+1].imag;
+
//we multiply more or less uninitalized numbers so we need to use exactly 0.0
if(k==0)
{
// sseW[i][4*k + 0]= sseW[i][4*k + 1]= 1.0;
sseW[i][4*k + 4]= sseW[i][4*k + 5]= 0.0;
}
-
+
if(2*k == j)
{
sseW[i][4*k + 0]= sseW[i][4*k + 1]= 0.0;
@@ -1243,9 +1243,9 @@ void a52_imdct_init (uint32_t mm_accel)
for(i=0; i<128; i++)
{
sseWindow[2*i+0]= -a52_imdct_window[2*i+0];
- sseWindow[2*i+1]= a52_imdct_window[2*i+1];
+ sseWindow[2*i+1]= a52_imdct_window[2*i+1];
}
-
+
for(i=0; i<64; i++)
{
sseWindow[256 + 2*i+0]= -a52_imdct_window[254 - 2*i+1];
diff --git a/liba52/imdct_3dnow.h b/liba52/imdct_3dnow.h
index 1c13f06870..e8a91d11a4 100644
--- a/liba52/imdct_3dnow.h
+++ b/liba52/imdct_3dnow.h
@@ -43,7 +43,7 @@
static void FFT_4_3DNOW(complex_t *x)
{
/* delta_p = 1 here */
- /* x[k] = sum_{i=0..3} x[i] * w^{i*k}, w=e^{-2*pi/4}
+ /* x[k] = sum_{i=0..3} x[i] * w^{i*k}, w=e^{-2*pi/4}
*/
__asm__ volatile(
"movq 24(%1), %%mm3\n\t"
@@ -86,10 +86,10 @@ static void FFT_4_3DNOW(complex_t *x)
static void FFT_8_3DNOW(complex_t *x)
{
/* delta_p = diag{1, sqrt(i)} here */
- /* x[k] = sum_{i=0..7} x[i] * w^{i*k}, w=e^{-2*pi/8}
+ /* x[k] = sum_{i=0..7} x[i] * w^{i*k}, w=e^{-2*pi/8}
*/
complex_t wT1, wB1, wB2;
-
+
__asm__ volatile(
"movq 8(%2), %%mm0\n\t"
"movq 24(%2), %%mm1\n\t"
@@ -111,9 +111,9 @@ static void FFT_8_3DNOW(complex_t *x)
:"memory");
fft_4_3dnow(&x[0]);
-
+
/* x[0] x[4] x[2] x[6] */
-
+
__asm__ volatile(
"movq 40(%1), %%mm0\n\t"
"movq %%mm0, %%mm3\n\t"
@@ -151,7 +151,7 @@ static void FFT_8_3DNOW(complex_t *x)
:"=r"(x)
:"0"(x), "r"(&wT1), "r"(&wB1)
:"memory");
-
+
/* x[1] x[5] */
__asm__ volatile (
"movq %6, %%mm6\n\t"
@@ -180,7 +180,7 @@ static void FFT_8_3DNOW(complex_t *x)
"pxor %%mm6, %%mm1\n\t"
"pfacc %%mm1, %%mm0\n\t"
"pfmul %4, %%mm0\n\t"
-
+
"movq 40(%3), %%mm5\n\t"
#if HAVE_AMD3DNOWEXT
"pswapd %%mm5, %%mm5\n\t"
@@ -189,7 +189,7 @@ static void FFT_8_3DNOW(complex_t *x)
"punpckhdq %%mm1, %%mm5\n\t"
#endif
"movq %%mm5, %0\n\t"
-
+
"movq 8(%3), %%mm1\n\t"
"movq %%mm1, %%mm2\n\t"
"pfsub %%mm0, %%mm1\n\t"
@@ -197,7 +197,7 @@ static void FFT_8_3DNOW(complex_t *x)
"movq %%mm1, 40(%3)\n\t"
"movq %%mm2, 8(%3)\n\t"
:"=m"(wB2)
- :"m"(wT1), "m"(wB1), "r"(x), "m"(HSQRT2_3DNOW),
+ :"m"(wT1), "m"(wB1), "r"(x), "m"(HSQRT2_3DNOW),
"m"(x_plus_minus_3dnow), "m"(x_minus_plus_3dnow)
:"memory");
@@ -212,7 +212,7 @@ static void FFT_8_3DNOW(complex_t *x)
"punpckldq %%mm1, %%mm2\n\t"
"punpckhdq %%mm2, %%mm1\n\t"
#endif
- "pxor %%mm6, %%mm1\n\t"
+ "pxor %%mm6, %%mm1\n\t"
"pfadd %%mm1, %%mm0\n\t"
"movq %2, %%mm2\n\t"
"movq 56(%4), %%mm3\n\t"
@@ -253,10 +253,10 @@ static void FFT_ASMB_3DNOW(int k, complex_t *x, complex_t *wTB,
x3k = x2k + 2 * k;
x4k = x3k + 2 * k;
wB = wTB + 2 * k;
-
+
TRANSZERO_3DNOW(x[0],x2k[0],x3k[0],x4k[0]);
TRANS_3DNOW(x[1],x2k[1],x3k[1],x4k[1],wTB[1],wB[1],d[1],d_3[1]);
-
+
--k;
for(;;) {
TRANS_3DNOW(x[2],x2k[2],x3k[2],x4k[2],wTB[2],wB[2],d[2],d_3[2]);
@@ -271,7 +271,7 @@ static void FFT_ASMB_3DNOW(int k, complex_t *x, complex_t *wTB,
wTB += 2;
wB += 2;
}
-
+
}
void FFT_ASMB16_3DNOW(complex_t *x, complex_t *wTB)
@@ -291,13 +291,13 @@ void FFT_ASMB16_3DNOW(complex_t *x, complex_t *wTB)
/* transform x[3], x[11], x[7], x[15] */
TRANS_3DNOW(x[3],x[7],x[11],x[15],wTB[3],wTB[7],delta16[3],delta16_3[3]);
-}
+}
static void FFT_128P_3DNOW(complex_t *a)
{
FFT_8_3DNOW(&a[0]); FFT_4_3DNOW(&a[8]); FFT_4_3DNOW(&a[12]);
FFT_ASMB16_3DNOW(&a[0], &a[8]);
-
+
FFT_8_3DNOW(&a[16]), FFT_8_3DNOW(&a[24]);
FFT_ASMB_3DNOW(4, &a[0], &a[16],&delta32[0], &delta32_3[0]);
@@ -314,7 +314,7 @@ static void FFT_128P_3DNOW(complex_t *a)
FFT_ASMB16_3DNOW(&a[64], &a[72]);
FFT_8_3DNOW(&a[80]); FFT_8_3DNOW(&a[88]);
-
+
/* FFT_32(&a[64]); */
FFT_ASMB_3DNOW(4, &a[64], &a[80],&delta32[0], &delta32_3[0]);
@@ -325,7 +325,7 @@ static void FFT_128P_3DNOW(complex_t *a)
FFT_8_3DNOW(&a[112]), FFT_8_3DNOW(&a[120]);
/* FFT_32(&a[96]); */
FFT_ASMB_3DNOW(4, &a[96], &a[112], &delta32[0], &delta32_3[0]);
-
+
/* FFT_128(&a[0]); */
FFT_ASMB_3DNOW(16, &a[0], &a[64], &delta128[0], &delta128_3[0]);
}
@@ -353,9 +353,9 @@ imdct_do_512_3dnow
sample_t *data_ptr;
sample_t *delay_ptr;
sample_t *window_ptr;
-
+
/* 512 IMDCT with source and dest data in 'data' */
-
+
/* Pre IFFT complex multiply plus IFFT cmplx conjugate & reordering*/
#if 1
__asm__ volatile (
@@ -396,7 +396,7 @@ imdct_do_512_3dnow
#else
__asm__ volatile ("femms":::"memory");
for( i=0; i < 128; i++) {
- /* z[i] = (X[256-2*i-1] + j * X[2*i]) * (xcos1[i] + j * xsin1[i]) ; */
+ /* z[i] = (X[256-2*i-1] + j * X[2*i]) * (xcos1[i] + j * xsin1[i]) ; */
int j= pm128[i];
buf[i].real = (data[256-2*j-1] * xcos1[j]) - (data[2*j] * xsin1[j]);
buf[i].imag = -1.0 * ((data[2*j] * xcos1[j]) + (data[256-2*j-1] * xsin1[j]));
@@ -432,9 +432,9 @@ imdct_do_512_3dnow
FFT_128P_3DNOW (&buf[0]);
// __asm__ volatile ("femms \n\t":::"memory");
-
+
/* Post IFFT complex multiply plus IFFT complex conjugate*/
-#if 1
+#if 1
__asm__ volatile (
"movq %0, %%mm7\n\t"
"movq %1, %%mm6\n\t"
@@ -448,9 +448,9 @@ imdct_do_512_3dnow
#if !HAVE_AMD3DNOWEXT
"punpckldq %%mm1, %%mm2\n\t"
"punpckhdq %%mm2, %%mm1\n\t"
-#else
+#else
"pswapd %%mm1, %%mm1\n\t" /* ac3_buf[i].re | ac3_buf[i].im */
-#endif
+#endif
"movd %3, %%mm3\n\t" /* ac3_xsin[i] */
"punpckldq %2, %%mm3\n\t" /* ac3_xsin[i] | ac3_xcos[i] */
"pfmul %%mm3, %%mm0\n\t"
@@ -472,7 +472,7 @@ imdct_do_512_3dnow
/* ac3_buf[i].re =(tmp_a_r * ac3_xcos1[i]) + (tmp_a_i * ac3_xsin1[i]);
ac3_buf[i].im =(tmp_a_r * ac3_xsin1[i]) - (tmp_a_i * ac3_xcos1[i]);*/
}
-#else
+#else
__asm__ volatile ("femms":::"memory");
for( i=0; i < 128; i++) {
/* y[n] = z[n] * (xcos1[n] + j * xsin1[n]) ; */
@@ -482,7 +482,7 @@ imdct_do_512_3dnow
buf[i].imag =(tmp_a_r * xsin1[i]) + (tmp_a_i * xcos1[i]);
}
#endif
-
+
data_ptr = data;
delay_ptr = delay;
window_ptr = a52_imdct_window;
@@ -519,16 +519,16 @@ imdct_do_512_3dnow
delay_ptr += 2;
}
window_ptr += 128;
-#else
+#else
__asm__ volatile ("femms":::"memory");
- for(i=0; i< 64; i++) {
- *data_ptr++ = -buf[64+i].imag * *window_ptr++ + *delay_ptr++ + bias;
- *data_ptr++ = buf[64-i-1].real * *window_ptr++ + *delay_ptr++ + bias;
+ for(i=0; i< 64; i++) {
+ *data_ptr++ = -buf[64+i].imag * *window_ptr++ + *delay_ptr++ + bias;
+ *data_ptr++ = buf[64-i-1].real * *window_ptr++ + *delay_ptr++ + bias;
}
-
- for(i=0; i< 64; i++) {
- *data_ptr++ = -buf[i].real * *window_ptr++ + *delay_ptr++ + bias;
- *data_ptr++ = buf[128-i-1].imag * *window_ptr++ + *delay_ptr++ + bias;
+
+ for(i=0; i< 64; i++) {
+ *data_ptr++ = -buf[i].real * *window_ptr++ + *delay_ptr++ + bias;
+ *data_ptr++ = buf[128-i-1].imag * *window_ptr++ + *delay_ptr++ + bias;
}
#endif
@@ -566,16 +566,16 @@ imdct_do_512_3dnow
delay_ptr += 2;
}
__asm__ volatile ("femms":::"memory");
-#else
+#else
__asm__ volatile ("femms":::"memory");
- for(i=0; i< 64; i++) {
- *delay_ptr++ = -buf[64+i].real * *--window_ptr;
- *delay_ptr++ = buf[64-i-1].imag * *--window_ptr;
+ for(i=0; i< 64; i++) {
+ *delay_ptr++ = -buf[64+i].real * *--window_ptr;
+ *delay_ptr++ = buf[64-i-1].imag * *--window_ptr;
}
-
+
for(i=0; i<64; i++) {
- *delay_ptr++ = buf[i].imag * *--window_ptr;
- *delay_ptr++ = -buf[128-i-1].real * *--window_ptr;
+ *delay_ptr++ = buf[i].imag * *--window_ptr;
+ *delay_ptr++ = -buf[128-i-1].real * *--window_ptr;
}
-#endif
+#endif
}
diff --git a/liba52/liba52_changes.diff b/liba52/liba52_changes.diff
index f00bb444d2..1b3574f043 100644
--- a/liba52/liba52_changes.diff
+++ b/liba52/liba52_changes.diff
@@ -3,7 +3,7 @@
@@ -59,4 +66,9 @@
int a52_block (a52_state_t * state);
void a52_free (a52_state_t * state);
-
+
+void* a52_resample_init(uint32_t mm_accel,int flags,int chans);
+extern int (* a52_resample) (float * _f, int16_t * s16);
+
@@ -15,7 +15,7 @@
@@ -103,18 +107,34 @@
#define DELTA_BIT_NONE (2)
#define DELTA_BIT_RESERVED (3)
-
+
+#if ARCH_X86_64
+# define REG_a "rax"
+# define REG_d "rdx"
@@ -33,7 +33,7 @@
void a52_bit_allocate (a52_state_t * state, ba_t * ba, int bndstart,
int start, int end, int fastleak, int slowleak,
expbap_t * expbap);
-
+
int a52_downmix_init (int input, int flags, sample_t * level,
sample_t clev, sample_t slev);
+void downmix_accel_init(uint32_t mm_accel);
@@ -44,7 +44,7 @@
sample_t clev, sample_t slev);
-void a52_upmix (sample_t * samples, int acmod, int output);
+extern void (*a52_upmix) (sample_t * samples, int acmod, int output);
-
+
void a52_imdct_init (uint32_t mm_accel);
void a52_imdct_256 (sample_t * data, sample_t * delay, sample_t bias);
-void a52_imdct_512 (sample_t * data, sample_t * delay, sample_t bias);
@@ -53,9 +53,9 @@
--- liba52/bitstream.c 2006-06-12 15:05:07.000000000 +0200
+++ liba52/bitstream.c 2006-06-05 02:23:02.000000000 +0200
@@ -31,6 +35,10 @@
-
+
#define BUFFER_SIZE 4096
-
+
+#ifdef ALT_BITSTREAM_READER
+int indx=0;
+#endif
@@ -72,13 +72,13 @@
+#endif
bitstream_get (state, align * 8);
}
-
+
--- liba52/bitstream.h 2006-06-12 15:05:07.000000000 +0200
+++ liba52/bitstream.h 2006-06-05 02:23:02.000000000 +0200
@@ -21,6 +25,42 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-
+
+/* code from ffmpeg/libavcodec */
+#if defined(__sparc__) || defined(hpux)
+/*
@@ -117,20 +117,20 @@
+
/* (stolen from the kernel) */
#ifdef WORDS_BIGENDIAN
-
+
@@ -28,7 +68,7 @@
-
+
#else
-
+
-# if 0 && defined (__i386__)
+# if defined (__i386__)
-
+
# define swab32(x) __i386_swab32(x)
static inline const uint32_t __i386_swab32(uint32_t x)
@@ -39,19 +79,34 @@
-
+
# else
-
+
-# define swab32(x)\
-((((uint8_t*)&x)[0] << 24) | (((uint8_t*)&x)[1] << 16) | \
- (((uint8_t*)&x)[2] << 8) | (((uint8_t*)&x)[3]))
@@ -143,7 +143,7 @@
+ }
# endif
#endif
-
+
+#ifdef ALT_BITSTREAM_READER
+extern int indx;
+#endif
@@ -151,7 +151,7 @@
void a52_bitstream_set_ptr (a52_state_t * state, uint8_t * buf);
uint32_t a52_bitstream_get_bh (a52_state_t * state, uint32_t num_bits);
int32_t a52_bitstream_get_bh_2 (a52_state_t * state, uint32_t num_bits);
-
+
static inline uint32_t bitstream_get (a52_state_t * state, uint32_t num_bits)
{
+#ifdef ALT_BITSTREAM_READER
@@ -160,15 +160,15 @@
+ result<<= (indx&0x07);
+ result>>= 32 - num_bits;
+ indx+= num_bits;
-+
++
+ return result;
+#else
uint32_t result;
-
+
if (num_bits < state->bits_left) {
@@ -61,10 +116,29 @@
}
-
+
return a52_bitstream_get_bh (state, num_bits);
+#endif
+}
@@ -181,7 +181,7 @@
+ bitstream_get(state, num_bits);
+#endif
}
-
+
static inline int32_t bitstream_get_2 (a52_state_t * state, uint32_t num_bits)
{
+#ifdef ALT_BITSTREAM_READER
@@ -190,15 +190,15 @@
+ result<<= (indx&0x07);
+ result>>= 32 - num_bits;
+ indx+= num_bits;
-+
++
+ return result;
+#else
int32_t result;
-
+
if (num_bits < state->bits_left) {
@@ -74,4 +148,5 @@
}
-
+
return a52_bitstream_get_bh_2 (state, num_bits);
+#endif
}
@@ -211,18 +211,18 @@
+ *
+ * SSE optimizations from Michael Niedermayer (michaelni@gmx.at)
*/
-
+
#include "config.h"
-
+
#include <string.h>
#include <inttypes.h>
-
+
#include "a52.h"
#include "a52_internal.h"
+#include "mm_accel.h"
-
+
#define CONVERT(acmod,output) (((output) << 3) + (acmod))
-
+
+
+void (*a52_downmix)(sample_t * samples, int acmod, int output, sample_t bias,
+ sample_t clev, sample_t slev)= NULL;
@@ -247,14 +247,14 @@
+ if(mm_accel & MM_ACCEL_X86_3DNOW) a52_downmix= downmix_3dnow;
+#endif
+}
-+
++
int a52_downmix_init (int input, int flags, sample_t * level,
sample_t clev, sample_t slev)
{
@@ -447,7 +479,7 @@
samples[i] = 0;
}
-
+
-void a52_downmix (sample_t * samples, int acmod, int output, sample_t bias,
+void downmix_C (sample_t * samples, int acmod, int output, sample_t bias,
sample_t clev, sample_t slev)
@@ -262,28 +262,28 @@
switch (CONVERT (acmod, output & A52_CHANNEL_MASK)) {
@@ -559,7 +591,7 @@
break;
-
+
case CONVERT (A52_3F2R, A52_2F1R):
- mix3to2 (samples, bias);
+ mix3to2 (samples, bias); //FIXME possible bug? (output doesnt seem to be used)
move2to1 (samples + 768, samples + 512, bias);
break;
-
+
@@ -583,12 +615,12 @@
break;
-
+
case CONVERT (A52_3F1R, A52_3F2R):
- memcpy (samples + 1027, samples + 768, 256 * sizeof (sample_t));
+ memcpy (samples + 1024, samples + 768, 256 * sizeof (sample_t));
break;
}
}
-
+
-void a52_upmix (sample_t * samples, int acmod, int output)
+void upmix_C (sample_t * samples, int acmod, int output)
{
switch (CONVERT (acmod, output & A52_CHANNEL_MASK)) {
-
+
@@ -653,3 +685,1104 @@
goto mix_31to21;
}
@@ -298,10 +298,10 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
-+ "movaps 16(%0, %%"REG_S"), %%xmm1\n\t"
-+ "addps (%1, %%"REG_S"), %%xmm0 \n\t"
-+ "addps 16(%1, %%"REG_S"), %%xmm1\n\t"
++ "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
++ "movaps 16(%0, %%"REG_S"), %%xmm1\n\t"
++ "addps (%1, %%"REG_S"), %%xmm0 \n\t"
++ "addps 16(%1, %%"REG_S"), %%xmm1\n\t"
+ "addps %%xmm7, %%xmm0 \n\t"
+ "addps %%xmm7, %%xmm1 \n\t"
+ "movaps %%xmm0, (%1, %%"REG_S") \n\t"
@@ -321,9 +321,9 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
-+ "movaps 1024(%0, %%"REG_S"), %%xmm1\n\t"
-+ "addps 2048(%0, %%"REG_S"), %%xmm0\n\t"
++ "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
++ "movaps 1024(%0, %%"REG_S"), %%xmm1\n\t"
++ "addps 2048(%0, %%"REG_S"), %%xmm0\n\t"
+ "addps %%xmm7, %%xmm1 \n\t"
+ "addps %%xmm1, %%xmm0 \n\t"
+ "movaps %%xmm0, (%0, %%"REG_S") \n\t"
@@ -342,10 +342,10 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
-+ "movaps 1024(%0, %%"REG_S"), %%xmm1\n\t"
-+ "addps 2048(%0, %%"REG_S"), %%xmm0\n\t"
-+ "addps 3072(%0, %%"REG_S"), %%xmm1\n\t"
++ "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
++ "movaps 1024(%0, %%"REG_S"), %%xmm1\n\t"
++ "addps 2048(%0, %%"REG_S"), %%xmm0\n\t"
++ "addps 3072(%0, %%"REG_S"), %%xmm1\n\t"
+ "addps %%xmm7, %%xmm0 \n\t"
+ "addps %%xmm1, %%xmm0 \n\t"
+ "movaps %%xmm0, (%0, %%"REG_S") \n\t"
@@ -364,12 +364,12 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
-+ "movaps 1024(%0, %%"REG_S"), %%xmm1\n\t"
-+ "addps 2048(%0, %%"REG_S"), %%xmm0\n\t"
-+ "addps 3072(%0, %%"REG_S"), %%xmm1\n\t"
++ "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
++ "movaps 1024(%0, %%"REG_S"), %%xmm1\n\t"
++ "addps 2048(%0, %%"REG_S"), %%xmm0\n\t"
++ "addps 3072(%0, %%"REG_S"), %%xmm1\n\t"
+ "addps %%xmm7, %%xmm0 \n\t"
-+ "addps 4096(%0, %%"REG_S"), %%xmm1\n\t"
++ "addps 4096(%0, %%"REG_S"), %%xmm1\n\t"
+ "addps %%xmm1, %%xmm0 \n\t"
+ "movaps %%xmm0, (%0, %%"REG_S") \n\t"
+ "add $16, %%"REG_S" \n\t"
@@ -387,9 +387,9 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
++ "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
+ "addps %%xmm7, %%xmm0 \n\t" //common
-+ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
++ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
+ "movaps 2048(%0, %%"REG_S"), %%xmm2\n\t"
+ "addps %%xmm0, %%xmm1 \n\t"
+ "addps %%xmm0, %%xmm2 \n\t"
@@ -410,9 +410,9 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movaps 1024(%1, %%"REG_S"), %%xmm0\n\t"
++ "movaps 1024(%1, %%"REG_S"), %%xmm0\n\t"
+ "addps %%xmm7, %%xmm0 \n\t" //common
-+ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
++ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
+ "movaps (%1, %%"REG_S"), %%xmm2 \n\t"
+ "addps %%xmm0, %%xmm1 \n\t"
+ "addps %%xmm0, %%xmm2 \n\t"
@@ -434,7 +434,7 @@
+ ASMALIGN(4)
+ "1: \n\t"
+ "movaps 2048(%0, %%"REG_S"), %%xmm0\n\t" // surround
-+ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
++ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
+ "movaps 1024(%0, %%"REG_S"), %%xmm2\n\t"
+ "addps %%xmm7, %%xmm1 \n\t"
+ "addps %%xmm7, %%xmm2 \n\t"
@@ -457,10 +457,10 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
-+ "addps 3072(%0, %%"REG_S"), %%xmm0\n\t"
++ "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
++ "addps 3072(%0, %%"REG_S"), %%xmm0\n\t"
+ "addps %%xmm7, %%xmm0 \n\t" // common
-+ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
++ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
+ "movaps 2048(%0, %%"REG_S"), %%xmm2\n\t"
+ "addps %%xmm0, %%xmm1 \n\t"
+ "addps %%xmm0, %%xmm2 \n\t"
@@ -481,10 +481,10 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
++ "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
+ "movaps 3072(%0, %%"REG_S"), %%xmm3\n\t" // surround
+ "addps %%xmm7, %%xmm0 \n\t" // common
-+ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
++ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
+ "movaps 2048(%0, %%"REG_S"), %%xmm2\n\t"
+ "addps %%xmm0, %%xmm1 \n\t"
+ "addps %%xmm0, %%xmm2 \n\t"
@@ -507,9 +507,9 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movaps 2048(%0, %%"REG_S"), %%xmm0\n\t"
++ "movaps 2048(%0, %%"REG_S"), %%xmm0\n\t"
+ "addps 3072(%0, %%"REG_S"), %%xmm0\n\t" // surround
-+ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
++ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
+ "movaps 1024(%0, %%"REG_S"), %%xmm2\n\t"
+ "addps %%xmm7, %%xmm1 \n\t"
+ "addps %%xmm7, %%xmm2 \n\t"
@@ -532,13 +532,13 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
++ "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
+ "addps %%xmm7, %%xmm0 \n\t" // common
+ "movaps %%xmm0, %%xmm1 \n\t" // common
-+ "addps (%0, %%"REG_S"), %%xmm0 \n\t"
-+ "addps 2048(%0, %%"REG_S"), %%xmm1\n\t"
-+ "addps 3072(%0, %%"REG_S"), %%xmm0\n\t"
-+ "addps 4096(%0, %%"REG_S"), %%xmm1\n\t"
++ "addps (%0, %%"REG_S"), %%xmm0 \n\t"
++ "addps 2048(%0, %%"REG_S"), %%xmm1\n\t"
++ "addps 3072(%0, %%"REG_S"), %%xmm0\n\t"
++ "addps 4096(%0, %%"REG_S"), %%xmm1\n\t"
+ "movaps %%xmm0, (%0, %%"REG_S") \n\t"
+ "movaps %%xmm1, 1024(%0, %%"REG_S")\n\t"
+ "add $16, %%"REG_S" \n\t"
@@ -556,16 +556,16 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
-+ "movaps 3072(%0, %%"REG_S"), %%xmm2\n\t"
++ "movaps 1024(%0, %%"REG_S"), %%xmm0\n\t"
++ "movaps 3072(%0, %%"REG_S"), %%xmm2\n\t"
+ "addps %%xmm7, %%xmm0 \n\t" // common
-+ "addps 4096(%0, %%"REG_S"), %%xmm2\n\t" // surround
-+ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
-+ "movaps 2048(%0, %%"REG_S"), %%xmm3\n\t"
-+ "subps %%xmm2, %%xmm1 \n\t"
-+ "addps %%xmm2, %%xmm3 \n\t"
-+ "addps %%xmm0, %%xmm1 \n\t"
-+ "addps %%xmm0, %%xmm3 \n\t"
++ "addps 4096(%0, %%"REG_S"), %%xmm2\n\t" // surround
++ "movaps (%0, %%"REG_S"), %%xmm1 \n\t"
++ "movaps 2048(%0, %%"REG_S"), %%xmm3\n\t"
++ "subps %%xmm2, %%xmm1 \n\t"
++ "addps %%xmm2, %%xmm3 \n\t"
++ "addps %%xmm0, %%xmm1 \n\t"
++ "addps %%xmm0, %%xmm3 \n\t"
+ "movaps %%xmm1, (%0, %%"REG_S") \n\t"
+ "movaps %%xmm3, 1024(%0, %%"REG_S")\n\t"
+ "add $16, %%"REG_S" \n\t"
@@ -583,8 +583,8 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
-+ "movaps 16(%0, %%"REG_S"), %%xmm1\n\t"
++ "movaps (%0, %%"REG_S"), %%xmm0 \n\t"
++ "movaps 16(%0, %%"REG_S"), %%xmm1\n\t"
+ "addps 1024(%0, %%"REG_S"), %%xmm0\n\t"
+ "addps 1040(%0, %%"REG_S"), %%xmm1\n\t"
+ "addps %%xmm7, %%xmm0 \n\t"
@@ -832,13 +832,13 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movq (%0, %%"REG_S"), %%mm0 \n\t"
++ "movq (%0, %%"REG_S"), %%mm0 \n\t"
+ "movq 8(%0, %%"REG_S"), %%mm1 \n\t"
-+ "movq 16(%0, %%"REG_S"), %%mm2 \n\t"
++ "movq 16(%0, %%"REG_S"), %%mm2 \n\t"
+ "movq 24(%0, %%"REG_S"), %%mm3 \n\t"
-+ "pfadd (%1, %%"REG_S"), %%mm0 \n\t"
++ "pfadd (%1, %%"REG_S"), %%mm0 \n\t"
+ "pfadd 8(%1, %%"REG_S"), %%mm1 \n\t"
-+ "pfadd 16(%1, %%"REG_S"), %%mm2 \n\t"
++ "pfadd 16(%1, %%"REG_S"), %%mm2 \n\t"
+ "pfadd 24(%1, %%"REG_S"), %%mm3 \n\t"
+ "pfadd %%mm7, %%mm0 \n\t"
+ "pfadd %%mm7, %%mm1 \n\t"
@@ -863,11 +863,11 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movq (%0, %%"REG_S"), %%mm0 \n\t"
++ "movq (%0, %%"REG_S"), %%mm0 \n\t"
+ "movq 8(%0, %%"REG_S"), %%mm1 \n\t"
-+ "movq 1024(%0, %%"REG_S"), %%mm2\n\t"
++ "movq 1024(%0, %%"REG_S"), %%mm2\n\t"
+ "movq 1032(%0, %%"REG_S"), %%mm3\n\t"
-+ "pfadd 2048(%0, %%"REG_S"), %%mm0\n\t"
++ "pfadd 2048(%0, %%"REG_S"), %%mm0\n\t"
+ "pfadd 2056(%0, %%"REG_S"), %%mm1\n\t"
+ "pfadd %%mm7, %%mm0 \n\t"
+ "pfadd %%mm7, %%mm1 \n\t"
@@ -890,13 +890,13 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movq (%0, %%"REG_S"), %%mm0 \n\t"
++ "movq (%0, %%"REG_S"), %%mm0 \n\t"
+ "movq 8(%0, %%"REG_S"), %%mm1 \n\t"
-+ "movq 1024(%0, %%"REG_S"), %%mm2\n\t"
++ "movq 1024(%0, %%"REG_S"), %%mm2\n\t"
+ "movq 1032(%0, %%"REG_S"), %%mm3\n\t"
-+ "pfadd 2048(%0, %%"REG_S"), %%mm0\n\t"
++ "pfadd 2048(%0, %%"REG_S"), %%mm0\n\t"
+ "pfadd 2056(%0, %%"REG_S"), %%mm1\n\t"
-+ "pfadd 3072(%0, %%"REG_S"), %%mm2\n\t"
++ "pfadd 3072(%0, %%"REG_S"), %%mm2\n\t"
+ "pfadd 3080(%0, %%"REG_S"), %%mm3\n\t"
+ "pfadd %%mm7, %%mm0 \n\t"
+ "pfadd %%mm7, %%mm1 \n\t"
@@ -919,17 +919,17 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movq (%0, %%"REG_S"), %%mm0 \n\t"
++ "movq (%0, %%"REG_S"), %%mm0 \n\t"
+ "movq 8(%0, %%"REG_S"), %%mm1 \n\t"
-+ "movq 1024(%0, %%"REG_S"), %%mm2\n\t"
++ "movq 1024(%0, %%"REG_S"), %%mm2\n\t"
+ "movq 1032(%0, %%"REG_S"), %%mm3\n\t"
-+ "pfadd 2048(%0, %%"REG_S"), %%mm0\n\t"
++ "pfadd 2048(%0, %%"REG_S"), %%mm0\n\t"
+ "pfadd 2056(%0, %%"REG_S"), %%mm1\n\t"
-+ "pfadd 3072(%0, %%"REG_S"), %%mm2\n\t"
++ "pfadd 3072(%0, %%"REG_S"), %%mm2\n\t"
+ "pfadd 3080(%0, %%"REG_S"), %%mm3\n\t"
+ "pfadd %%mm7, %%mm0 \n\t"
+ "pfadd %%mm7, %%mm1 \n\t"
-+ "pfadd 4096(%0, %%"REG_S"), %%mm2\n\t"
++ "pfadd 4096(%0, %%"REG_S"), %%mm2\n\t"
+ "pfadd 4104(%0, %%"REG_S"), %%mm3\n\t"
+ "pfadd %%mm2, %%mm0 \n\t"
+ "pfadd %%mm3, %%mm1 \n\t"
@@ -950,11 +950,11 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
++ "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
+ "movq 1032(%0, %%"REG_S"), %%mm1\n\t"
+ "pfadd %%mm7, %%mm0 \n\t" //common
+ "pfadd %%mm7, %%mm1 \n\t" //common
-+ "movq (%0, %%"REG_S"), %%mm2 \n\t"
++ "movq (%0, %%"REG_S"), %%mm2 \n\t"
+ "movq 8(%0, %%"REG_S"), %%mm3 \n\t"
+ "movq 2048(%0, %%"REG_S"), %%mm4\n\t"
+ "movq 2056(%0, %%"REG_S"), %%mm5\n\t"
@@ -981,11 +981,11 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movq 1024(%1, %%"REG_S"), %%mm0\n\t"
++ "movq 1024(%1, %%"REG_S"), %%mm0\n\t"
+ "movq 1032(%1, %%"REG_S"), %%mm1\n\t"
+ "pfadd %%mm7, %%mm0 \n\t" //common
+ "pfadd %%mm7, %%mm1 \n\t" //common
-+ "movq (%0, %%"REG_S"), %%mm2 \n\t"
++ "movq (%0, %%"REG_S"), %%mm2 \n\t"
+ "movq 8(%0, %%"REG_S"), %%mm3 \n\t"
+ "movq (%1, %%"REG_S"), %%mm4 \n\t"
+ "movq 8(%1, %%"REG_S"), %%mm5 \n\t"
@@ -1014,7 +1014,7 @@
+ "1: \n\t"
+ "movq 2048(%0, %%"REG_S"), %%mm0\n\t" // surround
+ "movq 2056(%0, %%"REG_S"), %%mm1\n\t" // surround
-+ "movq (%0, %%"REG_S"), %%mm2 \n\t"
++ "movq (%0, %%"REG_S"), %%mm2 \n\t"
+ "movq 8(%0, %%"REG_S"), %%mm3 \n\t"
+ "movq 1024(%0, %%"REG_S"), %%mm4\n\t"
+ "movq 1032(%0, %%"REG_S"), %%mm5\n\t"
@@ -1045,13 +1045,13 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
++ "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
+ "movq 1032(%0, %%"REG_S"), %%mm1\n\t"
-+ "pfadd 3072(%0, %%"REG_S"), %%mm0\n\t"
++ "pfadd 3072(%0, %%"REG_S"), %%mm0\n\t"
+ "pfadd 3080(%0, %%"REG_S"), %%mm1\n\t"
+ "pfadd %%mm7, %%mm0 \n\t" // common
+ "pfadd %%mm7, %%mm1 \n\t" // common
-+ "movq (%0, %%"REG_S"), %%mm2 \n\t"
++ "movq (%0, %%"REG_S"), %%mm2 \n\t"
+ "movq 8(%0, %%"REG_S"), %%mm3 \n\t"
+ "movq 2048(%0, %%"REG_S"), %%mm4\n\t"
+ "movq 2056(%0, %%"REG_S"), %%mm5\n\t"
@@ -1078,11 +1078,11 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
++ "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
+ "movq 1032(%0, %%"REG_S"), %%mm1\n\t"
+ "pfadd %%mm7, %%mm0 \n\t" // common
+ "pfadd %%mm7, %%mm1 \n\t" // common
-+ "movq (%0, %%"REG_S"), %%mm2 \n\t"
++ "movq (%0, %%"REG_S"), %%mm2 \n\t"
+ "movq 8(%0, %%"REG_S"), %%mm3 \n\t"
+ "movq 2048(%0, %%"REG_S"), %%mm4\n\t"
+ "movq 2056(%0, %%"REG_S"), %%mm5\n\t"
@@ -1115,11 +1115,11 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movq 2048(%0, %%"REG_S"), %%mm0\n\t"
++ "movq 2048(%0, %%"REG_S"), %%mm0\n\t"
+ "movq 2056(%0, %%"REG_S"), %%mm1\n\t"
+ "pfadd 3072(%0, %%"REG_S"), %%mm0\n\t" // surround
+ "pfadd 3080(%0, %%"REG_S"), %%mm1\n\t" // surround
-+ "movq (%0, %%"REG_S"), %%mm2 \n\t"
++ "movq (%0, %%"REG_S"), %%mm2 \n\t"
+ "movq 8(%0, %%"REG_S"), %%mm3 \n\t"
+ "movq 1024(%0, %%"REG_S"), %%mm4\n\t"
+ "movq 1032(%0, %%"REG_S"), %%mm5\n\t"
@@ -1150,19 +1150,19 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
++ "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
+ "movq 1032(%0, %%"REG_S"), %%mm1\n\t"
+ "pfadd %%mm7, %%mm0 \n\t" // common
+ "pfadd %%mm7, %%mm1 \n\t" // common
+ "movq %%mm0, %%mm2 \n\t" // common
+ "movq %%mm1, %%mm3 \n\t" // common
-+ "pfadd (%0, %%"REG_S"), %%mm0 \n\t"
++ "pfadd (%0, %%"REG_S"), %%mm0 \n\t"
+ "pfadd 8(%0, %%"REG_S"), %%mm1 \n\t"
-+ "pfadd 2048(%0, %%"REG_S"), %%mm2\n\t"
++ "pfadd 2048(%0, %%"REG_S"), %%mm2\n\t"
+ "pfadd 2056(%0, %%"REG_S"), %%mm3\n\t"
-+ "pfadd 3072(%0, %%"REG_S"), %%mm0\n\t"
++ "pfadd 3072(%0, %%"REG_S"), %%mm0\n\t"
+ "pfadd 3080(%0, %%"REG_S"), %%mm1\n\t"
-+ "pfadd 4096(%0, %%"REG_S"), %%mm2\n\t"
++ "pfadd 4096(%0, %%"REG_S"), %%mm2\n\t"
+ "pfadd 4104(%0, %%"REG_S"), %%mm3\n\t"
+ "movq %%mm0, (%0, %%"REG_S") \n\t"
+ "movq %%mm1, 8(%0, %%"REG_S") \n\t"
@@ -1184,25 +1184,25 @@
+ "1: \n\t"
+ "movd %1, %%mm7 \n\t"
+ "punpckldq %1, %%mm7 \n\t"
-+ "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
++ "movq 1024(%0, %%"REG_S"), %%mm0\n\t"
+ "movq 1032(%0, %%"REG_S"), %%mm1\n\t"
-+ "movq 3072(%0, %%"REG_S"), %%mm4\n\t"
++ "movq 3072(%0, %%"REG_S"), %%mm4\n\t"
+ "movq 3080(%0, %%"REG_S"), %%mm5\n\t"
+ "pfadd %%mm7, %%mm0 \n\t" // common
+ "pfadd %%mm7, %%mm1 \n\t" // common
-+ "pfadd 4096(%0, %%"REG_S"), %%mm4\n\t" // surround
++ "pfadd 4096(%0, %%"REG_S"), %%mm4\n\t" // surround
+ "pfadd 4104(%0, %%"REG_S"), %%mm5\n\t" // surround
-+ "movq (%0, %%"REG_S"), %%mm2 \n\t"
++ "movq (%0, %%"REG_S"), %%mm2 \n\t"
+ "movq 8(%0, %%"REG_S"), %%mm3 \n\t"
-+ "movq 2048(%0, %%"REG_S"), %%mm6\n\t"
++ "movq 2048(%0, %%"REG_S"), %%mm6\n\t"
+ "movq 2056(%0, %%"REG_S"), %%mm7\n\t"
-+ "pfsub %%mm4, %%mm2 \n\t"
++ "pfsub %%mm4, %%mm2 \n\t"
+ "pfsub %%mm5, %%mm3 \n\t"
-+ "pfadd %%mm4, %%mm6 \n\t"
++ "pfadd %%mm4, %%mm6 \n\t"
+ "pfadd %%mm5, %%mm7 \n\t"
-+ "pfadd %%mm0, %%mm2 \n\t"
++ "pfadd %%mm0, %%mm2 \n\t"
+ "pfadd %%mm1, %%mm3 \n\t"
-+ "pfadd %%mm0, %%mm6 \n\t"
++ "pfadd %%mm0, %%mm6 \n\t"
+ "pfadd %%mm1, %%mm7 \n\t"
+ "movq %%mm2, (%0, %%"REG_S") \n\t"
+ "movq %%mm3, 8(%0, %%"REG_S") \n\t"
@@ -1223,9 +1223,9 @@
+ "mov $-1024, %%"REG_S" \n\t"
+ ASMALIGN(4)
+ "1: \n\t"
-+ "movq (%0, %%"REG_S"), %%mm0 \n\t"
++ "movq (%0, %%"REG_S"), %%mm0 \n\t"
+ "movq 8(%0, %%"REG_S"), %%mm1 \n\t"
-+ "movq 16(%0, %%"REG_S"), %%mm2 \n\t"
++ "movq 16(%0, %%"REG_S"), %%mm2 \n\t"
+ "movq 24(%0, %%"REG_S"), %%mm3 \n\t"
+ "pfadd 1024(%0, %%"REG_S"), %%mm0\n\t"
+ "pfadd 1032(%0, %%"REG_S"), %%mm1\n\t"
@@ -1401,7 +1401,7 @@
+ * michael did port them from libac3 (untested, perhaps totally broken)
+ * AltiVec optimizations from Romain Dolbeau (romain@dolbeau.org)
*/
-
+
#include "config.h"
@@ -39,12 +48,50 @@
#include "a52.h"
@@ -1415,12 +1415,12 @@
+#undef HAVE_AMD3DNOWEXT
+#define HAVE_AMD3DNOWEXT 0
+#endif
-
+
typedef struct complex_s {
sample_t real;
sample_t imag;
} complex_t;
-
+
+static const int pm128[128] attribute_used __attribute__((aligned(16))) =
+{
+ 0, 16, 32, 48, 64, 80, 96, 112, 8, 40, 72, 104, 24, 56, 88, 120,
@@ -1431,24 +1431,24 @@
+ 5, 21, 37, 53, 69, 85, 101, 117, 13, 29, 45, 61, 77, 93, 109, 125,
+ 3, 19, 35, 51, 67, 83, 99, 115, 11, 43, 75, 107, 27, 59, 91, 123,
+ 7, 23, 39, 55, 71, 87, 103, 119, 15, 31, 47, 63, 79, 95, 111, 127
-+};
++};
+
+static uint8_t attribute_used bit_reverse_512[] = {
-+ 0x00, 0x40, 0x20, 0x60, 0x10, 0x50, 0x30, 0x70,
-+ 0x08, 0x48, 0x28, 0x68, 0x18, 0x58, 0x38, 0x78,
-+ 0x04, 0x44, 0x24, 0x64, 0x14, 0x54, 0x34, 0x74,
-+ 0x0c, 0x4c, 0x2c, 0x6c, 0x1c, 0x5c, 0x3c, 0x7c,
-+ 0x02, 0x42, 0x22, 0x62, 0x12, 0x52, 0x32, 0x72,
-+ 0x0a, 0x4a, 0x2a, 0x6a, 0x1a, 0x5a, 0x3a, 0x7a,
-+ 0x06, 0x46, 0x26, 0x66, 0x16, 0x56, 0x36, 0x76,
-+ 0x0e, 0x4e, 0x2e, 0x6e, 0x1e, 0x5e, 0x3e, 0x7e,
-+ 0x01, 0x41, 0x21, 0x61, 0x11, 0x51, 0x31, 0x71,
-+ 0x09, 0x49, 0x29, 0x69, 0x19, 0x59, 0x39, 0x79,
-+ 0x05, 0x45, 0x25, 0x65, 0x15, 0x55, 0x35, 0x75,
-+ 0x0d, 0x4d, 0x2d, 0x6d, 0x1d, 0x5d, 0x3d, 0x7d,
-+ 0x03, 0x43, 0x23, 0x63, 0x13, 0x53, 0x33, 0x73,
-+ 0x0b, 0x4b, 0x2b, 0x6b, 0x1b, 0x5b, 0x3b, 0x7b,
-+ 0x07, 0x47, 0x27, 0x67, 0x17, 0x57, 0x37, 0x77,
++ 0x00, 0x40, 0x20, 0x60, 0x10, 0x50, 0x30, 0x70,
++ 0x08, 0x48, 0x28, 0x68, 0x18, 0x58, 0x38, 0x78,
++ 0x04, 0x44, 0x24, 0x64, 0x14, 0x54, 0x34, 0x74,
++ 0x0c, 0x4c, 0x2c, 0x6c, 0x1c, 0x5c, 0x3c, 0x7c,
++ 0x02, 0x42, 0x22, 0x62, 0x12, 0x52, 0x32, 0x72,
++ 0x0a, 0x4a, 0x2a, 0x6a, 0x1a, 0x5a, 0x3a, 0x7a,
++ 0x06, 0x46, 0x26, 0x66, 0x16, 0x56, 0x36, 0x76,
++ 0x0e, 0x4e, 0x2e, 0x6e, 0x1e, 0x5e, 0x3e, 0x7e,
++ 0x01, 0x41, 0x21, 0x61, 0x11, 0x51, 0x31, 0x71,
++ 0x09, 0x49, 0x29, 0x69, 0x19, 0x59, 0x39, 0x79,
++ 0x05, 0x45, 0x25, 0x65, 0x15, 0x55, 0x35, 0x75,
++ 0x0d, 0x4d, 0x2d, 0x6d, 0x1d, 0x5d, 0x3d, 0x7d,
++ 0x03, 0x43, 0x23, 0x63, 0x13, 0x53, 0x33, 0x73,
++ 0x0b, 0x4b, 0x2b, 0x6b, 0x1b, 0x5b, 0x3b, 0x7b,
++ 0x07, 0x47, 0x27, 0x67, 0x17, 0x57, 0x37, 0x77,
+ 0x0f, 0x4f, 0x2f, 0x6f, 0x1f, 0x5f, 0x3f, 0x7f};
+
static uint8_t fftorder[] = {
@@ -1457,7 +1457,7 @@
@@ -56,6 +103,40 @@
6,134, 70,198, 38,166,230,102,246,118, 54,182, 22,150,214, 86
};
-
+
+static complex_t __attribute__((aligned(16))) buf[128];
+
+/* Twiddle factor LUT */
@@ -1475,8 +1475,8 @@
+static sample_t __attribute__((aligned(16))) xsin1[128];
+
+#if ARCH_X86 || ARCH_X86_64
-+// NOTE: SSE needs 16byte alignment or it will segfault
-+//
++// NOTE: SSE needs 16byte alignment or it will segfault
++//
+static float __attribute__((aligned(16))) sseSinCos1c[256];
+static float __attribute__((aligned(16))) sseSinCos1d[256];
+static float attribute_used __attribute__((aligned(16))) ps111_1[4]={1,1,1,-1};
@@ -1498,7 +1498,7 @@
@@ -241,7 +322,7 @@
ifft_pass (buf, roots128 - 32, 32);
}
-
+
-void a52_imdct_512 (sample_t * data, sample_t * delay, sample_t bias)
+void imdct_do_512 (sample_t * data, sample_t * delay, sample_t bias)
{
@@ -1507,7 +1507,7 @@
@@ -285,6 +366,702 @@
}
}
-
+
+#if HAVE_ALTIVEC
+
+#ifdef HAVE_ALTIVEC_H
@@ -1559,17 +1559,17 @@
+ sample_t *data_ptr;
+ sample_t *delay_ptr;
+ sample_t *window_ptr;
-+
++
+ /* 512 IMDCT with source and dest data in 'data' */
-+
++
+ /* Pre IFFT complex multiply plus IFFT cmplx conjugate & reordering*/
+ for( i=0; i < 128; i++) {
-+ /* z[i] = (X[256-2*i-1] + j * X[2*i]) * (xcos1[i] + j * xsin1[i]) ; */
++ /* z[i] = (X[256-2*i-1] + j * X[2*i]) * (xcos1[i] + j * xsin1[i]) ; */
+ int j= bit_reverse_512[i];
+ buf[i].real = (data[256-2*j-1] * xcos1[j]) - (data[2*j] * xsin1[j]);
+ buf[i].imag = -1.0 * ((data[2*j] * xcos1[j]) + (data[256-2*j-1] * xsin1[j]));
+ }
-+
++
+ /* 1. iteration */
+ for(i = 0; i < 128; i += 2) {
+#if 0
@@ -1582,7 +1582,7 @@
+ buf[i+1].real = tmp_a_r - tmp_b_r;
+ buf[i+1].imag = tmp_a_i - tmp_b_i;
+#else
-+ vector float temp, bufv;
++ vector float temp, bufv;
+
+ bufv = vec_ld(i << 3, (float*)buf);
+ temp = vec_perm(bufv, bufv, vcprm(2,3,0,1));
@@ -1590,7 +1590,7 @@
+ vec_st(bufv, i << 3, (float*)buf);
+#endif
+ }
-+
++
+ /* 2. iteration */
+ // Note w[1]={{1,0}, {0,-1}}
+ for(i = 0; i < 128; i += 4) {
@@ -1614,7 +1614,7 @@
+ buf[i+3].imag = tmp_a_i + tmp_b_i;
+#else
+ vector float buf01, buf23, temp1, temp2;
-+
++
+ buf01 = vec_ld((i + 0) << 3, (float*)buf);
+ buf23 = vec_ld((i + 2) << 3, (float*)buf);
+ buf23 = vec_perm(buf23,buf23,vcprm(0,1,3,2));
@@ -1682,14 +1682,14 @@
+ buf45 = vec_ld((i + 4) << 3, (float*)buf);
+ buf67 = vec_ld((i + 6) << 3, (float*)buf);
+ buf67 = vec_perm(buf67, buf67, vcprm(1,0,2,3));
-+
++
+ vec_st(vec_add(buf01, buf45), (i + 0) << 3, (float*)buf);
+ vec_st(vec_madd(buf67, vcii(p,n,p,p), buf23), (i + 2) << 3, (float*)buf);
+ vec_st(vec_sub(buf01, buf45), (i + 4) << 3, (float*)buf);
+ vec_st(vec_nmsub(buf67, vcii(p,n,p,p), buf23), (i + 6) << 3, (float*)buf);
+#endif
+ }
-+
++
+ /* 4-7. iterations */
+ for (m=3; m < 7; m++) {
+ two_m = (1 << m);
@@ -1742,10 +1742,10 @@
+ vecq = vec_madd(temp4, vcii(n,p,n,p), temp3);
+ // then butterfly with buf[p] and buf[p+1]
+ vecp = vec_ld(p << 3, (float*)buf);
-+
++
+ temp1 = vec_add(vecp, vecq);
+ temp2 = vec_sub(vecp, vecq);
-+
++
+ vec_st(temp1, p << 3, (float*)buf);
+ vec_st(temp2, q << 3, (float*)buf);
+#endif
@@ -1802,7 +1802,7 @@
+ tempCS01 = vec_perm(cosv, sinv, vcprm(s0,0,s1,1));
+ temp2 = vec_madd(temp1133, tempCS01, vczero);
+ bufv_0 = vec_madd(temp2, vcii(p,n,p,n), temp1);
-+
++
+ vec_st(bufv_0, (i + 0) << 3, (float*)buf);
+
+ /* idem with bufv_2 and high-order cosv/sinv */
@@ -1816,36 +1816,36 @@
+ bufv_2 = vec_madd(temp2, vcii(p,n,p,n), temp1);
+
+ vec_st(bufv_2, (i + 2) << 3, (float*)buf);
-+
++
+#endif
+ }
-+
++
+ data_ptr = data;
+ delay_ptr = delay;
+ window_ptr = a52_imdct_window;
+
+ /* Window and convert to real valued signal */
-+ for(i=0; i< 64; i++) {
-+ *data_ptr++ = -buf[64+i].imag * *window_ptr++ + *delay_ptr++ + bias;
-+ *data_ptr++ = buf[64-i-1].real * *window_ptr++ + *delay_ptr++ + bias;
++ for(i=0; i< 64; i++) {
++ *data_ptr++ = -buf[64+i].imag * *window_ptr++ + *delay_ptr++ + bias;
++ *data_ptr++ = buf[64-i-1].real * *window_ptr++ + *delay_ptr++ + bias;
+ }
-+
-+ for(i=0; i< 64; i++) {
-+ *data_ptr++ = -buf[i].real * *window_ptr++ + *delay_ptr++ + bias;
-+ *data_ptr++ = buf[128-i-1].imag * *window_ptr++ + *delay_ptr++ + bias;
++
++ for(i=0; i< 64; i++) {
++ *data_ptr++ = -buf[i].real * *window_ptr++ + *delay_ptr++ + bias;
++ *data_ptr++ = buf[128-i-1].imag * *window_ptr++ + *delay_ptr++ + bias;
+ }
-+
++
+ /* The trailing edge of the window goes into the delay line */
+ delay_ptr = delay;
+
-+ for(i=0; i< 64; i++) {
-+ *delay_ptr++ = -buf[64+i].real * *--window_ptr;
-+ *delay_ptr++ = buf[64-i-1].imag * *--window_ptr;
++ for(i=0; i< 64; i++) {
++ *delay_ptr++ = -buf[64+i].real * *--window_ptr;
++ *delay_ptr++ = buf[64-i-1].imag * *--window_ptr;
+ }
-+
++
+ for(i=0; i<64; i++) {
-+ *delay_ptr++ = buf[i].imag * *--window_ptr;
-+ *delay_ptr++ = -buf[128-i-1].real * *--window_ptr;
++ *delay_ptr++ = buf[i].imag * *--window_ptr;
++ *delay_ptr++ = -buf[128-i-1].real * *--window_ptr;
+ }
+}
+#endif
@@ -1858,8 +1858,8 @@
+#define HAVE_AMD3DNOW 1
+#include "srfftp_3dnow.h"
+
-+const i_cmplx_t x_plus_minus_3dnow __attribute__ ((aligned (8))) = {{ 0x00000000UL, 0x80000000UL }};
-+const i_cmplx_t x_minus_plus_3dnow __attribute__ ((aligned (8))) = {{ 0x80000000UL, 0x00000000UL }};
++const i_cmplx_t x_plus_minus_3dnow __attribute__ ((aligned (8))) = {{ 0x00000000UL, 0x80000000UL }};
++const i_cmplx_t x_minus_plus_3dnow __attribute__ ((aligned (8))) = {{ 0x80000000UL, 0x00000000UL }};
+const complex_t HSQRT2_3DNOW __attribute__ ((aligned (8))) = { 0.707106781188, 0.707106781188 };
+
+#undef HAVE_AMD3DNOWEXT
@@ -1888,9 +1888,9 @@
+ sample_t *data_ptr;
+ sample_t *delay_ptr;
+ sample_t *window_ptr;
-+
++
+ /* 512 IMDCT with source and dest data in 'data' */
-+ /* see the c version (dct_do_512()), its allmost identical, just in C */
++ /* see the c version (dct_do_512()), its allmost identical, just in C */
+
+ /* Pre IFFT complex multiply plus IFFT cmplx conjugate */
+ /* Bit reversed shuffling */
@@ -1951,7 +1951,7 @@
+ }
+ }
+*/
-+
++
+ /* 1. iteration */
+ // Note w[0][0]={1,0}
+ __asm__ volatile(
@@ -1973,7 +1973,7 @@
+ :: "g" (buf), "r" (buf + 128)
+ : "%"REG_S
+ );
-+
++
+ /* 2. iteration */
+ // Note w[1]={{1,0}, {0,-1}}
+ __asm__ volatile(
@@ -2005,8 +2005,8 @@
+ Note sseW2+48={1,-1,sqrt(2),-sqrt(2))
+*/
+ __asm__ volatile(
-+ "movaps 48+"MANGLE(sseW2)", %%xmm6\n\t"
-+ "movaps 16+"MANGLE(sseW2)", %%xmm7\n\t"
++ "movaps 48+"MANGLE(sseW2)", %%xmm6\n\t"
++ "movaps 16+"MANGLE(sseW2)", %%xmm7\n\t"
+ "xorps %%xmm5, %%xmm5 \n\t"
+ "xorps %%xmm2, %%xmm2 \n\t"
+ "mov %0, %%"REG_S" \n\t"
@@ -2032,10 +2032,10 @@
+ "addps %%xmm1, %%xmm3 \n\t"
+ "subps %%xmm4, %%xmm0 \n\t"
+ "subps %%xmm5, %%xmm1 \n\t"
-+ "movaps %%xmm2, (%%"REG_S") \n\t"
-+ "movaps %%xmm3, 16(%%"REG_S") \n\t"
-+ "movaps %%xmm0, 32(%%"REG_S") \n\t"
-+ "movaps %%xmm1, 48(%%"REG_S") \n\t"
++ "movaps %%xmm2, (%%"REG_S") \n\t"
++ "movaps %%xmm3, 16(%%"REG_S") \n\t"
++ "movaps %%xmm0, 32(%%"REG_S") \n\t"
++ "movaps %%xmm1, 48(%%"REG_S") \n\t"
+ "add $64, %%"REG_S" \n\t"
+ "cmp %1, %%"REG_S" \n\t"
+ " jb 1b \n\t"
@@ -2069,7 +2069,7 @@
+ "movaps %%xmm1, (%%"REG_S", %%"REG_D") \n\t"
+ "movaps %%xmm0, (%%"REG_d", %%"REG_D") \n\t"
+ "add $16, %%"REG_D" \n\t"
-+ "cmp %3, %%"REG_D" \n\t" //FIXME (opt) count against 0
++ "cmp %3, %%"REG_D" \n\t" //FIXME (opt) count against 0
+ "jb 2b \n\t"
+ "add %2, %%"REG_S" \n\t"
+ "cmp %1, %%"REG_S" \n\t"
@@ -2096,9 +2096,9 @@
+ " jnz 1b \n\t"
+ :: "r" (buf+128)
+ : "%"REG_S
-+ );
++ );
++
+
-+
+ data_ptr = data;
+ delay_ptr = delay;
+ window_ptr = a52_imdct_window;
@@ -2122,7 +2122,7 @@
+ "movaps %%xmm0, (%1, %%"REG_S") \n\t"
+ "add $16, %%"REG_S" \n\t"
+ "sub $16, %%"REG_D" \n\t"
-+ "cmp $512, %%"REG_S" \n\t"
++ "cmp $512, %%"REG_S" \n\t"
+ " jb 1b \n\t"
+ :: "r" (buf+64), "r" (data_ptr), "r" (delay_ptr), "m" (bias)
+ : "%"REG_S, "%"REG_D
@@ -2130,7 +2130,7 @@
+ data_ptr+=128;
+ delay_ptr+=128;
+// window_ptr+=128;
-+
++
+ __asm__ volatile(
+ "mov $1024, %%"REG_D" \n\t" // 512
+ "xor %%"REG_S", %%"REG_S" \n\t" // 0
@@ -2149,7 +2149,7 @@
+ "movaps %%xmm0, (%1, %%"REG_S") \n\t"
+ "add $16, %%"REG_S" \n\t"
+ "sub $16, %%"REG_D" \n\t"
-+ "cmp $512, %%"REG_S" \n\t"
++ "cmp $512, %%"REG_S" \n\t"
+ " jb 1b \n\t"
+ :: "r" (buf), "r" (data_ptr), "r" (delay_ptr), "m" (bias)
+ : "%"REG_S, "%"REG_D
@@ -2167,21 +2167,21 @@
+ "1: \n\t"
+ "movlps (%0, %%"REG_S"), %%xmm0 \n\t" // ? ? ? A
+ "movlps 8(%0, %%"REG_S"), %%xmm1 \n\t" // ? ? ? C
-+ "movhps -16(%0, %%"REG_D"), %%xmm1 \n\t" // D ? ? C
-+ "movhps -8(%0, %%"REG_D"), %%xmm0 \n\t" // B ? ? A
++ "movhps -16(%0, %%"REG_D"), %%xmm1 \n\t" // D ? ? C
++ "movhps -8(%0, %%"REG_D"), %%xmm0 \n\t" // B ? ? A
+ "shufps $0xCC, %%xmm1, %%xmm0 \n\t" // D C B A
+ "mulps 1024+"MANGLE(sseWindow)"(%%"REG_S"), %%xmm0\n\t"
+ "movaps %%xmm0, (%1, %%"REG_S") \n\t"
+ "add $16, %%"REG_S" \n\t"
+ "sub $16, %%"REG_D" \n\t"
-+ "cmp $512, %%"REG_S" \n\t"
++ "cmp $512, %%"REG_S" \n\t"
+ " jb 1b \n\t"
+ :: "r" (buf+64), "r" (delay_ptr)
+ : "%"REG_S, "%"REG_D
+ );
+ delay_ptr+=128;
+// window_ptr-=128;
-+
++
+ __asm__ volatile(
+ "mov $1024, %%"REG_D" \n\t" // 1024
+ "xor %%"REG_S", %%"REG_S" \n\t" // 0
@@ -2189,14 +2189,14 @@
+ "1: \n\t"
+ "movlps (%0, %%"REG_S"), %%xmm0 \n\t" // ? ? A ?
+ "movlps 8(%0, %%"REG_S"), %%xmm1 \n\t" // ? ? C ?
-+ "movhps -16(%0, %%"REG_D"), %%xmm1 \n\t" // ? D C ?
-+ "movhps -8(%0, %%"REG_D"), %%xmm0 \n\t" // ? B A ?
++ "movhps -16(%0, %%"REG_D"), %%xmm1 \n\t" // ? D C ?
++ "movhps -8(%0, %%"REG_D"), %%xmm0 \n\t" // ? B A ?
+ "shufps $0x99, %%xmm1, %%xmm0 \n\t" // D C B A
+ "mulps 1536+"MANGLE(sseWindow)"(%%"REG_S"), %%xmm0\n\t"
+ "movaps %%xmm0, (%1, %%"REG_S") \n\t"
+ "add $16, %%"REG_S" \n\t"
+ "sub $16, %%"REG_D" \n\t"
-+ "cmp $512, %%"REG_S" \n\t"
++ "cmp $512, %%"REG_S" \n\t"
+ " jb 1b \n\t"
+ :: "r" (buf), "r" (delay_ptr)
+ : "%"REG_S, "%"REG_D
@@ -2208,13 +2208,13 @@
{
int i, k;
@@ -364,7 +1141,7 @@
-
+
void a52_imdct_init (uint32_t mm_accel)
{
- int i, k;
+ int i, j, k;
double sum;
-
+
/* compute imdct window - kaiser-bessel derived window, alpha = 5.0 */
@@ -416,6 +1193,99 @@
post2[i].real = cos ((M_PI / 128) * (i + 0.5));
@@ -2236,12 +2236,12 @@
+ sseSinCos1c[2*i+0]= xcos1[i];
+ sseSinCos1c[2*i+1]= -xcos1[i];
+ sseSinCos1d[2*i+0]= xsin1[i];
-+ sseSinCos1d[2*i+1]= xsin1[i];
++ sseSinCos1d[2*i+1]= xsin1[i];
+ }
+ for (i = 1; i < 7; i++) {
+ j = 1 << i;
+ for (k = 0; k < j; k+=2) {
-+
++
+ sseW[i][4*k + 0] = w[i][k+0].real;
+ sseW[i][4*k + 1] = w[i][k+0].real;
+ sseW[i][4*k + 2] = w[i][k+1].real;
@@ -2250,15 +2250,15 @@
+ sseW[i][4*k + 4] = -w[i][k+0].imag;
+ sseW[i][4*k + 5] = w[i][k+0].imag;
+ sseW[i][4*k + 6] = -w[i][k+1].imag;
-+ sseW[i][4*k + 7] = w[i][k+1].imag;
-+
++ sseW[i][4*k + 7] = w[i][k+1].imag;
++
+ //we multiply more or less uninitalized numbers so we need to use exactly 0.0
+ if(k==0)
+ {
+// sseW[i][4*k + 0]= sseW[i][4*k + 1]= 1.0;
+ sseW[i][4*k + 4]= sseW[i][4*k + 5]= 0.0;
+ }
-+
++
+ if(2*k == j)
+ {
+ sseW[i][4*k + 0]= sseW[i][4*k + 1]= 0.0;
@@ -2270,9 +2270,9 @@
+ for(i=0; i<128; i++)
+ {
+ sseWindow[2*i+0]= -a52_imdct_window[2*i+0];
-+ sseWindow[2*i+1]= a52_imdct_window[2*i+1];
++ sseWindow[2*i+1]= a52_imdct_window[2*i+1];
+ }
-+
++
+ for(i=0; i<64; i++)
+ {
+ sseWindow[256 + 2*i+0]= -a52_imdct_window[254 - 2*i+1];
@@ -2313,7 +2313,7 @@
+ }
+ else
+#endif
-
+
#ifdef LIBA52_DJBFFT
if (mm_accel & MM_ACCEL_DJBFFT) {
@@ -426,7 +1296,5 @@
@@ -2336,26 +2336,26 @@
+
+/* PPC accelerations */
+#define MM_ACCEL_PPC_ALTIVEC 0x00010000
-
+
uint32_t mm_accel (void);
-
+
--- liba52/parse.c 2006-12-05 08:08:01.000000000 +0100
+++ liba52/parse.c 2006-12-05 08:08:44.000000000 +0100
@@ -24,6 +28,7 @@
#include "config.h"
-
+
#include <stdlib.h>
+#include <stdio.h>
#include <string.h>
#include <inttypes.h>
-
+
@@ -31,13 +36,12 @@
#include "a52_internal.h"
#include "bitstream.h"
#include "tables.h"
+#include "mm_accel.h"
+#include "libavutil/avutil.h"
-
+
-#ifdef HAVE_MEMALIGN
+#if HAVE_MEMALIGN
/* some systems have memalign() but no declaration for it */
@@ -2364,13 +2364,13 @@
-/* assume malloc alignment is sufficient */
-#define memalign(align,size) malloc (size)
#endif
-
+
typedef struct {
@@ -60,7 +64,16 @@
if (state == NULL)
return NULL;
-
-+#if defined(__MINGW32__) && defined(HAVE_SSE)
+
++#if defined(__MINGW32__) && defined(HAVE_SSE)
+ state->samples = av_malloc(256 * 12 * sizeof (sample_t));
+#else
state->samples = memalign (16, 256 * 12 * sizeof (sample_t));
@@ -2378,30 +2378,30 @@
+ if(((int)state->samples%16) && (mm_accel&MM_ACCEL_X86_SSE)){
+ mm_accel &=~MM_ACCEL_X86_SSE;
+ fprintf(stderr, "liba52: unable to get 16 byte aligned memory disabling usage of SSE instructions\n");
-+ }
-+
++ }
++
if (state->samples == NULL) {
free (state);
return NULL;
@@ -74,6 +87,7 @@
state->lfsr_state = 1;
-
+
a52_imdct_init (mm_accel);
+ downmix_accel_init(mm_accel);
-
+
return state;
}
@@ -141,7 +155,7 @@
state->acmod = acmod = buf[6] >> 5;
-
+
a52_bitstream_set_ptr (state, buf + 6);
- bitstream_get (state, 3); /* skip acmod we already parsed */
+ bitstream_skip (state, 3); /* skip acmod we already parsed */
-
+
if ((acmod == 2) && (bitstream_get (state, 2) == 2)) /* dsurmod */
acmod = A52_DOLBY;
@@ -172,28 +186,28 @@
-
+
chaninfo = !acmod;
do {
- bitstream_get (state, 5); /* dialnorm */
@@ -2416,27 +2416,27 @@
- bitstream_get (state, 7); /* mixlevel + roomtyp */
+ bitstream_skip (state, 7); /* mixlevel + roomtyp */
} while (chaninfo--);
-
+
- bitstream_get (state, 2); /* copyrightb + origbs */
+ bitstream_skip (state, 2); /* copyrightb + origbs */
-
+
if (bitstream_get (state, 1)) /* timecod1e */
- bitstream_get (state, 14); /* timecod1 */
+ bitstream_skip (state, 14); /* timecod1 */
if (bitstream_get (state, 1)) /* timecod2e */
- bitstream_get (state, 14); /* timecod2 */
+ bitstream_skip (state, 14); /* timecod2 */
-
+
if (bitstream_get (state, 1)) { /* addbsie */
int addbsil;
-
+
addbsil = bitstream_get (state, 6);
do {
- bitstream_get (state, 8); /* addbsi */
+ bitstream_skip (state, 8); /* addbsi */
} while (addbsil--);
}
-
+
@@ -680,7 +694,7 @@
state->fbw_expbap[i].exp[0],
state->fbw_expbap[i].exp + 1))
@@ -2453,10 +2453,10 @@
- bitstream_get (state, 8);
+ bitstream_skip (state, 8);
}
-
+
samples = state->samples;
@@ -896,6 +910,10 @@
-
+
void a52_free (a52_state_t * state)
{
- free (state->samples);
diff --git a/liba52/parse.c b/liba52/parse.c
index fff01aed5b..cba5b80ff7 100644
--- a/liba52/parse.c
+++ b/liba52/parse.c
@@ -64,7 +64,7 @@ a52_state_t * a52_init (uint32_t mm_accel)
if (state == NULL)
return NULL;
-#if defined(__MINGW32__) && defined(HAVE_SSE)
+#if defined(__MINGW32__) && defined(HAVE_SSE)
state->samples = av_malloc(256 * 12 * sizeof (sample_t));
#else
state->samples = memalign (16, 256 * 12 * sizeof (sample_t));
@@ -72,8 +72,8 @@ a52_state_t * a52_init (uint32_t mm_accel)
if(((int)state->samples%16) && (mm_accel&MM_ACCEL_X86_SSE)){
mm_accel &=~MM_ACCEL_X86_SSE;
fprintf(stderr, "liba52: unable to get 16 byte aligned memory disabling usage of SSE instructions\n");
- }
-
+ }
+
if (state->samples == NULL) {
free (state);
return NULL;
@@ -274,7 +274,7 @@ static int parse_exponents (a52_state_t * state, int expstr, int ngrps,
case EXP_D15:
*(dest++) = exponent;
}
- }
+ }
return 0;
}
@@ -322,7 +322,7 @@ static inline int16_t dither_gen (a52_state_t * state)
int16_t nstate;
nstate = dither_lut[state->lfsr_state >> 8] ^ (state->lfsr_state << 8);
-
+
state->lfsr_state = (uint16_t) nstate;
return nstate;
@@ -652,7 +652,7 @@ int a52_block (a52_state_t * state)
cplexpstr = bitstream_get (state, 2);
for (i = 0; i < nfchans; i++)
chexpstr[i] = bitstream_get (state, 2);
- if (state->lfeon)
+ if (state->lfeon)
lfeexpstr = bitstream_get (state, 1);
for (i = 0; i < nfchans; i++)
@@ -870,7 +870,7 @@ int a52_block (a52_state_t * state)
if (blksw[i])
a52_imdct_256 (samples + 256 * i, samples + 1536 + 256 * i,
bias);
- else
+ else
a52_imdct_512 (samples + 256 * i, samples + 1536 + 256 * i,
bias);
} else {
@@ -899,7 +899,7 @@ int a52_block (a52_state_t * state)
for (i = 0; i < nfchans; i++)
a52_imdct_256 (samples + 256 * i, samples + 1536 + 256 * i,
state->bias);
- else
+ else
for (i = 0; i < nfchans; i++)
a52_imdct_512 (samples + 256 * i, samples + 1536 + 256 * i,
state->bias);
diff --git a/liba52/srfftp.h b/liba52/srfftp.h
index 869bd5194f..b6bb5ab4cd 100644
--- a/liba52/srfftp.h
+++ b/liba52/srfftp.h
@@ -1,5 +1,5 @@
-/*
+/*
* srfftp.h
*
* Copyright (C) Yuqing Deng <Yuqing_Deng@brown.edu> - April 2000
@@ -10,7 +10,7 @@
* "Computational Frameworks of the Fast Fourier Transform".
*
* The ideas and the the organization of code borrowed from djbfft written by
- * D. J. Bernstein <djb@cr.py.to>. djbff can be found at
+ * D. J. Bernstein <djb@cr.py.to>. djbff can be found at
* http://cr.yp.to/djbfft.html.
*
* srfftp.h is free software; you can redistribute it and/or modify
@@ -32,19 +32,19 @@
#ifndef SRFFTP_H__
#define SRFFTP_H__
-static complex_t delta16[4] __attribute__((aligned(16))) =
+static complex_t delta16[4] __attribute__((aligned(16))) =
{ {1.00000000000000, 0.00000000000000},
{0.92387953251129, -0.38268343236509},
{0.70710678118655, -0.70710678118655},
{0.38268343236509, -0.92387953251129}};
-static complex_t delta16_3[4] __attribute__((aligned(16))) =
+static complex_t delta16_3[4] __attribute__((aligned(16))) =
{ {1.00000000000000, 0.00000000000000},
{0.38268343236509, -0.92387953251129},
{-0.70710678118655, -0.70710678118655},
{-0.92387953251129, 0.38268343236509}};
-static complex_t delta32[8] __attribute__((aligned(16))) =
+static complex_t delta32[8] __attribute__((aligned(16))) =
{ {1.00000000000000, 0.00000000000000},
{0.98078528040323, -0.19509032201613},
{0.92387953251129, -0.38268343236509},
@@ -54,7 +54,7 @@ static complex_t delta32[8] __attribute__((aligned(16))) =
{0.38268343236509, -0.92387953251129},
{0.19509032201613, -0.98078528040323}};
-static complex_t delta32_3[8] __attribute__((aligned(16))) =
+static complex_t delta32_3[8] __attribute__((aligned(16))) =
{ {1.00000000000000, 0.00000000000000},
{0.83146961230255, -0.55557023301960},
{0.38268343236509, -0.92387953251129},
@@ -64,7 +64,7 @@ static complex_t delta32_3[8] __attribute__((aligned(16))) =
{-0.92387953251129, 0.38268343236509},
{-0.55557023301960, 0.83146961230255}};
-static complex_t delta64[16] __attribute__((aligned(16))) =
+static complex_t delta64[16] __attribute__((aligned(16))) =
{ {1.00000000000000, 0.00000000000000},
{0.99518472667220, -0.09801714032956},
{0.98078528040323, -0.19509032201613},
@@ -82,7 +82,7 @@ static complex_t delta64[16] __attribute__((aligned(16))) =
{0.19509032201613, -0.98078528040323},
{0.09801714032956, -0.99518472667220}};
-static complex_t delta64_3[16] __attribute__((aligned(16))) =
+static complex_t delta64_3[16] __attribute__((aligned(16))) =
{ {1.00000000000000, 0.00000000000000},
{0.95694033573221, -0.29028467725446},
{0.83146961230255, -0.55557023301960},
@@ -100,7 +100,7 @@ static complex_t delta64_3[16] __attribute__((aligned(16))) =
{-0.55557023301960, 0.83146961230255},
{-0.29028467725446, 0.95694033573221}};
-static complex_t delta128[32] __attribute__((aligned(16))) =
+static complex_t delta128[32] __attribute__((aligned(16))) =
{ {1.00000000000000, 0.00000000000000},
{0.99879545620517, -0.04906767432742},
{0.99518472667220, -0.09801714032956},
@@ -134,7 +134,7 @@ static complex_t delta128[32] __attribute__((aligned(16))) =
{0.09801714032956, -0.99518472667220},
{0.04906767432742, -0.99879545620517}};
-static complex_t delta128_3[32] __attribute__((aligned(16))) =
+static complex_t delta128_3[32] __attribute__((aligned(16))) =
{ {1.00000000000000, 0.00000000000000},
{0.98917650996478, -0.14673047445536},
{0.95694033573221, -0.29028467725446},
diff --git a/liba52/srfftp_3dnow.h b/liba52/srfftp_3dnow.h
index fb4badc60c..9ce224c726 100644
--- a/liba52/srfftp_3dnow.h
+++ b/liba52/srfftp_3dnow.h
@@ -1,4 +1,4 @@
-/*
+/*
* srfftp.h
*
* Copyright (C) Yuqing Deng <Yuqing_Deng@brown.edu> - April 2000
@@ -9,7 +9,7 @@
* "Computational Frameworks of the Fast Fourier Transform".
*
* The ideas and the the organization of code borrowed from djbfft written by
- * D. J. Bernstein <djb@cr.py.to>. djbff can be found at
+ * D. J. Bernstein <djb@cr.py.to>. djbff can be found at
* http://cr.yp.to/djbfft.html.
*
* srfftp.h is free software; you can redistribute it and/or modify
@@ -26,7 +26,7 @@
* along with GNU Make; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * Modified for using AMD's 3DNow! - 3DNowEx(DSP)! SIMD operations
+ * Modified for using AMD's 3DNow! - 3DNowEx(DSP)! SIMD operations
* by Nick Kurshev <nickols_k@mail.ru>
*/
diff --git a/liba52/test.c b/liba52/test.c
index 2fb661011d..2f445226a5 100644
--- a/liba52/test.c
+++ b/liba52/test.c
@@ -21,7 +21,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-//#define TIMING //needs Pentium or newer
+//#define TIMING //needs Pentium or newer
#include <stdio.h>
#include <stdlib.h>
@@ -80,7 +80,7 @@ long long t, sum=0, min=256*256*256*64;
if(gCpuCaps.hasSSE) accel |= MM_ACCEL_X86_SSE;
if(gCpuCaps.has3DNow) accel |= MM_ACCEL_X86_3DNOW;
// if(gCpuCaps.has3DNowExt) accel |= MM_ACCEL_X86_3DNOWEXT;
-
+
state = a52_init (accel);
if (state == NULL) {
fprintf (stderr, "A52 init failed\n");
@@ -112,13 +112,13 @@ ENDTIMING
while(buf_size<length){
buf[buf_size++]=getchar();
}
-
+
buf_size=0;
// decode:
flags=A52_STEREO; //A52_STEREO; //A52_DOLBY; //A52_STEREO; // A52_DOLBY // A52_2F2R // A52_3F2R | A52_LFE
channels=2;
-
+
flags |= A52_ADJUST_LEVEL;
STARTTIMING
if (a52_frame (state, buf, &flags, &level, bias))
diff --git a/libao2/ao_pcm.c b/libao2/ao_pcm.c
index 8be3bdabb5..78652c7cdc 100644
--- a/libao2/ao_pcm.c
+++ b/libao2/ao_pcm.c
@@ -34,6 +34,10 @@
#include "mp_msg.h"
#include "help_mp.h"
+#ifdef __MINGW32__
+// for GetFileType to detect pipes
+#include <windows.h>
+#endif
static const ao_info_t info =
{
@@ -175,7 +179,13 @@ static int init(int rate,int channels,int format,int flags){
static void uninit(int immed){
if(ao_pcm_waveheader){ /* Rewrite wave header */
- if (fseek(fp, 0, SEEK_SET) != 0)
+ int broken_seek = 0;
+#ifdef __MINGW32__
+ // Windows, in its usual idiocy "emulates" seeks on pipes so it always looks
+ // like they work. So we have to detect them brute-force.
+ broken_seek = GetFileType((HANDLE)_get_osfhandle(_fileno(fp))) != FILE_TYPE_DISK;
+#endif
+ if (broken_seek || fseek(fp, 0, SEEK_SET) != 0)
mp_msg(MSGT_AO, MSGL_ERR, "Could not seek to start, WAV size headers not updated!\n");
else if (data_length > 0x7ffff000)
mp_msg(MSGT_AO, MSGL_ERR, "File larger than allowed for WAV files, may play truncated!\n");
diff --git a/libass/ass_font.c b/libass/ass_font.c
index e129021439..73ee1c4a5b 100644
--- a/libass/ass_font.c
+++ b/libass/ass_font.c
@@ -127,6 +127,8 @@ static int add_face(void* fc_priv, ass_font_t* font, uint32_t ch)
path = fontconfig_select(fc_priv, font->desc.family, font->desc.treat_family_as_pattern, font->desc.bold,
font->desc.italic, &index, ch);
+ if (!path)
+ return -1;
mem_idx = find_font(font->library, path);
if (mem_idx >= 0) {
diff --git a/libfaad2/analysis.h b/libfaad2/analysis.h
index 25dd9d90ce..6f6a261cea 100644
--- a/libfaad2/analysis.h
+++ b/libfaad2/analysis.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/bits.c b/libfaad2/bits.c
index 0801e0e4ff..34efbd4f71 100644
--- a/libfaad2/bits.c
+++ b/libfaad2/bits.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/cfft.h b/libfaad2/cfft.h
index c39a9a59a6..0b4f3330b4 100644
--- a/libfaad2/cfft.h
+++ b/libfaad2/cfft.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/codebook/hcb.h b/libfaad2/codebook/hcb.h
index 19f5ec8292..093dfb265b 100644
--- a/libfaad2/codebook/hcb.h
+++ b/libfaad2/codebook/hcb.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/codebook/hcb_1.h b/libfaad2/codebook/hcb_1.h
index 3d7be72bc4..cee50fcccf 100644
--- a/libfaad2/codebook/hcb_1.h
+++ b/libfaad2/codebook/hcb_1.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/codebook/hcb_10.h b/libfaad2/codebook/hcb_10.h
index 1fffec82a6..7fc2fd5526 100644
--- a/libfaad2/codebook/hcb_10.h
+++ b/libfaad2/codebook/hcb_10.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/codebook/hcb_11.h b/libfaad2/codebook/hcb_11.h
index ac4e6cfdb8..f0052423dc 100644
--- a/libfaad2/codebook/hcb_11.h
+++ b/libfaad2/codebook/hcb_11.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/codebook/hcb_2.h b/libfaad2/codebook/hcb_2.h
index 816b543254..ba56a0cf22 100644
--- a/libfaad2/codebook/hcb_2.h
+++ b/libfaad2/codebook/hcb_2.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/codebook/hcb_3.h b/libfaad2/codebook/hcb_3.h
index cf21100372..27cf9e9e2f 100644
--- a/libfaad2/codebook/hcb_3.h
+++ b/libfaad2/codebook/hcb_3.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/codebook/hcb_4.h b/libfaad2/codebook/hcb_4.h
index 4f29519d35..11e36fed7f 100644
--- a/libfaad2/codebook/hcb_4.h
+++ b/libfaad2/codebook/hcb_4.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/codebook/hcb_5.h b/libfaad2/codebook/hcb_5.h
index 5ba861e99f..277dc6319b 100644
--- a/libfaad2/codebook/hcb_5.h
+++ b/libfaad2/codebook/hcb_5.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/codebook/hcb_6.h b/libfaad2/codebook/hcb_6.h
index 85753ab22d..0d517037da 100644
--- a/libfaad2/codebook/hcb_6.h
+++ b/libfaad2/codebook/hcb_6.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/codebook/hcb_7.h b/libfaad2/codebook/hcb_7.h
index ac9af46349..a39096838c 100644
--- a/libfaad2/codebook/hcb_7.h
+++ b/libfaad2/codebook/hcb_7.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/codebook/hcb_8.h b/libfaad2/codebook/hcb_8.h
index d8111afb0f..c87c7d673f 100644
--- a/libfaad2/codebook/hcb_8.h
+++ b/libfaad2/codebook/hcb_8.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/codebook/hcb_9.h b/libfaad2/codebook/hcb_9.h
index 6c8313493a..1e2645e7ef 100644
--- a/libfaad2/codebook/hcb_9.h
+++ b/libfaad2/codebook/hcb_9.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/codebook/hcb_sf.h b/libfaad2/codebook/hcb_sf.h
index a847901cef..3b97e91f16 100644
--- a/libfaad2/codebook/hcb_sf.h
+++ b/libfaad2/codebook/hcb_sf.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/decoder.c b/libfaad2/decoder.c
index c9842f7a89..3b33e11b32 100644
--- a/libfaad2/decoder.c
+++ b/libfaad2/decoder.c
@@ -465,8 +465,8 @@ int8_t NEAACDECAPI NeAACDecInitDRM(NeAACDecHandle *hDecoder, uint32_t samplerate
if ((channels == DRMCH_MONO) || (channels == DRMCH_STEREO))
(*hDecoder)->sbr_present_flag = 0;
else
- (*hDecoder)->sbr_present_flag = 1;
-#endif
+ (*hDecoder)->sbr_present_flag = 1;
+#endif
(*hDecoder)->fb = filter_bank_init((*hDecoder)->frameLength);
diff --git a/libfaad2/decoder.h b/libfaad2/decoder.h
index 1b0c683afc..c06b396e2d 100644
--- a/libfaad2/decoder.h
+++ b/libfaad2/decoder.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/drc.c b/libfaad2/drc.c
index 0b199c3304..12b0c0a94b 100644
--- a/libfaad2/drc.c
+++ b/libfaad2/drc.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/drc.h b/libfaad2/drc.h
index 030939f19d..9d2ea9b04e 100644
--- a/libfaad2/drc.h
+++ b/libfaad2/drc.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/drm_dec.c b/libfaad2/drm_dec.c
index 8bf905169d..d6f76d8720 100644
--- a/libfaad2/drm_dec.c
+++ b/libfaad2/drm_dec.c
@@ -46,7 +46,7 @@ typedef const int8_t (*drm_ps_huff_tab)[2];
/* binary search huffman tables */
-static const int8_t f_huffman_sa[][2] =
+static const int8_t f_huffman_sa[][2] =
{
{ /*0*/ -15, 1 }, /* index 0: 1 bits: x */
{ 2, 3 }, /* index 1: 2 bits: 1x */
@@ -64,7 +64,7 @@ static const int8_t f_huffman_sa[][2] =
{ /*-7*/ -22, /*-6*/ -21 } /* index 13: 7 bits: 111111x */
};
-static const int8_t t_huffman_sa[][2] =
+static const int8_t t_huffman_sa[][2] =
{
{ /*0*/ -15, 1 }, /* index 0: 1 bits: x */
{ 2, 3 }, /* index 1: 2 bits: 1x */
@@ -82,7 +82,7 @@ static const int8_t t_huffman_sa[][2] =
{ /*6*/ -9, /*7*/ -8 } /* index 13: 9 bits: 11111111x */
};
-static const int8_t f_huffman_pan[][2] =
+static const int8_t f_huffman_pan[][2] =
{
{ /*0*/ -15, 1 }, /* index 0: 1 bits: x */
{ /*-1*/ -16, 2 }, /* index 1: 2 bits: 1x */
@@ -114,7 +114,7 @@ static const int8_t f_huffman_pan[][2] =
{ /*12*/ -3, /*14*/ -1 } /* index 27: 16 bits: 111111111111111x */
};
-static const int8_t t_huffman_pan[][2] =
+static const int8_t t_huffman_pan[][2] =
{
{ /*0*/ -15, 1 }, /* index 0: 1 bits: x */
{ /*-1*/ -16, 2 }, /* index 1: 2 bits: 1x */
@@ -147,7 +147,7 @@ static const int8_t t_huffman_pan[][2] =
};
/* There are 3 classes in the standard but the last 2 are identical */
-static const real_t sa_quant[8][2] =
+static const real_t sa_quant[8][2] =
{
{ FRAC_CONST(0.0000), FRAC_CONST(0.0000) },
{ FRAC_CONST(0.0501), FRAC_CONST(0.1778) },
@@ -161,7 +161,7 @@ static const real_t sa_quant[8][2] =
/* We don't need the actual quantizer values */
#if 0
-static const real_t pan_quant[8][5] =
+static const real_t pan_quant[8][5] =
{
{ COEF_CONST(0.0000), COEF_CONST(0.0000), COEF_CONST(0.0000), COEF_CONST(0.0000), COEF_CONST(0.0000) },
{ COEF_CONST(0.1661), COEF_CONST(0.1661), COEF_CONST(0.3322), COEF_CONST(0.3322), COEF_CONST(0.3322) },
@@ -200,35 +200,35 @@ static const real_t pan_pow_2_neg[8][5] = {
/* 2^(pan_quant[x][y]/30) */
static const real_t pan_pow_2_30_pos[8][5] = {
- { COEF_CONST(1), COEF_CONST(1), COEF_CONST(1), COEF_CONST(1), COEF_CONST(1) },
- { COEF_CONST(1.003845098), COEF_CONST(1.003845098), COEF_CONST(1.007704982), COEF_CONST(1.007704982), COEF_CONST(1.007704982) },
- { COEF_CONST(1.007704982), COEF_CONST(1.007704982), COEF_CONST(1.01546933), COEF_CONST(1.019373909), COEF_CONST(1.019373909) },
- { COEF_CONST(1.011579706), COEF_CONST(1.01546933), COEF_CONST(1.023293502), COEF_CONST(1.035142941), COEF_CONST(1.039123167) },
+ { COEF_CONST(1), COEF_CONST(1), COEF_CONST(1), COEF_CONST(1), COEF_CONST(1) },
+ { COEF_CONST(1.003845098), COEF_CONST(1.003845098), COEF_CONST(1.007704982), COEF_CONST(1.007704982), COEF_CONST(1.007704982) },
+ { COEF_CONST(1.007704982), COEF_CONST(1.007704982), COEF_CONST(1.01546933), COEF_CONST(1.019373909), COEF_CONST(1.019373909) },
+ { COEF_CONST(1.011579706), COEF_CONST(1.01546933), COEF_CONST(1.023293502), COEF_CONST(1.035142941), COEF_CONST(1.039123167) },
{ COEF_CONST(1.01546933), COEF_CONST(1.023293502), COEF_CONST(1.035142941), COEF_CONST(1.051155908), COEF_CONST(1.059252598) },
- { COEF_CONST(1.019373909), COEF_CONST(1.03117796), COEF_CONST(1.051155908), COEF_CONST(1.071518432), COEF_CONST(1.0839263) },
- { COEF_CONST(1.023293502), COEF_CONST(1.043118698), COEF_CONST(1.067414119), COEF_CONST(1.092277933), COEF_CONST(1.113439626) },
+ { COEF_CONST(1.019373909), COEF_CONST(1.03117796), COEF_CONST(1.051155908), COEF_CONST(1.071518432), COEF_CONST(1.0839263) },
+ { COEF_CONST(1.023293502), COEF_CONST(1.043118698), COEF_CONST(1.067414119), COEF_CONST(1.092277933), COEF_CONST(1.113439626) },
{ COEF_CONST(1.03117796), COEF_CONST(1.055195268), COEF_CONST(1.0839263), COEF_CONST(1.113439626), COEF_CONST(1.143756546) }
};
/* 2^(-pan_quant[x][y]/30) */
static const real_t pan_pow_2_30_neg[8][5] = {
{ COEF_CONST(1), COEF_CONST(1), COEF_CONST(1), COEF_CONST(1), COEF_CONST(1) },
- { COEF_CONST(0.99616963), COEF_CONST(0.99616963), COEF_CONST(0.992353931), COEF_CONST(0.992353931), COEF_CONST(0.99235393) },
- { COEF_CONST(0.992353931), COEF_CONST(0.992353931), COEF_CONST(0.984766325), COEF_CONST(0.980994305), COEF_CONST(0.980994305) },
- { COEF_CONST(0.988552848), COEF_CONST(0.984766325), COEF_CONST(0.977236734), COEF_CONST(0.966050157), COEF_CONST(0.962349827) },
- { COEF_CONST(0.984766325), COEF_CONST(0.977236734), COEF_CONST(0.966050157), COEF_CONST(0.951333663), COEF_CONST(0.944061881) },
- { COEF_CONST(0.980994305), COEF_CONST(0.969764715), COEF_CONST(0.951333663), COEF_CONST(0.933255062), COEF_CONST(0.922571949) },
- { COEF_CONST(0.977236734), COEF_CONST(0.958663671), COEF_CONST(0.936843519), COEF_CONST(0.915517901), COEF_CONST(0.898117847) },
+ { COEF_CONST(0.99616963), COEF_CONST(0.99616963), COEF_CONST(0.992353931), COEF_CONST(0.992353931), COEF_CONST(0.99235393) },
+ { COEF_CONST(0.992353931), COEF_CONST(0.992353931), COEF_CONST(0.984766325), COEF_CONST(0.980994305), COEF_CONST(0.980994305) },
+ { COEF_CONST(0.988552848), COEF_CONST(0.984766325), COEF_CONST(0.977236734), COEF_CONST(0.966050157), COEF_CONST(0.962349827) },
+ { COEF_CONST(0.984766325), COEF_CONST(0.977236734), COEF_CONST(0.966050157), COEF_CONST(0.951333663), COEF_CONST(0.944061881) },
+ { COEF_CONST(0.980994305), COEF_CONST(0.969764715), COEF_CONST(0.951333663), COEF_CONST(0.933255062), COEF_CONST(0.922571949) },
+ { COEF_CONST(0.977236734), COEF_CONST(0.958663671), COEF_CONST(0.936843519), COEF_CONST(0.915517901), COEF_CONST(0.898117847) },
{ COEF_CONST(0.969764715), COEF_CONST(0.947691892), COEF_CONST(0.922571949), COEF_CONST(0.898117847), COEF_CONST(0.874311936) }
};
static const real_t g_decayslope[MAX_SA_BAND] = {
- FRAC_CONST(1), FRAC_CONST(1), FRAC_CONST(1), FRAC_CONST(0.95),FRAC_CONST(0.9), FRAC_CONST(0.85), FRAC_CONST(0.8),
- FRAC_CONST(0.75),FRAC_CONST(0.7), FRAC_CONST(0.65),FRAC_CONST(0.6), FRAC_CONST(0.55),FRAC_CONST(0.5), FRAC_CONST(0.45),
+ FRAC_CONST(1), FRAC_CONST(1), FRAC_CONST(1), FRAC_CONST(0.95),FRAC_CONST(0.9), FRAC_CONST(0.85), FRAC_CONST(0.8),
+ FRAC_CONST(0.75),FRAC_CONST(0.7), FRAC_CONST(0.65),FRAC_CONST(0.6), FRAC_CONST(0.55),FRAC_CONST(0.5), FRAC_CONST(0.45),
FRAC_CONST(0.4), FRAC_CONST(0.35),FRAC_CONST(0.3), FRAC_CONST(0.25),FRAC_CONST(0.2), FRAC_CONST(0.15), FRAC_CONST(0.1),
- FRAC_CONST(0.05),FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0),
- FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0),
- FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0),
+ FRAC_CONST(0.05),FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0),
+ FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0),
+ FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0),
FRAC_CONST(0), FRAC_CONST(0), FRAC_CONST(0)
};
@@ -243,26 +243,26 @@ static const real_t sa_sqrt_1_minus[8][2] = {
{ FRAC_CONST(0.929071574), FRAC_CONST(0) }
};
-static const uint8_t sa_freq_scale[9][2] =
+static const uint8_t sa_freq_scale[9][2] =
{
- { 0, 0},
- { 1, 1},
- { 2, 2},
- { 3, 3},
- { 5, 5},
- { 7, 7},
- {10,10},
- {13,13},
+ { 0, 0},
+ { 1, 1},
+ { 2, 2},
+ { 3, 3},
+ { 5, 5},
+ { 7, 7},
+ {10,10},
+ {13,13},
{46,23}
};
-static const uint8_t pan_freq_scale[21] =
+static const uint8_t pan_freq_scale[21] =
{
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 18, 22, 26, 32, 64
};
-static const uint8_t pan_quant_class[20] =
+static const uint8_t pan_quant_class[20] =
{
0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 2, 2, 2, 3, 3, 3, 4, 4, 4
@@ -270,42 +270,42 @@ static const uint8_t pan_quant_class[20] =
/* Inverse mapping lookup */
static const uint8_t pan_inv_freq[64] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19
};
static const uint8_t sa_inv_freq[MAX_SA_BAND] = {
0, 1, 2, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7
};
-static const real_t filter_coeff[] =
+static const real_t filter_coeff[] =
{
FRAC_CONST(0.65143905754106),
FRAC_CONST(0.56471812200776),
FRAC_CONST(0.48954165955695)
};
-static const uint8_t delay_length[][2] =
+static const uint8_t delay_length[][2] =
{
{ 1, 3 }, { 2, 4 }, { 3, 5 }
};
-static const real_t delay_fraction[] =
+static const real_t delay_fraction[] =
{
FRAC_CONST(0.43), FRAC_CONST(0.75), FRAC_CONST(0.347)
};
-static const real_t peak_decay[2] =
+static const real_t peak_decay[2] =
{
FRAC_CONST(0.58664621951003), FRAC_CONST(0.76592833836465)
};
-static const real_t smooth_coeff[2] =
+static const real_t smooth_coeff[2] =
{
FRAC_CONST(0.6), FRAC_CONST(0.25)
};
@@ -545,7 +545,7 @@ static int8_t sa_delta_clip(drm_ps_info *ps, int8_t i)
}
static int8_t pan_delta_clip(drm_ps_info *ps, int8_t i)
-{
+{
if (i < -7) {
/* printf(" PANminclip %d", i); */
ps->pan_decode_error = 1;
@@ -558,34 +558,34 @@ static int8_t pan_delta_clip(drm_ps_info *ps, int8_t i)
return i;
}
-static void drm_ps_delta_decode(drm_ps_info *ps)
+static void drm_ps_delta_decode(drm_ps_info *ps)
{
- uint8_t band;
+ uint8_t band;
- if (ps->bs_enable_sa)
- {
- if (ps->bs_sa_dt_flag && !ps->g_last_had_sa)
- {
+ if (ps->bs_enable_sa)
+ {
+ if (ps->bs_sa_dt_flag && !ps->g_last_had_sa)
+ {
for (band = 0; band < DRM_NUM_SA_BANDS; band++)
- {
+ {
ps->g_prev_sa_index[band] = 0;
- }
- }
+ }
+ }
if (ps->bs_sa_dt_flag)
{
- ps->g_sa_index[0] = sa_delta_clip(ps, ps->g_prev_sa_index[0]+ps->bs_sa_data[0]);
+ ps->g_sa_index[0] = sa_delta_clip(ps, ps->g_prev_sa_index[0]+ps->bs_sa_data[0]);
} else {
- ps->g_sa_index[0] = sa_delta_clip(ps,ps->bs_sa_data[0]);
+ ps->g_sa_index[0] = sa_delta_clip(ps,ps->bs_sa_data[0]);
}
-
+
for (band = 1; band < DRM_NUM_SA_BANDS; band++)
- {
+ {
if (ps->bs_sa_dt_flag)
{
ps->g_sa_index[band] = sa_delta_clip(ps, ps->g_prev_sa_index[band] + ps->bs_sa_data[band]);
} else {
- ps->g_sa_index[band] = sa_delta_clip(ps, ps->g_sa_index[band-1] + ps->bs_sa_data[band]);
+ ps->g_sa_index[band] = sa_delta_clip(ps, ps->g_sa_index[band-1] + ps->bs_sa_data[band]);
}
}
}
@@ -597,45 +597,45 @@ static void drm_ps_delta_decode(drm_ps_info *ps)
ps->bs_enable_pan = ps->g_last_had_pan;
ps->bs_enable_sa = ps->g_last_had_sa;
}
-
-
- if (ps->bs_enable_sa)
- {
+
+
+ if (ps->bs_enable_sa)
+ {
if (ps->sa_decode_error) {
for (band = 0; band < DRM_NUM_SA_BANDS; band++)
- {
+ {
ps->g_sa_index[band] = ps->g_last_good_sa_index[band];
}
} else {
for (band = 0; band < DRM_NUM_SA_BANDS; band++)
- {
+ {
ps->g_last_good_sa_index[band] = ps->g_sa_index[band];
}
}
}
-
- if (ps->bs_enable_pan)
+
+ if (ps->bs_enable_pan)
{
- if (ps->bs_pan_dt_flag && !ps->g_last_had_pan)
+ if (ps->bs_pan_dt_flag && !ps->g_last_had_pan)
{
/* The DRM PS spec doesn't say anything about this case. (deltacoded in time without a previous frame)
- AAC PS spec you must tread previous frame as 0, so that's what we try.
+ AAC PS spec you must tread previous frame as 0, so that's what we try.
*/
for (band = 0; band < DRM_NUM_PAN_BANDS; band++)
- {
+ {
ps->g_prev_pan_index[band] = 0;
}
- }
+ }
if (ps->bs_pan_dt_flag)
- {
+ {
ps->g_pan_index[0] = pan_delta_clip(ps, ps->g_prev_pan_index[0]+ps->bs_pan_data[0]);
} else {
ps->g_pan_index[0] = pan_delta_clip(ps, ps->bs_pan_data[0]);
}
-
+
for (band = 1; band < DRM_NUM_PAN_BANDS; band++)
- {
+ {
if (ps->bs_pan_dt_flag)
{
ps->g_pan_index[band] = pan_delta_clip(ps, ps->g_prev_pan_index[band] + ps->bs_pan_data[band]);
@@ -643,23 +643,23 @@ static void drm_ps_delta_decode(drm_ps_info *ps)
ps->g_pan_index[band] = pan_delta_clip(ps, ps->g_pan_index[band-1] + ps->bs_pan_data[band]);
}
}
-
+
if (ps->pan_decode_error) {
for (band = 0; band < DRM_NUM_PAN_BANDS; band++)
- {
+ {
ps->g_pan_index[band] = ps->g_last_good_pan_index[band];
}
} else {
for (band = 0; band < DRM_NUM_PAN_BANDS; band++)
- {
+ {
ps->g_last_good_pan_index[band] = ps->g_pan_index[band];
}
}
}
}
-static void drm_calc_sa_side_signal(drm_ps_info *ps, qmf_t X[38][64], uint8_t rateselect)
-{
+static void drm_calc_sa_side_signal(drm_ps_info *ps, qmf_t X[38][64], uint8_t rateselect)
+{
uint8_t s, b, k;
complex_t qfrac, tmp0, tmp, in, R0;
real_t peakdiff;
@@ -675,7 +675,7 @@ static void drm_calc_sa_side_signal(drm_ps_info *ps, qmf_t X[38][64], uint8_t ra
for (b = 0; b < sa_freq_scale[DRM_NUM_SA_BANDS][rateselect]; b++)
{
- /* set delay indices */
+ /* set delay indices */
for (k = 0; k < NUM_OF_LINKS; k++)
temp_delay_ser[k] = ps->delay_buf_index_ser[k];
@@ -683,7 +683,7 @@ static void drm_calc_sa_side_signal(drm_ps_info *ps, qmf_t X[38][64], uint8_t ra
IM(Phi_Fract) = IM(Phi_Fract_Qmf[b]);
for (s = 0; s < NUM_OF_SUBSAMPLES; s++)
- {
+ {
const real_t gamma = REAL_CONST(1.5);
const real_t sigma = REAL_CONST(1.5625);
@@ -718,8 +718,8 @@ static void drm_calc_sa_side_signal(drm_ps_info *ps, qmf_t X[38][64], uint8_t ra
} else {
transratio = MUL_R(DIV_R(nrg, MUL_R(peakdiff, gamma)), sigma);
}
-
- for (k = 0; k < NUM_OF_LINKS; k++)
+
+ for (k = 0; k < NUM_OF_LINKS; k++)
{
new_delay_slopes[k] = MUL_F(g_decayslope[b], filter_coeff[k]);
}
@@ -731,14 +731,14 @@ static void drm_calc_sa_side_signal(drm_ps_info *ps, qmf_t X[38][64], uint8_t ra
IM(ps->d_buff[0][b]) = IM(ps->d_buff[1][b]);
RE(ps->d_buff[1][b]) = RE(in);
- IM(ps->d_buff[1][b]) = IM(in);
+ IM(ps->d_buff[1][b]) = IM(in);
ComplexMult(&RE(tmp), &IM(tmp), RE(tmp0), IM(tmp0), RE(Phi_Fract), IM(Phi_Fract));
RE(R0) = RE(tmp);
IM(R0) = IM(tmp);
- for (k = 0; k < NUM_OF_LINKS; k++)
+ for (k = 0; k < NUM_OF_LINKS; k++)
{
RE(qfrac) = RE(Q_Fract_allpass_Qmf[b][k]);
IM(qfrac) = IM(Q_Fract_allpass_Qmf[b][k]);
@@ -766,19 +766,19 @@ static void drm_calc_sa_side_signal(drm_ps_info *ps, qmf_t X[38][64], uint8_t ra
if (++temp_delay_ser[k] >= delay_length[k][rateselect])
temp_delay_ser[k] = 0;
}
- }
+ }
}
for (k = 0; k < NUM_OF_LINKS; k++)
ps->delay_buf_index_ser[k] = temp_delay_ser[k];
}
-static void drm_add_ambiance(drm_ps_info *ps, uint8_t rateselect, qmf_t X_left[38][64], qmf_t X_right[38][64])
+static void drm_add_ambiance(drm_ps_info *ps, uint8_t rateselect, qmf_t X_left[38][64], qmf_t X_right[38][64])
{
- uint8_t s, b, ifreq, qclass;
+ uint8_t s, b, ifreq, qclass;
real_t sa_map[MAX_SA_BAND], sa_dir_map[MAX_SA_BAND], k_sa_map[MAX_SA_BAND], k_sa_dir_map[MAX_SA_BAND];
real_t new_dir_map, new_sa_map;
-
+
if (ps->bs_enable_sa)
{
/* Instead of dequantization and mapping, we use an inverse mapping
@@ -793,11 +793,11 @@ static void drm_add_ambiance(drm_ps_info *ps, uint8_t rateselect, qmf_t X_left[3
sa_map[b] = sa_quant[ps->g_prev_sa_index[ifreq]][qclass];
new_sa_map = sa_quant[ps->g_sa_index[ifreq]][qclass];
- k_sa_map[b] = MUL_F(inv_f_num_of_subsamples, (new_sa_map - sa_map[b]));
-
- sa_dir_map[b] = sa_sqrt_1_minus[ps->g_prev_sa_index[ifreq]][qclass];
+ k_sa_map[b] = MUL_F(inv_f_num_of_subsamples, (new_sa_map - sa_map[b]));
+
+ sa_dir_map[b] = sa_sqrt_1_minus[ps->g_prev_sa_index[ifreq]][qclass];
new_dir_map = sa_sqrt_1_minus[ps->g_sa_index[ifreq]][qclass];
-
+
k_sa_dir_map[b] = MUL_F(inv_f_num_of_subsamples, (new_dir_map - sa_dir_map[b]));
}
@@ -805,35 +805,35 @@ static void drm_add_ambiance(drm_ps_info *ps, uint8_t rateselect, qmf_t X_left[3
for (s = 0; s < NUM_OF_SUBSAMPLES; s++)
{
for (b = 0; b < sa_freq_scale[DRM_NUM_SA_BANDS][rateselect]; b++)
- {
+ {
QMF_RE(X_right[s][b]) = MUL_F(QMF_RE(X_left[s][b]), sa_dir_map[b]) - MUL_F(QMF_RE(ps->SA[s][b]), sa_map[b]);
QMF_IM(X_right[s][b]) = MUL_F(QMF_IM(X_left[s][b]), sa_dir_map[b]) - MUL_F(QMF_IM(ps->SA[s][b]), sa_map[b]);
QMF_RE(X_left[s][b]) = MUL_F(QMF_RE(X_left[s][b]), sa_dir_map[b]) + MUL_F(QMF_RE(ps->SA[s][b]), sa_map[b]);
QMF_IM(X_left[s][b]) = MUL_F(QMF_IM(X_left[s][b]), sa_dir_map[b]) + MUL_F(QMF_IM(ps->SA[s][b]), sa_map[b]);
-
+
sa_map[b] += k_sa_map[b];
sa_dir_map[b] += k_sa_dir_map[b];
}
for (b = sa_freq_scale[DRM_NUM_SA_BANDS][rateselect]; b < NUM_OF_QMF_CHANNELS; b++)
- {
+ {
QMF_RE(X_right[s][b]) = QMF_RE(X_left[s][b]);
QMF_IM(X_right[s][b]) = QMF_IM(X_left[s][b]);
}
}
- }
+ }
else {
for (s = 0; s < NUM_OF_SUBSAMPLES; s++)
{
for (b = 0; b < NUM_OF_QMF_CHANNELS; b++)
{
QMF_RE(X_right[s][b]) = QMF_RE(X_left[s][b]);
- QMF_IM(X_right[s][b]) = QMF_IM(X_left[s][b]);
+ QMF_IM(X_right[s][b]) = QMF_IM(X_left[s][b]);
}
}
}
}
-static void drm_add_pan(drm_ps_info *ps, uint8_t rateselect, qmf_t X_left[38][64], qmf_t X_right[38][64])
+static void drm_add_pan(drm_ps_info *ps, uint8_t rateselect, qmf_t X_left[38][64], qmf_t X_right[38][64])
{
uint8_t s, b, qclass, ifreq;
real_t tmp, coeff1, coeff2;
@@ -843,7 +843,7 @@ static void drm_add_pan(drm_ps_info *ps, uint8_t rateselect, qmf_t X_left[38][64
if (ps->bs_enable_pan)
{
- for (b = 0; b < NUM_OF_QMF_CHANNELS; b++)
+ for (b = 0; b < NUM_OF_QMF_CHANNELS; b++)
{
/* Instead of dequantization, 20->64 mapping and 2^G(x,y) we do an
inverse mapping 64->20 and look up the 2^G(x,y) values directly */
@@ -852,7 +852,7 @@ static void drm_add_pan(drm_ps_info *ps, uint8_t rateselect, qmf_t X_left[38][64
if (ps->g_prev_pan_index[ifreq] >= 0)
{
- pan_base[b] = pan_pow_2_pos[ps->g_prev_pan_index[ifreq]][qclass];
+ pan_base[b] = pan_pow_2_pos[ps->g_prev_pan_index[ifreq]][qclass];
} else {
pan_base[b] = pan_pow_2_neg[-ps->g_prev_pan_index[ifreq]][qclass];
}
@@ -861,7 +861,7 @@ static void drm_add_pan(drm_ps_info *ps, uint8_t rateselect, qmf_t X_left[38][64
/* a en b can be negative so we may need to inverse parts */
if (ps->g_pan_index[ifreq] >= 0)
{
- if (ps->g_prev_pan_index[ifreq] >= 0)
+ if (ps->g_prev_pan_index[ifreq] >= 0)
{
pan_delta[b] = MUL_C(pan_pow_2_30_pos[ps->g_pan_index[ifreq]][qclass],
pan_pow_2_30_neg[ps->g_prev_pan_index[ifreq]][qclass]);
@@ -870,7 +870,7 @@ static void drm_add_pan(drm_ps_info *ps, uint8_t rateselect, qmf_t X_left[38][64
pan_pow_2_30_pos[-ps->g_prev_pan_index[ifreq]][qclass]);
}
} else {
- if (ps->g_prev_pan_index[ifreq] >= 0)
+ if (ps->g_prev_pan_index[ifreq] >= 0)
{
pan_delta[b] = MUL_C(pan_pow_2_30_neg[-ps->g_pan_index[ifreq]][qclass],
pan_pow_2_30_neg[ps->g_prev_pan_index[ifreq]][qclass]);
@@ -889,7 +889,7 @@ static void drm_add_pan(drm_ps_info *ps, uint8_t rateselect, qmf_t X_left[38][64
tmp = pan_base[b];
coeff2 = DIV_R(REAL_CONST(2.0), (REAL_CONST(1.0) + tmp));
- coeff1 = MUL_R(coeff2, tmp);
+ coeff1 = MUL_R(coeff2, tmp);
QMF_RE(temp_l) = QMF_RE(X_left[s][b]);
QMF_IM(temp_l) = QMF_IM(X_left[s][b]);
@@ -900,20 +900,20 @@ static void drm_add_pan(drm_ps_info *ps, uint8_t rateselect, qmf_t X_left[38][64
QMF_IM(X_left[s][b]) = MUL_R(QMF_IM(temp_l), coeff1);
QMF_RE(X_right[s][b]) = MUL_R(QMF_RE(temp_r), coeff2);
QMF_IM(X_right[s][b]) = MUL_R(QMF_IM(temp_r), coeff2);
-
+
/* 2^(a+k*b) = 2^a * 2^b * ... * 2^b */
/* ^^^^^^^^^^^^^^^ k times */
pan_base[b] = MUL_C(pan_base[b], pan_delta[b]);
- }
- }
- }
+ }
+ }
+ }
}
drm_ps_info *drm_ps_init(void)
{
drm_ps_info *ps = (drm_ps_info*)faad_malloc(sizeof(drm_ps_info));
- memset(ps, 0, sizeof(drm_ps_info));
+ memset(ps, 0, sizeof(drm_ps_info));
return ps;
}
@@ -927,14 +927,14 @@ void drm_ps_free(drm_ps_info *ps)
uint8_t drm_ps_decode(drm_ps_info *ps, uint8_t guess, uint32_t samplerate, qmf_t X_left[38][64], qmf_t X_right[38][64])
{
uint8_t rateselect = (samplerate >= 24000);
-
- if (ps == NULL)
+
+ if (ps == NULL)
{
memcpy(X_right, X_left, sizeof(qmf_t)*30*64);
- return 0;
- }
+ return 0;
+ }
- if (!ps->drm_ps_data_available && !guess)
+ if (!ps->drm_ps_data_available && !guess)
{
memcpy(X_right, X_left, sizeof(qmf_t)*30*64);
memset(ps->g_prev_sa_index, 0, sizeof(ps->g_prev_sa_index));
@@ -949,13 +949,13 @@ uint8_t drm_ps_decode(drm_ps_info *ps, uint8_t guess, uint32_t samplerate, qmf_t
ps->sa_decode_error = 0;
ps->pan_decode_error = 0;
drm_ps_delta_decode(ps);
- } else
+ } else
{
ps->sa_decode_error = 1;
ps->pan_decode_error = 1;
/* don't even bother decoding */
}
-
+
ps->drm_ps_data_available = 0;
drm_calc_sa_side_signal(ps, X_left, rateselect);
@@ -963,19 +963,19 @@ uint8_t drm_ps_decode(drm_ps_info *ps, uint8_t guess, uint32_t samplerate, qmf_t
if (ps->bs_enable_sa)
{
- ps->g_last_had_sa = 1;
+ ps->g_last_had_sa = 1;
- memcpy(ps->g_prev_sa_index, ps->g_sa_index, sizeof(int8_t) * DRM_NUM_SA_BANDS);
+ memcpy(ps->g_prev_sa_index, ps->g_sa_index, sizeof(int8_t) * DRM_NUM_SA_BANDS);
} else {
ps->g_last_had_sa = 0;
}
-
+
if (ps->bs_enable_pan)
{
drm_add_pan(ps, rateselect, X_left, X_right);
-
- ps->g_last_had_pan = 1;
+
+ ps->g_last_had_pan = 1;
memcpy(ps->g_prev_pan_index, ps->g_pan_index, sizeof(int8_t) * DRM_NUM_PAN_BANDS);
diff --git a/libfaad2/drm_dec.h b/libfaad2/drm_dec.h
index e90b2340bd..90f2534ecb 100644
--- a/libfaad2/drm_dec.h
+++ b/libfaad2/drm_dec.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
@@ -45,7 +45,7 @@ extern "C" {
#define MAX_DELAY 5
typedef struct
-{
+{
uint8_t drm_ps_data_available;
uint8_t bs_enable_sa;
uint8_t bs_enable_pan;
@@ -58,28 +58,28 @@ typedef struct
int8_t bs_sa_data[DRM_NUM_SA_BANDS];
int8_t bs_pan_data[DRM_NUM_PAN_BANDS];
-
+
int8_t g_sa_index[DRM_NUM_SA_BANDS];
- int8_t g_pan_index[DRM_NUM_PAN_BANDS];
+ int8_t g_pan_index[DRM_NUM_PAN_BANDS];
int8_t g_prev_sa_index[DRM_NUM_SA_BANDS];
- int8_t g_prev_pan_index[DRM_NUM_PAN_BANDS];
+ int8_t g_prev_pan_index[DRM_NUM_PAN_BANDS];
int8_t sa_decode_error;
int8_t pan_decode_error;
int8_t g_last_good_sa_index[DRM_NUM_SA_BANDS];
int8_t g_last_good_pan_index[DRM_NUM_PAN_BANDS];
-
- qmf_t SA[NUM_OF_SUBSAMPLES][MAX_SA_BAND];
+
+ qmf_t SA[NUM_OF_SUBSAMPLES][MAX_SA_BAND];
complex_t d_buff[2][MAX_SA_BAND];
complex_t d2_buff[NUM_OF_LINKS][MAX_DELAY][MAX_SA_BAND];
- uint8_t delay_buf_index_ser[NUM_OF_LINKS];
-
+ uint8_t delay_buf_index_ser[NUM_OF_LINKS];
+
real_t prev_nrg[MAX_SA_BAND];
real_t prev_peakdiff[MAX_SA_BAND];
- real_t peakdecay_fast[MAX_SA_BAND];
+ real_t peakdecay_fast[MAX_SA_BAND];
} drm_ps_info;
diff --git a/libfaad2/error.c b/libfaad2/error.c
index 0d3c7a6e0d..7839878974 100644
--- a/libfaad2/error.c
+++ b/libfaad2/error.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/error.h b/libfaad2/error.h
index 6c5b8192df..ff88c9b438 100644
--- a/libfaad2/error.h
+++ b/libfaad2/error.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/filtbank.c b/libfaad2/filtbank.c
index 4dc48dc119..4f022d15a4 100644
--- a/libfaad2/filtbank.c
+++ b/libfaad2/filtbank.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/filtbank.h b/libfaad2/filtbank.h
index 529435bbde..c254ad5b49 100644
--- a/libfaad2/filtbank.h
+++ b/libfaad2/filtbank.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/fixed.h b/libfaad2/fixed.h
index bfedd081b0..afaf6df623 100644
--- a/libfaad2/fixed.h
+++ b/libfaad2/fixed.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/hcr.c b/libfaad2/hcr.c
index d57ce9ff63..00cb655fb0 100644
--- a/libfaad2/hcr.c
+++ b/libfaad2/hcr.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2004 G.C. Pascutto, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
@@ -34,15 +34,15 @@
#include "specrec.h"
#include "huffman.h"
-/* ISO/IEC 14496-3/Amd.1
- * 8.5.3.3: Huffman Codeword Reordering for AAC spectral data (HCR)
+/* ISO/IEC 14496-3/Amd.1
+ * 8.5.3.3: Huffman Codeword Reordering for AAC spectral data (HCR)
*
- * HCR devides the spectral data in known fixed size segments, and
- * sorts it by the importance of the data. The importance is firstly
- * the (lower) position in the spectrum, and secondly the largest
- * value in the used codebook.
+ * HCR devides the spectral data in known fixed size segments, and
+ * sorts it by the importance of the data. The importance is firstly
+ * the (lower) position in the spectrum, and secondly the largest
+ * value in the used codebook.
* The most important data is written at the start of each segment
- * (at known positions), the remaining data is interleaved inbetween,
+ * (at known positions), the remaining data is interleaved inbetween,
* with the writing direction alternating.
* Data length is not increased.
*/
@@ -57,10 +57,10 @@
#define VCB11_FIRST 16
#define VCB11_LAST 31
-static const uint8_t PreSortCB_STD[NUM_CB] =
+static const uint8_t PreSortCB_STD[NUM_CB] =
{ 11, 9, 7, 5, 3, 1};
-static const uint8_t PreSortCB_ER[NUM_CB_ER] =
+static const uint8_t PreSortCB_ER[NUM_CB_ER] =
{ 11, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 9, 7, 5, 3, 1};
/* 8.5.3.3.2 Derivation of segment width */
@@ -71,7 +71,7 @@ static const uint8_t maxCwLen[MAX_CB] = {0, 11, 9, 20, 16, 13, 11, 14, 12, 17, 1
#define segmentWidth(cb) min(maxCwLen[cb], ics->length_of_longest_codeword)
/* bit-twiddling helpers */
-static const uint8_t S[] = {1, 2, 4, 8, 16};
+static const uint8_t S[] = {1, 2, 4, 8, 16};
static const uint32_t B[] = {0x55555555, 0x33333333, 0x0F0F0F0F, 0x00FF00FF, 0x0000FFFF};
typedef struct
@@ -85,11 +85,11 @@ typedef struct
/* rewind and reverse */
/* 32 bit version */
static uint32_t rewrev_word(uint32_t v, const uint8_t len)
-{
+{
/* 32 bit reverse */
- v = ((v >> S[0]) & B[0]) | ((v << S[0]) & ~B[0]);
- v = ((v >> S[1]) & B[1]) | ((v << S[1]) & ~B[1]);
- v = ((v >> S[2]) & B[2]) | ((v << S[2]) & ~B[2]);
+ v = ((v >> S[0]) & B[0]) | ((v << S[0]) & ~B[0]);
+ v = ((v >> S[1]) & B[1]) | ((v << S[1]) & ~B[1]);
+ v = ((v >> S[2]) & B[2]) | ((v << S[2]) & ~B[2]);
v = ((v >> S[3]) & B[3]) | ((v << S[3]) & ~B[3]);
v = ((v >> S[4]) & B[4]) | ((v << S[4]) & ~B[4]);
@@ -101,7 +101,7 @@ static uint32_t rewrev_word(uint32_t v, const uint8_t len)
/* 64 bit version */
static void rewrev_lword(uint32_t *hi, uint32_t *lo, const uint8_t len)
-{
+{
if (len <= 32) {
*hi = 0;
*lo = rewrev_word(*lo, len);
@@ -110,22 +110,22 @@ static void rewrev_lword(uint32_t *hi, uint32_t *lo, const uint8_t len)
uint32_t t = *hi, v = *lo;
/* double 32 bit reverse */
- v = ((v >> S[0]) & B[0]) | ((v << S[0]) & ~B[0]);
- t = ((t >> S[0]) & B[0]) | ((t << S[0]) & ~B[0]);
- v = ((v >> S[1]) & B[1]) | ((v << S[1]) & ~B[1]);
- t = ((t >> S[1]) & B[1]) | ((t << S[1]) & ~B[1]);
- v = ((v >> S[2]) & B[2]) | ((v << S[2]) & ~B[2]);
- t = ((t >> S[2]) & B[2]) | ((t << S[2]) & ~B[2]);
+ v = ((v >> S[0]) & B[0]) | ((v << S[0]) & ~B[0]);
+ t = ((t >> S[0]) & B[0]) | ((t << S[0]) & ~B[0]);
+ v = ((v >> S[1]) & B[1]) | ((v << S[1]) & ~B[1]);
+ t = ((t >> S[1]) & B[1]) | ((t << S[1]) & ~B[1]);
+ v = ((v >> S[2]) & B[2]) | ((v << S[2]) & ~B[2]);
+ t = ((t >> S[2]) & B[2]) | ((t << S[2]) & ~B[2]);
v = ((v >> S[3]) & B[3]) | ((v << S[3]) & ~B[3]);
t = ((t >> S[3]) & B[3]) | ((t << S[3]) & ~B[3]);
- v = ((v >> S[4]) & B[4]) | ((v << S[4]) & ~B[4]);
+ v = ((v >> S[4]) & B[4]) | ((v << S[4]) & ~B[4]);
t = ((t >> S[4]) & B[4]) | ((t << S[4]) & ~B[4]);
/* last 32<>32 bit swap is implicit below */
-
+
/* shift off low bits (this is really only one 64 bit shift) */
*lo = (t >> (64 - len)) | (v << (len - 32));
- *hi = v >> (64 - len);
+ *hi = v >> (64 - len);
}
}
@@ -147,7 +147,7 @@ static void concat_bits(bits_t *b, bits_t *a)
al = a->bufa;
ah = a->bufb;
-
+
if (b->len > 32)
{
/* maskoff superfluous high b bits */
@@ -158,7 +158,7 @@ static void concat_bits(bits_t *b, bits_t *a)
al = 0;
} else {
bl = b->bufa & ((1 << (b->len)) - 1);
- bh = 0;
+ bh = 0;
ah = (ah << (b->len)) | (al >> (32 - b->len));
al = al << b->len;
}
@@ -169,7 +169,7 @@ static void concat_bits(bits_t *b, bits_t *a)
b->len += a->len;
}
-
+
uint8_t is_good_cb(uint8_t this_CB, uint8_t this_sec_CB)
{
/* only want spectral data CB's */
@@ -187,20 +187,20 @@ uint8_t is_good_cb(uint8_t this_CB, uint8_t this_sec_CB)
}
return 0;
}
-
+
void read_segment(bits_t *segment, uint8_t segwidth, bitfile *ld)
{
segment->len = segwidth;
if (segwidth > 32)
{
- segment->bufb = faad_getbits(ld, segwidth - 32);
- segment->bufa = faad_getbits(ld, 32);
+ segment->bufb = faad_getbits(ld, segwidth - 32);
+ segment->bufa = faad_getbits(ld, 32);
} else {
segment->bufa = faad_getbits(ld, segwidth);
- segment->bufb = 0;
- }
+ segment->bufb = 0;
+ }
}
void fill_in_codeword(codeword_t *codeword, uint16_t index, uint16_t sp, uint8_t cb)
@@ -211,22 +211,22 @@ void fill_in_codeword(codeword_t *codeword, uint16_t index, uint16_t sp, uint8_t
codeword[index].bits.len = 0;
}
-uint8_t reordered_spectral_data(NeAACDecHandle hDecoder, ic_stream *ics,
+uint8_t reordered_spectral_data(NeAACDecHandle hDecoder, ic_stream *ics,
bitfile *ld, int16_t *spectral_data)
-{
+{
uint16_t PCWs_done;
- uint16_t numberOfSegments, numberOfSets, numberOfCodewords;
+ uint16_t numberOfSegments, numberOfSets, numberOfCodewords;
codeword_t codeword[512];
bits_t segment[512];
uint16_t sp_offset[8];
uint16_t g, i, sortloop, set, bitsread;
- uint8_t w_idx, sfb, this_CB, last_CB, this_sec_CB;
-
+ uint8_t w_idx, sfb, this_CB, last_CB, this_sec_CB;
+
const uint16_t nshort = hDecoder->frameLength/8;
const uint16_t sp_data_len = ics->length_of_reordered_spectral_data;
-
+
const uint8_t *PreSortCb;
/* no data (e.g. silence) */
@@ -236,9 +236,9 @@ uint8_t reordered_spectral_data(NeAACDecHandle hDecoder, ic_stream *ics,
/* since there is spectral data, at least one codeword has nonzero length */
if (ics->length_of_longest_codeword == 0)
return 10;
-
+
if (sp_data_len < ics->length_of_longest_codeword)
- return 10;
+ return 10;
sp_offset[0] = 0;
for (g = 1; g < ics->num_window_groups; g++)
@@ -261,13 +261,13 @@ uint8_t reordered_spectral_data(NeAACDecHandle hDecoder, ic_stream *ics,
PreSortCb = PreSortCB_STD;
last_CB = NUM_CB;
}
-
+
/* step 1: decode PCW's (set 0), and stuff data in easier-to-use format */
for (sortloop = 0; sortloop < last_CB; sortloop++)
{
/* select codebook to process this pass */
this_CB = PreSortCb[sortloop];
-
+
/* loop over sfbs */
for (sfb = 0; sfb < ics->max_sfb; sfb++)
{
@@ -280,34 +280,34 @@ uint8_t reordered_spectral_data(NeAACDecHandle hDecoder, ic_stream *ics,
{
/* check whether sfb used here is the one we want to process */
if ((ics->sect_start[g][i] <= sfb) && (ics->sect_end[g][i] > sfb))
- {
+ {
/* check whether codebook used here is the one we want to process */
this_sec_CB = ics->sect_cb[g][i];
-
- if (is_good_cb(this_CB, this_sec_CB))
+
+ if (is_good_cb(this_CB, this_sec_CB))
{
/* precalculate some stuff */
uint16_t sect_sfb_size = ics->sect_sfb_offset[g][sfb+1] - ics->sect_sfb_offset[g][sfb];
uint8_t inc = (this_sec_CB < FIRST_PAIR_HCB) ? QUAD_LEN : PAIR_LEN;
uint16_t group_cws_count = (4*ics->window_group_length[g])/inc;
uint8_t segwidth = segmentWidth(this_sec_CB);
- uint16_t cws;
+ uint16_t cws;
- /* read codewords until end of sfb or end of window group (shouldn't only 1 trigger?) */
+ /* read codewords until end of sfb or end of window group (shouldn't only 1 trigger?) */
for (cws = 0; (cws < group_cws_count) && ((cws + w_idx*group_cws_count) < sect_sfb_size); cws++)
{
- uint16_t sp = sp_offset[g] + ics->sect_sfb_offset[g][sfb] + inc * (cws + w_idx*group_cws_count);
+ uint16_t sp = sp_offset[g] + ics->sect_sfb_offset[g][sfb] + inc * (cws + w_idx*group_cws_count);
/* read and decode PCW */
if (!PCWs_done)
- {
+ {
/* read in normal segments */
if (bitsread + segwidth <= sp_data_len)
- {
- read_segment(&segment[numberOfSegments], segwidth, ld);
+ {
+ read_segment(&segment[numberOfSegments], segwidth, ld);
bitsread += segwidth;
-
- huffman_spectral_data_2(this_sec_CB, &segment[numberOfSegments], &spectral_data[sp]);
+
+ huffman_spectral_data_2(this_sec_CB, &segment[numberOfSegments], &spectral_data[sp]);
/* keep leftover bits */
rewrev_bits(&segment[numberOfSegments]);
@@ -318,48 +318,48 @@ uint8_t reordered_spectral_data(NeAACDecHandle hDecoder, ic_stream *ics,
this in earlier because it might not fit in 64 bits. since we already
decoded (and removed) the PCW it is now guaranteed to fit */
if (bitsread < sp_data_len)
- {
- const uint8_t additional_bits = sp_data_len - bitsread;
+ {
+ const uint8_t additional_bits = sp_data_len - bitsread;
- read_segment(&segment[numberOfSegments], additional_bits, ld);
+ read_segment(&segment[numberOfSegments], additional_bits, ld);
segment[numberOfSegments].len += segment[numberOfSegments-1].len;
- rewrev_bits(&segment[numberOfSegments]);
+ rewrev_bits(&segment[numberOfSegments]);
if (segment[numberOfSegments-1].len > 32)
{
- segment[numberOfSegments-1].bufb = segment[numberOfSegments].bufb +
+ segment[numberOfSegments-1].bufb = segment[numberOfSegments].bufb +
showbits_hcr(&segment[numberOfSegments-1], segment[numberOfSegments-1].len - 32);
- segment[numberOfSegments-1].bufa = segment[numberOfSegments].bufa +
+ segment[numberOfSegments-1].bufa = segment[numberOfSegments].bufa +
showbits_hcr(&segment[numberOfSegments-1], 32);
} else {
- segment[numberOfSegments-1].bufa = segment[numberOfSegments].bufa +
+ segment[numberOfSegments-1].bufa = segment[numberOfSegments].bufa +
showbits_hcr(&segment[numberOfSegments-1], segment[numberOfSegments-1].len);
segment[numberOfSegments-1].bufb = segment[numberOfSegments].bufb;
- }
+ }
segment[numberOfSegments-1].len += additional_bits;
}
bitsread = sp_data_len;
PCWs_done = 1;
- fill_in_codeword(codeword, 0, sp, this_sec_CB);
+ fill_in_codeword(codeword, 0, sp, this_sec_CB);
}
- } else {
- fill_in_codeword(codeword, numberOfCodewords - numberOfSegments, sp, this_sec_CB);
+ } else {
+ fill_in_codeword(codeword, numberOfCodewords - numberOfSegments, sp, this_sec_CB);
}
numberOfCodewords++;
- }
+ }
}
}
- }
- }
+ }
+ }
}
}
}
if (numberOfSegments == 0)
- return 10;
+ return 10;
- numberOfSets = numberOfCodewords / numberOfSegments;
+ numberOfSets = numberOfCodewords / numberOfSegments;
/* step 2: decode nonPCWs */
for (set = 1; set <= numberOfSets; set++)
@@ -382,21 +382,21 @@ uint8_t reordered_spectral_data(NeAACDecHandle hDecoder, ic_stream *ics,
{
uint8_t tmplen;
- if (codeword[codeword_idx].bits.len != 0)
- concat_bits(&segment[segment_idx], &codeword[codeword_idx].bits);
-
+ if (codeword[codeword_idx].bits.len != 0)
+ concat_bits(&segment[segment_idx], &codeword[codeword_idx].bits);
+
tmplen = segment[segment_idx].len;
if (huffman_spectral_data_2(codeword[codeword_idx].cb, &segment[segment_idx],
&spectral_data[codeword[codeword_idx].sp_offset]) >= 0)
{
codeword[codeword_idx].decoded = 1;
- } else
- {
+ } else
+ {
codeword[codeword_idx].bits = segment[segment_idx];
- codeword[codeword_idx].bits.len = tmplen;
+ codeword[codeword_idx].bits.len = tmplen;
}
-
+
}
}
}
diff --git a/libfaad2/huffman.c b/libfaad2/huffman.c
index af2b8caa90..435e3e6b80 100644
--- a/libfaad2/huffman.c
+++ b/libfaad2/huffman.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
@@ -354,7 +354,7 @@ uint8_t huffman_spectral_data(uint8_t cb, bitfile *ld, int16_t *sp)
return huffman_2step_pair_sign(cb, ld, sp);
case 12: {
uint8_t err = huffman_2step_pair(11, ld, sp);
- sp[0] = huffman_codebook(0); sp[1] = huffman_codebook(1);
+ sp[0] = huffman_codebook(0); sp[1] = huffman_codebook(1);
return err; }
case 11:
{
@@ -443,7 +443,7 @@ int8_t huffman_spectral_data_2(uint8_t cb, bits_t *ld, int16_t *sp)
vcb11 = cb;
cb = 11;
}
-
+
cw = showbits_hcr(ld, hcbN[cb]);
offset = hcb_table[cb][cw].offset;
extra_bits = hcb_table[cb][cw].extra_bits;
@@ -466,7 +466,7 @@ int8_t huffman_spectral_data_2(uint8_t cb, bits_t *ld, int16_t *sp)
while (!hcb3[offset].is_leaf)
{
uint8_t b;
-
+
if ( get1bit_hcr(ld, &b) ) return -1;
offset += hcb3[offset].data[b];
}
@@ -485,7 +485,7 @@ int8_t huffman_spectral_data_2(uint8_t cb, bits_t *ld, int16_t *sp)
while (!hcb_bin_table[cb][offset].is_leaf)
{
uint8_t b;
-
+
if (get1bit_hcr(ld, &b) ) return -1;
offset += hcb_bin_table[cb][offset].data[b];
}
@@ -524,7 +524,7 @@ int8_t huffman_spectral_data_2(uint8_t cb, bits_t *ld, int16_t *sp)
int32_t j;
uint32_t off;
- neg = (sp[k] < 0) ? 1 : 0;
+ neg = (sp[k] < 0) ? 1 : 0;
for (i = 4; ; i++)
{
@@ -548,7 +548,7 @@ int8_t huffman_spectral_data_2(uint8_t cb, bits_t *ld, int16_t *sp)
/* this finds errors in the ESCAPE signal */
vcb11_check_LAV(vcb11, sp);
}
- }
+ }
return ld->len;
}
diff --git a/libfaad2/huffman.h b/libfaad2/huffman.h
index e7bc32ca04..e7181a51bb 100644
--- a/libfaad2/huffman.h
+++ b/libfaad2/huffman.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/ic_predict.c b/libfaad2/ic_predict.c
index fc9cc0339f..8b9372ec53 100644
--- a/libfaad2/ic_predict.c
+++ b/libfaad2/ic_predict.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
@@ -51,7 +51,7 @@ static void flt_round(float32_t *pf)
tmp |= (uint32_t)0x00010000; /* insert 1 lsb */
tmp2 = tmp; /* add 1 lsb and elided one */
tmp &= (uint32_t)0xff800000; /* extract exponent and sign */
-
+
*pf = *(float32_t*)&tmp1 + *(float32_t*)&tmp2 - *(float32_t*)&tmp;
} else {
*pf = *(float32_t*)&tmp;
diff --git a/libfaad2/ic_predict.h b/libfaad2/ic_predict.h
index 634b180203..1a6a11f0c2 100644
--- a/libfaad2/ic_predict.h
+++ b/libfaad2/ic_predict.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/iq_table.h b/libfaad2/iq_table.h
index 5f3f8b4a21..abf00177e2 100644
--- a/libfaad2/iq_table.h
+++ b/libfaad2/iq_table.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/is.c b/libfaad2/is.c
index 822383bf33..47a8298bf7 100644
--- a/libfaad2/is.c
+++ b/libfaad2/is.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/is.h b/libfaad2/is.h
index 301878fc1d..910a7089b2 100644
--- a/libfaad2/is.h
+++ b/libfaad2/is.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/kbd_win.h b/libfaad2/kbd_win.h
index 00f919cb45..92da2823df 100644
--- a/libfaad2/kbd_win.h
+++ b/libfaad2/kbd_win.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/local_changes.diff b/libfaad2/local_changes.diff
index db2b60cd68..56d584093e 100644
--- a/libfaad2/local_changes.diff
+++ b/libfaad2/local_changes.diff
@@ -9,10 +9,10 @@
+** detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
+** local_changes.diff contains the exact changes to this file.
**/
-
+
#ifndef __BITS_H__
@@ -58,7 +61,7 @@
-
+
#if defined (_WIN32) && !defined(_WIN32_WCE) && !defined(__MINGW32__)
#define BSWAP(a) __asm mov eax,a __asm bswap eax __asm mov a, eax
-#elif defined(LINUX) || defined(DJGPP) || defined(__MINGW32__)
@@ -31,10 +31,10 @@
+** detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
+** local_changes.diff contains the exact changes to this file.
**/
-
+
#ifndef __COMMON_H__
@@ -32,8 +35,13 @@
-
+
#ifdef HAVE_CONFIG_H
# include "../config.h"
#endif
@@ -43,19 +43,19 @@
+#if defined(__CYGWIN__)
+#define __STRICT_ANSI__
+#endif
-
+
#define INLINE __inline
#if 0 //defined(_WIN32) && !defined(_WIN32_WCE)
#define ALIGN __declspec(align(16))
@@ -61,7 +67,7 @@
/* Use if target platform has address generators with autoincrement */
//#define PREFER_POINTERS
-
+
-#ifdef _WIN32_WCE
+#if defined(_WIN32_WCE) || defined(__arm__) || defined(__avr32__)
#define FIXED_POINT
#endif
-
+
@@ -117,6 +123,9 @@
# ifdef MAIN_DEC
# undef MAIN_DEC
@@ -64,12 +64,12 @@
+# undef SBR_DEC
+# endif
#endif // FIXED_POINT
-
+
#ifdef DRM
@@ -151,6 +160,7 @@
-
+
#include <stdlib.h>
-
+
+#if 0
typedef unsigned __int64 uint64_t;
typedef unsigned __int32 uint32_t;
@@ -83,11 +83,11 @@
+#endif
+
typedef float float32_t;
-
+
@@ -289,7 +319,7 @@
}
-
-
+
+
- #if defined(_WIN32) && !defined(__MINGW32__)
+ #if defined(_WIN32) && !defined(__MINGW32__) && !HAVE_LRINTF
#define HAS_LRINTF
@@ -103,9 +103,9 @@
// from http://www.stereopsis.com/FPU.html
static INLINE int lrintf(float f)
@@ -330,7 +360,7 @@
-
+
#else
-
+
+#include <math.h>
+
-#ifdef HAVE_LRINTF
@@ -115,7 +115,7 @@
@@ -338,8 +370,6 @@
# define __USE_ISOC99 1
#endif
-
+
- #include <math.h>
-
#ifdef HAVE_SINF
@@ -135,12 +135,12 @@
+** $Id: output.c,v 1.11 2005/04/05 05:43:41 rfelker Exp $
+** detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
**/
-
+
#include "common.h"
@@ -463,7 +462,7 @@
}
}
-
+
-void* output_to_PCM(NeAACDecHandle hDecoder,
+void* output_to_PCM_sux(NeAACDecHandle hDecoder,
real_t **input, void *sample_buffer, uint8_t channels,
@@ -149,7 +149,7 @@
@@ -554,4 +553,51 @@
return sample_buffer;
}
-
+
+void* output_to_PCM(NeAACDecHandle hDecoder,
+ real_t **input, void *sample_buffer, uint8_t channels,
+ uint16_t frame_len, uint8_t format)
@@ -209,10 +209,10 @@
+** detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
+** local_changes.diff contains the exact changes to this file.
**/
-
+
#include "common.h"
@@ -159,7 +162,7 @@
-
+
/* static function declarations */
static void ps_data_decode(ps_info *ps);
-static hyb_info *hybrid_init();
@@ -222,13 +222,13 @@
static void INLINE DCT3_4_unscaled(real_t *y, real_t *x);
@@ -189,7 +192,7 @@
/* */
-
-
+
+
-static hyb_info *hybrid_init()
+static hyb_info *hybrid_init(void)
{
uint8_t i;
-
+
@@ -1935,8 +1938,8 @@
/* main Parametric Stereo decoding function */
uint8_t ps_decode(ps_info *ps, qmf_t X_left[38][64], qmf_t X_right[38][64])
@@ -237,7 +237,7 @@
- qmf_t X_hybrid_right[32][32] = {{0}};
+ qmf_t X_hybrid_left[32][32] = {{{0}}};
+ qmf_t X_hybrid_right[32][32] = {{{0}}};
-
+
/* delta decoding of the bitstream data */
ps_data_decode(ps);
--- libfaad2.orig/sbr_dec.c 2006-03-16 20:15:04.000000000 +0100
@@ -251,8 +251,8 @@
+** detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
+** local_changes.diff contains the exact changes to this file.
**/
-
-
+
+
@@ -526,8 +529,8 @@
uint8_t l, k;
uint8_t dont_process = 0;
@@ -261,7 +261,7 @@
- ALIGN qmf_t X_right[38][64] = {{0}}; /* must set this to 0 */
+ ALIGN qmf_t X_left[38][64] = {{{0}}};
+ ALIGN qmf_t X_right[38][64] = {{{0}}}; /* must set this to 0 */
-
+
if (sbr == NULL)
return 20;
--- libfaad2.orig/specrec.c 2006-03-16 20:15:04.000000000 +0100
@@ -278,7 +278,7 @@
+** detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
+** local_changes.diff contains the exact changes to this file.
**/
-
+
/*
@@ -673,29 +673,19 @@
/* MAIN object type prediction */
@@ -293,7 +293,7 @@
- }
}
#endif
-
+
#ifdef LTP_DEC
if (is_ltp_ot(hDecoder->object_type))
{
@@ -306,7 +306,7 @@
- }
}
#endif
-
+
- if (hDecoder->time_out[channel] == NULL)
- {
mul = 1;
@@ -331,14 +331,14 @@
- }
}
#endif
-
+
- if (hDecoder->fb_intermed[channel] == NULL)
- {
- hDecoder->fb_intermed[channel] = (real_t*)faad_malloc(hDecoder->frameLength*sizeof(real_t));
+ hDecoder->fb_intermed[channel] = (real_t*)realloc(hDecoder->fb_intermed[channel], hDecoder->frameLength*sizeof(real_t));
memset(hDecoder->fb_intermed[channel], 0, hDecoder->frameLength*sizeof(real_t));
- }
-
+
#ifdef SSR_DEC
if (hDecoder->object_type == SSR)
{
@@ -359,9 +359,9 @@
- }
}
#endif
-
+
@@ -865,22 +842,14 @@
-
+
/* always allocate 2 channels, PS can always "suddenly" turn up */
#if (defined(PS_DEC) || defined(DRM_PS))
- output_channels = 2;
@@ -369,7 +369,7 @@
#else
output_channels = 1;
#endif
-
+
- if (hDecoder->element_output_channels[hDecoder->fr_ch_ele] == 0)
- {
- /* element_output_channels not set yet */
@@ -391,7 +391,7 @@
return 23;
}
-#endif
-
+
/* copy L to R when no PS is used */
#if (defined(PS_DEC) || defined(DRM_PS))
- if ((hDecoder->ps_used[hDecoder->fr_ch_ele] == 0))
@@ -404,6 +404,6 @@
}
#endif
+#endif
-
+
return 0;
}
diff --git a/libfaad2/lt_predict.c b/libfaad2/lt_predict.c
index 835c5de210..b641c607ce 100644
--- a/libfaad2/lt_predict.c
+++ b/libfaad2/lt_predict.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/lt_predict.h b/libfaad2/lt_predict.h
index 2615ad4f77..edf6a2b1b5 100644
--- a/libfaad2/lt_predict.h
+++ b/libfaad2/lt_predict.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/mdct.c b/libfaad2/mdct.c
index 1d055e6c0c..4c9144d54e 100644
--- a/libfaad2/mdct.c
+++ b/libfaad2/mdct.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
@@ -29,7 +29,7 @@
* Fast (I)MDCT Implementation using (I)FFT ((Inverse) Fast Fourier Transform)
* and consists of three steps: pre-(I)FFT complex multiplication, complex
* (I)FFT, post-(I)FFT complex multiplication,
- *
+ *
* As described in:
* P. Duhamel, Y. Mahieux, and J.P. Petit, "A Fast Algorithm for the
* Implementation of Filter Banks Based on 'Time Domain Aliasing
diff --git a/libfaad2/mdct.h b/libfaad2/mdct.h
index e74b676341..6c97b80e05 100644
--- a/libfaad2/mdct.h
+++ b/libfaad2/mdct.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/mdct_tab.h b/libfaad2/mdct_tab.h
index 8e4eabea2e..272fb29ef2 100644
--- a/libfaad2/mdct_tab.h
+++ b/libfaad2/mdct_tab.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/mp4.c b/libfaad2/mp4.c
index 0f11aad32a..ef41f8c3e7 100644
--- a/libfaad2/mp4.c
+++ b/libfaad2/mp4.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/mp4.h b/libfaad2/mp4.h
index 4154644bb6..d4eeb74883 100644
--- a/libfaad2/mp4.h
+++ b/libfaad2/mp4.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/ms.c b/libfaad2/ms.c
index dfad827759..efcaf334f1 100644
--- a/libfaad2/ms.c
+++ b/libfaad2/ms.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
@@ -45,7 +45,7 @@ void ms_decode(ic_stream *ics, ic_stream *icsr, real_t *l_spec, real_t *r_spec,
if (ics->ms_mask_present >= 1)
{
- for (g = 0; g < ics->num_window_groups; g++)
+ for (g = 0; g < ics->num_window_groups; g++)
{
for (b = 0; b < ics->window_group_length[g]; b++)
{
diff --git a/libfaad2/ms.h b/libfaad2/ms.h
index 5ffb254bf3..15887f3874 100644
--- a/libfaad2/ms.h
+++ b/libfaad2/ms.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/output.h b/libfaad2/output.h
index b76899d178..e67752819d 100644
--- a/libfaad2/output.h
+++ b/libfaad2/output.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/pns.c b/libfaad2/pns.c
index cfd55e13f6..9ea50cfdce 100644
--- a/libfaad2/pns.c
+++ b/libfaad2/pns.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/pns.h b/libfaad2/pns.h
index c7c6ab2ebb..18bd8ba5fe 100644
--- a/libfaad2/pns.h
+++ b/libfaad2/pns.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/ps_dec.c b/libfaad2/ps_dec.c
index ee6be7fd80..464aed1b8f 100644
--- a/libfaad2/ps_dec.c
+++ b/libfaad2/ps_dec.c
@@ -1625,7 +1625,7 @@ static void ps_mix_phase(ps_info *ps, qmf_t X_left[38][64], qmf_t X_right[38][64
/* ringbuffer index */
if (i == 0)
- {
+ {
i = 2;
}
i--;
diff --git a/libfaad2/ps_dec.h b/libfaad2/ps_dec.h
index ef2e0db16e..21cf549b66 100644
--- a/libfaad2/ps_dec.h
+++ b/libfaad2/ps_dec.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/pulse.c b/libfaad2/pulse.c
index ce3c8e951d..1d45ae845e 100644
--- a/libfaad2/pulse.c
+++ b/libfaad2/pulse.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/pulse.h b/libfaad2/pulse.h
index cadd7ef90c..9861b1b78e 100644
--- a/libfaad2/pulse.h
+++ b/libfaad2/pulse.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/rvlc.c b/libfaad2/rvlc.c
index a525a1d195..fb5e556092 100644
--- a/libfaad2/rvlc.c
+++ b/libfaad2/rvlc.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
@@ -451,7 +451,7 @@ static int8_t rvlc_huffman_sf(bitfile *ld_sf, bitfile *ld_esc,
int8_t index;
uint32_t cw;
rvlc_huff_table *h = book_rvlc;
-
+
i = h->len;
if (direction > 0)
cw = faad_getbits(ld_sf, i DEBUGVAR(1,0,""));
diff --git a/libfaad2/rvlc.h b/libfaad2/rvlc.h
index 4b2d3c52db..2235984dc4 100644
--- a/libfaad2/rvlc.h
+++ b/libfaad2/rvlc.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/sbr_dct.h b/libfaad2/sbr_dct.h
index eff9b86ce8..7b089c328f 100644
--- a/libfaad2/sbr_dct.h
+++ b/libfaad2/sbr_dct.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/sbr_dec.c b/libfaad2/sbr_dec.c
index 2ad36ff8fa..39210268e7 100644
--- a/libfaad2/sbr_dec.c
+++ b/libfaad2/sbr_dec.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
@@ -166,7 +166,7 @@ void sbrDecodeEnd(sbr_info *sbr)
}
#ifdef PS_DEC
- if (sbr->ps != NULL)
+ if (sbr->ps != NULL)
ps_free(sbr->ps);
#endif
diff --git a/libfaad2/sbr_e_nf.c b/libfaad2/sbr_e_nf.c
index 7a171d0d91..0ff7546367 100644
--- a/libfaad2/sbr_e_nf.c
+++ b/libfaad2/sbr_e_nf.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/sbr_e_nf.h b/libfaad2/sbr_e_nf.h
index 123e1f8518..25ad471ee2 100644
--- a/libfaad2/sbr_e_nf.h
+++ b/libfaad2/sbr_e_nf.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/sbr_fbt.c b/libfaad2/sbr_fbt.c
index 751afea72b..029e86a457 100644
--- a/libfaad2/sbr_fbt.c
+++ b/libfaad2/sbr_fbt.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
@@ -77,7 +77,7 @@ uint8_t qmf_start_channel(uint8_t bs_start_freq, uint8_t bs_samplerate_mode,
{
return startMin + offset[offsetIndex][bs_start_freq];
-#if 0 /* replaced by offsetIndexTable */
+#if 0 /* replaced by offsetIndexTable */
switch (sample_rate)
{
case 16000:
diff --git a/libfaad2/sbr_fbt.h b/libfaad2/sbr_fbt.h
index f777ef4403..7a6af56fc8 100644
--- a/libfaad2/sbr_fbt.h
+++ b/libfaad2/sbr_fbt.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/sbr_hfadj.c b/libfaad2/sbr_hfadj.c
index 5d7a67bfbd..c6236f2da9 100644
--- a/libfaad2/sbr_hfadj.c
+++ b/libfaad2/sbr_hfadj.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
@@ -380,16 +380,16 @@ static const real_t log_Qplus1_pan[31][13] = {
};
static const real_t log_Qplus1[31] = {
- REAL_CONST(6.022367813028454), REAL_CONST(5.044394119358453), REAL_CONST(4.087462841250339),
- REAL_CONST(3.169925001442313), REAL_CONST(2.321928094887362), REAL_CONST(1.584962500721156),
- REAL_CONST(1.000000000000000), REAL_CONST(0.584962500721156), REAL_CONST(0.321928094887362),
- REAL_CONST(0.169925001442312), REAL_CONST(0.087462841250339), REAL_CONST(0.044394119358453),
- REAL_CONST(0.022367813028455), REAL_CONST(0.011227255423254), REAL_CONST(0.005624549193878),
- REAL_CONST(0.002815015607054), REAL_CONST(0.001408194392808), REAL_CONST(0.000704269011247),
- REAL_CONST(0.000352177480301), REAL_CONST(0.000176099486443), REAL_CONST(0.000088052430122),
- REAL_CONST(0.000044026886827), REAL_CONST(0.000022013611360), REAL_CONST(0.000011006847667),
- REAL_CONST(0.000005503434331), REAL_CONST(0.000002751719790), REAL_CONST(0.000001375860551),
- REAL_CONST(0.000000687930439), REAL_CONST(0.000000343965261), REAL_CONST(0.000000171982641),
+ REAL_CONST(6.022367813028454), REAL_CONST(5.044394119358453), REAL_CONST(4.087462841250339),
+ REAL_CONST(3.169925001442313), REAL_CONST(2.321928094887362), REAL_CONST(1.584962500721156),
+ REAL_CONST(1.000000000000000), REAL_CONST(0.584962500721156), REAL_CONST(0.321928094887362),
+ REAL_CONST(0.169925001442312), REAL_CONST(0.087462841250339), REAL_CONST(0.044394119358453),
+ REAL_CONST(0.022367813028455), REAL_CONST(0.011227255423254), REAL_CONST(0.005624549193878),
+ REAL_CONST(0.002815015607054), REAL_CONST(0.001408194392808), REAL_CONST(0.000704269011247),
+ REAL_CONST(0.000352177480301), REAL_CONST(0.000176099486443), REAL_CONST(0.000088052430122),
+ REAL_CONST(0.000044026886827), REAL_CONST(0.000022013611360), REAL_CONST(0.000011006847667),
+ REAL_CONST(0.000005503434331), REAL_CONST(0.000002751719790), REAL_CONST(0.000001375860551),
+ REAL_CONST(0.000000687930439), REAL_CONST(0.000000343965261), REAL_CONST(0.000000171982641),
REAL_CONST(0.000000000000000)
};
@@ -846,16 +846,16 @@ static const real_t log_Qplus1_pan[31][13] = {
};
static const real_t log_Qplus1[31] = {
- REAL_CONST(6.022367813028454), REAL_CONST(5.044394119358453), REAL_CONST(4.087462841250339),
- REAL_CONST(3.169925001442313), REAL_CONST(2.321928094887362), REAL_CONST(1.584962500721156),
- REAL_CONST(1.000000000000000), REAL_CONST(0.584962500721156), REAL_CONST(0.321928094887362),
- REAL_CONST(0.169925001442312), REAL_CONST(0.087462841250339), REAL_CONST(0.044394119358453),
- REAL_CONST(0.022367813028455), REAL_CONST(0.011227255423254), REAL_CONST(0.005624549193878),
- REAL_CONST(0.002815015607054), REAL_CONST(0.001408194392808), REAL_CONST(0.000704269011247),
- REAL_CONST(0.000352177480301), REAL_CONST(0.000176099486443), REAL_CONST(0.000088052430122),
- REAL_CONST(0.000044026886827), REAL_CONST(0.000022013611360), REAL_CONST(0.000011006847667),
- REAL_CONST(0.000005503434331), REAL_CONST(0.000002751719790), REAL_CONST(0.000001375860551),
- REAL_CONST(0.000000687930439), REAL_CONST(0.000000343965261), REAL_CONST(0.000000171982641),
+ REAL_CONST(6.022367813028454), REAL_CONST(5.044394119358453), REAL_CONST(4.087462841250339),
+ REAL_CONST(3.169925001442313), REAL_CONST(2.321928094887362), REAL_CONST(1.584962500721156),
+ REAL_CONST(1.000000000000000), REAL_CONST(0.584962500721156), REAL_CONST(0.321928094887362),
+ REAL_CONST(0.169925001442312), REAL_CONST(0.087462841250339), REAL_CONST(0.044394119358453),
+ REAL_CONST(0.022367813028455), REAL_CONST(0.011227255423254), REAL_CONST(0.005624549193878),
+ REAL_CONST(0.002815015607054), REAL_CONST(0.001408194392808), REAL_CONST(0.000704269011247),
+ REAL_CONST(0.000352177480301), REAL_CONST(0.000176099486443), REAL_CONST(0.000088052430122),
+ REAL_CONST(0.000044026886827), REAL_CONST(0.000022013611360), REAL_CONST(0.000011006847667),
+ REAL_CONST(0.000005503434331), REAL_CONST(0.000002751719790), REAL_CONST(0.000001375860551),
+ REAL_CONST(0.000000687930439), REAL_CONST(0.000000343965261), REAL_CONST(0.000000171982641),
REAL_CONST(0.000000000000000)
};
@@ -1371,7 +1371,7 @@ static void calc_gain_groups(sbr_info *sbr, sbr_hfadj_info *adj, real_t *deg, ui
i++;
}
}
- }
+ }
if (grouping)
{
@@ -1393,7 +1393,7 @@ static void aliasing_reduction(sbr_info *sbr, sbr_hfadj_info *adj, real_t *deg,
for (k = 0; k < sbr->N_G[l]; k++)
{
E_total_est = E_total = 0;
-
+
for (m = sbr->f_group[l][k<<1]; m < sbr->f_group[l][(k<<1) + 1]; m++)
{
/* E_curr: integer */
diff --git a/libfaad2/sbr_hfadj.h b/libfaad2/sbr_hfadj.h
index 48e1f7c1e9..88e1878cee 100644
--- a/libfaad2/sbr_hfadj.h
+++ b/libfaad2/sbr_hfadj.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/sbr_hfgen.c b/libfaad2/sbr_hfgen.c
index bea3280d9a..4442fb8a75 100644
--- a/libfaad2/sbr_hfgen.c
+++ b/libfaad2/sbr_hfgen.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
@@ -296,7 +296,7 @@ static void auto_correlation(sbr_info *sbr, acorr_coef *ac, qmf_t buffer[MAX_NTS
/* improves accuracy */
if (exp > 0)
exp -= 1;
-
+
pow2_to_exp = 1<<(exp-1);
temp2_r = (QMF_RE(buffer[offset-2][bd]) + pow2_to_exp) >> exp;
diff --git a/libfaad2/sbr_hfgen.h b/libfaad2/sbr_hfgen.h
index e4a05218ac..e1339700bf 100644
--- a/libfaad2/sbr_hfgen.h
+++ b/libfaad2/sbr_hfgen.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/sbr_huff.c b/libfaad2/sbr_huff.c
index ebf0014c11..a8605a522c 100644
--- a/libfaad2/sbr_huff.c
+++ b/libfaad2/sbr_huff.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/sbr_huff.h b/libfaad2/sbr_huff.h
index 25294b7cef..04eb24c4f3 100644
--- a/libfaad2/sbr_huff.h
+++ b/libfaad2/sbr_huff.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/sbr_noise.h b/libfaad2/sbr_noise.h
index eec0ce2e89..4c00b14d41 100644
--- a/libfaad2/sbr_noise.h
+++ b/libfaad2/sbr_noise.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/sbr_qmf.h b/libfaad2/sbr_qmf.h
index 9e57e30438..22014d9161 100644
--- a/libfaad2/sbr_qmf.h
+++ b/libfaad2/sbr_qmf.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/sbr_syntax.c b/libfaad2/sbr_syntax.c
index 1cd7e416db..04a5f5135a 100644
--- a/libfaad2/sbr_syntax.c
+++ b/libfaad2/sbr_syntax.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/sbr_syntax.h b/libfaad2/sbr_syntax.h
index e139843333..531b6ebab0 100644
--- a/libfaad2/sbr_syntax.h
+++ b/libfaad2/sbr_syntax.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/sbr_tf_grid.c b/libfaad2/sbr_tf_grid.c
index 740ab3a6f7..3e74c3385a 100644
--- a/libfaad2/sbr_tf_grid.c
+++ b/libfaad2/sbr_tf_grid.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/sbr_tf_grid.h b/libfaad2/sbr_tf_grid.h
index 6d2982c430..8b42f19f7b 100644
--- a/libfaad2/sbr_tf_grid.h
+++ b/libfaad2/sbr_tf_grid.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/sine_win.h b/libfaad2/sine_win.h
index affa098434..b29058fe5e 100644
--- a/libfaad2/sine_win.h
+++ b/libfaad2/sine_win.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/specrec.c b/libfaad2/specrec.c
index d4d600916f..da28b70390 100644
--- a/libfaad2/specrec.c
+++ b/libfaad2/specrec.c
@@ -606,10 +606,10 @@ static uint8_t quant_to_spec(NeAACDecHandle hDecoder,
wb = wa + bin;
spec_data[wb+0] = iquant(quant_data[k+0], tab, &error) * scf;
- spec_data[wb+1] = iquant(quant_data[k+1], tab, &error) * scf;
- spec_data[wb+2] = iquant(quant_data[k+2], tab, &error) * scf;
+ spec_data[wb+1] = iquant(quant_data[k+1], tab, &error) * scf;
+ spec_data[wb+2] = iquant(quant_data[k+2], tab, &error) * scf;
spec_data[wb+3] = iquant(quant_data[k+3], tab, &error) * scf;
-
+
#else
real_t iq0 = iquant(quant_data[k+0], tab, &error);
real_t iq1 = iquant(quant_data[k+1], tab, &error);
diff --git a/libfaad2/specrec.h b/libfaad2/specrec.h
index ca23669f9e..cbebf6157f 100644
--- a/libfaad2/specrec.h
+++ b/libfaad2/specrec.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/ssr.c b/libfaad2/ssr.c
index a707dbb528..37e09c3a5e 100644
--- a/libfaad2/ssr.c
+++ b/libfaad2/ssr.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/ssr.h b/libfaad2/ssr.h
index a17a03ac65..b4f6ab6953 100644
--- a/libfaad2/ssr.h
+++ b/libfaad2/ssr.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/ssr_fb.c b/libfaad2/ssr_fb.c
index dc224c1d5b..62f0e2f739 100644
--- a/libfaad2/ssr_fb.c
+++ b/libfaad2/ssr_fb.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/ssr_fb.h b/libfaad2/ssr_fb.h
index fcc3567ed9..acb87b0b17 100644
--- a/libfaad2/ssr_fb.h
+++ b/libfaad2/ssr_fb.h
@@ -1,19 +1,19 @@
/*
** FAAD - Freeware Advanced Audio Decoder
** Copyright (C) 2002 M. Bakker
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** $Id: ssr_fb.h,v 1.13 2004/09/04 14:56:29 menno Exp $
diff --git a/libfaad2/ssr_ipqf.c b/libfaad2/ssr_ipqf.c
index a7998ea1bd..4791f534e6 100644
--- a/libfaad2/ssr_ipqf.c
+++ b/libfaad2/ssr_ipqf.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
@@ -56,7 +56,7 @@ void gc_set_protopqf(real_t *p_proto)
-2.1939551286300665E-02, -2.4533179947088161E-02, -2.2591663337768787E-02,
-1.5122066420044672E-02, -1.7971713448186293E-03, 1.6903413428575379E-02,
3.9672315874127042E-02, 6.4487527248102796E-02, 8.8850025474701726E-02,
- 0.1101132906105560 , 0.1258540205143761 , 0.1342239368467012
+ 0.1101132906105560 , 0.1258540205143761 , 0.1342239368467012
};
for (j = 0; j < 48; ++j)
diff --git a/libfaad2/ssr_ipqf.h b/libfaad2/ssr_ipqf.h
index 435796e37e..ffa8a92c7a 100644
--- a/libfaad2/ssr_ipqf.h
+++ b/libfaad2/ssr_ipqf.h
@@ -1,19 +1,19 @@
/*
** FAAD - Freeware Advanced Audio Decoder
** Copyright (C) 2002 M. Bakker
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** $Id: ssr_ipqf.h,v 1.14 2004/09/04 14:56:29 menno Exp $
diff --git a/libfaad2/ssr_win.h b/libfaad2/ssr_win.h
index 1328644014..7a687b98ba 100644
--- a/libfaad2/ssr_win.h
+++ b/libfaad2/ssr_win.h
@@ -1,19 +1,19 @@
/*
** FAAD - Freeware Advanced Audio Decoder
** Copyright (C) 2002 M. Bakker
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** $Id: ssr_win.h,v 1.13 2004/09/04 14:56:29 menno Exp $
diff --git a/libfaad2/syntax.c b/libfaad2/syntax.c
index 566c16b88b..eeaa12c8bb 100644
--- a/libfaad2/syntax.c
+++ b/libfaad2/syntax.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
@@ -1270,7 +1270,7 @@ void aac_scalable_main_element(NeAACDecHandle hDecoder, NeAACDecFrameInfo *hInfo
/* SBR data was corrupted, disable it until the next header */
if (hDecoder->sbr[0]->ret != 0)
{
- hDecoder->sbr[0]->header_count = 0;
+ hDecoder->sbr[0]->header_count = 0;
}
faad_endbits(&ld_sbr);
@@ -1515,7 +1515,7 @@ static uint8_t individual_channel_stream(NeAACDecHandle hDecoder, element *ele,
return result;
}
- if (hDecoder->object_type >= ER_OBJECT_START)
+ if (hDecoder->object_type >= ER_OBJECT_START)
{
if (ics->tns_data_present)
tns_data(ics, &(ics->tns), ld);
@@ -2510,7 +2510,7 @@ uint32_t faad_latm_frame(latm_header *latm, bitfile *ld)
endpos = faad_get_processed_bits(ld);
if(ret>0)
return (len*8)-(endpos-initpos);
- //faad_getbits(ld, initpos-endpos); //go back to initpos, but is valid a getbits(-N) ?
+ //faad_getbits(ld, initpos-endpos); //go back to initpos, but is valid a getbits(-N) ?
}
return -1U;
}
diff --git a/libfaad2/syntax.h b/libfaad2/syntax.h
index ba08b00a89..a1cb794075 100644
--- a/libfaad2/syntax.h
+++ b/libfaad2/syntax.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/tns.c b/libfaad2/tns.c
index e3bb729e83..5888a42dad 100644
--- a/libfaad2/tns.c
+++ b/libfaad2/tns.c
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
diff --git a/libfaad2/tns.h b/libfaad2/tns.h
index 5b62abc984..f1e4db0e6a 100644
--- a/libfaad2/tns.h
+++ b/libfaad2/tns.h
@@ -1,19 +1,19 @@
/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
-**
+**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
-**
+**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
+** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
@@ -35,7 +35,7 @@ extern "C" {
#define TNS_MAX_ORDER 20
-
+
void tns_decode_frame(ic_stream *ics, tns_info *tns, uint8_t sr_index,
uint8_t object_type, real_t *spec, uint16_t frame_len);
void tns_encode_frame(ic_stream *ics, tns_info *tns, uint8_t sr_index,
diff --git a/libmpcodecs/ad_imaadpcm.c b/libmpcodecs/ad_imaadpcm.c
index 12c5ca8811..9007e7695c 100644
--- a/libmpcodecs/ad_imaadpcm.c
+++ b/libmpcodecs/ad_imaadpcm.c
@@ -163,8 +163,8 @@ static void decode_nibbles(unsigned short *output,
static int qt_ima_adpcm_decode_block(unsigned short *output,
unsigned char *input, int channels, int block_size)
{
- int initial_predictor[2];
- int initial_index[2];
+ int initial_predictor[2] = {0};
+ int initial_index[2] = {0};
int i;
if (channels != 1) channels = 2;
diff --git a/libmpcodecs/vd_ffmpeg.c b/libmpcodecs/vd_ffmpeg.c
index 78d3eb5b7a..4cf20037e9 100644
--- a/libmpcodecs/vd_ffmpeg.c
+++ b/libmpcodecs/vd_ffmpeg.c
@@ -749,6 +749,7 @@ static mp_image_t *decode(sh_video_t *sh, void *data, int len, int flags){
struct lavc_param *lavc_param = &sh->opts->lavc_param;
mp_image_t *mpi=NULL;
int dr1= ctx->do_dr1;
+ AVPacket pkt;
if(len<=0) return NULL; // skipped frame
@@ -769,8 +770,12 @@ static mp_image_t *decode(sh_video_t *sh, void *data, int len, int flags){
mp_msg(MSGT_DECVIDEO, MSGL_DBG2, "vd_ffmpeg data: %04x, %04x, %04x, %04x\n",
((int *)data)[0], ((int *)data)[1], ((int *)data)[2], ((int *)data)[3]);
- ret = avcodec_decode_video(avctx, pic,
- &got_picture, data, len);
+ av_init_packet(&pkt);
+ pkt.data = data;
+ pkt.size = len;
+ // HACK: make PNGs decode normally instead of as CorePNG delta frames
+ pkt.flags = PKT_FLAG_KEY;
+ ret = avcodec_decode_video2(avctx, pic, &got_picture, &pkt);
dr1= ctx->do_dr1;
if(ret<0) mp_msg(MSGT_DECVIDEO, MSGL_WARN, "Error while decoding frame!\n");
diff --git a/libmpcodecs/vf_fspp.c b/libmpcodecs/vf_fspp.c
index b8f17bb0e3..7264199c21 100644
--- a/libmpcodecs/vf_fspp.c
+++ b/libmpcodecs/vf_fspp.c
@@ -240,7 +240,7 @@ static void store_slice_mmx(uint8_t *dst, int16_t *src, long dst_stride, long sr
"jl 2b \n\t"
:
- : "m" (width), "m" (src_stride), "g" (od), "m" (dst_stride), "g" (end),
+ : "m" (width), "m" (src_stride), "erm" (od), "m" (dst_stride), "erm" (end),
"m" (log2_scale), "m" (src), "m" (dst) //input
: "%"REG_a, "%"REG_c, "%"REG_d, "%"REG_S, "%"REG_D
);
@@ -308,7 +308,7 @@ static void store_slice2_mmx(uint8_t *dst, int16_t *src, long dst_stride, long s
"jl 2b \n\t"
:
- : "m" (width), "m" (src_stride), "g" (od), "m" (dst_stride), "g" (end),
+ : "m" (width), "m" (src_stride), "erm" (od), "m" (dst_stride), "erm" (end),
"m" (log2_scale), "m" (src), "m" (dst) //input
: "%"REG_a, "%"REG_c, "%"REG_d, "%"REG_D, "%"REG_S
);
diff --git a/libmpdemux/asfheader.c b/libmpdemux/asfheader.c
index 0c7f49a81f..7cf0111e67 100644
--- a/libmpdemux/asfheader.c
+++ b/libmpdemux/asfheader.c
@@ -565,7 +565,7 @@ int read_asf_header(demuxer_t *demuxer,struct asf_priv* asf){
if (pos > hdr_len) goto len_err_out;
if ((string = get_ucs2str(wstring, len))) {
mp_msg(MSGT_HEADER,MSGL_V," Title: %s\n", string);
- demux_info_add(demuxer, "name", string);
+ demux_info_add(demuxer, "title", string);
free(string);
}
}
diff --git a/libmpdemux/aviheader.c b/libmpdemux/aviheader.c
index 833ce6996b..a7b2b2c434 100644
--- a/libmpdemux/aviheader.c
+++ b/libmpdemux/aviheader.c
@@ -167,7 +167,7 @@ while(1){
case mmioFOURCC('I','M','E','D'): hdr="Medium";break;
// INAM - Stores the title of the subject of the file, such as
// "Seattle from Above."
- case mmioFOURCC('I','N','A','M'): hdr="Name";break;
+ case mmioFOURCC('I','N','A','M'): hdr="Title";break;
// IPLT - Specifies the number of colors requested when digitizing
// an image, such as "256."
case mmioFOURCC('I','P','L','T'): hdr="Palette Setting";break;
diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c
index a7da1a9b36..310ec83c09 100644
--- a/libmpdemux/demux_lavf.c
+++ b/libmpdemux/demux_lavf.c
@@ -140,12 +140,6 @@ static int lavf_check_file(demuxer_t *demuxer){
av_register_all();
- if(stream_read(demuxer->stream, buf, PROBE_BUF_SIZE)!=PROBE_BUF_SIZE)
- return 0;
- avpd.filename= demuxer->stream->url;
- avpd.buf= buf;
- avpd.buf_size= PROBE_BUF_SIZE;
-
if (opt_format) {
if (strcmp(opt_format, "help") == 0) {
list_formats();
@@ -159,6 +153,13 @@ static int lavf_check_file(demuxer_t *demuxer){
mp_msg(MSGT_DEMUX,MSGL_INFO,"Forced lavf %s demuxer\n", priv->avif->long_name);
return DEMUXER_TYPE_LAVF;
}
+
+ if(stream_read(demuxer->stream, buf, PROBE_BUF_SIZE)!=PROBE_BUF_SIZE)
+ return 0;
+ avpd.filename= demuxer->stream->url;
+ avpd.buf= buf;
+ avpd.buf_size= PROBE_BUF_SIZE;
+
priv->avif= av_probe_input_format(&avpd, 1);
if(!priv->avif){
mp_msg(MSGT_HEADER,MSGL_V,"LAVF_check: no clue about this gibberish!\n");
@@ -169,7 +170,7 @@ static int lavf_check_file(demuxer_t *demuxer){
return DEMUXER_TYPE_LAVF;
}
-static const char *preferred_list[] = {
+static const char * const preferred_list[] = {
"dxa",
"wv",
"nuv",
@@ -186,7 +187,7 @@ static const char *preferred_list[] = {
static int lavf_check_preferred_file(demuxer_t *demuxer){
if (lavf_check_file(demuxer)) {
- char **p = preferred_list;
+ const char * const *p = preferred_list;
lavf_priv_t *priv = demuxer->priv;
while (*p) {
if (strcmp(*p, priv->avif->name) == 0)
@@ -218,21 +219,21 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) {
lavf_priv_t *priv= demuxer->priv;
AVStream *st= avfc->streams[i];
AVCodecContext *codec= st->codec;
+ AVMetadataTag *lang = av_metadata_get(st->metadata, "language", NULL, 0);
int g;
switch(codec->codec_type){
case CODEC_TYPE_AUDIO:{
int override_tag;
- WAVEFORMATEX *wf= calloc(sizeof(WAVEFORMATEX) + codec->extradata_size, 1);
+ WAVEFORMATEX *wf;
sh_audio_t* sh_audio;
- if(priv->audio_streams >= MAX_A_STREAMS)
- break;
sh_audio=new_sh_audio(demuxer, i);
mp_tmsg(MSGT_DEMUX, MSGL_INFO, "[%s] Audio stream found, -aid %d\n", "lavf", i);
if(!sh_audio)
break;
priv->astreams[priv->audio_streams] = i;
priv->audio_streams++;
+ wf= calloc(sizeof(WAVEFORMATEX) + codec->extradata_size, 1);
// For some formats (like PCM) always trust CODEC_ID_* more than codec_tag
override_tag= av_codec_get_tag(mp_wav_override_taglists, codec->codec_id);
if (override_tag)
@@ -289,8 +290,10 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) {
sh_audio->format = 0x7;
break;
}
- if (st->language)
- sh_audio->lang = strdup(st->language);
+ if (lang && lang->value) {
+ sh_audio->lang = strdup(lang->value);
+ mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AID_%d_LANG=%s\n", i, sh_audio->lang);
+ }
if (st->disposition & AV_DISPOSITION_DEFAULT)
sh_audio->default_track = 1;
if(mp_msg_test(MSGT_HEADER,MSGL_V) ) print_wave_header(sh_audio->wf, MSGL_V);
@@ -305,8 +308,6 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) {
case CODEC_TYPE_VIDEO:{
sh_video_t* sh_video;
BITMAPINFOHEADER *bih;
- if(priv->video_streams >= MAX_V_STREAMS)
- break;
sh_video=new_sh_video(demuxer, i);
mp_tmsg(MSGT_DEMUX, MSGL_INFO, "[%s] Video stream found, -vid %d\n", "lavf", i);
if(!sh_video) break;
@@ -374,8 +375,6 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) {
case CODEC_TYPE_SUBTITLE:{
sh_sub_t* sh_sub;
char type;
- if(priv->sub_streams >= MAX_S_STREAMS)
- break;
/* only support text subtitles for now */
if(codec->codec_id == CODEC_ID_TEXT)
type = 't';
@@ -397,8 +396,10 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) {
memcpy(sh_sub->extradata, codec->extradata, codec->extradata_size);
sh_sub->extradata_len = codec->extradata_size;
}
- if (st->language)
- sh_sub->lang = strdup(st->language);
+ if (lang && lang->value) {
+ sh_sub->lang = strdup(lang->value);
+ mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SID_%d_LANG=%s\n", priv->sub_streams, sh_sub->lang);
+ }
if (st->disposition & AV_DISPOSITION_DEFAULT)
sh_sub->default_track = 1;
priv->sub_streams++;
@@ -476,7 +477,7 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){
return NULL;
}
- if(avfc->title [0]) demux_info_add(demuxer, "name" , avfc->title );
+ if(avfc->title [0]) demux_info_add(demuxer, "title" , avfc->title );
if(avfc->author [0]) demux_info_add(demuxer, "author" , avfc->author );
if(avfc->copyright[0]) demux_info_add(demuxer, "copyright", avfc->copyright);
if(avfc->comment [0]) demux_info_add(demuxer, "comments" , avfc->comment );
diff --git a/libmpdemux/demux_mov.c b/libmpdemux/demux_mov.c
index 203d9eb54e..c38fa7ee16 100644
--- a/libmpdemux/demux_mov.c
+++ b/libmpdemux/demux_mov.c
@@ -1549,7 +1549,7 @@ static void lschunks(demuxer_t* demuxer,int level,off_t endpos,mov_track_t* trak
break;
case MOV_FOURCC('n','a','m','e'):
case MOV_FOURCC(0xa9,'n','a','m'):
- demux_info_add(demuxer, "name", &text[2]);
+ demux_info_add(demuxer, "title", &text[2]);
mp_msg(MSGT_DEMUX, MSGL_V, " Name: %s\n", &text[2]);
break;
case MOV_FOURCC(0xa9,'A','R','T'):
diff --git a/libmpdemux/demux_ogg.c b/libmpdemux/demux_ogg.c
index ffa563d1bf..af730bb712 100644
--- a/libmpdemux/demux_ogg.c
+++ b/libmpdemux/demux_ogg.c
@@ -375,7 +375,7 @@ static void demux_ogg_check_comments(demuxer_t *d, ogg_stream_t *os, int id, vor
} table[] = {
{ "ENCODED_USING", "Software" },
{ "ENCODER_URL", "Encoder URL" },
- { "TITLE", "Name" },
+ { "TITLE", "Title" },
{ "ARTIST", "Artist" },
{ "COMMENT", "Comments" },
{ "DATE", "Creation Date" },
diff --git a/libmpdemux/demux_real.c b/libmpdemux/demux_real.c
index 60e44ed22d..f6611eb2ed 100644
--- a/libmpdemux/demux_real.c
+++ b/libmpdemux/demux_real.c
@@ -1181,7 +1181,7 @@ static demuxer_t* demux_open_real(demuxer_t* demuxer)
buf = malloc(len+1);
stream_read(demuxer->stream, buf, len);
buf[len] = 0;
- demux_info_add(demuxer, "name", buf);
+ demux_info_add(demuxer, "title", buf);
free(buf);
}
diff --git a/libmpdemux/demux_rtp.cpp b/libmpdemux/demux_rtp.cpp
index fe163aaf5a..afe550b284 100644
--- a/libmpdemux/demux_rtp.cpp
+++ b/libmpdemux/demux_rtp.cpp
@@ -111,7 +111,12 @@ static char* openURL_sip(SIPClient* client, char const* url) {
}
}
-int rtspStreamOverTCP = 0;
+#ifdef CONFIG_LIBNEMESI
+extern int rtsp_transport_tcp;
+#else
+int rtsp_transport_tcp = 0;
+#endif
+
extern int rtsp_port;
extern "C" demuxer_t* demux_open_rtp(demuxer_t* demuxer) {
@@ -230,7 +235,7 @@ extern "C" demuxer_t* demux_open_rtp(demuxer_t* demuxer) {
if (rtspClient != NULL) {
// Issue a RTSP "SETUP" command on the chosen subsession:
if (!rtspClient->setupMediaSubsession(*subsession, False,
- rtspStreamOverTCP)) break;
+ rtsp_transport_tcp)) break;
if (!strcmp(subsession->mediumName(), "audio"))
audiofound = 1;
if (!strcmp(subsession->mediumName(), "video"))
@@ -329,7 +334,7 @@ extern "C" int demux_rtp_fill_buffer(demuxer_t* demuxer, demux_stream_t* ds) {
const float ptsBehindLimit = 60.0; // seconds
if (ptsBehind < ptsBehindThreshold ||
ptsBehind > ptsBehindLimit ||
- rtspStreamOverTCP) { // packet's OK
+ rtsp_transport_tcp) { // packet's OK
ds_add_packet(ds, dp);
break;
}
diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c
index d7159167ca..c213c34a35 100644
--- a/libmpdemux/demux_ts.c
+++ b/libmpdemux/demux_ts.c
@@ -286,6 +286,7 @@ try_fec:
}
static int parse_avc_sps(uint8_t *buf, int len, int *w, int *h);
+static inline uint8_t *pid_lang_from_pmt(ts_priv_t *priv, int pid);
static void ts_add_stream(demuxer_t * demuxer, ES_stream_t *es)
{
@@ -300,6 +301,7 @@ static void ts_add_stream(demuxer_t * demuxer, ES_stream_t *es)
sh_audio_t *sh = new_sh_audio_aid(demuxer, priv->last_aid, es->pid);
if(sh)
{
+ const char *lang = pid_lang_from_pmt(priv, es->pid);
sh->format = IS_AUDIO(es->type) ? es->type : es->subtype;
sh->ds = demuxer->audio;
@@ -307,6 +309,8 @@ static void ts_add_stream(demuxer_t * demuxer, ES_stream_t *es)
priv->ts.streams[es->pid].sh = sh;
priv->ts.streams[es->pid].type = TYPE_AUDIO;
mp_msg(MSGT_DEMUX, MSGL_V, "\r\nADDED AUDIO PID %d, type: %x stream n. %d\r\n", es->pid, sh->format, priv->last_aid);
+ if (lang && lang[0])
+ mp_msg(MSGT_IDENTIFY, MSGL_V, "ID_AID_%d_LANG=%s\n", es->pid, lang);
priv->last_aid++;
}
@@ -700,16 +704,12 @@ static off_t ts_detect_streams(demuxer_t *demuxer, tsdemux_init_t *param)
if(is_video)
{
- mp_msg(MSGT_IDENTIFY, MSGL_V, "ID_VIDEO_ID=%d\n", es.pid);
chosen_pid = (req_vpid == es.pid);
if((! chosen_pid) && (req_vpid > 0))
continue;
}
else if(is_audio)
{
- mp_msg(MSGT_IDENTIFY, MSGL_V, "ID_AUDIO_ID=%d\n", es.pid);
- if (es.lang[0] > 0)
- mp_msg(MSGT_IDENTIFY, MSGL_V, "ID_AID_%d_LANG=%s\n", es.pid, es.lang);
if(req_apid > 0)
{
chosen_pid = (req_apid == es.pid);
@@ -2724,6 +2724,7 @@ static int ts_parse(demuxer_t *demuxer , ES_stream_t *es, unsigned char *packet,
rap_flag = 0;
mp4_dec = NULL;
es->is_synced = 0;
+ es->lang[0] = 0;
si = NULL;
junk = priv->ts.packet_size - TS_PACKET_SIZE;
@@ -3378,14 +3379,9 @@ static int demux_ts_control(demuxer_t *demuxer, int cmd, void *arg)
}
else //audio track <n>
{
- for(i = 0; i < 8192; i++)
- {
- if(priv->ts.streams[i].id == n && priv->ts.streams[i].type == reftype)
- {
+ if (n >= 8192 || priv->ts.streams[n].type != reftype) return DEMUXER_CTRL_NOTIMPL;
+ i = n;
sh = priv->ts.streams[i].sh;
- break;
- }
- }
}
if(sh)
@@ -3456,12 +3452,12 @@ static int demux_ts_control(demuxer_t *demuxer, int cmd, void *arg)
if(!vid_done && priv->ts.streams[pmt->es[j].pid].type == TYPE_VIDEO)
{
vid_done = 1;
- prog->vid = priv->ts.streams[pmt->es[j].pid].id;
+ prog->vid = pmt->es[j].pid;
}
else if(!aid_done && priv->ts.streams[pmt->es[j].pid].type == TYPE_AUDIO)
{
aid_done = 1;
- prog->aid = priv->ts.streams[pmt->es[j].pid].id;
+ prog->aid = pmt->es[j].pid;
}
}
diff --git a/libmpdemux/demux_viv.c b/libmpdemux/demux_viv.c
index 922cfbcb8a..d0a2615d42 100644
--- a/libmpdemux/demux_viv.c
+++ b/libmpdemux/demux_viv.c
@@ -208,7 +208,7 @@ static void vivo_parse_text_header(demuxer_t *demux, int header_len)
/* only for displaying some informations about movie*/
if (!strcmp(opt, "Title"))
{
- demux_info_add(demux, "name", param);
+ demux_info_add(demux, "title", param);
priv->title = strdup(param);
}
if (!strcmp(opt, "Author"))
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index 3e01f25ebd..c9142f1441 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -1345,6 +1345,13 @@ int demuxer_add_chapter(demuxer_t *demuxer, const char *name, uint64_t start,
demuxer->chapters[demuxer->num_chapters].end = end;
demuxer->chapters[demuxer->num_chapters].name = strdup(name ? name : mp_gtext("unknown"));
+ mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CHAPTER_ID=%d\n", demuxer->num_chapters);
+ mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CHAPTER_%d_START=%"PRIu64"\n", demuxer->num_chapters, start);
+ if (end)
+ mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CHAPTER_%d_END=%"PRIu64"\n", demuxer->num_chapters, end);
+ if (name)
+ mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CHAPTER_%d_NAME=%s\n", demuxer->num_chapters, name);
+
return demuxer->num_chapters++;
}
diff --git a/libmpdemux/mp_taglists.c b/libmpdemux/mp_taglists.c
index 5013d40aaa..037ada5eb0 100644
--- a/libmpdemux/mp_taglists.c
+++ b/libmpdemux/mp_taglists.c
@@ -51,7 +51,7 @@ static const AVCodecTag mp_wav_tags[] = {
{ 0, 0 },
};
-const struct AVCodecTag *mp_wav_taglists[] = {codec_wav_tags, mp_wav_tags, 0};
+const struct AVCodecTag *mp_wav_taglists[] = {ff_codec_wav_tags, mp_wav_tags, 0};
static const AVCodecTag mp_wav_override_tags[] = {
{ CODEC_ID_PCM_S8, MKTAG('t', 'w', 'o', 's')},
@@ -96,4 +96,4 @@ static const AVCodecTag mp_bmp_tags[] = {
{ 0, 0 },
};
-const struct AVCodecTag *mp_bmp_taglists[] = {codec_bmp_tags, mp_bmp_tags, 0};
+const struct AVCodecTag *mp_bmp_taglists[] = {ff_codec_bmp_tags, mp_bmp_tags, 0};
diff --git a/libmpeg2/alpha_asm.h b/libmpeg2/alpha_asm.h
index 1a296301da..8cebbcb817 100644
--- a/libmpeg2/alpha_asm.h
+++ b/libmpeg2/alpha_asm.h
@@ -122,7 +122,7 @@ struct unaligned_long { uint64_t l; } __attribute__((packed));
#define minsw4 __builtin_alpha_minsw4
#define maxub8 __builtin_alpha_maxub8
#define maxsb8 __builtin_alpha_maxsb8
-#define maxuw4 __builtin_alpha_maxuw4
+#define maxuw4 __builtin_alpha_maxuw4
#define maxsw4 __builtin_alpha_maxsw4
#define perr __builtin_alpha_perr
#define pklb __builtin_alpha_pklb
diff --git a/libmpeg2/cpu_accel.c b/libmpeg2/cpu_accel.c
index f711f3282c..f2e99f754a 100644
--- a/libmpeg2/cpu_accel.c
+++ b/libmpeg2/cpu_accel.c
@@ -42,10 +42,10 @@ static inline uint32_t arch_accel (uint32_t accel)
#if 0
if (accel & (MPEG2_ACCEL_X86_3DNOW | MPEG2_ACCEL_X86_MMXEXT))
accel |= MPEG2_ACCEL_X86_MMX;
-
+
if (accel & (MPEG2_ACCEL_X86_SSE2 | MPEG2_ACCEL_X86_SSE3))
accel |= MPEG2_ACCEL_X86_MMXEXT;
-
+
if (accel & (MPEG2_ACCEL_X86_SSE3))
accel |= MPEG2_ACCEL_X86_SSE2;
diff --git a/libmpeg2/header.c b/libmpeg2/header.c
index 040651d20e..10786bd6d9 100644
--- a/libmpeg2/header.c
+++ b/libmpeg2/header.c
@@ -315,8 +315,8 @@ static inline void finalize_sequence (mpeg2_sequence_t * sequence)
height *= sequence->display_width;
} else {
- if (sequence->byte_rate == 50 * 0x3ffff)
- sequence->byte_rate = 0; /* mpeg-1 VBR */
+ if (sequence->byte_rate == 50 * 0x3ffff)
+ sequence->byte_rate = 0; /* mpeg-1 VBR */
switch (sequence->pixel_width) {
case 0: case 15: /* illegal */
@@ -860,7 +860,7 @@ int mpeg2_header_user_data (mpeg2dec_t * mpeg2dec)
{
mpeg2dec->user_data_len += mpeg2dec->chunk_ptr - 1 - mpeg2dec->chunk_start;
mpeg2dec->chunk_start = mpeg2dec->chunk_ptr - 1;
-
+
return 0;
}
diff --git a/libmpeg2/idct_alpha.c b/libmpeg2/idct_alpha.c
index e5886ed3ff..182e008b1f 100644
--- a/libmpeg2/idct_alpha.c
+++ b/libmpeg2/idct_alpha.c
@@ -221,7 +221,7 @@ void mpeg2_idct_add_mvi (const int last, int16_t * block,
shorts0 ^= signs0;
/* clamp. */
shorts0 = maxsw4 (shorts0, 0);
- shorts0 = minsw4 (shorts0, clampmask);
+ shorts0 = minsw4 (shorts0, clampmask);
/* next 4. */
pix1 = unpkbw (ldl (dest + 4));
diff --git a/libmpeg2/libmpeg2_changes.diff b/libmpeg2/libmpeg2_changes.diff
index 49f85a2a95..5e55453ab1 100644
--- a/libmpeg2/libmpeg2_changes.diff
+++ b/libmpeg2/libmpeg2_changes.diff
@@ -3,7 +3,7 @@
@@ -29,9 +33,13 @@
#include "attributes.h"
#include "mpeg2_internal.h"
-
+
+#include "cpudetect.h"
+
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
@@ -14,10 +14,10 @@
+#if 0
if (accel & (MPEG2_ACCEL_X86_3DNOW | MPEG2_ACCEL_X86_MMXEXT))
accel |= MPEG2_ACCEL_X86_MMX;
-
+
@@ -124,6 +132,21 @@
#endif /* ACCEL_DETECT */
-
+
return accel;
+
+#else /* 0 */
@@ -36,20 +36,20 @@
+#endif /* 0 */
}
#endif /* ARCH_X86 || ARCH_X86_64 */
-
+
@@ -127,7 +150,7 @@
}
#endif /* ARCH_X86 || ARCH_X86_64 */
-
+
-#if defined(ACCEL_DETECT) && (defined(ARCH_PPC) || defined(ARCH_SPARC))
+#if defined(ACCEL_DETECT) && (ARCH_PPC || ARCH_SPARC)
#include <signal.h>
#include <setjmp.h>
-
+
@@ -146,7 +169,7 @@
}
#endif /* ACCEL_DETECT && (ARCH_PPC || ARCH_SPARC) */
-
+
-#ifdef ARCH_PPC
+#if ARCH_PPC
static uint32_t arch_accel (uint32_t accel)
@@ -58,7 +58,7 @@
@@ -183,7 +206,7 @@
}
#endif /* ARCH_PPC */
-
+
-#ifdef ARCH_SPARC
+#if ARCH_SPARC
static uint32_t arch_accel (uint32_t accel)
@@ -67,14 +67,14 @@
@@ -229,7 +252,7 @@
}
#endif /* ARCH_SPARC */
-
+
-#ifdef ARCH_ALPHA
+#if ARCH_ALPHA
static inline uint32_t arch_accel (uint32_t accel)
{
if (accel & MPEG2_ACCEL_ALPHA_MVI)
@@ -253,7 +276,7 @@
-
+
uint32_t mpeg2_detect_accel (uint32_t accel)
{
-#if defined (ARCH_X86) || defined (ARCH_X86_64) || defined (ARCH_PPC) || defined (ARCH_ALPHA) || defined (ARCH_SPARC)
@@ -94,10 +94,10 @@ Index: libmpeg2/cpu_state.c
+#if ARCH_X86 || ARCH_X86_64
#include "mmx.h"
#endif
-
+
void (* mpeg2_cpu_state_save) (cpu_state_t * state) = NULL;
void (* mpeg2_cpu_state_restore) (cpu_state_t * state) = NULL;
-
+
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
+#if ARCH_X86 || ARCH_X86_64
static void state_restore_mmx (cpu_state_t * state)
@@ -105,14 +105,14 @@ Index: libmpeg2/cpu_state.c
emms ();
}
#endif
-
+
-#ifdef ARCH_PPC
+#if ARCH_PPC
#if defined(__APPLE_CC__) /* apple */
#define LI(a,b) "li r" #a "," #b "\n\t"
#define STVX0(a,b,c) "stvx v" #a ",0,r" #c "\n\t"
@@ -115,12 +115,12 @@
-
+
void mpeg2_cpu_state_init (uint32_t accel)
{
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
@@ -142,7 +142,7 @@ Index: libmpeg2/cpu_state.c
+// printf("libmpeg2: FBUF 0:%p 1:%p 2:%p\n",
+// mpeg2dec->fbuf[0]->buf[0],mpeg2dec->fbuf[1]->buf[0],mpeg2dec->fbuf[2]->buf[0]);
}
-
+
void mpeg2_custom_fbuf (mpeg2dec_t * mpeg2dec, int custom_fbuf)
--- libmpeg2/header.c 2006-06-16 20:12:26.000000000 +0200
+++ libmpeg2/header.c 2006-06-16 20:12:50.000000000 +0200
@@ -167,7 +167,7 @@ Index: libmpeg2/cpu_state.c
--- libmpeg2/idct.c (revision 26652)
+++ libmpeg2/idct.c (working copy)
@@ -235,34 +239,40 @@
-
+
void mpeg2_idct_init (uint32_t accel)
{
-#ifdef ARCH_X86
@@ -211,19 +211,19 @@ Index: libmpeg2/cpu_state.c
+#elif ARCH_ALPHA
+ if (accel & MPEG2_ACCEL_ALPHA) {
int i;
-
+
mpeg2_idct_copy = mpeg2_idct_copy_alpha;
Index: libmpeg2/idct_alpha.c
===================================================================
--- libmpeg2/idct_alpha.c (revision 28324)
+++ libmpeg2/idct_alpha.c (revision 28325)
@@ -24,7 +24,7 @@
-
+
#include "config.h"
-
+
-#ifdef ARCH_ALPHA
+#if ARCH_ALPHA
-
+
#include <stdlib.h>
#include <inttypes.h>
Index: libmpeg2/idct_altivec.c
@@ -231,12 +231,12 @@ Index: libmpeg2/idct_altivec.c
--- libmpeg2/idct_altivec.c (revision 28324)
+++ libmpeg2/idct_altivec.c (revision 28325)
@@ -23,7 +23,7 @@
-
+
#include "config.h"
-
+
-#ifdef ARCH_PPC
+#if ARCH_PPC
-
+
#ifdef HAVE_ALTIVEC_H
#include <altivec.h>
Index: libmpeg2/idct_mmx.c
@@ -244,18 +244,18 @@ Index: libmpeg2/idct_mmx.c
--- libmpeg2/idct_mmx.c (revision 28324)
+++ libmpeg2/idct_mmx.c (revision 28325)
@@ -23,7 +23,7 @@
-
+
#include "config.h"
-
+
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
+#if ARCH_X86 || ARCH_X86_64
-
+
#include <inttypes.h>
-
+
--- libmpeg2/motion_comp.c 2006-06-16 20:12:26.000000000 +0200
+++ libmpeg2/motion_comp.c 2006-06-16 20:12:50.000000000 +0200
@@ -33,34 +37,40 @@
-
+
void mpeg2_mc_init (uint32_t accel)
{
-#ifdef ARCH_X86
@@ -309,25 +309,25 @@ Index: libmpeg2/motion_comp_alpha.c
--- libmpeg2/motion_comp_alpha.c (revision 28324)
+++ libmpeg2/motion_comp_alpha.c (revision 28325)
@@ -22,7 +22,7 @@
-
+
#include "config.h"
-
+
-#ifdef ARCH_ALPHA
+#if ARCH_ALPHA
-
+
#include <inttypes.h>
-
+
Index: libmpeg2/motion_comp_altivec.c
===================================================================
--- libmpeg2/motion_comp_altivec.c (revision 28324)
+++ libmpeg2/motion_comp_altivec.c (revision 28325)
@@ -23,7 +23,7 @@
-
+
#include "config.h"
-
+
-#ifdef ARCH_PPC
+#if ARCH_PPC
-
+
#ifdef HAVE_ALTIVEC_H
#include <altivec.h>
Index: libmpeg2/motion_comp_arm.c
@@ -335,44 +335,44 @@ Index: libmpeg2/motion_comp_arm.c
--- libmpeg2/motion_comp_arm.c (revision 28324)
+++ libmpeg2/motion_comp_arm.c (revision 28325)
@@ -22,7 +22,7 @@
-
+
#include "config.h"
-
+
-#ifdef ARCH_ARM
+#if ARCH_ARM
-
+
#include <inttypes.h>
-
+
Index: libmpeg2/motion_comp_mmx.c
===================================================================
--- libmpeg2/motion_comp_mmx.c (revision 28324)
+++ libmpeg2/motion_comp_mmx.c (revision 28325)
@@ -23,7 +23,7 @@
-
+
#include "config.h"
-
+
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
+#if ARCH_X86 || ARCH_X86_64
-
+
#include <inttypes.h>
-
+
Index: libmpeg2/motion_comp_vis.c
===================================================================
--- libmpeg2/motion_comp_vis.c (revision 28324)
+++ libmpeg2/motion_comp_vis.c (revision 28325)
@@ -22,7 +22,7 @@
-
+
#include "config.h"
-
+
-#ifdef ARCH_SPARC
+#if ARCH_SPARC
-
+
#include <inttypes.h>
-
+
--- libmpeg2/mpeg2_internal.h 2006-06-16 20:12:26.000000000 +0200
+++ libmpeg2/mpeg2_internal.h 2006-06-16 20:12:50.000000000 +0200
@@ -152,6 +156,11 @@
-
+
/* XXX: stuff due to xine shit */
int8_t q_scale_type;
+
@@ -381,7 +381,7 @@ Index: libmpeg2/motion_comp_vis.c
+ char* quant_store;
+ int quant_stride;
};
-
+
typedef struct {
@@ -223,6 +232,9 @@
//int8_t q_scale_type, scaled[4];
@@ -391,11 +391,11 @@ Index: libmpeg2/motion_comp_vis.c
+ unsigned char *pending_buffer;
+ int pending_length;
};
-
+
typedef struct {
@@ -226,7 +238,7 @@
};
-
+
typedef struct {
-#ifdef ARCH_PPC
+#if ARCH_PPC
@@ -405,15 +405,15 @@ Index: libmpeg2/motion_comp_vis.c
--- libmpeg2/slice.c 2006-06-16 20:12:26.000000000 +0200
+++ libmpeg2/slice.c 2006-06-16 20:12:50.000000000 +0200
@@ -142,6 +146,7 @@
-
+
quantizer_scale_code = UBITS (bit_buf, 5);
DUMPBITS (bit_buf, bits, 5);
+ decoder->quantizer_scale = decoder->quantizer_scales[quantizer_scale_code];
-
+
decoder->quantizer_matrix[0] =
decoder->quantizer_prescale[0][quantizer_scale_code];
@@ -1564,6 +1569,24 @@
-
+
#define NEXT_MACROBLOCK \
do { \
+ if(decoder->quant_store) { \
diff --git a/libmpeg2/slice.c b/libmpeg2/slice.c
index 99fcf95c22..60a6119987 100644
--- a/libmpeg2/slice.c
+++ b/libmpeg2/slice.c
@@ -1906,7 +1906,7 @@ void mpeg2_slice (mpeg2_decoder_t * const decoder, const int code,
if ( ((macroblock_modes >> MOTION_TYPE_SHIFT) < 0)
|| ((macroblock_modes >> MOTION_TYPE_SHIFT) >=
- (int)(sizeof(decoder->motion_parser)
+ (int)(sizeof(decoder->motion_parser)
/ sizeof(decoder->motion_parser[0])))
) {
break; // Illegal !
diff --git a/libswscale/ppc/swscale_altivec_template.c b/libswscale/ppc/swscale_altivec_template.c
index c24970464c..8919177bcc 100644
--- a/libswscale/ppc/swscale_altivec_template.c
+++ b/libswscale/ppc/swscale_altivec_template.c
@@ -92,7 +92,7 @@ yuv2yuvX_altivec_real(const int16_t *lumFilter, int16_t **lumSrc, int lumFilterS
const vector signed int vini = {(1 << 18), (1 << 18), (1 << 18), (1 << 18)};
register int i, j;
{
- int __attribute__ ((aligned (16))) val[dstW];
+ DECLARE_ALIGNED(16, int, val[dstW]);
for (i = 0; i < (dstW -7); i+=4) {
vec_st(vini, i << 2, val);
@@ -140,8 +140,8 @@ yuv2yuvX_altivec_real(const int16_t *lumFilter, int16_t **lumSrc, int lumFilterS
altivec_packIntArrayToCharArray(val, dest, dstW);
}
if (uDest != 0) {
- int __attribute__ ((aligned (16))) u[chrDstW];
- int __attribute__ ((aligned (16))) v[chrDstW];
+ DECLARE_ALIGNED(16, int, u[chrDstW]);
+ DECLARE_ALIGNED(16, int, v[chrDstW]);
for (i = 0; i < (chrDstW -7); i+=4) {
vec_st(vini, i << 2, u);
@@ -214,7 +214,7 @@ static inline void hScale_altivec_real(int16_t *dst, int dstW,
const int16_t *filterPos, int filterSize)
{
register int i;
- int __attribute__ ((aligned (16))) tempo[4];
+ DECLARE_ALIGNED(16, int, tempo[4]);
if (filterSize % 4) {
for (i=0; i<dstW; i++) {
diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
index 43879ea62d..550afc4023 100644
--- a/libswscale/ppc/yuv2rgb_altivec.c
+++ b/libswscale/ppc/yuv2rgb_altivec.c
@@ -753,7 +753,7 @@ SwsFunc ff_yuv2rgb_init_altivec(SwsContext *c)
void ff_yuv2rgb_init_tables_altivec(SwsContext *c, const int inv_table[4], int brightness, int contrast, int saturation)
{
union {
- signed short tmp[8] __attribute__ ((aligned(16)));
+ DECLARE_ALIGNED(16, signed short, tmp[8]);
vector signed short vec;
} buf;
@@ -800,7 +800,7 @@ ff_yuv2packedX_altivec(SwsContext *c,
vector signed short RND = vec_splat_s16(1<<3);
vector unsigned short SCL = vec_splat_u16(4);
- unsigned long scratch[16] __attribute__ ((aligned (16)));
+ DECLARE_ALIGNED(16, unsigned long, scratch[16]);
vector signed short *YCoeffs, *CCoeffs;
diff --git a/libswscale/swscale-example.c b/libswscale/swscale-example.c
index 8d60332897..c9916e5489 100644
--- a/libswscale/swscale-example.c
+++ b/libswscale/swscale-example.c
@@ -30,6 +30,12 @@
#include "swscale.h"
#include "swscale_internal.h"
+#undef fprintf
+#undef free
+#undef malloc
+#undef perror
+#undef printf
+
static uint64_t getSSD(uint8_t *src1, uint8_t *src2, int stride1, int stride2, int w, int h){
int x,y;
uint64_t ssd=0;
@@ -66,11 +72,15 @@ static int doTest(uint8_t *ref[4], int refStride[4], int w, int h, int srcFormat
// avoid stride % bpp != 0
if (srcFormat==PIX_FMT_RGB24 || srcFormat==PIX_FMT_BGR24)
srcStride[i]= srcW*3;
+ else if (srcFormat==PIX_FMT_RGB48BE || srcFormat==PIX_FMT_RGB48LE)
+ srcStride[i]= srcW*6;
else
srcStride[i]= srcW*4;
if (dstFormat==PIX_FMT_RGB24 || dstFormat==PIX_FMT_BGR24)
dstStride[i]= dstW*3;
+ else if (dstFormat==PIX_FMT_RGB48BE || dstFormat==PIX_FMT_RGB48LE)
+ dstStride[i]= dstW*6;
else
dstStride[i]= dstW*4;
diff --git a/libswscale/swscale.c b/libswscale/swscale.c
index 31e3b83cde..31cf36ae05 100644
--- a/libswscale/swscale.c
+++ b/libswscale/swscale.c
@@ -108,6 +108,8 @@ unsigned swscale_version(void)
|| (x)==PIX_FMT_YUVA420P \
|| (x)==PIX_FMT_YUYV422 \
|| (x)==PIX_FMT_UYVY422 \
+ || (x)==PIX_FMT_RGB48BE \
+ || (x)==PIX_FMT_RGB48LE \
|| (x)==PIX_FMT_RGB32 \
|| (x)==PIX_FMT_RGB32_1 \
|| (x)==PIX_FMT_BGR24 \
@@ -281,17 +283,17 @@ static unsigned char clip_table[768];
static SwsVector *sws_getConvVec(SwsVector *a, SwsVector *b);
-static const uint8_t __attribute__((aligned(8))) dither_2x2_4[2][8]={
+DECLARE_ALIGNED(8, static const uint8_t, dither_2x2_4[2][8])={
{ 1, 3, 1, 3, 1, 3, 1, 3, },
{ 2, 0, 2, 0, 2, 0, 2, 0, },
};
-static const uint8_t __attribute__((aligned(8))) dither_2x2_8[2][8]={
+DECLARE_ALIGNED(8, static const uint8_t, dither_2x2_8[2][8])={
{ 6, 2, 6, 2, 6, 2, 6, 2, },
{ 0, 4, 0, 4, 0, 4, 0, 4, },
};
-const uint8_t __attribute__((aligned(8))) dither_8x8_32[8][8]={
+DECLARE_ALIGNED(8, const uint8_t, dither_8x8_32[8][8])={
{ 17, 9, 23, 15, 16, 8, 22, 14, },
{ 5, 29, 3, 27, 4, 28, 2, 26, },
{ 21, 13, 19, 11, 20, 12, 18, 10, },
@@ -303,7 +305,7 @@ const uint8_t __attribute__((aligned(8))) dither_8x8_32[8][8]={
};
#if 0
-const uint8_t __attribute__((aligned(8))) dither_8x8_64[8][8]={
+DECLARE_ALIGNED(8, const uint8_t, dither_8x8_64[8][8])={
{ 0, 48, 12, 60, 3, 51, 15, 63, },
{ 32, 16, 44, 28, 35, 19, 47, 31, },
{ 8, 56, 4, 52, 11, 59, 7, 55, },
@@ -315,7 +317,7 @@ const uint8_t __attribute__((aligned(8))) dither_8x8_64[8][8]={
};
#endif
-const uint8_t __attribute__((aligned(8))) dither_8x8_73[8][8]={
+DECLARE_ALIGNED(8, const uint8_t, dither_8x8_73[8][8])={
{ 0, 55, 14, 68, 3, 58, 17, 72, },
{ 37, 18, 50, 32, 40, 22, 54, 35, },
{ 9, 64, 5, 59, 13, 67, 8, 63, },
@@ -327,7 +329,7 @@ const uint8_t __attribute__((aligned(8))) dither_8x8_73[8][8]={
};
#if 0
-const uint8_t __attribute__((aligned(8))) dither_8x8_128[8][8]={
+DECLARE_ALIGNED(8, const uint8_t, dither_8x8_128[8][8])={
{ 68, 36, 92, 60, 66, 34, 90, 58, },
{ 20, 116, 12, 108, 18, 114, 10, 106, },
{ 84, 52, 76, 44, 82, 50, 74, 42, },
@@ -340,7 +342,7 @@ const uint8_t __attribute__((aligned(8))) dither_8x8_128[8][8]={
#endif
#if 1
-const uint8_t __attribute__((aligned(8))) dither_8x8_220[8][8]={
+DECLARE_ALIGNED(8, const uint8_t, dither_8x8_220[8][8])={
{117, 62, 158, 103, 113, 58, 155, 100, },
{ 34, 199, 21, 186, 31, 196, 17, 182, },
{144, 89, 131, 76, 141, 86, 127, 72, },
@@ -352,7 +354,7 @@ const uint8_t __attribute__((aligned(8))) dither_8x8_220[8][8]={
};
#elif 1
// tries to correct a gamma of 1.5
-const uint8_t __attribute__((aligned(8))) dither_8x8_220[8][8]={
+DECLARE_ALIGNED(8, const uint8_t, dither_8x8_220[8][8])={
{ 0, 143, 18, 200, 2, 156, 25, 215, },
{ 78, 28, 125, 64, 89, 36, 138, 74, },
{ 10, 180, 3, 161, 16, 195, 8, 175, },
@@ -364,7 +366,7 @@ const uint8_t __attribute__((aligned(8))) dither_8x8_220[8][8]={
};
#elif 1
// tries to correct a gamma of 2.0
-const uint8_t __attribute__((aligned(8))) dither_8x8_220[8][8]={
+DECLARE_ALIGNED(8, const uint8_t, dither_8x8_220[8][8])={
{ 0, 124, 8, 193, 0, 140, 12, 213, },
{ 55, 14, 104, 42, 66, 19, 119, 52, },
{ 3, 168, 1, 145, 6, 187, 3, 162, },
@@ -376,7 +378,7 @@ const uint8_t __attribute__((aligned(8))) dither_8x8_220[8][8]={
};
#else
// tries to correct a gamma of 2.5
-const uint8_t __attribute__((aligned(8))) dither_8x8_220[8][8]={
+DECLARE_ALIGNED(8, const uint8_t, dither_8x8_220[8][8])={
{ 0, 107, 3, 187, 0, 125, 6, 212, },
{ 39, 7, 86, 28, 49, 11, 102, 36, },
{ 1, 158, 0, 131, 3, 180, 1, 151, },
@@ -463,6 +465,10 @@ const char *sws_format_name(enum PixelFormat format)
return "rgb4";
case PIX_FMT_RGB4_BYTE:
return "rgb4 byte";
+ case PIX_FMT_RGB48BE:
+ return "rgb48be";
+ case PIX_FMT_RGB48LE:
+ return "rgb48le";
case PIX_FMT_NV12:
return "nv12";
case PIX_FMT_NV21:
@@ -847,6 +853,24 @@ static inline void yuv2nv12XinC(const int16_t *lumFilter, const int16_t **lumSrc
#define YSCALE_YUV_2_ANYRGB_C(func, func2, func_g16, func_monoblack)\
switch(c->dstFormat)\
{\
+ case PIX_FMT_RGB48BE:\
+ case PIX_FMT_RGB48LE:\
+ func(uint8_t,0)\
+ ((uint8_t*)dest)[ 0]= r[Y1];\
+ ((uint8_t*)dest)[ 1]= r[Y1];\
+ ((uint8_t*)dest)[ 2]= g[Y1];\
+ ((uint8_t*)dest)[ 3]= g[Y1];\
+ ((uint8_t*)dest)[ 4]= b[Y1];\
+ ((uint8_t*)dest)[ 5]= b[Y1];\
+ ((uint8_t*)dest)[ 6]= r[Y2];\
+ ((uint8_t*)dest)[ 7]= r[Y2];\
+ ((uint8_t*)dest)[ 8]= g[Y2];\
+ ((uint8_t*)dest)[ 9]= g[Y2];\
+ ((uint8_t*)dest)[10]= b[Y2];\
+ ((uint8_t*)dest)[11]= b[Y2];\
+ dest+=12;\
+ }\
+ break;\
case PIX_FMT_RGBA:\
case PIX_FMT_BGRA:\
if (CONFIG_SMALL){\
@@ -1118,15 +1142,171 @@ static void fillPlane(uint8_t* plane, int stride, int width, int height, int y,
}
}
+static inline void rgb48ToY(uint8_t *dst, const uint8_t *src, int width)
+{
+ int i;
+ for (i = 0; i < width; i++) {
+ int r = src[i*6+0];
+ int g = src[i*6+2];
+ int b = src[i*6+4];
+
+ dst[i] = (RY*r + GY*g + BY*b + (33<<(RGB2YUV_SHIFT-1))) >> RGB2YUV_SHIFT;
+ }
+}
+
+static inline void rgb48ToUV(uint8_t *dstU, uint8_t *dstV,
+ uint8_t *src1, uint8_t *src2, int width)
+{
+ int i;
+ assert(src1==src2);
+ for (i = 0; i < width; i++) {
+ int r = src1[6*i + 0];
+ int g = src1[6*i + 2];
+ int b = src1[6*i + 4];
+
+ dstU[i] = (RU*r + GU*g + BU*b + (257<<(RGB2YUV_SHIFT-1))) >> RGB2YUV_SHIFT;
+ dstV[i] = (RV*r + GV*g + BV*b + (257<<(RGB2YUV_SHIFT-1))) >> RGB2YUV_SHIFT;
+ }
+}
+
+static inline void rgb48ToUV_half(uint8_t *dstU, uint8_t *dstV,
+ uint8_t *src1, uint8_t *src2, int width)
+{
+ int i;
+ assert(src1==src2);
+ for (i = 0; i < width; i++) {
+ int r= src1[12*i + 0] + src1[12*i + 6];
+ int g= src1[12*i + 2] + src1[12*i + 8];
+ int b= src1[12*i + 4] + src1[12*i + 10];
+
+ dstU[i]= (RU*r + GU*g + BU*b + (257<<RGB2YUV_SHIFT)) >> (RGB2YUV_SHIFT+1);
+ dstV[i]= (RV*r + GV*g + BV*b + (257<<RGB2YUV_SHIFT)) >> (RGB2YUV_SHIFT+1);
+ }
+}
+
+#define BGR2Y(type, name, shr, shg, shb, maskr, maskg, maskb, RY, GY, BY, S)\
+static inline void name(uint8_t *dst, const uint8_t *src, long width, uint32_t *unused)\
+{\
+ int i;\
+ for (i=0; i<width; i++)\
+ {\
+ int b= (((const type*)src)[i]>>shb)&maskb;\
+ int g= (((const type*)src)[i]>>shg)&maskg;\
+ int r= (((const type*)src)[i]>>shr)&maskr;\
+\
+ dst[i]= (((RY)*r + (GY)*g + (BY)*b + (33<<((S)-1)))>>(S));\
+ }\
+}
+
+BGR2Y(uint32_t, bgr32ToY,16, 0, 0, 0x00FF, 0xFF00, 0x00FF, RY<< 8, GY , BY<< 8, RGB2YUV_SHIFT+8)
+BGR2Y(uint32_t, rgb32ToY, 0, 0,16, 0x00FF, 0xFF00, 0x00FF, RY<< 8, GY , BY<< 8, RGB2YUV_SHIFT+8)
+BGR2Y(uint16_t, bgr16ToY, 0, 0, 0, 0x001F, 0x07E0, 0xF800, RY<<11, GY<<5, BY , RGB2YUV_SHIFT+8)
+BGR2Y(uint16_t, bgr15ToY, 0, 0, 0, 0x001F, 0x03E0, 0x7C00, RY<<10, GY<<5, BY , RGB2YUV_SHIFT+7)
+BGR2Y(uint16_t, rgb16ToY, 0, 0, 0, 0xF800, 0x07E0, 0x001F, RY , GY<<5, BY<<11, RGB2YUV_SHIFT+8)
+BGR2Y(uint16_t, rgb15ToY, 0, 0, 0, 0x7C00, 0x03E0, 0x001F, RY , GY<<5, BY<<10, RGB2YUV_SHIFT+7)
+
+static inline void abgrToA(uint8_t *dst, const uint8_t *src, long width, uint32_t *unused){
+ int i;
+ for (i=0; i<width; i++){
+ dst[i]= src[4*i];
+ }
+}
+
+#define BGR2UV(type, name, shr, shg, shb, maska, maskr, maskg, maskb, RU, GU, BU, RV, GV, BV, S)\
+static inline void name(uint8_t *dstU, uint8_t *dstV, const uint8_t *src, const uint8_t *dummy, long width, uint32_t *unused)\
+{\
+ int i;\
+ for (i=0; i<width; i++)\
+ {\
+ int b= (((const type*)src)[i]&maskb)>>shb;\
+ int g= (((const type*)src)[i]&maskg)>>shg;\
+ int r= (((const type*)src)[i]&maskr)>>shr;\
+\
+ dstU[i]= ((RU)*r + (GU)*g + (BU)*b + (257<<((S)-1)))>>(S);\
+ dstV[i]= ((RV)*r + (GV)*g + (BV)*b + (257<<((S)-1)))>>(S);\
+ }\
+}\
+static inline void name ## _half(uint8_t *dstU, uint8_t *dstV, const uint8_t *src, const uint8_t *dummy, long width, uint32_t *unused)\
+{\
+ int i;\
+ for (i=0; i<width; i++)\
+ {\
+ int pix0= ((const type*)src)[2*i+0];\
+ int pix1= ((const type*)src)[2*i+1];\
+ int g= (pix0&~(maskr|maskb))+(pix1&~(maskr|maskb));\
+ int b= ((pix0+pix1-g)&(maskb|(2*maskb)))>>shb;\
+ int r= ((pix0+pix1-g)&(maskr|(2*maskr)))>>shr;\
+ g&= maskg|(2*maskg);\
+\
+ g>>=shg;\
+\
+ dstU[i]= ((RU)*r + (GU)*g + (BU)*b + (257<<(S)))>>((S)+1);\
+ dstV[i]= ((RV)*r + (GV)*g + (BV)*b + (257<<(S)))>>((S)+1);\
+ }\
+}
+
+BGR2UV(uint32_t, bgr32ToUV,16, 0, 0, 0xFF000000, 0xFF0000, 0xFF00, 0x00FF, RU<< 8, GU , BU<< 8, RV<< 8, GV , BV<< 8, RGB2YUV_SHIFT+8)
+BGR2UV(uint32_t, rgb32ToUV, 0, 0,16, 0xFF000000, 0x00FF, 0xFF00, 0xFF0000, RU<< 8, GU , BU<< 8, RV<< 8, GV , BV<< 8, RGB2YUV_SHIFT+8)
+BGR2UV(uint16_t, bgr16ToUV, 0, 0, 0, 0, 0x001F, 0x07E0, 0xF800, RU<<11, GU<<5, BU , RV<<11, GV<<5, BV , RGB2YUV_SHIFT+8)
+BGR2UV(uint16_t, bgr15ToUV, 0, 0, 0, 0, 0x001F, 0x03E0, 0x7C00, RU<<10, GU<<5, BU , RV<<10, GV<<5, BV , RGB2YUV_SHIFT+7)
+BGR2UV(uint16_t, rgb16ToUV, 0, 0, 0, 0, 0xF800, 0x07E0, 0x001F, RU , GU<<5, BU<<11, RV , GV<<5, BV<<11, RGB2YUV_SHIFT+8)
+BGR2UV(uint16_t, rgb15ToUV, 0, 0, 0, 0, 0x7C00, 0x03E0, 0x001F, RU , GU<<5, BU<<10, RV , GV<<5, BV<<10, RGB2YUV_SHIFT+7)
+
+static inline void palToY(uint8_t *dst, const uint8_t *src, long width, uint32_t *pal)
+{
+ int i;
+ for (i=0; i<width; i++)
+ {
+ int d= src[i];
+
+ dst[i]= pal[d] & 0xFF;
+ }
+}
+
+static inline void palToUV(uint8_t *dstU, uint8_t *dstV,
+ const uint8_t *src1, const uint8_t *src2,
+ long width, uint32_t *pal)
+{
+ int i;
+ assert(src1 == src2);
+ for (i=0; i<width; i++)
+ {
+ int p= pal[src1[i]];
+
+ dstU[i]= p>>8;
+ dstV[i]= p>>16;
+ }
+}
+
+static inline void monowhite2Y(uint8_t *dst, const uint8_t *src, long width, uint32_t *unused)
+{
+ int i, j;
+ for (i=0; i<width/8; i++){
+ int d= ~src[i];
+ for(j=0; j<8; j++)
+ dst[8*i+j]= ((d>>(7-j))&1)*255;
+ }
+}
+
+static inline void monoblack2Y(uint8_t *dst, const uint8_t *src, long width, uint32_t *unused)
+{
+ int i, j;
+ for (i=0; i<width/8; i++){
+ int d= src[i];
+ for(j=0; j<8; j++)
+ dst[8*i+j]= ((d>>(7-j))&1)*255;
+ }
+}
+
+
//Note: we have C, MMX, MMX2, 3DNOW versions, there is no 3DNOW+MMX2 one
//Plain C versions
-#if !HAVE_MMX || CONFIG_RUNTIME_CPUDETECT || !CONFIG_GPL
+#if ((!HAVE_MMX || !CONFIG_GPL) && !HAVE_ALTIVEC) || CONFIG_RUNTIME_CPUDETECT
#define COMPILE_C
#endif
#if ARCH_PPC
-#if (HAVE_ALTIVEC || CONFIG_RUNTIME_CPUDETECT) && CONFIG_GPL
-#undef COMPILE_C
+#if HAVE_ALTIVEC || CONFIG_RUNTIME_CPUDETECT
#define COMPILE_ALTIVEC
#endif
#endif //ARCH_PPC
@@ -1792,10 +1972,10 @@ static void globalInit(void){
static SwsFunc getSwsFunc(SwsContext *c)
{
-#if CONFIG_RUNTIME_CPUDETECT && CONFIG_GPL
+#if CONFIG_RUNTIME_CPUDETECT
int flags = c->flags;
-#if ARCH_X86
+#if ARCH_X86 && CONFIG_GPL
// ordered per speed fastest first
if (flags & SWS_CPU_CAPS_MMX2) {
sws_init_swScale_MMX2(c);
@@ -1823,7 +2003,7 @@ static SwsFunc getSwsFunc(SwsContext *c)
#endif
sws_init_swScale_C(c);
return swScale_C;
-#endif /* ARCH_X86 */
+#endif /* ARCH_X86 && CONFIG_GPL */
#else //CONFIG_RUNTIME_CPUDETECT
#if HAVE_MMX2
sws_init_swScale_MMX2(c);
@@ -2385,7 +2565,7 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d
__asm__ volatile("emms\n\t"::: "memory");
#endif
-#if !CONFIG_RUNTIME_CPUDETECT || !CONFIG_GPL //ensure that the flags match the compiled variant if cpudetect is off
+#if !CONFIG_RUNTIME_CPUDETECT //ensure that the flags match the compiled variant if cpudetect is off
flags &= ~(SWS_CPU_CAPS_MMX|SWS_CPU_CAPS_MMX2|SWS_CPU_CAPS_3DNOW|SWS_CPU_CAPS_ALTIVEC|SWS_CPU_CAPS_BFIN);
#if HAVE_MMX2
flags |= SWS_CPU_CAPS_MMX|SWS_CPU_CAPS_MMX2;
@@ -2551,6 +2731,8 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d
&& srcFormat != PIX_FMT_MONOWHITE && dstFormat != PIX_FMT_MONOWHITE
&& dstFormat != PIX_FMT_RGB32_1
&& dstFormat != PIX_FMT_BGR32_1
+ && srcFormat != PIX_FMT_RGB48LE && dstFormat != PIX_FMT_RGB48LE
+ && srcFormat != PIX_FMT_RGB48BE && dstFormat != PIX_FMT_RGB48BE
&& (!needsDither || (c->flags&(SWS_FAST_BILINEAR|SWS_POINT))))
c->swScale= rgb2rgbWrapper;
diff --git a/libswscale/swscale.h b/libswscale/swscale.h
index f5856c381c..a151095858 100644
--- a/libswscale/swscale.h
+++ b/libswscale/swscale.h
@@ -133,8 +133,8 @@ struct SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat
SwsFilter *dstFilter, const double *param);
/**
- * Scales the image slice in \p srcSlice and puts the resulting scaled
- * slice in the image in \p dst. A slice is a sequence of consecutive
+ * Scales the image slice in srcSlice and puts the resulting scaled
+ * slice in the image in dst. A slice is a sequence of consecutive
* rows in an image.
*
* @param context the scaling context previously created with
@@ -188,8 +188,8 @@ int sws_getColorspaceDetails(struct SwsContext *c, int **inv_table,
SwsVector *sws_getGaussianVec(double variance, double quality);
/**
- * Allocates and returns a vector with \p length coefficients, all
- * with the same value \p c.
+ * Allocates and returns a vector with length coefficients, all
+ * with the same value c.
*/
SwsVector *sws_getConstVec(double c, int length);
@@ -200,13 +200,12 @@ SwsVector *sws_getConstVec(double c, int length);
SwsVector *sws_getIdentityVec(void);
/**
- * Scales all the coefficients of \p a by the \p scalar value.
+ * Scales all the coefficients of a by the scalar value.
*/
void sws_scaleVec(SwsVector *a, double scalar);
/**
- * Scales all the coefficients of \p a so that their sum equals \p
- * height."
+ * Scales all the coefficients of a so that their sum equals height.
*/
void sws_normalizeVec(SwsVector *a, double height);
void sws_convVec(SwsVector *a, SwsVector *b);
@@ -215,8 +214,8 @@ void sws_subVec(SwsVector *a, SwsVector *b);
void sws_shiftVec(SwsVector *a, int shift);
/**
- * Allocates and returns a clone of the vector \p a, that is a vector
- * with the same coefficients as \p a.
+ * Allocates and returns a clone of the vector a, that is a vector
+ * with the same coefficients as a.
*/
SwsVector *sws_cloneVec(SwsVector *a);
@@ -228,8 +227,8 @@ attribute_deprecated void sws_printVec(SwsVector *a);
#endif
/**
- * Prints with av_log() a textual representation of the vector \p a
- * if \p log_level <= av_log_level.
+ * Prints with av_log() a textual representation of the vector a
+ * if log_level <= av_log_level.
*/
void sws_printVec2(SwsVector *a, AVClass *log_ctx, int log_level);
@@ -242,16 +241,16 @@ SwsFilter *sws_getDefaultFilter(float lumaGBlur, float chromaGBlur,
void sws_freeFilter(SwsFilter *filter);
/**
- * Checks if \p context can be reused, otherwise reallocates a new
+ * Checks if context can be reused, otherwise reallocates a new
* one.
*
- * If \p context is NULL, just calls sws_getContext() to get a new
+ * If context is NULL, just calls sws_getContext() to get a new
* context. Otherwise, checks if the parameters are the ones already
- * saved in \p context. If that is the case, returns the current
- * context. Otherwise, frees \p context and gets a new context with
+ * saved in context. If that is the case, returns the current
+ * context. Otherwise, frees context and gets a new context with
* the new parameters.
*
- * Be warned that \p srcFilter and \p dstFilter are not checked, they
+ * Be warned that srcFilter and dstFilter are not checked, they
* are assumed to remain the same.
*/
struct SwsContext *sws_getCachedContext(struct SwsContext *context,
diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h
index d9bbb6c1e2..60a08a7849 100644
--- a/libswscale/swscale_internal.h
+++ b/libswscale/swscale_internal.h
@@ -28,6 +28,7 @@
#endif
#include "libavutil/avutil.h"
+#include "libavutil/internal.h"
#define STR(s) AV_TOSTRING(s) //AV_STRINGIFY is too long
@@ -166,26 +167,26 @@ typedef struct SwsContext{
#define Y_TEMP "11*8+4*4*256*2+40"
#define ALP_MMX_FILTER_OFFSET "11*8+4*4*256*2+48"
- uint64_t redDither __attribute__((aligned(8)));
- uint64_t greenDither __attribute__((aligned(8)));
- uint64_t blueDither __attribute__((aligned(8)));
-
- uint64_t yCoeff __attribute__((aligned(8)));
- uint64_t vrCoeff __attribute__((aligned(8)));
- uint64_t ubCoeff __attribute__((aligned(8)));
- uint64_t vgCoeff __attribute__((aligned(8)));
- uint64_t ugCoeff __attribute__((aligned(8)));
- uint64_t yOffset __attribute__((aligned(8)));
- uint64_t uOffset __attribute__((aligned(8)));
- uint64_t vOffset __attribute__((aligned(8)));
+ DECLARE_ALIGNED(8, uint64_t, redDither);
+ DECLARE_ALIGNED(8, uint64_t, greenDither);
+ DECLARE_ALIGNED(8, uint64_t, blueDither);
+
+ DECLARE_ALIGNED(8, uint64_t, yCoeff);
+ DECLARE_ALIGNED(8, uint64_t, vrCoeff);
+ DECLARE_ALIGNED(8, uint64_t, ubCoeff);
+ DECLARE_ALIGNED(8, uint64_t, vgCoeff);
+ DECLARE_ALIGNED(8, uint64_t, ugCoeff);
+ DECLARE_ALIGNED(8, uint64_t, yOffset);
+ DECLARE_ALIGNED(8, uint64_t, uOffset);
+ DECLARE_ALIGNED(8, uint64_t, vOffset);
int32_t lumMmxFilter[4*MAX_FILTER_SIZE];
int32_t chrMmxFilter[4*MAX_FILTER_SIZE];
int dstW;
- uint64_t esp __attribute__((aligned(8)));
- uint64_t vRounder __attribute__((aligned(8)));
- uint64_t u_temp __attribute__((aligned(8)));
- uint64_t v_temp __attribute__((aligned(8)));
- uint64_t y_temp __attribute__((aligned(8)));
+ DECLARE_ALIGNED(8, uint64_t, esp);
+ DECLARE_ALIGNED(8, uint64_t, vRounder);
+ DECLARE_ALIGNED(8, uint64_t, u_temp);
+ DECLARE_ALIGNED(8, uint64_t, v_temp);
+ DECLARE_ALIGNED(8, uint64_t, y_temp);
int32_t alpMmxFilter[4*MAX_FILTER_SIZE];
#if HAVE_ALTIVEC
@@ -200,21 +201,21 @@ typedef struct SwsContext{
#endif
#if ARCH_BFIN
- uint32_t oy __attribute__((aligned(4)));
- uint32_t oc __attribute__((aligned(4)));
- uint32_t zero __attribute__((aligned(4)));
- uint32_t cy __attribute__((aligned(4)));
- uint32_t crv __attribute__((aligned(4)));
- uint32_t rmask __attribute__((aligned(4)));
- uint32_t cbu __attribute__((aligned(4)));
- uint32_t bmask __attribute__((aligned(4)));
- uint32_t cgu __attribute__((aligned(4)));
- uint32_t cgv __attribute__((aligned(4)));
- uint32_t gmask __attribute__((aligned(4)));
+ DECLARE_ALIGNED(4, uint32_t, oy);
+ DECLARE_ALIGNED(4, uint32_t, oc);
+ DECLARE_ALIGNED(4, uint32_t, zero);
+ DECLARE_ALIGNED(4, uint32_t, cy);
+ DECLARE_ALIGNED(4, uint32_t, crv);
+ DECLARE_ALIGNED(4, uint32_t, rmask);
+ DECLARE_ALIGNED(4, uint32_t, cbu);
+ DECLARE_ALIGNED(4, uint32_t, bmask);
+ DECLARE_ALIGNED(4, uint32_t, cgu);
+ DECLARE_ALIGNED(4, uint32_t, cgv);
+ DECLARE_ALIGNED(4, uint32_t, gmask);
#endif
#if HAVE_VIS
- uint64_t sparc_coeffs[10] __attribute__((aligned(8)));
+ DECLARE_ALIGNED(8, uint64_t, sparc_coeffs[10]);
#endif
/* function pointers for swScale() */
@@ -293,12 +294,14 @@ void ff_yuv2packedX_altivec(SwsContext *c,
const int16_t *chrFilter, int16_t **chrSrc, int chrFilterSize,
uint8_t *dest, int dstW, int dstY);
-const char *sws_format_name(int format);
+const char *sws_format_name(enum PixelFormat format);
//FIXME replace this with something faster
#define is16BPS(x) ( \
(x)==PIX_FMT_GRAY16BE \
|| (x)==PIX_FMT_GRAY16LE \
+ || (x)==PIX_FMT_RGB48BE \
+ || (x)==PIX_FMT_RGB48LE \
|| (x)==PIX_FMT_YUV420PLE \
|| (x)==PIX_FMT_YUV422PLE \
|| (x)==PIX_FMT_YUV444PLE \
@@ -342,7 +345,9 @@ const char *sws_format_name(int format);
|| (x)==PIX_FMT_GRAY16LE \
)
#define isRGB(x) ( \
- (x)==PIX_FMT_RGB32 \
+ (x)==PIX_FMT_RGB48BE \
+ || (x)==PIX_FMT_RGB48LE \
+ || (x)==PIX_FMT_RGB32 \
|| (x)==PIX_FMT_RGB32_1 \
|| (x)==PIX_FMT_RGB24 \
|| (x)==PIX_FMT_RGB565 \
@@ -376,6 +381,9 @@ const char *sws_format_name(int format);
static inline int fmt_depth(int fmt)
{
switch(fmt) {
+ case PIX_FMT_RGB48BE:
+ case PIX_FMT_RGB48LE:
+ return 48;
case PIX_FMT_BGRA:
case PIX_FMT_ABGR:
case PIX_FMT_RGBA:
diff --git a/libswscale/swscale_template.c b/libswscale/swscale_template.c
index a605b9b663..279cab034b 100644
--- a/libswscale/swscale_template.c
+++ b/libswscale/swscale_template.c
@@ -1799,74 +1799,6 @@ static inline void RENAME(BEToUV)(uint8_t *dstU, uint8_t *dstV, const uint8_t *s
#endif
}
-#define BGR2Y(type, name, shr, shg, shb, maskr, maskg, maskb, RY, GY, BY, S)\
-static inline void RENAME(name)(uint8_t *dst, const uint8_t *src, long width, uint32_t *unused)\
-{\
- int i;\
- for (i=0; i<width; i++)\
- {\
- int b= (((const type*)src)[i]>>shb)&maskb;\
- int g= (((const type*)src)[i]>>shg)&maskg;\
- int r= (((const type*)src)[i]>>shr)&maskr;\
-\
- dst[i]= (((RY)*r + (GY)*g + (BY)*b + (33<<((S)-1)))>>(S));\
- }\
-}
-
-BGR2Y(uint32_t, bgr32ToY,16, 0, 0, 0x00FF, 0xFF00, 0x00FF, RY<< 8, GY , BY<< 8, RGB2YUV_SHIFT+8)
-BGR2Y(uint32_t, rgb32ToY, 0, 0,16, 0x00FF, 0xFF00, 0x00FF, RY<< 8, GY , BY<< 8, RGB2YUV_SHIFT+8)
-BGR2Y(uint16_t, bgr16ToY, 0, 0, 0, 0x001F, 0x07E0, 0xF800, RY<<11, GY<<5, BY , RGB2YUV_SHIFT+8)
-BGR2Y(uint16_t, bgr15ToY, 0, 0, 0, 0x001F, 0x03E0, 0x7C00, RY<<10, GY<<5, BY , RGB2YUV_SHIFT+7)
-BGR2Y(uint16_t, rgb16ToY, 0, 0, 0, 0xF800, 0x07E0, 0x001F, RY , GY<<5, BY<<11, RGB2YUV_SHIFT+8)
-BGR2Y(uint16_t, rgb15ToY, 0, 0, 0, 0x7C00, 0x03E0, 0x001F, RY , GY<<5, BY<<10, RGB2YUV_SHIFT+7)
-
-static inline void RENAME(abgrToA)(uint8_t *dst, const uint8_t *src, long width, uint32_t *unused){
- int i;
- for (i=0; i<width; i++){
- dst[i]= src[4*i];
- }
-}
-
-#define BGR2UV(type, name, shr, shg, shb, maska, maskr, maskg, maskb, RU, GU, BU, RV, GV, BV, S)\
-static inline void RENAME(name)(uint8_t *dstU, uint8_t *dstV, const uint8_t *src, const uint8_t *dummy, long width, uint32_t *unused)\
-{\
- int i;\
- for (i=0; i<width; i++)\
- {\
- int b= (((const type*)src)[i]&maskb)>>shb;\
- int g= (((const type*)src)[i]&maskg)>>shg;\
- int r= (((const type*)src)[i]&maskr)>>shr;\
-\
- dstU[i]= ((RU)*r + (GU)*g + (BU)*b + (257<<((S)-1)))>>(S);\
- dstV[i]= ((RV)*r + (GV)*g + (BV)*b + (257<<((S)-1)))>>(S);\
- }\
-}\
-static inline void RENAME(name ## _half)(uint8_t *dstU, uint8_t *dstV, const uint8_t *src, const uint8_t *dummy, long width, uint32_t *unused)\
-{\
- int i;\
- for (i=0; i<width; i++)\
- {\
- int pix0= ((const type*)src)[2*i+0];\
- int pix1= ((const type*)src)[2*i+1];\
- int g= (pix0&~(maskr|maskb))+(pix1&~(maskr|maskb));\
- int b= ((pix0+pix1-g)&(maskb|(2*maskb)))>>shb;\
- int r= ((pix0+pix1-g)&(maskr|(2*maskr)))>>shr;\
- g&= maskg|(2*maskg);\
-\
- g>>=shg;\
-\
- dstU[i]= ((RU)*r + (GU)*g + (BU)*b + (257<<(S)))>>((S)+1);\
- dstV[i]= ((RV)*r + (GV)*g + (BV)*b + (257<<(S)))>>((S)+1);\
- }\
-}
-
-BGR2UV(uint32_t, bgr32ToUV,16, 0, 0, 0xFF000000, 0xFF0000, 0xFF00, 0x00FF, RU<< 8, GU , BU<< 8, RV<< 8, GV , BV<< 8, RGB2YUV_SHIFT+8)
-BGR2UV(uint32_t, rgb32ToUV, 0, 0,16, 0xFF000000, 0x00FF, 0xFF00, 0xFF0000, RU<< 8, GU , BU<< 8, RV<< 8, GV , BV<< 8, RGB2YUV_SHIFT+8)
-BGR2UV(uint16_t, bgr16ToUV, 0, 0, 0, 0, 0x001F, 0x07E0, 0xF800, RU<<11, GU<<5, BU , RV<<11, GV<<5, BV , RGB2YUV_SHIFT+8)
-BGR2UV(uint16_t, bgr15ToUV, 0, 0, 0, 0, 0x001F, 0x03E0, 0x7C00, RU<<10, GU<<5, BU , RV<<10, GV<<5, BV , RGB2YUV_SHIFT+7)
-BGR2UV(uint16_t, rgb16ToUV, 0, 0, 0, 0, 0xF800, 0x07E0, 0x001F, RU , GU<<5, BU<<11, RV , GV<<5, BV<<11, RGB2YUV_SHIFT+8)
-BGR2UV(uint16_t, rgb15ToUV, 0, 0, 0, 0, 0x7C00, 0x03E0, 0x001F, RU , GU<<5, BU<<10, RV , GV<<5, BV<<10, RGB2YUV_SHIFT+7)
-
#if HAVE_MMX
static inline void RENAME(bgr24ToY_mmx)(uint8_t *dst, const uint8_t *src, long width, int srcFormat)
{
@@ -2084,52 +2016,6 @@ static inline void RENAME(rgb24ToUV_half)(uint8_t *dstU, uint8_t *dstV, const ui
}
-static inline void RENAME(palToY)(uint8_t *dst, const uint8_t *src, long width, uint32_t *pal)
-{
- int i;
- for (i=0; i<width; i++)
- {
- int d= src[i];
-
- dst[i]= pal[d] & 0xFF;
- }
-}
-
-static inline void RENAME(palToUV)(uint8_t *dstU, uint8_t *dstV,
- const uint8_t *src1, const uint8_t *src2,
- long width, uint32_t *pal)
-{
- int i;
- assert(src1 == src2);
- for (i=0; i<width; i++)
- {
- int p= pal[src1[i]];
-
- dstU[i]= p>>8;
- dstV[i]= p>>16;
- }
-}
-
-static inline void RENAME(monowhite2Y)(uint8_t *dst, const uint8_t *src, long width, uint32_t *unused)
-{
- int i, j;
- for (i=0; i<width/8; i++){
- int d= ~src[i];
- for(j=0; j<8; j++)
- dst[8*i+j]= ((d>>(7-j))&1)*255;
- }
-}
-
-static inline void RENAME(monoblack2Y)(uint8_t *dst, const uint8_t *src, long width, uint32_t *unused)
-{
- int i, j;
- for (i=0; i<width/8; i++){
- int d= src[i];
- for(j=0; j<8; j++)
- dst[8*i+j]= ((d>>(7-j))&1)*255;
- }
-}
-
// bilinear / bicubic scaling
static inline void RENAME(hScale)(int16_t *dst, int dstW, const uint8_t *src, int srcW, int xInc,
const int16_t *filter, const int16_t *filterPos, long filterSize)
@@ -2335,10 +2221,10 @@ static inline void RENAME(hyscale)(SwsContext *c, uint16_t *dst, long dstWidth,
int srcFormat, uint8_t *formatConvBuffer,
uint32_t *pal, int isAlpha)
{
- int32_t *mmx2FilterPos = c->lumMmx2FilterPos;
- int16_t *mmx2Filter = c->lumMmx2Filter;
- int canMMX2BeUsed = c->canMMX2BeUsed;
- void *funnyYCode = c->funnyYCode;
+ int32_t av_unused *mmx2FilterPos = c->lumMmx2FilterPos;
+ int16_t av_unused *mmx2Filter = c->lumMmx2Filter;
+ int av_unused canMMX2BeUsed = c->canMMX2BeUsed;
+ void av_unused *funnyYCode = c->funnyYCode;
void (*internal_func)(uint8_t *, const uint8_t *, long, uint32_t *) = isAlpha ? c->hascale_internal : c->hyscale_internal;
if (isAlpha) {
@@ -2349,6 +2235,9 @@ static inline void RENAME(hyscale)(SwsContext *c, uint16_t *dst, long dstWidth,
src += ALT32_CORR;
}
+ if (srcFormat == PIX_FMT_RGB48LE)
+ src++;
+
if (internal_func) {
internal_func(formatConvBuffer, src, srcW, pal);
src= formatConvBuffer;
@@ -2369,7 +2258,7 @@ static inline void RENAME(hyscale)(SwsContext *c, uint16_t *dst, long dstWidth,
#if HAVE_MMX2
int i;
#if defined(PIC)
- uint64_t ebxsave __attribute__((aligned(8)));
+ DECLARE_ALIGNED(8, uint64_t, ebxsave);
#endif
if (canMMX2BeUsed)
{
@@ -2525,10 +2414,10 @@ inline static void RENAME(hcscale)(SwsContext *c, uint16_t *dst, long dstWidth,
int srcFormat, uint8_t *formatConvBuffer,
uint32_t *pal)
{
- int32_t *mmx2FilterPos = c->chrMmx2FilterPos;
- int16_t *mmx2Filter = c->chrMmx2Filter;
- int canMMX2BeUsed = c->canMMX2BeUsed;
- void *funnyUVCode = c->funnyUVCode;
+ int32_t av_unused *mmx2FilterPos = c->chrMmx2FilterPos;
+ int16_t av_unused *mmx2Filter = c->chrMmx2Filter;
+ int av_unused canMMX2BeUsed = c->canMMX2BeUsed;
+ void av_unused *funnyUVCode = c->funnyUVCode;
if (isGray(srcFormat) || srcFormat==PIX_FMT_MONOBLACK || srcFormat==PIX_FMT_MONOWHITE)
return;
@@ -2538,6 +2427,11 @@ inline static void RENAME(hcscale)(SwsContext *c, uint16_t *dst, long dstWidth,
src2 += ALT32_CORR;
}
+ if (srcFormat==PIX_FMT_RGB48LE) {
+ src1++;
+ src2++;
+ }
+
if (c->hcscale_internal) {
c->hcscale_internal(formatConvBuffer, formatConvBuffer+VOFW, src1, src2, srcW, pal);
src1= formatConvBuffer;
@@ -2560,7 +2454,7 @@ inline static void RENAME(hcscale)(SwsContext *c, uint16_t *dst, long dstWidth,
#if HAVE_MMX2
int i;
#if defined(PIC)
- uint64_t ebxsave __attribute__((aligned(8)));
+ DECLARE_ALIGNED(8, uint64_t, ebxsave);
#endif
if (canMMX2BeUsed)
{
@@ -3151,7 +3045,7 @@ static void RENAME(sws_init_swScale)(SwsContext *c)
case PIX_FMT_BGR8 :
case PIX_FMT_PAL8 :
case PIX_FMT_BGR4_BYTE:
- case PIX_FMT_RGB4_BYTE: c->hcscale_internal = RENAME(palToUV); break;
+ case PIX_FMT_RGB4_BYTE: c->hcscale_internal = palToUV; break;
case PIX_FMT_YUV420PBE:
case PIX_FMT_YUV422PBE:
case PIX_FMT_YUV444PBE: c->hcscale_internal = RENAME(BEToUV); break;
@@ -3161,29 +3055,33 @@ static void RENAME(sws_init_swScale)(SwsContext *c)
}
if (c->chrSrcHSubSample) {
switch(srcFormat) {
+ case PIX_FMT_RGB48BE:
+ case PIX_FMT_RGB48LE: c->hcscale_internal = rgb48ToUV_half; break;
case PIX_FMT_RGB32 :
- case PIX_FMT_RGB32_1: c->hcscale_internal = RENAME(bgr32ToUV_half); break;
+ case PIX_FMT_RGB32_1: c->hcscale_internal = bgr32ToUV_half; break;
case PIX_FMT_BGR24 : c->hcscale_internal = RENAME(bgr24ToUV_half); break;
- case PIX_FMT_BGR565 : c->hcscale_internal = RENAME(bgr16ToUV_half); break;
- case PIX_FMT_BGR555 : c->hcscale_internal = RENAME(bgr15ToUV_half); break;
+ case PIX_FMT_BGR565 : c->hcscale_internal = bgr16ToUV_half; break;
+ case PIX_FMT_BGR555 : c->hcscale_internal = bgr15ToUV_half; break;
case PIX_FMT_BGR32 :
- case PIX_FMT_BGR32_1: c->hcscale_internal = RENAME(rgb32ToUV_half); break;
+ case PIX_FMT_BGR32_1: c->hcscale_internal = rgb32ToUV_half; break;
case PIX_FMT_RGB24 : c->hcscale_internal = RENAME(rgb24ToUV_half); break;
- case PIX_FMT_RGB565 : c->hcscale_internal = RENAME(rgb16ToUV_half); break;
- case PIX_FMT_RGB555 : c->hcscale_internal = RENAME(rgb15ToUV_half); break;
+ case PIX_FMT_RGB565 : c->hcscale_internal = rgb16ToUV_half; break;
+ case PIX_FMT_RGB555 : c->hcscale_internal = rgb15ToUV_half; break;
}
} else {
switch(srcFormat) {
+ case PIX_FMT_RGB48BE:
+ case PIX_FMT_RGB48LE: c->hcscale_internal = rgb48ToUV; break;
case PIX_FMT_RGB32 :
- case PIX_FMT_RGB32_1: c->hcscale_internal = RENAME(bgr32ToUV); break;
+ case PIX_FMT_RGB32_1: c->hcscale_internal = bgr32ToUV; break;
case PIX_FMT_BGR24 : c->hcscale_internal = RENAME(bgr24ToUV); break;
- case PIX_FMT_BGR565 : c->hcscale_internal = RENAME(bgr16ToUV); break;
- case PIX_FMT_BGR555 : c->hcscale_internal = RENAME(bgr15ToUV); break;
+ case PIX_FMT_BGR565 : c->hcscale_internal = bgr16ToUV; break;
+ case PIX_FMT_BGR555 : c->hcscale_internal = bgr15ToUV; break;
case PIX_FMT_BGR32 :
- case PIX_FMT_BGR32_1: c->hcscale_internal = RENAME(rgb32ToUV); break;
+ case PIX_FMT_BGR32_1: c->hcscale_internal = rgb32ToUV; break;
case PIX_FMT_RGB24 : c->hcscale_internal = RENAME(rgb24ToUV); break;
- case PIX_FMT_RGB565 : c->hcscale_internal = RENAME(rgb16ToUV); break;
- case PIX_FMT_RGB555 : c->hcscale_internal = RENAME(rgb15ToUV); break;
+ case PIX_FMT_RGB565 : c->hcscale_internal = rgb16ToUV; break;
+ case PIX_FMT_RGB555 : c->hcscale_internal = rgb15ToUV; break;
}
}
@@ -3201,29 +3099,31 @@ static void RENAME(sws_init_swScale)(SwsContext *c)
case PIX_FMT_YUV444PLE:
case PIX_FMT_GRAY16LE : c->hyscale_internal = RENAME(uyvyToY); break;
case PIX_FMT_BGR24 : c->hyscale_internal = RENAME(bgr24ToY); break;
- case PIX_FMT_BGR565 : c->hyscale_internal = RENAME(bgr16ToY); break;
- case PIX_FMT_BGR555 : c->hyscale_internal = RENAME(bgr15ToY); break;
+ case PIX_FMT_BGR565 : c->hyscale_internal = bgr16ToY; break;
+ case PIX_FMT_BGR555 : c->hyscale_internal = bgr15ToY; break;
case PIX_FMT_RGB24 : c->hyscale_internal = RENAME(rgb24ToY); break;
- case PIX_FMT_RGB565 : c->hyscale_internal = RENAME(rgb16ToY); break;
- case PIX_FMT_RGB555 : c->hyscale_internal = RENAME(rgb15ToY); break;
+ case PIX_FMT_RGB565 : c->hyscale_internal = rgb16ToY; break;
+ case PIX_FMT_RGB555 : c->hyscale_internal = rgb15ToY; break;
case PIX_FMT_RGB8 :
case PIX_FMT_BGR8 :
case PIX_FMT_PAL8 :
case PIX_FMT_BGR4_BYTE:
- case PIX_FMT_RGB4_BYTE: c->hyscale_internal = RENAME(palToY); break;
- case PIX_FMT_MONOBLACK: c->hyscale_internal = RENAME(monoblack2Y); break;
- case PIX_FMT_MONOWHITE: c->hyscale_internal = RENAME(monowhite2Y); break;
+ case PIX_FMT_RGB4_BYTE: c->hyscale_internal = palToY; break;
+ case PIX_FMT_MONOBLACK: c->hyscale_internal = monoblack2Y; break;
+ case PIX_FMT_MONOWHITE: c->hyscale_internal = monowhite2Y; break;
case PIX_FMT_RGB32 :
- case PIX_FMT_RGB32_1: c->hyscale_internal = RENAME(bgr32ToY); break;
+ case PIX_FMT_RGB32_1: c->hyscale_internal = bgr32ToY; break;
case PIX_FMT_BGR32 :
- case PIX_FMT_BGR32_1: c->hyscale_internal = RENAME(rgb32ToY); break;
+ case PIX_FMT_BGR32_1: c->hyscale_internal = rgb32ToY; break;
+ case PIX_FMT_RGB48BE:
+ case PIX_FMT_RGB48LE: c->hyscale_internal = rgb48ToY; break;
}
if (c->alpPixBuf) {
switch (srcFormat) {
case PIX_FMT_RGB32 :
case PIX_FMT_RGB32_1:
case PIX_FMT_BGR32 :
- case PIX_FMT_BGR32_1: c->hascale_internal = RENAME(abgrToA); break;
+ case PIX_FMT_BGR32_1: c->hascale_internal = abgrToA; break;
}
}
}
diff --git a/libswscale/yuv2rgb.c b/libswscale/yuv2rgb.c
index d2389c71dd..96649296ff 100644
--- a/libswscale/yuv2rgb.c
+++ b/libswscale/yuv2rgb.c
@@ -80,6 +80,16 @@ const int32_t ff_yuv2rgb_coeffs[8][4] = {
Y = ysrc[2*i+1-o]; \
dst[2*i+1] = r[Y] + g[Y] + b[Y] + (asrc[2*i+1]<<s);
+#define PUTRGB48(dst,src,i) \
+ Y = src[2*i]; \
+ dst[12*i+ 0] = dst[12*i+ 1] = r[Y]; \
+ dst[12*i+ 2] = dst[12*i+ 3] = g[Y]; \
+ dst[12*i+ 4] = dst[12*i+ 5] = b[Y]; \
+ Y = src[2*i+1]; \
+ dst[12*i+ 6] = dst[12*i+ 7] = r[Y]; \
+ dst[12*i+ 8] = dst[12*i+ 9] = g[Y]; \
+ dst[12*i+10] = dst[12*i+11] = b[Y];
+
#define YUV2RGBFUNC(func_name, dst_type, alpha) \
static int func_name(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, \
int srcSliceH, uint8_t* dst[], int dstStride[]){\
@@ -129,6 +139,32 @@ static int func_name(SwsContext *c, uint8_t* src[], int srcStride[], int srcSlic
ENDYUV2RGBLINE(dst_delta)\
ENDYUV2RGBFUNC()
+YUV2RGBFUNC(yuv2rgb_c_48, uint8_t, 0)
+ LOADCHROMA(0);
+ PUTRGB48(dst_1,py_1,0);
+ PUTRGB48(dst_2,py_2,0);
+
+ LOADCHROMA(1);
+ PUTRGB48(dst_2,py_2,1);
+ PUTRGB48(dst_1,py_1,1);
+
+ LOADCHROMA(2);
+ PUTRGB48(dst_1,py_1,2);
+ PUTRGB48(dst_2,py_2,2);
+
+ LOADCHROMA(3);
+ PUTRGB48(dst_2,py_2,3);
+ PUTRGB48(dst_1,py_1,3);
+ENDYUV2RGBLINE(48)
+ LOADCHROMA(0);
+ PUTRGB48(dst_1,py_1,0);
+ PUTRGB48(dst_2,py_2,0);
+
+ LOADCHROMA(1);
+ PUTRGB48(dst_2,py_2,1);
+ PUTRGB48(dst_1,py_1,1);
+ENDYUV2RGBFUNC()
+
YUV2RGBFUNC(yuv2rgb_c_32, uint32_t, 0)
LOADCHROMA(0);
PUTRGB(dst_1,py_1,0,0);
@@ -475,7 +511,7 @@ SwsFunc ff_yuv2rgb_get_func_ptr(SwsContext *c)
#if CONFIG_MLIB
t = ff_yuv2rgb_init_mlib(c);
#endif
-#if HAVE_ALTIVEC && CONFIG_GPL
+#if HAVE_ALTIVEC
if (c->flags & SWS_CPU_CAPS_ALTIVEC)
t = ff_yuv2rgb_init_altivec(c);
#endif
@@ -491,6 +527,8 @@ SwsFunc ff_yuv2rgb_get_func_ptr(SwsContext *c)
av_log(c, AV_LOG_WARNING, "No accelerated colorspace conversion found.\n");
switch (c->dstFormat) {
+ case PIX_FMT_RGB48BE:
+ case PIX_FMT_RGB48LE: return yuv2rgb_c_48;
case PIX_FMT_ARGB:
case PIX_FMT_ABGR: if (CONFIG_SWSCALE_ALPHA && c->srcFormat == PIX_FMT_YUVA420P) return yuva2argb_c;
case PIX_FMT_RGBA:
@@ -664,6 +702,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4], int
fill_gv_table(c->table_gV, 2, cgv);
break;
case 24:
+ case 48:
c->yuvTable = av_malloc(1024);
y_table = c->yuvTable;
yb = -(384<<16) - oy;
diff --git a/libvo/font_load_ft.c b/libvo/font_load_ft.c
index d116d6cf11..f44c2c5796 100644
--- a/libvo/font_load_ft.c
+++ b/libvo/font_load_ft.c
@@ -71,7 +71,7 @@ int vo_image_height = 0;
int force_load_font;
int using_freetype = 0;
-int font_fontconfig = 0;
+int font_fontconfig = 1;
//// constants
static unsigned int const colors = 256;
diff --git a/libvo/geometry.c b/libvo/geometry.c
index 189c351fc5..e8f0826bf9 100644
--- a/libvo/geometry.c
+++ b/libvo/geometry.c
@@ -30,7 +30,7 @@ char *vo_geometry = NULL;
int geometry_wh_changed = 0;
int geometry_xy_changed = 0;
-#define RESET_GEOMETRY width = height = xoff = yoff = xper = yper = -1;
+#define RESET_GEOMETRY width = height = xoff = yoff = xper = yper = INT_MIN;
// xpos,ypos: position of the left upper corner
// widw,widh: width and height of the window
@@ -39,7 +39,7 @@ int geometry(int *xpos, int *ypos, int *widw, int *widh, int scrw, int scrh)
{
int width, height, xoff, yoff, xper, yper;
- width = height = xoff = yoff = xper = yper = INT_MIN;
+ RESET_GEOMETRY
if(vo_geometry != NULL) {
if(sscanf(vo_geometry, "%ix%i+%i+%i", &width, &height, &xoff, &yoff) != 4 )
diff --git a/libvo/vo_corevideo.m b/libvo/vo_corevideo.m
index a9667fa4ed..7967921467 100644
--- a/libvo/vo_corevideo.m
+++ b/libvo/vo_corevideo.m
@@ -229,7 +229,8 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_
static void check_events(void)
{
- [mpGLView check_events];
+ if (mpGLView)
+ [mpGLView check_events];
}
static void draw_osd(void)
@@ -239,9 +240,11 @@ static void draw_osd(void)
static void flip_page(void)
{
- if(shared_buffer)
+ if(shared_buffer) {
+ NSAutoreleasePool *pool = [NSAutoreleasePool new];
[mplayerosxProto render];
- else {
+ [pool release];
+ } else {
[mpGLView setCurrentTexture];
[mpGLView render];
if (vo_doublebuffering) {
@@ -367,10 +370,7 @@ static int preinit(const char *arg)
return -1;
}
- NSApplicationLoad();
autoreleasepool = [[NSAutoreleasePool alloc] init];
- NSApp = [NSApplication sharedApplication];
- isLeopardOrLater = floor(NSAppKitVersionNumber) > 824;
if (!buffer_name)
buffer_name = strdup(DEFAULT_BUFFER_NAME);
@@ -379,6 +379,10 @@ static int preinit(const char *arg)
if(!shared_buffer)
{
+ NSApplicationLoad();
+ NSApp = [NSApplication sharedApplication];
+ isLeopardOrLater = floor(NSAppKitVersionNumber) > 824;
+
#if !defined (CONFIG_MACOSX_FINDER) || !defined (CONFIG_SDL)
//this chunk of code is heavily based off SDL_macosx.m from SDL
ProcessSerialNumber myProc, frProc;
diff --git a/libvo/vo_fbdev.c b/libvo/vo_fbdev.c
index a5e51c31f0..12700108aa 100644
--- a/libvo/vo_fbdev.c
+++ b/libvo/vo_fbdev.c
@@ -46,6 +46,7 @@
#endif
#include "aspect.h"
#include "mp_msg.h"
+#include "libavutil/common.h"
static const vo_info_t info = {
"Framebuffer Device",
@@ -185,7 +186,7 @@ static int parse_fbmode_cfg(char *cfgfile)
return -1;
}
- if ((line = (char *) malloc(MAX_LINE_LEN + 1)) == NULL) {
+ if ((line = malloc(MAX_LINE_LEN + 1)) == NULL) {
mp_msg(MSGT_VO, MSGL_V, "can't get memory for 'line': %s\n", strerror(errno));
return -2;
}
@@ -212,7 +213,7 @@ static int parse_fbmode_cfg(char *cfgfile)
if (!validate_mode(mode))
goto err_out_not_valid;
loop_enter:
- if (!(fb_modes = (fb_mode_t *)
+ if (!(fb_modes =
realloc(fb_modes, sizeof(fb_mode_t) * (nr_modes + 1)))) {
mp_msg(MSGT_VO, MSGL_V, "can't realloc 'fb_modes' (nr_modes = %d):"
" %s\n", nr_modes, strerror(errno));
@@ -491,7 +492,7 @@ static fb_mode_t *find_best_mode(int xres, int yres, range_t *hfreq,
static void set_bpp(struct fb_var_screeninfo *p, int bpp)
{
- p->bits_per_pixel = (bpp + 1) & ~1;
+ p->bits_per_pixel = FFALIGN(bpp, 2);
p->red.msb_right = p->green.msb_right = p->blue.msb_right = p->transp.msb_right = 0;
p->transp.offset = p->transp.length = 0;
p->blue.offset = 0;
@@ -555,7 +556,6 @@ static fb_mode_t *fb_mode = NULL;
/* vt related variables */
static FILE *vt_fp = NULL;
-static int vt_doit = 1;
/* vo_fbdev related variables */
static int fb_dev_fd;
@@ -610,8 +610,7 @@ static struct fb_cmap *make_directcolor_cmap(struct fb_var_screeninfo *var)
bcols = 1 << var->blue.length;
/* Make our palette the length of the deepest color */
- cols = (rcols > gcols ? rcols : gcols);
- cols = (cols > bcols ? cols : bcols);
+ cols = FFMAX3(rcols, gcols, bcols);
red = malloc(cols * sizeof(red[0]));
if (!red) {
@@ -673,6 +672,8 @@ static int fb_preinit(int reset)
if (fb_preinit_done)
return fb_works;
+ fb_dev_fd = fb_tty_fd = -1;
+
if (!fb_dev_name && !(fb_dev_name = getenv("FRAMEBUFFER")))
fb_dev_name = strdup("/dev/fb0");
mp_msg(MSGT_VO, MSGL_V, "using %s\n", fb_dev_name);
@@ -683,7 +684,7 @@ static int fb_preinit(int reset)
}
if (ioctl(fb_dev_fd, FBIOGET_VSCREENINFO, &fb_vinfo)) {
mp_msg(MSGT_VO, MSGL_ERR, "Can't get VSCREENINFO: %s\n", strerror(errno));
- goto err_out_fd;
+ goto err_out;
}
fb_orig_vinfo = fb_vinfo;
@@ -696,13 +697,13 @@ static int fb_preinit(int reset)
if (fb_bpp == 8 && !vo_dbpp) {
mp_msg(MSGT_VO, MSGL_ERR, "8 bpp output is not supported.\n");
- goto err_out_tty_fd;
+ goto err_out;
}
if (vo_dbpp) {
if (vo_dbpp != 15 && vo_dbpp != 16 && vo_dbpp != 24 && vo_dbpp != 32) {
mp_msg(MSGT_VO, MSGL_ERR, "can't switch to %d bpp\n", vo_dbpp);
- goto err_out_fd;
+ goto err_out;
}
fb_bpp = vo_dbpp;
}
@@ -713,13 +714,13 @@ static int fb_preinit(int reset)
fb_preinit_done = 1;
fb_works = 1;
return 1;
-err_out_tty_fd:
+err_out:
+ if (fb_tty_fd != -1)
close(fb_tty_fd);
fb_tty_fd = -1;
-err_out_fd:
+ if (fb_dev_fd != -1)
close(fb_dev_fd);
fb_dev_fd = -1;
-err_out:
fb_preinit_done = 1;
fb_works = 0;
return 0;
@@ -747,7 +748,6 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width,
struct fb_cmap *cmap;
int vm = flags & VOFLAG_MODESWITCHING;
int zoom = flags & VOFLAG_SWSCALE;
- int vt_fd;
fs = flags & VOFLAG_FULLSCREEN;
@@ -763,7 +763,7 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width,
mp_msg(MSGT_VO, MSGL_ERR, "-fbmode can only be used with -vm\n");
return 1;
}
- if (vm && (parse_fbmode_cfg(fb_mode_cfgfile) < 0))
+ if (vm && parse_fbmode_cfg(fb_mode_cfgfile) < 0)
return 1;
if (d_width && (fs || vm)) {
out_width = d_width;
@@ -949,8 +949,8 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width,
int x_offset = 0, y_offset = 0;
geometry(&x_offset, &y_offset, &out_width, &out_height, fb_xres, fb_yres);
- frame_buffer = (uint8_t *) mmap(0, fb_size, PROT_READ | PROT_WRITE,
- MAP_SHARED, fb_dev_fd, 0);
+ frame_buffer = mmap(0, fb_size, PROT_READ | PROT_WRITE,
+ MAP_SHARED, fb_dev_fd, 0);
if (frame_buffer == (uint8_t *) -1) {
mp_msg(MSGT_VO, MSGL_ERR, "Can't mmap %s: %s\n", fb_dev_name, strerror(errno));
return 1;
@@ -968,17 +968,11 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width,
if (fs || vm)
memset(frame_buffer, '\0', fb_line_len * fb_yres);
}
- if (vt_doit && (vt_fd = open("/dev/tty", O_WRONLY)) == -1) {
- mp_msg(MSGT_VO, MSGL_ERR, "can't open /dev/tty: %s\n", strerror(errno));
- vt_doit = 0;
- }
- if (vt_doit && !(vt_fp = fdopen(vt_fd, "w"))) {
- mp_msg(MSGT_VO, MSGL_ERR, "can't fdopen /dev/tty: %s\n", strerror(errno));
- vt_doit = 0;
+ if (!(vt_fp = fopen("/dev/tty", "w"))) {
+ mp_msg(MSGT_VO, MSGL_ERR, "can't fopen /dev/tty: %s\n", strerror(errno));
}
- if (vt_doit)
- vt_set_textarea(last_row, fb_yres);
+ vt_set_textarea(last_row, fb_yres);
return 0;
}
@@ -1017,17 +1011,11 @@ static int draw_frame(uint8_t *src[])
static int draw_slice(uint8_t *src[], int stride[], int w, int h, int x, int y)
{
- uint8_t *d, *s;
+ uint8_t *d;
d = center + fb_line_len * y + fb_pixel_size * x;
- s = src[0];
- while (h) {
- fast_memcpy(d, s, w * fb_pixel_size);
- d += fb_line_len;
- s += stride[0];
- h--;
- }
+ memcpy_pic2(d, src[0], w * fb_pixel_size, h, fb_line_len, stride[0], 1);
return 0;
}
@@ -1062,8 +1050,9 @@ static void uninit(void)
if (ioctl(fb_tty_fd, KDSETMODE, KD_TEXT) < 0)
mp_msg(MSGT_VO, MSGL_WARN, "Can't restore text mode: %s\n", strerror(errno));
}
- if (vt_doit)
- vt_set_textarea(0, fb_orig_vinfo.yres);
+ vt_set_textarea(0, fb_orig_vinfo.yres);
+ if (vt_fp)
+ fclose(vt_fp);
close(fb_tty_fd);
close(fb_dev_fd);
if (frame_buffer)
@@ -1096,19 +1085,19 @@ static int preinit(const char *vo_subdevice)
}
}
if (!pre_init_err)
- return pre_init_err = (fb_preinit(0) ? 0 : -1);
+ return pre_init_err = fb_preinit(0) ? 0 : -1;
return -1;
}
static uint32_t get_image(mp_image_t *mpi)
{
if (!IMGFMT_IS_BGR(mpi->imgfmt) ||
- (IMGFMT_BGR_DEPTH(mpi->imgfmt) != fb_bpp) ||
- ((mpi->type != MP_IMGTYPE_STATIC) && (mpi->type != MP_IMGTYPE_TEMP)) ||
+ IMGFMT_BGR_DEPTH(mpi->imgfmt) != fb_bpp ||
+ (mpi->type != MP_IMGTYPE_STATIC && mpi->type != MP_IMGTYPE_TEMP) ||
(mpi->flags & MP_IMGFLAG_PLANAR) ||
(mpi->flags & MP_IMGFLAG_YUV) ||
- (mpi->width != in_width) ||
- (mpi->height != in_height)
+ mpi->width != in_width ||
+ mpi->height != in_height
)
return VO_FALSE;
@@ -1124,7 +1113,7 @@ static int control(uint32_t request, void *data)
case VOCTRL_GET_IMAGE:
return get_image(data);
case VOCTRL_QUERY_FORMAT:
- return query_format(*((uint32_t*)data));
+ return query_format(*(uint32_t*)data);
}
#ifdef CONFIG_VIDIX
diff --git a/mp_msg.c b/mp_msg.c
index a0f641957e..8099305d6f 100644
--- a/mp_msg.c
+++ b/mp_msg.c
@@ -8,6 +8,13 @@
#ifdef CONFIG_ICONV
#include <iconv.h>
#include <errno.h>
+/**
+ * \brief gets the name of the system's terminal character set
+ * \return a malloced string indicating the system charset
+ *
+ * Be warned that this function on many systems is in no way thread-safe
+ * since it modifies global data
+ */
char* get_term_charset(void);
#endif
diff --git a/mplayer.c b/mplayer.c
index 543896c834..505bd41d8d 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -460,7 +460,7 @@ static char *get_demuxer_info(struct MPContext *mpctx, char *tag) {
return NULL;
for (n = 0; info[2*n] != NULL ; n++)
- if (!strcmp (info[2*n], tag))
+ if (!strcasecmp (info[2*n], tag))
break;
return info[2*n+1] ? strdup (info[2*n+1]) : NULL;
@@ -3941,7 +3941,8 @@ if (mpctx->global_sub_size) {
mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_AUDIO_NCH=%d\n", mpctx->sh_audio->channels);
}
mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_LENGTH=%.2lf\n", demuxer_get_time_length(mpctx->demuxer));
- mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_SEEKABLE=%d\n", mpctx->stream->seek ? 1 : 0);
+ mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_SEEKABLE=%d\n",
+ mpctx->stream->seek && (!mpctx->demuxer || mpctx->demuxer->seekable));
if (mpctx->demuxer) {
if (mpctx->demuxer->num_chapters == 0)
stream_control(mpctx->demuxer->stream, STREAM_CTRL_GET_NUM_CHAPTERS, &mpctx->demuxer->num_chapters);
diff --git a/osdep/getch2-os2.c b/osdep/getch2-os2.c
index c470743e14..27ebfaa354 100644
--- a/osdep/getch2-os2.c
+++ b/osdep/getch2-os2.c
@@ -26,6 +26,7 @@
#include <os2.h>
#include <stdio.h>
+#include <string.h>
#include "config.h"
#include "keycodes.h"
@@ -190,7 +191,7 @@ char *get_term_charset( void )
#ifdef HAVE_LANGINFO
setlocale( LC_CTYPE, "");
- charset = nl_langinfo( CODESET );
+ charset = strdup( nl_langinfo( CODESET ));
setlocale( LC_CTYPE, "C");
#endif
diff --git a/osdep/getch2-win.c b/osdep/getch2-win.c
index 1882bb419d..9dae9cd91d 100644
--- a/osdep/getch2-win.c
+++ b/osdep/getch2-win.c
@@ -25,6 +25,7 @@
#include "config.h"
#include <stdio.h>
+#include <string.h>
#include <windows.h>
#include "keycodes.h"
#include "input/input.h"
@@ -189,7 +190,7 @@ static const struct {
char* get_term_charset(void)
{
- static char codepage[10];
+ char codepage[10];
unsigned i, cpno = GetConsoleOutputCP();
if (!cpno)
cpno = GetACP();
@@ -198,9 +199,9 @@ char* get_term_charset(void)
for (i = 0; cp_alias[i].cp; i++)
if (cpno == cp_alias[i].cp)
- return cp_alias[i].alias;
+ return strdup(cp_alias[i].alias);
snprintf(codepage, sizeof(codepage), "CP%u", cpno);
- return codepage;
+ return strdup(codepage);
}
#endif
diff --git a/osdep/getch2.c b/osdep/getch2.c
index 3b680acd7f..4aa09323eb 100644
--- a/osdep/getch2.c
+++ b/osdep/getch2.c
@@ -298,7 +298,7 @@ char* get_term_charset(void)
char* charset = NULL;
#ifdef HAVE_LANGINFO
setlocale(LC_CTYPE, "");
- charset = nl_langinfo(CODESET);
+ charset = strdup(nl_langinfo(CODESET));
setlocale(LC_CTYPE, "C");
#endif
return charset;
diff --git a/stream/asf_mmst_streaming.c b/stream/asf_mmst_streaming.c
index ec6ba83264..a32938a871 100644
--- a/stream/asf_mmst_streaming.c
+++ b/stream/asf_mmst_streaming.c
@@ -49,9 +49,6 @@
#ifdef CONFIG_ICONV
#include <iconv.h>
-#ifdef HAVE_LANGINFO
-#include <langinfo.h>
-#endif
#endif
#include "url.h"
@@ -574,11 +571,7 @@ int asf_mmst_streaming_start(stream_t *stream)
/* prepare for the url encoding conversion */
#ifdef CONFIG_ICONV
-#ifdef HAVE_LANGINFO
- url_conv = iconv_open("UTF-16LE",nl_langinfo(CODESET));
-#else
- url_conv = iconv_open("UTF-16LE", NULL);
-#endif
+ url_conv = iconv_open("UTF-16LE", "UTF-8");
#endif
snprintf (str, 1023, "\034\003NSPlayer/7.0.0.1956; {33715801-BAB3-9D85-24E9-03B90328270A}; Host: %s", url1->hostname);
diff --git a/stream/stream_file.c b/stream/stream_file.c
index bc1e7a4381..9514204a3b 100644
--- a/stream/stream_file.c
+++ b/stream/stream_file.c
@@ -119,7 +119,7 @@ static int open_f(stream_t *stream,int mode, void* opts, int* file_format) {
filename++;
#endif
-#if defined(__CYGWIN__)|| defined(__MINGW32__)
+#if defined(__CYGWIN__)|| defined(__MINGW32__) || defined(__OS2__)
m |= O_BINARY;
#endif
@@ -128,13 +128,13 @@ static int open_f(stream_t *stream,int mode, void* opts, int* file_format) {
// read from stdin
mp_tmsg(MSGT_OPEN,MSGL_INFO,"Reading from stdin...\n");
f=0; // 0=stdin
-#ifdef __MINGW32__
+#if defined(__MINGW32__) || defined(__OS2__)
setmode(fileno(stdin),O_BINARY);
#endif
} else {
mp_msg(MSGT_OPEN,MSGL_INFO,"Writing to stdout\n");
f=1;
-#ifdef __MINGW32__
+#if defined(__MINGW32__) || defined(__OS2__)
setmode(fileno(stdout),O_BINARY);
#endif
}
diff --git a/stream/tcp.c b/stream/tcp.c
index 7566f5b309..0291fba544 100644
--- a/stream/tcp.c
+++ b/stream/tcp.c
@@ -33,6 +33,7 @@
#include "network.h"
#include "stream.h"
#include "tcp.h"
+#include "libavutil/avstring.h"
/* IPv6 options */
int network_prefer_ipv4 = 0;
@@ -163,7 +164,7 @@ connect2Server_with_af(char *host, int port, int af,int verb) {
}
#if HAVE_INET_ATON || defined(HAVE_WINSOCK2_H)
- strncpy( buf, inet_ntoa( *((struct in_addr*)our_s_addr) ), 255);
+ av_strlcpy( buf, inet_ntoa( *((struct in_addr*)our_s_addr) ), 255);
#else
inet_ntop(af, our_s_addr, buf, 255);
#endif
diff --git a/tremor/asm_arm.h b/tremor/asm_arm.h
index 3a3716df1f..f4b1f4f8cf 100644
--- a/tremor/asm_arm.h
+++ b/tremor/asm_arm.h
@@ -127,7 +127,7 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip,
ogg_int32_t *qexpp,
ogg_int32_t *ilsp,ogg_int32_t wi,
ogg_int32_t m){
-
+
ogg_uint32_t qi=*qip,pi=*pip;
ogg_int32_t qexp=*qexpp;
@@ -135,16 +135,16 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip,
"mov r1,%5,asr#1;"
"add r0,r0,r1,lsl#3;"
"1:"
-
+
"ldmdb r0!,{r1,r3};"
"subs r1,r1,%4;" //ilsp[j]-wi
"rsbmi r1,r1,#0;" //labs(ilsp[j]-wi)
"umull %0,r2,r1,%0;" //qi*=labs(ilsp[j]-wi)
-
+
"subs r1,r3,%4;" //ilsp[j+1]-wi
"rsbmi r1,r1,#0;" //labs(ilsp[j+1]-wi)
"umull %1,r3,r1,%1;" //pi*=labs(ilsp[j+1]-wi)
-
+
"cmn r2,r3;" // shift down 16?
"beq 0f;"
"add %2,%2,#16;"
@@ -155,20 +155,20 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip,
"0:"
"cmp r0,%3;\n"
"bhi 1b;\n"
-
+
// odd filter assymetry
"ands r0,%5,#1;\n"
"beq 2f;\n"
"add r0,%3,%5,lsl#2;\n"
-
+
"ldr r1,[r0,#-4];\n"
"mov r0,#0x4000;\n"
-
+
"subs r1,r1,%4;\n" //ilsp[j]-wi
"rsbmi r1,r1,#0;\n" //labs(ilsp[j]-wi)
"umull %0,r2,r1,%0;\n" //qi*=labs(ilsp[j]-wi)
"umull %1,r3,r0,%1;\n" //pi*=labs(ilsp[j+1]-wi)
-
+
"cmn r2,r3;\n" // shift down 16?
"beq 2f;\n"
"add %2,%2,#16;\n"
@@ -176,13 +176,13 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip,
"orr %0,%0,r2,lsl #16;\n"
"mov %1,%1,lsr #16;\n"
"orr %1,%1,r3,lsl #16;\n"
-
+
//qi=(pi>>shift)*labs(ilsp[j]-wi);
//pi=(qi>>shift)*labs(ilsp[j+1]-wi);
//qexp+=shift;
-
+
//}
-
+
/* normalize to max 16 sig figs */
"2:"
"mov r2,#0;"
@@ -204,11 +204,11 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip,
"mov %0,%0,lsr r2;"
"mov %1,%1,lsr r2;"
"add %2,%2,r2;"
-
+
: "+r"(qi),"+r"(pi),"+r"(qexp)
: "r"(ilsp),"r"(wi),"r"(m)
: "r0","r1","r2","r3","cc");
-
+
*qip=qi;
*pip=pi;
*qexpp=qexp;
diff --git a/tremor/backends.h b/tremor/backends.h
index 50c1c45cfd..269d9b812e 100644
--- a/tremor/backends.h
+++ b/tremor/backends.h
@@ -68,8 +68,8 @@ typedef struct{
int class_subbook[VIF_CLASS][8]; /* [VIF_CLASS][subs] */
- int mult; /* 1 2 3 or 4 */
- int postlist[VIF_POSIT+2]; /* first two implicit */
+ int mult; /* 1 2 3 or 4 */
+ int postlist[VIF_POSIT+2]; /* first two implicit */
} vorbis_info_floor1;
@@ -110,7 +110,7 @@ typedef struct{
typedef struct vorbis_info_mapping0{
int submaps; /* <= 16 */
int chmuxlist[256]; /* up to 256 channels in a Vorbis stream */
-
+
int floorsubmap[16]; /* [mux] submap to floors */
int residuesubmap[16]; /* [mux] submap to residue */
diff --git a/tremor/bitwise.c b/tremor/bitwise.c
index c53cc78b95..6bd082b6dc 100644
--- a/tremor/bitwise.c
+++ b/tremor/bitwise.c
@@ -73,11 +73,11 @@ void oggpack_write(oggpack_buffer *b,unsigned long value,int bits){
b->ptr=b->buffer+b->endbyte;
}
- value&=mask[bits];
+ value&=mask[bits];
bits+=b->endbit;
- b->ptr[0]|=value<<b->endbit;
-
+ b->ptr[0]|=value<<b->endbit;
+
if(bits>=8){
b->ptr[1]=(unsigned char)(value>>(8-b->endbit));
if(bits>=16){
@@ -107,11 +107,11 @@ void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits){
b->ptr=b->buffer+b->endbyte;
}
- value=(value&mask[bits])<<(32-bits);
+ value=(value&mask[bits])<<(32-bits);
bits+=b->endbit;
- b->ptr[0]|=value>>(24+b->endbit);
-
+ b->ptr[0]|=value>>(24+b->endbit);
+
if(bits>=8){
b->ptr[1]=(unsigned char)(value>>(16+b->endbit));
if(bits>=16){
@@ -161,7 +161,7 @@ static void oggpack_writecopy_helper(oggpack_buffer *b,
int i;
/* unaligned copy. Do it the hard way. */
for(i=0;i<bytes;i++)
- w(b,(unsigned long)(ptr[i]),8);
+ w(b,(unsigned long)(ptr[i]),8);
}else{
/* aligned block copy */
if(b->endbyte+bytes+1>=b->storage){
@@ -178,9 +178,9 @@ static void oggpack_writecopy_helper(oggpack_buffer *b,
}
if(bits){
if(msb)
- w(b,(unsigned long)(ptr[bytes]>>(8-bits)),bits);
+ w(b,(unsigned long)(ptr[bytes]>>(8-bits)),bits);
else
- w(b,(unsigned long)(ptr[bytes]),bits);
+ w(b,(unsigned long)(ptr[bytes]),bits);
}
}
@@ -232,14 +232,14 @@ long oggpack_look(oggpack_buffer *b,int bits){
/* not the main path */
if(b->endbyte*8+bits>b->storage*8)return(-1);
}
-
+
ret=b->ptr[0]>>b->endbit;
if(bits>8){
- ret|=b->ptr[1]<<(8-b->endbit);
+ ret|=b->ptr[1]<<(8-b->endbit);
if(bits>16){
- ret|=b->ptr[2]<<(16-b->endbit);
+ ret|=b->ptr[2]<<(16-b->endbit);
if(bits>24){
- ret|=b->ptr[3]<<(24-b->endbit);
+ ret|=b->ptr[3]<<(24-b->endbit);
if(bits>32 && b->endbit)
ret|=b->ptr[4]<<(32-b->endbit);
}
@@ -259,14 +259,14 @@ long oggpackB_look(oggpack_buffer *b,int bits){
/* not the main path */
if(b->endbyte*8+bits>b->storage*8)return(-1);
}
-
+
ret=b->ptr[0]<<(24+b->endbit);
if(bits>8){
- ret|=b->ptr[1]<<(16+b->endbit);
+ ret|=b->ptr[1]<<(16+b->endbit);
if(bits>16){
- ret|=b->ptr[2]<<(8+b->endbit);
+ ret|=b->ptr[2]<<(8+b->endbit);
if(bits>24){
- ret|=b->ptr[3]<<(b->endbit);
+ ret|=b->ptr[3]<<(b->endbit);
if(bits>32 && b->endbit)
ret|=b->ptr[4]>>(8-b->endbit);
}
@@ -320,14 +320,14 @@ long oggpack_read(oggpack_buffer *b,int bits){
ret=-1L;
if(b->endbyte*8+bits>b->storage*8)goto overflow;
}
-
+
ret=b->ptr[0]>>b->endbit;
if(bits>8){
- ret|=b->ptr[1]<<(8-b->endbit);
+ ret|=b->ptr[1]<<(8-b->endbit);
if(bits>16){
- ret|=b->ptr[2]<<(16-b->endbit);
+ ret|=b->ptr[2]<<(16-b->endbit);
if(bits>24){
- ret|=b->ptr[3]<<(24-b->endbit);
+ ret|=b->ptr[3]<<(24-b->endbit);
if(bits>32 && b->endbit){
ret|=b->ptr[4]<<(32-b->endbit);
}
@@ -335,7 +335,7 @@ long oggpack_read(oggpack_buffer *b,int bits){
}
}
ret&=m;
-
+
overflow:
b->ptr+=bits/8;
@@ -348,7 +348,7 @@ long oggpack_read(oggpack_buffer *b,int bits){
long oggpackB_read(oggpack_buffer *b,int bits){
long ret;
long m=32-bits;
-
+
bits+=b->endbit;
if(b->endbyte+4>=b->storage){
@@ -356,21 +356,21 @@ long oggpackB_read(oggpack_buffer *b,int bits){
ret=-1L;
if(b->endbyte*8+bits>b->storage*8)goto overflow;
}
-
+
ret=b->ptr[0]<<(24+b->endbit);
if(bits>8){
- ret|=b->ptr[1]<<(16+b->endbit);
+ ret|=b->ptr[1]<<(16+b->endbit);
if(bits>16){
- ret|=b->ptr[2]<<(8+b->endbit);
+ ret|=b->ptr[2]<<(8+b->endbit);
if(bits>24){
- ret|=b->ptr[3]<<(b->endbit);
+ ret|=b->ptr[3]<<(b->endbit);
if(bits>32 && b->endbit)
ret|=b->ptr[4]>>(8-b->endbit);
}
}
}
ret=((ret&0xffffffffUL)>>(m>>1))>>((m+1)>>1);
-
+
overflow:
b->ptr+=bits/8;
@@ -381,7 +381,7 @@ long oggpackB_read(oggpack_buffer *b,int bits){
long oggpack_read1(oggpack_buffer *b){
long ret;
-
+
if(b->endbyte>=b->storage){
/* not the main path */
ret=-1L;
@@ -389,7 +389,7 @@ long oggpack_read1(oggpack_buffer *b){
}
ret=(b->ptr[0]>>b->endbit)&1;
-
+
overflow:
b->endbit++;
@@ -403,7 +403,7 @@ long oggpack_read1(oggpack_buffer *b){
long oggpackB_read1(oggpack_buffer *b){
long ret;
-
+
if(b->endbyte>=b->storage){
/* not the main path */
ret=-1L;
@@ -411,7 +411,7 @@ long oggpackB_read1(oggpack_buffer *b){
}
ret=(b->ptr[0]>>(7-b->endbit))&1;
-
+
overflow:
b->endbit++;
@@ -438,7 +438,7 @@ long oggpackB_bytes(oggpack_buffer *b){
long oggpackB_bits(oggpack_buffer *b){
return oggpack_bits(b);
}
-
+
unsigned char *oggpack_get_buffer(oggpack_buffer *b){
return(b->buffer);
}
diff --git a/tremor/block.c b/tremor/block.c
index 81406e2a1f..e09fea553c 100644
--- a/tremor/block.c
+++ b/tremor/block.c
@@ -46,28 +46,28 @@ static int ilog(unsigned int v){
:.....''' |_____--- '''......| | \_______|
:.................|__________________|_______|__|______|
|<------ Sl ------>| > Sr < |endW
- |beginSl |endSl | |endSr
+ |beginSl |endSl | |endSr
|beginW |endlW |beginSr
- |< lW >|
+ |< lW >|
<--------------- W ---------------->
| | .. ______________ |
| | ' `/ | ---_ |
- |___.'___/`. | ---_____|
+ |___.'___/`. | ---_____|
|_______|__|_______|_________________|
| >|Sl|< |<------ Sr ----->|endW
| | |endSl |beginSr |endSr
- |beginW | |endlW
+ |beginW | |endlW
mult[0] |beginSl mult[n]
<-------------- lW ----------------->
- |<--W-->|
-: .............. ___ | |
-: .''' |`/ \ | |
-:.....''' |/`....\|...|
-:.........................|___|___|___|
- |Sl |Sr |endW
+ |<--W-->|
+: .............. ___ | |
+: .''' |`/ \ | |
+:.....''' |/`....\|...|
+:.........................|___|___|___|
+ |Sl |Sr |endW
| | |endSr
| |beginSr
| |endSl
@@ -86,7 +86,7 @@ int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb){
vb->vd=v;
vb->localalloc=0;
vb->localstore=NULL;
-
+
return(0);
}
@@ -226,10 +226,10 @@ void vorbis_dsp_clear(vorbis_dsp_state *v){
}
if(b){
- if(b->mode)_ogg_free(b->mode);
+ if(b->mode)_ogg_free(b->mode);
_ogg_free(b);
}
-
+
memset(v,0,sizeof(*v));
}
}
@@ -253,15 +253,15 @@ int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){
lose count */
v->sequence=vb->sequence;
-
+
{
int n=ci->blocksizes[v->W]/2;
int n0=ci->blocksizes[0]/2;
int n1=ci->blocksizes[1]/2;
-
+
int thisCenter;
int prevCenter;
-
+
if(v->centerW){
thisCenter=n1;
prevCenter=0;
@@ -269,13 +269,13 @@ int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){
thisCenter=0;
prevCenter=n1;
}
-
+
/* v->pcm is now used like a two-stage double buffer. We don't want
to have to constantly shift *or* adjust memory usage. Don't
accept a new block until the old is shifted out */
-
+
/* overlap/add PCM */
-
+
for(j=0;j<vi->channels;j++){
/* the overlap/add section */
if(v->lW){
@@ -309,7 +309,7 @@ int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){
pcm[i]+=p[i];
}
}
-
+
/* the copy section */
{
ogg_int32_t *pcm=v->pcm[j]+thisCenter;
@@ -318,12 +318,12 @@ int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){
pcm[i]=p[i];
}
}
-
+
if(v->centerW)
v->centerW=0;
else
v->centerW=n1;
-
+
/* deal with initial packet state; we do this using the explicit
pcm_returned==-1 flag otherwise we're sensitive to first block
being short or long */
@@ -342,7 +342,7 @@ int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){
making sure our last packet doesn't end with added padding. If
the last packet is partial, the number of samples we'll have to
return will be past the vb->granulepos.
-
+
This is not foolproof! It will be confused if we begin
decoding at the last page after a seek or hole. In that case,
we don't have a starting point to judge where the last frame
@@ -373,20 +373,20 @@ int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){
v->pcm_returned+=extra;
if(v->pcm_returned>v->pcm_current)
v->pcm_returned=v->pcm_current;
-
+
}
-
+
}/* else{ Shouldn't happen *unless* the bitstream is out of
spec. Either way, believe the bitstream } */
v->granulepos=vb->granulepos;
}
}
-
+
/* Update, cleanup */
-
+
if(vb->eofflag)v->eofflag=1;
}
-
+
return(0);
}
diff --git a/tremor/codebook.c b/tremor/codebook.c
index 5da8957232..655746c68a 100644
--- a/tremor/codebook.c
+++ b/tremor/codebook.c
@@ -64,7 +64,7 @@ int vorbis_staticbook_unpack(oggpack_buffer *opb,static_codebook *s){
s->lengthlist[i]=num+1;
}
}
-
+
break;
case 1:
/* ordered */
@@ -85,7 +85,7 @@ int vorbis_staticbook_unpack(oggpack_buffer *opb,static_codebook *s){
/* EOF */
return(-1);
}
-
+
/* Do we have a mapping to unpack? */
switch((s->maptype=oggpack_read(opb,4))){
case 0:
@@ -110,12 +110,12 @@ int vorbis_staticbook_unpack(oggpack_buffer *opb,static_codebook *s){
quantvals=s->entries*s->dim;
break;
}
-
+
/* quantized values */
s->quantlist=(long *)_ogg_malloc(sizeof(*s->quantlist)*quantvals);
for(i=0;i<quantvals;i++)
s->quantlist[i]=oggpack_read(opb,s->q_quant);
-
+
if(quantvals&&s->quantlist[quantvals-1]==-1)goto _eofout;
}
break;
@@ -125,11 +125,11 @@ int vorbis_staticbook_unpack(oggpack_buffer *opb,static_codebook *s){
/* all set */
return(0);
-
+
_errout:
_eofout:
vorbis_staticbook_clear(s);
- return(-1);
+ return(-1);
}
/* the 'eliminate the decode tree' optimization actually requires the
@@ -148,12 +148,12 @@ static ogg_uint32_t bitreverse(ogg_uint32_t x){
return((x>> 1)&0x55555555) | ((x<< 1)&0xaaaaaaaa);
}
-static inline long decode_packed_entry_number(codebook *book,
+static inline long decode_packed_entry_number(codebook *book,
oggpack_buffer *b){
int read=book->dec_maxlength;
long lo,hi;
long lok = oggpack_look(b,book->dec_firsttablen);
-
+
if (lok >= 0) {
long entry = book->dec_firsttable[lok];
if(entry&0x80000000UL){
@@ -180,7 +180,7 @@ static inline long decode_packed_entry_number(codebook *book,
while(hi-lo>1){
long p=(hi-lo)>>1;
- long test=book->codelist[lo+p]>testword;
+ long test=book->codelist[lo+p]>testword;
lo+=p&(test-1);
hi-=p&(-test);
}
@@ -190,7 +190,7 @@ static inline long decode_packed_entry_number(codebook *book,
return(lo);
}
}
-
+
oggpack_adv(b, read);
return(-1);
}
@@ -198,13 +198,13 @@ static inline long decode_packed_entry_number(codebook *book,
/* Decode side is specced and easier, because we don't need to find
matches using different criteria; we simply read and map. There are
two things we need to do 'depending':
-
+
We may need to support interleave. We don't really, but it's
convenient to do it here rather than rebuild the vector later.
Cascades may be additive or multiplicitive; this is not inherent in
the codebook, but set in the code using the codebook. Like
- interleaving, it's easiest to do it here.
+ interleaving, it's easiest to do it here.
addmul==0 -> declarative (set the value)
addmul==1 -> additive
addmul==2 -> multiplicitive */
@@ -214,7 +214,7 @@ long vorbis_book_decode(codebook *book, oggpack_buffer *b){
long packed_entry=decode_packed_entry_number(book,b);
if(packed_entry>=0)
return(book->dec_index[packed_entry]);
-
+
/* if there's no dec_index, the codebook unpacking isn't collapsed */
return(packed_entry);
}
@@ -255,7 +255,7 @@ long vorbis_book_decodev_add(codebook *book,ogg_int32_t *a,
int i,j,entry;
ogg_int32_t *t;
int shift=point-book->binarypoint;
-
+
if(shift>=0){
for(i=0;i<n;){
entry = decode_packed_entry_number(book,b);
@@ -281,7 +281,7 @@ long vorbis_book_decodev_set(codebook *book,ogg_int32_t *a,
int i,j,entry;
ogg_int32_t *t;
int shift=point-book->binarypoint;
-
+
if(shift>=0){
for(i=0;i<n;){
@@ -312,9 +312,9 @@ long vorbis_book_decodevv_add(codebook *book,ogg_int32_t **a,\
long i,j,entry;
int chptr=0;
int shift=point-book->binarypoint;
-
+
if(shift>=0){
-
+
for(i=offset;i<offset+n;){
entry = decode_packed_entry_number(book,b);
if(entry==-1)return(-1);
diff --git a/tremor/codebook.h b/tremor/codebook.h
index 14f65382dd..d3d76ceaa1 100644
--- a/tremor/codebook.h
+++ b/tremor/codebook.h
@@ -40,7 +40,7 @@ typedef struct static_codebook{
/* mapping ***************************************************************/
int maptype; /* 0=none
- 1=implicitly populated values from map column
+ 1=implicitly populated values from map column
2=listed arbitrary values */
/* The below does a linear, single monotonic sequence mapping. */
@@ -62,10 +62,10 @@ typedef struct codebook{
/* the below are ordered by bitreversed codeword and only used
entries are populated */
int binarypoint;
- ogg_int32_t *valuelist; /* list of dim*entries actual entry values */
+ ogg_int32_t *valuelist; /* list of dim*entries actual entry values */
ogg_uint32_t *codelist; /* list of bitstream codewords for each entry */
- int *dec_index;
+ int *dec_index;
char *dec_codelengths;
ogg_uint32_t *dec_firsttable;
int dec_firsttablen;
@@ -86,14 +86,14 @@ extern long _book_maptype1_quantvals(const static_codebook *b);
extern int vorbis_staticbook_unpack(oggpack_buffer *b,static_codebook *c);
extern long vorbis_book_decode(codebook *book, oggpack_buffer *b);
-extern long vorbis_book_decodevs_add(codebook *book, ogg_int32_t *a,
+extern long vorbis_book_decodevs_add(codebook *book, ogg_int32_t *a,
oggpack_buffer *b,int n,int point);
-extern long vorbis_book_decodev_set(codebook *book, ogg_int32_t *a,
+extern long vorbis_book_decodev_set(codebook *book, ogg_int32_t *a,
oggpack_buffer *b,int n,int point);
-extern long vorbis_book_decodev_add(codebook *book, ogg_int32_t *a,
+extern long vorbis_book_decodev_add(codebook *book, ogg_int32_t *a,
oggpack_buffer *b,int n,int point);
extern long vorbis_book_decodevv_add(codebook *book, ogg_int32_t **a,
- long off,int ch,
+ long off,int ch,
oggpack_buffer *b,int n,int point);
extern int _ilog(unsigned int v);
diff --git a/tremor/codec_internal.h b/tremor/codec_internal.h
index 1c92ab24c1..c85de439f4 100644
--- a/tremor/codec_internal.h
+++ b/tremor/codec_internal.h
@@ -50,7 +50,7 @@ typedef struct backend_lookup_state {
/* codec_setup_info contains all the setup information specific to the
specific compression/decompression mode in progress (eg,
psychoacoustic settings, channel setup, options, codebook
- etc).
+ etc).
*********************************************************************/
typedef struct codec_setup_info {
diff --git a/tremor/floor0.c b/tremor/floor0.c
index 6d8434e8a0..b9ecf603ef 100644
--- a/tremor/floor0.c
+++ b/tremor/floor0.c
@@ -45,12 +45,12 @@ typedef struct {
#include "lsp_lookup.h"
/* interpolated 1./sqrt(p) where .5 <= a < 1. (.100000... to .111111...) in
- 16.16 format
+ 16.16 format
returns in m.8 format */
static long ADJUST_SQRT2[2]={8192,5792};
static inline ogg_int32_t vorbis_invsqlook_i(long a,long e){
- long i=(a&0x7fff)>>(INVSQ_LOOKUP_I_SHIFT-1);
+ long i=(a&0x7fff)>>(INVSQ_LOOKUP_I_SHIFT-1);
long d=a&INVSQ_LOOKUP_I_MASK; /* 0.10 */
long val=INVSQ_LOOKUP_I[i]- /* 1.16 */
((INVSQ_LOOKUP_IDel[i]*d)>>INVSQ_LOOKUP_I_SHIFT); /* result 1.16 */
@@ -65,7 +65,7 @@ static inline ogg_int32_t vorbis_fromdBlook_i(long a){
int i=(-a)>>(12-FROMdB2_SHIFT);
if(i<0) return 0x7fffffff;
if(i>=(FROMdB_LOOKUP_SZ<<FROMdB_SHIFT))return 0;
-
+
return FROMdB_LOOKUP[i>>FROMdB_SHIFT] * FROMdB2_LOOKUP[i&FROMdB2_MASK];
}
@@ -84,14 +84,14 @@ static inline ogg_int32_t vorbis_coslook2_i(long a){
a=a&0x1ffff;
if(a>0x10000)a=0x20000-a;
- {
+ {
int i=a>>COS_LOOKUP_I_SHIFT;
int d=a&COS_LOOKUP_I_MASK;
a=((COS_LOOKUP_I[i]<<COS_LOOKUP_I_SHIFT)-
d*(COS_LOOKUP_I[i]-COS_LOOKUP_I[i+1]))>>
(COS_LOOKUP_I_SHIFT-LSP_FRACBITS+14);
}
-
+
return(a);
}
@@ -105,9 +105,9 @@ static const int barklook[28]={
/* used in init only; interpolate the long way */
static inline ogg_int32_t toBARK(int n){
int i;
- for(i=0;i<27;i++)
+ for(i=0;i<27;i++)
if(n>=barklook[i] && n<barklook[i+1])break;
-
+
if(i==27){
return 27<<15;
}else{
@@ -177,22 +177,22 @@ void vorbis_lsp_to_curve(ogg_int32_t *curve,int *map,int n,int ln,
pi=((pi*pi)>>16);
qi=((qi*qi)>>16);
-
+
if(m&1){
- qexp= qexp*2-28*((m+1)>>1)+m;
+ qexp= qexp*2-28*((m+1)>>1)+m;
pi*=(1<<14)-((wi*wi)>>14);
- qi+=pi>>14;
+ qi+=pi>>14;
}else{
qexp= qexp*2-13*m;
-
+
pi*=(1<<14)-wi;
qi*=(1<<14)+wi;
-
+
qi=(qi+pi)>>14;
}
-
+
if(qi&0xffff0000){ /* checks for 1.xxxxxxxxxxxxxxxx */
- qi>>=1; qexp++;
+ qi>>=1; qexp++;
}else
lsp_norm_asm(&qi,&qexp);
@@ -225,7 +225,7 @@ void vorbis_lsp_to_curve(ogg_int32_t *curve,int *map,int n,int ln,
if(!(shift=MLOOP_1[(pi|qi)>>25]))
if(!(shift=MLOOP_2[(pi|qi)>>19]))
shift=MLOOP_3[(pi|qi)>>16];
-
+
pi>>=shift;
qi>>=shift;
qexp+=shift-14*((m+1)>>1);
@@ -242,7 +242,7 @@ void vorbis_lsp_to_curve(ogg_int32_t *curve,int *map,int n,int ln,
/* p*=p(1-w), q*=q(1+w), let normalization drift because it isn't
worth tracking step by step */
-
+
pi>>=shift;
qi>>=shift;
qexp+=shift-7*m;
@@ -250,32 +250,32 @@ void vorbis_lsp_to_curve(ogg_int32_t *curve,int *map,int n,int ln,
pi=((pi*pi)>>16);
qi=((qi*qi)>>16);
qexp=qexp*2+m;
-
+
pi*=(1<<14)-wi;
qi*=(1<<14)+wi;
qi=(qi+pi)>>14;
-
+
}
-
+
/* we've let the normalization drift because it wasn't important;
however, for the lookup, things must be normalized again. We
need at most one right shift or a number of left shifts */
if(qi&0xffff0000){ /* checks for 1.xxxxxxxxxxxxxxxx */
- qi>>=1; qexp++;
+ qi>>=1; qexp++;
}else
while(qi && !(qi&0x8000)){ /* checks for 0.0xxxxxxxxxxxxxxx or less*/
- qi<<=1; qexp--;
+ qi<<=1; qexp--;
}
#endif
amp=vorbis_fromdBlook_i(ampi* /* n.4 */
- vorbis_invsqlook_i(qi,qexp)-
+ vorbis_invsqlook_i(qi,qexp)-
/* m.8, m+n<=8 */
ampoffseti); /* 8.12[0] */
-
+
#ifdef _LOW_ACCURACY_
amp>>=9;
#endif
@@ -316,12 +316,12 @@ static vorbis_info_floor *floor0_unpack (vorbis_info *vi,oggpack_buffer *opb){
info->ampbits=oggpack_read(opb,6);
info->ampdB=oggpack_read(opb,8);
info->numbooks=oggpack_read(opb,4)+1;
-
+
if(info->order<1)goto err_out;
if(info->rate<1)goto err_out;
if(info->barkmap<1)goto err_out;
if(info->numbooks<1)goto err_out;
-
+
for(j=0;j<info->numbooks;j++){
info->books[j]=oggpack_read(opb,8);
if(info->books[j]<0 || info->books[j]>=ci->books)goto err_out;
@@ -344,7 +344,7 @@ static vorbis_info_floor *floor0_unpack (vorbis_info *vi,oggpack_buffer *opb){
static vorbis_look_floor *floor0_look (vorbis_dsp_state *vd,vorbis_info_mode *mi,
vorbis_info_floor *i){
int j;
- ogg_int32_t scale;
+ ogg_int32_t scale;
vorbis_info *vi=vd->vi;
codec_setup_info *ci=(codec_setup_info *)vi->codec_setup;
vorbis_info_floor0 *info=(vorbis_info_floor0 *)i;
@@ -382,26 +382,26 @@ static void *floor0_inverse1(vorbis_block *vb,vorbis_look_floor *i){
vorbis_look_floor0 *look=(vorbis_look_floor0 *)i;
vorbis_info_floor0 *info=look->vi;
int j,k;
-
+
int ampraw=oggpack_read(&vb->opb,info->ampbits);
if(ampraw>0){ /* also handles the -1 out of data case */
long maxval=(1<<info->ampbits)-1;
int amp=((ampraw*info->ampdB)<<4)/maxval;
int booknum=oggpack_read(&vb->opb,_ilog(info->numbooks));
-
+
if(booknum!=-1 && booknum<info->numbooks){ /* be paranoid */
codec_setup_info *ci=(codec_setup_info *)vb->vd->vi->codec_setup;
codebook *b=ci->fullbooks+info->books[booknum];
ogg_int32_t last=0;
ogg_int32_t *lsp=(ogg_int32_t *)_vorbis_block_alloc(vb,sizeof(*lsp)*(look->m+1));
-
+
for(j=0;j<look->m;j+=b->dim)
if(vorbis_book_decodev_set(b,lsp+j,&vb->opb,b->dim,-24)==-1)goto eop;
for(j=0;j<look->m;){
for(k=0;k<b->dim;k++,j++)lsp[j]+=last;
last=lsp[j-1];
}
-
+
lsp[look->m]=amp;
return(lsp);
}
@@ -414,7 +414,7 @@ static int floor0_inverse2(vorbis_block *vb,vorbis_look_floor *i,
void *memo,ogg_int32_t *out){
vorbis_look_floor0 *look=(vorbis_look_floor0 *)i;
vorbis_info_floor0 *info=look->vi;
-
+
if(memo){
ogg_int32_t *lsp=(ogg_int32_t *)memo;
ogg_int32_t amp=lsp[look->m];
diff --git a/tremor/floor1.c b/tremor/floor1.c
index 80c6dd2d46..963656d631 100644
--- a/tremor/floor1.c
+++ b/tremor/floor1.c
@@ -30,7 +30,7 @@
typedef struct {
int forward_index[VIF_POSIT+2];
-
+
int hineighbor[VIF_POSIT];
int loneighbor[VIF_POSIT];
int posts;
@@ -42,7 +42,7 @@ typedef struct {
} vorbis_look_floor1;
/***********************************************/
-
+
static void floor1_free_info(vorbis_info_floor *i){
vorbis_info_floor1 *info=(vorbis_info_floor1 *)i;
if(info){
@@ -97,11 +97,11 @@ static vorbis_info_floor *floor1_unpack (vorbis_info *vi,oggpack_buffer *opb){
}
/* read the post list */
- info->mult=oggpack_read(opb,2)+1; /* only 1,2,3,4 legal now */
+ info->mult=oggpack_read(opb,2)+1; /* only 1,2,3,4 legal now */
rangebits=oggpack_read(opb,4);
for(j=0,k=0;j<info->partitions;j++){
- count+=info->class_dim[info->partitionclass[j]];
+ count+=info->class_dim[info->partitionclass[j]];
for(;k<count;k++){
int t=info->postlist[k+2]=oggpack_read(opb,rangebits);
if(t<0 || t>=(1<<rangebits))
@@ -112,7 +112,7 @@ static vorbis_info_floor *floor1_unpack (vorbis_info *vi,oggpack_buffer *opb){
info->postlist[1]=1<<rangebits;
return(info);
-
+
err_out:
floor1_free_info(info);
return(NULL);
@@ -132,7 +132,7 @@ static vorbis_look_floor *floor1_look(vorbis_dsp_state *vd,vorbis_info_mode *mi,
look->vi=info;
look->n=info->postlist[1];
-
+
/* we drop each position value in-between already decoded values,
and use linear interpolation to predict each new value past the
edges. The positions are read in the order of the position
@@ -150,7 +150,7 @@ static vorbis_look_floor *floor1_look(vorbis_dsp_state *vd,vorbis_info_mode *mi,
/* points from sort order back to range number */
for(i=0;i<n;i++)look->forward_index[i]=sortpointer[i]-info->postlist;
-
+
/* quantize values to multiplier spec */
switch(info->mult){
case 1: /* 1024 -> 256 */
@@ -196,13 +196,13 @@ static vorbis_look_floor *floor1_look(vorbis_dsp_state *vd,vorbis_info_mode *mi,
static int render_point(int x0,int x1,int y0,int y1,int x){
y0&=0x7fff; /* mask off flag */
y1&=0x7fff;
-
+
{
int dy=y1-y0;
int adx=x1-x0;
int ady=abs(dy);
int err=ady*(x-x0);
-
+
int off=err/adx;
if(dy<0)return(y0-off);
return(y0+off);
@@ -281,7 +281,7 @@ static const ogg_int32_t FLOOR_fromdB_LOOKUP[256]={
XdB(0x52606733), XdB(0x57bad899), XdB(0x5d6e593a), XdB(0x6380b298),
XdB(0x69f80e9a), XdB(0x70dafda8), XdB(0x78307d76), XdB(0x7fffffff),
};
-
+
static void render_line(int x0,int x1,int y0,int y1,ogg_int32_t *d){
int dy=y1-y0;
int adx=x1-x0;
@@ -312,17 +312,17 @@ static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){
vorbis_look_floor1 *look=(vorbis_look_floor1 *)in;
vorbis_info_floor1 *info=look->vi;
codec_setup_info *ci=(codec_setup_info *)vb->vd->vi->codec_setup;
-
+
int i,j,k;
- codebook *books=ci->fullbooks;
-
+ codebook *books=ci->fullbooks;
+
/* unpack wrapped/predicted values from stream */
if(oggpack_read(&vb->opb,1)==1){
int *fit_value=(int *)_vorbis_block_alloc(vb,(look->posts)*sizeof(*fit_value));
-
+
fit_value[0]=oggpack_read(&vb->opb,ilog(look->quant_q-1));
fit_value[1]=oggpack_read(&vb->opb,ilog(look->quant_q-1));
-
+
/* partition by partition */
/* partition by partition */
for(i=0,j=2;i<info->partitions;i++){
@@ -386,7 +386,7 @@ static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){
}else{
fit_value[i]=predicted|0x8000;
}
-
+
}
return(fit_value);
@@ -414,17 +414,17 @@ static int floor1_inverse2(vorbis_block *vb,vorbis_look_floor *in,void *memo,
int current=look->forward_index[j];
int hy=fit_value[current]&0x7fff;
if(hy==fit_value[current]){
-
+
hy*=info->mult;
hx=info->postlist[current];
-
+
render_line(lx,hx,ly,hy,out);
-
+
lx=hx;
ly=hy;
}
}
- for(j=hx;j<n;j++)out[j]*=ly; /* be certain */
+ for(j=hx;j<n;j++)out[j]*=ly; /* be certain */
return(1);
}
memset(out,0,sizeof(*out)*n);
diff --git a/tremor/framing.c b/tremor/framing.c
index c0f558ad26..17c28b1111 100644
--- a/tremor/framing.c
+++ b/tremor/framing.c
@@ -61,7 +61,7 @@ int ogg_page_serialno(ogg_page *og){
(og->header[16]<<16) |
(og->header[17]<<24));
}
-
+
long ogg_page_pageno(ogg_page *og){
return(og->header[18] |
(og->header[19]<<8) |
@@ -78,13 +78,13 @@ long ogg_page_pageno(ogg_page *og){
/* NOTE:
If a page consists of a packet begun on a previous page, and a new
packet begun (but not completed) on this page, the return will be:
- ogg_page_packets(page) ==1,
+ ogg_page_packets(page) ==1,
ogg_page_continued(page) !=0
If a page happens to be a single packet that was begun on a
previous page, and spans to the next page (in the case of a three or
-more page packet), the return will be:
- ogg_page_packets(page) ==0,
+more page packet), the return will be:
+ ogg_page_packets(page) ==0,
ogg_page_continued(page) !=0
*/
@@ -200,7 +200,7 @@ int ogg_stream_init(ogg_stream_state *os,int serialno){
return(0);
}
return(-1);
-}
+}
/* _clear does not free os, only the non-flat storage within */
int ogg_stream_clear(ogg_stream_state *os){
@@ -209,10 +209,10 @@ int ogg_stream_clear(ogg_stream_state *os){
if(os->lacing_vals)_ogg_free(os->lacing_vals);
if(os->granule_vals)_ogg_free(os->granule_vals);
- memset(os,0,sizeof(*os));
+ memset(os,0,sizeof(*os));
}
return(0);
-}
+}
int ogg_stream_destroy(ogg_stream_state *os){
if(os){
@@ -220,7 +220,7 @@ int ogg_stream_destroy(ogg_stream_state *os){
_ogg_free(os);
}
return(0);
-}
+}
/* Helpers for ogg_stream_encode; this keeps the structure and
what's happening fairly clear */
@@ -254,12 +254,12 @@ void ogg_page_checksum_set(ogg_page *og){
og->header[23]=0;
og->header[24]=0;
og->header[25]=0;
-
+
for(i=0;i<og->header_len;i++)
crc_reg=(crc_reg<<8)^crc_lookup[((crc_reg >> 24)&0xff)^og->header[i]];
for(i=0;i<og->body_len;i++)
crc_reg=(crc_reg<<8)^crc_lookup[((crc_reg >> 24)&0xff)^og->body[i]];
-
+
og->header[22]=(unsigned char)(crc_reg&0xff);
og->header[23]=(unsigned char)((crc_reg>>8)&0xff);
og->header[24]=(unsigned char)((crc_reg>>16)&0xff);
@@ -275,14 +275,14 @@ int ogg_stream_packetin(ogg_stream_state *os,ogg_packet *op){
/* advance packet data according to the body_returned pointer. We
had to keep it around to return a pointer into the buffer last
call */
-
+
os->body_fill-=os->body_returned;
if(os->body_fill)
memmove(os->body_data,os->body_data+os->body_returned,
os->body_fill);
os->body_returned=0;
}
-
+
/* make sure we have the buffer storage */
_os_body_expand(os,op->bytes);
_os_lacing_expand(os,lacing_vals);
@@ -327,7 +327,7 @@ int ogg_stream_packetin(ogg_stream_state *os,ogg_packet *op){
since ogg_stream_flush will flush the last page in a stream even if
it's undersized, you almost certainly want to use ogg_stream_pageout
- (and *not* ogg_stream_flush) unless you specifically need to flush
+ (and *not* ogg_stream_flush) unless you specifically need to flush
an page regardless of size in the middle of a stream. */
int ogg_stream_flush(ogg_stream_state *os,ogg_page *og){
@@ -339,10 +339,10 @@ int ogg_stream_flush(ogg_stream_state *os,ogg_page *og){
ogg_int64_t granule_pos=os->granule_vals[0];
if(maxvals==0)return(0);
-
+
/* construct a page */
/* decide how many segments to include */
-
+
/* If this is the initial header case, the first page must only include
the initial header packet */
if(os->b_o_s==0){ /* 'initial header page' case */
@@ -360,13 +360,13 @@ int ogg_stream_flush(ogg_stream_state *os,ogg_page *og){
granule_pos=os->granule_vals[vals];
}
}
-
+
/* construct the header in temp storage */
memcpy(os->header,"OggS",4);
-
+
/* stream structure version */
os->header[4]=0x00;
-
+
/* continued packet flag? */
os->header[5]=0x00;
if((os->lacing_vals[0]&0x100)==0)os->header[5]|=0x01;
@@ -405,33 +405,33 @@ int ogg_stream_flush(ogg_stream_state *os,ogg_page *og){
pageno>>=8;
}
}
-
+
/* zero for computation; filled in later */
os->header[22]=0;
os->header[23]=0;
os->header[24]=0;
os->header[25]=0;
-
+
/* segment table */
os->header[26]=(unsigned char)(vals&0xff);
for(i=0;i<vals;i++)
bytes+=os->header[i+27]=(unsigned char)(os->lacing_vals[i]&0xff);
-
+
/* set pointers in the ogg_page struct */
og->header=os->header;
og->header_len=os->header_fill=vals+27;
og->body=os->body_data+os->body_returned;
og->body_len=bytes;
-
+
/* advance the lacing data and set the body_returned pointer */
-
+
os->lacing_fill-=vals;
memmove(os->lacing_vals,os->lacing_vals+vals,os->lacing_fill*sizeof(*os->lacing_vals));
memmove(os->granule_vals,os->granule_vals+vals,os->lacing_fill*sizeof(*os->granule_vals));
os->body_returned+=bytes;
-
+
/* calculate the checksum */
-
+
ogg_page_checksum_set(og);
/* done */
@@ -449,10 +449,10 @@ int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og){
os->body_fill-os->body_returned > 4096 ||/* 'page nominal size' case */
os->lacing_fill>=255 || /* 'segment table full' case */
(os->lacing_fill&&!os->b_o_s)){ /* 'initial header page' case */
-
+
return(ogg_stream_flush(os,og));
}
-
+
/* not enough data to construct a page and not end of stream */
return(0);
}
@@ -540,61 +540,61 @@ int ogg_sync_wrote(ogg_sync_state *oy, long bytes){
-n) skipped n bytes
0) page not ready; more data (no bytes skipped)
n) page synced at current location; page length n bytes
-
+
*/
long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og){
unsigned char *page=oy->data+oy->returned;
unsigned char *next;
long bytes=oy->fill-oy->returned;
-
+
if(oy->headerbytes==0){
int headerbytes,i;
if(bytes<27)return(0); /* not enough for a header */
-
+
/* verify capture pattern */
if(memcmp(page,"OggS",4))goto sync_fail;
-
+
headerbytes=page[26]+27;
if(bytes<headerbytes)return(0); /* not enough for header + seg table */
-
+
/* count up body length in the segment table */
-
+
for(i=0;i<page[26];i++)
oy->bodybytes+=page[27+i];
oy->headerbytes=headerbytes;
}
-
+
if(oy->bodybytes+oy->headerbytes>bytes)return(0);
-
+
/* The whole test page is buffered. Verify the checksum */
{
/* Grab the checksum bytes, set the header field to zero */
char chksum[4];
ogg_page log;
-
+
memcpy(chksum,page+22,4);
memset(page+22,0,4);
-
+
/* set up a temp page struct and recompute the checksum */
log.header=page;
log.header_len=oy->headerbytes;
log.body=page+oy->headerbytes;
log.body_len=oy->bodybytes;
ogg_page_checksum_set(&log);
-
+
/* Compare */
if(memcmp(chksum,page+22,4)){
/* D'oh. Mismatch! Corrupt page (or miscapture and not a page
at all) */
/* replace the computed checksum with the one actually read in */
memcpy(page+22,chksum,4);
-
+
/* Bad checksum. Lose sync */
goto sync_fail;
}
}
-
+
/* yes, have a whole page all ready to go */
{
unsigned char *page=oy->data+oy->returned;
@@ -613,12 +613,12 @@ long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og){
oy->bodybytes=0;
return(bytes);
}
-
+
sync_fail:
-
+
oy->headerbytes=0;
oy->bodybytes=0;
-
+
/* search for possible capture */
next=memchr(page+1,'O',bytes-1);
if(!next)
@@ -655,7 +655,7 @@ int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og){
/* need more data */
return(0);
}
-
+
/* head did not start a synced page... skipped some bytes */
if(!oy->unsynced){
oy->unsynced=1;
@@ -684,7 +684,7 @@ int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og){
int serialno=ogg_page_serialno(og);
long pageno=ogg_page_pageno(og);
int segments=header[26];
-
+
/* clean up 'returned data' */
{
long lr=os->lacing_returned;
@@ -737,7 +737,7 @@ int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og){
/* are we a 'continued packet' page? If so, we may need to skip
some segments */
if(continued){
- if(os->lacing_fill<1 ||
+ if(os->lacing_fill<1 ||
os->lacing_vals[os->lacing_fill-1]==0x400){
bos=0;
for(;segptr<segments;segptr++){
@@ -751,7 +751,7 @@ int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og){
}
}
}
-
+
if(bodysize){
_os_body_expand(os,bodysize);
memcpy(os->body_data+os->body_fill,body,bodysize);
@@ -764,20 +764,20 @@ int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og){
int val=header[27+segptr];
os->lacing_vals[os->lacing_fill]=val;
os->granule_vals[os->lacing_fill]=-1;
-
+
if(bos){
os->lacing_vals[os->lacing_fill]|=0x100;
bos=0;
}
-
+
if(val<255)saved=os->lacing_fill;
-
+
os->lacing_fill++;
segptr++;
-
+
if(val<255)os->lacing_packet=os->lacing_fill;
}
-
+
/* set the granulepos on the last granuleval of the last full packet */
if(saved!=-1){
os->granule_vals[saved]=granulepos;
diff --git a/tremor/info.c b/tremor/info.c
index 72398b49ff..1594f6cbc5 100644
--- a/tremor/info.c
+++ b/tremor/info.c
@@ -61,7 +61,7 @@ char *vorbis_comment_query(vorbis_comment *vc, char *tag, int count){
strcpy(fulltag, tag);
strcat(fulltag, "=");
-
+
for(i=0;i<vc->comments;i++){
if(!tagcompare(vc->user_comments[i], fulltag, taglen)){
if(count == found)
@@ -128,7 +128,7 @@ void vorbis_info_clear(vorbis_info *vi){
for(i=0;i<ci->floors;i++) /* unpack does the range checking */
_floor_P[ci->floor_type[i]]->free_info(ci->floor_param[i]);
-
+
for(i=0;i<ci->residues;i++) /* unpack does the range checking */
_residue_P[ci->residue_type[i]]->free_info(ci->residue_param[i]);
@@ -142,7 +142,7 @@ void vorbis_info_clear(vorbis_info *vi){
}
if(ci->fullbooks)
_ogg_free(ci->fullbooks);
-
+
_ogg_free(ci);
}
@@ -167,13 +167,13 @@ static int _vorbis_unpack_info(vorbis_info *vi,oggpack_buffer *opb){
ci->blocksizes[0]=1<<oggpack_read(opb,4);
ci->blocksizes[1]=1<<oggpack_read(opb,4);
-
+
if(vi->rate<1)goto err_out;
if(vi->channels<1)goto err_out;
- if(ci->blocksizes[0]<64)goto err_out;
+ if(ci->blocksizes[0]<64)goto err_out;
if(ci->blocksizes[1]<ci->blocksizes[0])goto err_out;
if(ci->blocksizes[1]>8192)goto err_out;
-
+
if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */
return(0);
@@ -192,14 +192,14 @@ static int _vorbis_unpack_comment(vorbis_comment *vc,oggpack_buffer *opb){
if(vc->comments<0)goto err_out;
vc->user_comments=(char **)_ogg_calloc(vc->comments+1,sizeof(*vc->user_comments));
vc->comment_lengths=(int *)_ogg_calloc(vc->comments+1, sizeof(*vc->comment_lengths));
-
+
for(i=0;i<vc->comments;i++){
int len=oggpack_read(opb,32);
if(len<0)goto err_out;
vc->comment_lengths[i]=len;
vc->user_comments[i]=(char *)_ogg_calloc(len+1,1);
_v_readstring(opb,vc->user_comments[i],len);
- }
+ }
if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */
return(0);
@@ -267,7 +267,7 @@ static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){
ci->map_param[i]=_mapping_P[ci->map_type[i]]->unpack(vi,opb);
if(!ci->map_param[i])goto err_out;
}
-
+
/* mode settings */
ci->modes=oggpack_read(opb,6)+1;
/*vi->mode_param=_ogg_calloc(vi->modes,sizeof(void *));*/
@@ -282,7 +282,7 @@ static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){
if(ci->mode_param[i]->transformtype>=VI_WINDOWB)goto err_out;
if(ci->mode_param[i]->mapping>=ci->maps)goto err_out;
}
-
+
if(oggpack_read(opb,1)!=1)goto err_out; /* top level EOP check */
return(0);
@@ -298,7 +298,7 @@ static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){
int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,ogg_packet *op){
oggpack_buffer opb;
-
+
if(op){
oggpack_readinit(&opb,op->packet,op->bytes);
diff --git a/tremor/ivorbiscodec.h b/tremor/ivorbiscodec.h
index 3d637f6921..f990a3c2de 100644
--- a/tremor/ivorbiscodec.h
+++ b/tremor/ivorbiscodec.h
@@ -32,14 +32,14 @@ typedef struct vorbis_info{
/* The below bitrate declarations are *hints*.
Combinations of the three values carry the following implications:
-
- all three set to the same value:
+
+ all three set to the same value:
implies a fixed rate bitstream
- only nominal set:
- implies a VBR stream that averages the nominal bitrate. No hard
+ only nominal set:
+ implies a VBR stream that averages the nominal bitrate. No hard
upper/lower limit
- upper and or lower set:
- implies a VBR bitstream that obeys the bitrate limits. nominal
+ upper and or lower set:
+ implies a VBR bitstream that obeys the bitrate limits. nominal
may also be set to give a nominal rate.
none set:
the coder does not care to speculate.
@@ -82,9 +82,9 @@ typedef struct vorbis_dsp_state{
typedef struct vorbis_block{
/* necessary stream state for linking to the framing abstraction */
- ogg_int32_t **pcm; /* this is a pointer into local storage */
+ ogg_int32_t **pcm; /* this is a pointer into local storage */
oggpack_buffer opb;
-
+
long lW;
long W;
long nW;
@@ -153,8 +153,8 @@ extern void vorbis_info_init(vorbis_info *vi);
extern void vorbis_info_clear(vorbis_info *vi);
extern int vorbis_info_blocksize(vorbis_info *vi,int zo);
extern void vorbis_comment_init(vorbis_comment *vc);
-extern void vorbis_comment_add(vorbis_comment *vc, char *comment);
-extern void vorbis_comment_add_tag(vorbis_comment *vc,
+extern void vorbis_comment_add(vorbis_comment *vc, char *comment);
+extern void vorbis_comment_add_tag(vorbis_comment *vc,
char *tag, char *contents);
extern char *vorbis_comment_query(vorbis_comment *vc, char *tag, int count);
extern int vorbis_comment_query_count(vorbis_comment *vc, char *tag);
@@ -177,7 +177,7 @@ extern long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op);
/* Vorbis ERRORS and return codes ***********************************/
-#define OV_FALSE -1
+#define OV_FALSE -1
#define OV_EOF -2
#define OV_HOLE -3
diff --git a/tremor/mapping0.c b/tremor/mapping0.c
index bcf46ea8ac..4628e86052 100644
--- a/tremor/mapping0.c
+++ b/tremor/mapping0.c
@@ -50,7 +50,7 @@ typedef struct {
vorbis_func_residue **residue_func;
int ch;
- long lastframe; /* if a different mode is called, we need to
+ long lastframe; /* if a different mode is called, we need to
invalidate decay */
} vorbis_look_mapping0;
@@ -89,14 +89,14 @@ static vorbis_look_mapping *mapping0_look(vorbis_dsp_state *vd,vorbis_info_mode
vorbis_look_mapping0 *look=(vorbis_look_mapping0 *)_ogg_calloc(1,sizeof(*look));
vorbis_info_mapping0 *info=look->map=(vorbis_info_mapping0 *)m;
look->mode=vm;
-
+
look->floor_look=(vorbis_look_floor **)_ogg_calloc(info->submaps,sizeof(*look->floor_look));
look->residue_look=(vorbis_look_residue **)_ogg_calloc(info->submaps,sizeof(*look->residue_look));
look->floor_func=(vorbis_func_floor **)_ogg_calloc(info->submaps,sizeof(*look->floor_func));
look->residue_func=(vorbis_func_residue **)_ogg_calloc(info->submaps,sizeof(*look->residue_func));
-
+
for(i=0;i<info->submaps;i++){
int floornum=info->floorsubmap[i];
int resnum=info->residuesubmap[i];
@@ -107,7 +107,7 @@ static vorbis_look_mapping *mapping0_look(vorbis_dsp_state *vd,vorbis_info_mode
look->residue_func[i]=_residue_P[ci->residue_type[resnum]];
look->residue_look[i]=look->residue_func[i]->
look(vd,vm,ci->residue_param[resnum]);
-
+
}
look->ch=vi->channels;
@@ -144,9 +144,9 @@ static vorbis_info_mapping *mapping0_unpack(vorbis_info *vi,oggpack_buffer *opb)
int testM=info->coupling_mag[i]=oggpack_read(opb,ilog(vi->channels));
int testA=info->coupling_ang[i]=oggpack_read(opb,ilog(vi->channels));
- if(testM<0 ||
- testA<0 ||
- testM==testA ||
+ if(testM<0 ||
+ testA<0 ||
+ testM==testA ||
testM>=vi->channels ||
testA>=vi->channels) goto err_out;
}
@@ -154,7 +154,7 @@ static vorbis_info_mapping *mapping0_unpack(vorbis_info *vi,oggpack_buffer *opb)
}
if(oggpack_read(opb,2)>0)goto err_out; /* 2,3:reserved */
-
+
if(info->submaps>1){
for(i=0;i<vi->channels;i++){
info->chmuxlist[i]=oggpack_read(opb,4);
@@ -191,10 +191,10 @@ static int mapping0_inverse(vorbis_block *vb,vorbis_look_mapping *l){
ogg_int32_t **pcmbundle=(ogg_int32_t **)alloca(sizeof(*pcmbundle)*vi->channels);
int *zerobundle=(int *)alloca(sizeof(*zerobundle)*vi->channels);
-
+
int *nonzero =(int *)alloca(sizeof(*nonzero)*vi->channels);
void **floormemo=(void **)alloca(sizeof(*floormemo)*vi->channels);
-
+
/* time domain information decode (note that applying the
information would have to happen later; we'll probably add a
function entry to the harness for that later */
@@ -208,7 +208,7 @@ static int mapping0_inverse(vorbis_block *vb,vorbis_look_mapping *l){
if(floormemo[i])
nonzero[i]=1;
else
- nonzero[i]=0;
+ nonzero[i]=0;
memset(vb->pcm[i],0,sizeof(*vb->pcm[i])*n/2);
}
@@ -216,8 +216,8 @@ static int mapping0_inverse(vorbis_block *vb,vorbis_look_mapping *l){
for(i=0;i<info->coupling_steps;i++){
if(nonzero[info->coupling_mag[i]] ||
nonzero[info->coupling_ang[i]]){
- nonzero[info->coupling_mag[i]]=1;
- nonzero[info->coupling_ang[i]]=1;
+ nonzero[info->coupling_mag[i]]=1;
+ nonzero[info->coupling_ang[i]]=1;
}
}
@@ -233,7 +233,7 @@ static int mapping0_inverse(vorbis_block *vb,vorbis_look_mapping *l){
pcmbundle[ch_in_bundle++]=vb->pcm[j];
}
}
-
+
look->residue_func[i]->inverse(vb,look->residue_look[i],
pcmbundle,zerobundle,ch_in_bundle);
}
@@ -246,11 +246,11 @@ static int mapping0_inverse(vorbis_block *vb,vorbis_look_mapping *l){
for(i=info->coupling_steps-1;i>=0;i--){
ogg_int32_t *pcmM=vb->pcm[info->coupling_mag[i]];
ogg_int32_t *pcmA=vb->pcm[info->coupling_ang[i]];
-
+
for(j=0;j<n/2;j++){
ogg_int32_t mag=pcmM[j];
ogg_int32_t ang=pcmA[j];
-
+
if(mag>0)
if(ang>0){
pcmM[j]=mag;
@@ -302,7 +302,7 @@ static int mapping0_inverse(vorbis_block *vb,vorbis_look_mapping *l){
else
for(j=0;j<n;j++)
pcm[j]=0;
-
+
}
//for(j=0;j<vi->channels;j++)
diff --git a/tremor/mdct.c b/tremor/mdct.c
index cc201b2106..c3249aa261 100644
--- a/tremor/mdct.c
+++ b/tremor/mdct.c
@@ -98,12 +98,12 @@ STIN void mdct_butterfly_32(DATA_TYPE *x){
REG_TYPE r0, r1;
- r0 = x[30] - x[14]; x[30] += x[14];
+ r0 = x[30] - x[14]; x[30] += x[14];
r1 = x[31] - x[15]; x[31] += x[15];
x[14] = r0; x[15] = r1;
MB();
- r0 = x[28] - x[12]; x[28] += x[12];
+ r0 = x[28] - x[12]; x[28] += x[12];
r1 = x[29] - x[13]; x[29] += x[13];
XNPROD31( r0, r1, cPI1_8, cPI3_8, &x[12], &x[13] );
MB();
@@ -235,7 +235,7 @@ STIN void mdct_butterflies(DATA_TYPE *x,int points,int shift){
int stages=8-shift;
int i,j;
-
+
for(i=0;--stages>0;i++){
for(j=0;j<(1<<i);j++)
mdct_butterfly_generic(x+(points>>i)*j,points>>i,4<<(i+shift));
@@ -350,7 +350,7 @@ void mdct_backward(int n, DATA_TYPE *in, DATA_TYPE *out){
for (shift=6;!(n&(1<<shift));shift++);
shift=13-shift;
step=2<<shift;
-
+
/* rotate */
iX = in+n2-7;
diff --git a/tremor/mdct_lookup.h b/tremor/mdct_lookup.h
index 970e199f7f..1e6cbdb9e6 100644
--- a/tremor/mdct_lookup.h
+++ b/tremor/mdct_lookup.h
@@ -14,7 +14,7 @@
function: sin,cos lookup tables
********************************************************************/
-
+
#include "os_types.h"
/* {sin(2*i*PI/4096), cos(2*i*PI/4096)}, with i = 0 to 512 */
@@ -277,7 +277,7 @@ static LOOKUP_T sincos_lookup0[1026] = {
X(0x5a3b47ab), X(0x5ac973b5), X(0x5a5ee79a), X(0x5aa5fda5),
X(0x5a82799a), X(0x5a82799a)
};
-
+
/* {sin((2*i+1)*PI/4096), cos((2*i+1)*PI/4096)}, with i = 0 to 511 */
static LOOKUP_T sincos_lookup1[1024] = {
X(0x001921fb), X(0x7ffffd88), X(0x004b65ee), X(0x7fffe9cb),
@@ -537,4 +537,4 @@ static LOOKUP_T sincos_lookup1[1024] = {
X(0x5a05bdae), X(0x5afe8a8b), X(0x5a29727b), X(0x5adb297d),
X(0x5a4d1960), X(0x5ab7ba6c), X(0x5a70b258), X(0x5a943d5e),
};
-
+
diff --git a/tremor/misc.h b/tremor/misc.h
index fc7c12506c..cb9b66a678 100644
--- a/tremor/misc.h
+++ b/tremor/misc.h
@@ -21,10 +21,10 @@
#include "os_types.h"
#include "asm_arm.h"
-
+
#ifndef _V_WIDE_MATH
#define _V_WIDE_MATH
-
+
#ifndef _LOW_ACCURACY_
/* 64 bit multiply */
@@ -76,7 +76,7 @@ static inline ogg_int32_t MULT31_SHIFT15(ogg_int32_t x, ogg_int32_t y) {
/*
* For MULT32 and MULT31: The second argument is always a lookup table
- * value already preshifted from 31 to 8 bits. We therefore take the
+ * value already preshifted from 31 to 8 bits. We therefore take the
* opportunity to save on text space and use unsigned char for those
* tables in this case.
*/
@@ -175,7 +175,7 @@ static inline ogg_int32_t VFLOAT_MULT(ogg_int32_t a,ogg_int32_t ap,
return MULT32(a,b);
#else
*p=ap+bp+31;
- return (a>>15)*(b>>16);
+ return (a>>15)*(b>>16);
#endif
}else
return 0;
@@ -223,7 +223,7 @@ static inline ogg_int32_t VFLOAT_ADD(ogg_int32_t a,ogg_int32_t ap,
}
a+=b;
- if((a&0xc0000000)==0xc0000000 ||
+ if((a&0xc0000000)==0xc0000000 ||
(a&0xc0000000)==0){
a<<=1;
(*p)--;
diff --git a/tremor/ogg.h b/tremor/ogg.h
index e820430022..9da379583c 100644
--- a/tremor/ogg.h
+++ b/tremor/ogg.h
@@ -88,7 +88,7 @@ typedef struct {
long e_o_s;
ogg_int64_t granulepos;
-
+
ogg_int64_t packetno; /* sequence number for decode; the framing
knows where there's a hole in the data,
but we need coupling so that the codec
diff --git a/tremor/os.h b/tremor/os.h
index 27f2a22e63..10db04648a 100644
--- a/tremor/os.h
+++ b/tremor/os.h
@@ -28,7 +28,7 @@
#ifdef _WIN32
# include <malloc.h>
-# define rint(x) (floor((x)+0.5f))
+# define rint(x) (floor((x)+0.5f))
# define NO_FLOAT_MATH_LIB
# define FAST_HYPOT(a, b) sqrt((a)*(a) + (b)*(b))
#endif
diff --git a/tremor/os_types.h b/tremor/os_types.h
index 6165e17dcf..0a868c72b3 100644
--- a/tremor/os_types.h
+++ b/tremor/os_types.h
@@ -41,7 +41,7 @@ typedef uint16_t ogg_uint16_t;
#if 0
-#ifdef _WIN32
+#ifdef _WIN32
# ifndef __GNUC__
/* MSVC/Borland */
diff --git a/tremor/res012.c b/tremor/res012.c
index e5d87e9568..e334d5672f 100644
--- a/tremor/res012.c
+++ b/tremor/res012.c
@@ -30,7 +30,7 @@
typedef struct {
vorbis_info_residue0 *info;
int map;
-
+
int parts;
int stages;
codebook *fullbooks;
@@ -177,7 +177,7 @@ vorbis_look_residue *res0_look(vorbis_dsp_state *vd,vorbis_info_mode *vm,
/* a truncated packet here just means 'stop working'; it's not an error */
static int _01inverse(vorbis_block *vb,vorbis_look_residue *vl,
ogg_int32_t **in,int ch,
- long (*decodepart)(codebook *, ogg_int32_t *,
+ long (*decodepart)(codebook *, ogg_int32_t *,
oggpack_buffer *,int,int)){
long i,j,k,l,s;
@@ -188,7 +188,7 @@ static int _01inverse(vorbis_block *vb,vorbis_look_residue *vl,
int samples_per_partition=info->grouping;
int partitions_per_word=look->phrasebook->dim;
int n=info->end-info->begin;
-
+
int partvals=n/samples_per_partition;
int partwords=(partvals+partitions_per_word-1)/partitions_per_word;
int ***partword=(int ***)alloca(ch*sizeof(*partword));
@@ -198,7 +198,7 @@ static int _01inverse(vorbis_block *vb,vorbis_look_residue *vl,
for(s=0;s<look->stages;s++){
- /* each loop decodes on partition codeword containing
+ /* each loop decodes on partition codeword containing
partitions_pre_word partitions */
for(i=0,l=0;i<partvals;l++){
if(s==0){
@@ -210,7 +210,7 @@ static int _01inverse(vorbis_block *vb,vorbis_look_residue *vl,
if(partword[j][l]==NULL)goto errout;
}
}
-
+
/* now we decode residual values for the partitions */
for(k=0;k<partitions_per_word && i<partvals;k++,i++)
for(j=0;j<ch;j++){
@@ -223,9 +223,9 @@ static int _01inverse(vorbis_block *vb,vorbis_look_residue *vl,
}
}
}
- }
+ }
}
-
+
errout:
eopbreak:
return(0);
@@ -292,7 +292,7 @@ int res2_inverse(vorbis_block *vb,vorbis_look_residue *vl,
for(k=0;k<partitions_per_word && i<partvals;k++,i++)
if(info->secondstages[partword[l][k]]&(1<<s)){
codebook *stagebook=look->partbooks[partword[l][k]][s];
-
+
if(stagebook){
if(vorbis_book_decodevv_add(stagebook,in,
i*samples_per_partition+beginoff,ch,
@@ -301,9 +301,9 @@ int res2_inverse(vorbis_block *vb,vorbis_look_residue *vl,
goto eopbreak;
}
}
- }
+ }
}
-
+
errout:
eopbreak:
return(0);
diff --git a/tremor/sharedbook.c b/tremor/sharedbook.c
index d173d8aaf5..a6fe2fc7d4 100644
--- a/tremor/sharedbook.c
+++ b/tremor/sharedbook.c
@@ -35,7 +35,7 @@ int _ilog(unsigned int v){
}
/* 32 bit float (not IEEE; nonnormalized mantissa +
- biased exponent) : neeeeeee eeemmmmm mmmmmmmm mmmmmmmm
+ biased exponent) : neeeeeee eeemmmmm mmmmmmmm mmmmmmmm
Why not IEEE? It's just not that important here. */
#define VQ_FEXP 10
@@ -78,12 +78,12 @@ ogg_uint32_t *_make_words(long *l,long n,long sparsecount){
long length=l[i];
if(length>0){
ogg_uint32_t entry=marker[length];
-
+
/* when we claim a node for an entry, we also claim the nodes
below it (pruning off the imagined tree that may have dangled
from it) as well as blocking the use of any nodes directly
above for leaves */
-
+
/* update ourself */
if(length<32 && (entry>>length)){
/* error condition; the lengths must specify an overpopulated tree */
@@ -91,12 +91,12 @@ ogg_uint32_t *_make_words(long *l,long n,long sparsecount){
return(NULL);
}
r[count++]=entry;
-
+
/* Look to see if the next shorter marker points to the node
above. if so, update it and repeat. */
{
for(j=length;j>0;j--){
-
+
if(marker[j]&1){
/* have to jump branches */
if(j==1)
@@ -109,7 +109,7 @@ ogg_uint32_t *_make_words(long *l,long n,long sparsecount){
marker[j]++;
}
}
-
+
/* prune the tree; the implicit invariant says all the longer
markers were dangling from our just-taken node. Dangle them
from our *new* node. */
@@ -122,7 +122,7 @@ ogg_uint32_t *_make_words(long *l,long n,long sparsecount){
}else
if(sparsecount==0)count++;
}
-
+
/* bitreverse the words because our bitwise packer/unpacker is LSb
endian */
for(i=0,count=0;i<n;i++){
@@ -217,12 +217,12 @@ ogg_int32_t *_book_unquantize(const static_codebook *b,int n,int *sparsemap,
val=VFLOAT_ADD(mindel,minpoint,val,point,&point);
val=VFLOAT_ADD(last,lastpoint,val,point,&point);
-
+
if(b->q_sequencep){
- last=val;
+ last=val;
lastpoint=point;
}
-
+
if(sparsemap){
r[sparsemap[count]*b->dim+k]=val;
rp[sparsemap[count]*b->dim+k]=point;
@@ -251,9 +251,9 @@ ogg_int32_t *_book_unquantize(const static_codebook *b,int n,int *sparsemap,
val=VFLOAT_ADD(mindel,minpoint,val,point,&point);
val=VFLOAT_ADD(last,lastpoint,val,point,&point);
-
+
if(b->q_sequencep){
- last=val;
+ last=val;
lastpoint=point;
}
@@ -275,7 +275,7 @@ ogg_int32_t *_book_unquantize(const static_codebook *b,int n,int *sparsemap,
for(j=0;j<n*b->dim;j++)
if(rp[j]<*maxpoint)
r[j]>>=*maxpoint-rp[j];
-
+
_ogg_free(rp);
return(r);
}
@@ -325,7 +325,7 @@ int vorbis_book_init_decode(codebook *c,const static_codebook *s){
int i,j,n=0,tabn;
int *sortindex;
memset(c,0,sizeof(*c));
-
+
/* count actually used entries */
for(i=0;i<s->entries;i++)
if(s->lengthlist[i]>0)
@@ -338,7 +338,7 @@ int vorbis_book_init_decode(codebook *c,const static_codebook *s){
c->q_min=s->q_min;
c->q_delta=s->q_delta;
- /* two different remappings go on here.
+ /* two different remappings go on here.
First, we collapse the likely sparse codebook down only to
actually represented values/words. This collapsing needs to be
@@ -352,7 +352,7 @@ int vorbis_book_init_decode(codebook *c,const static_codebook *s){
/* perform sort */
ogg_uint32_t *codes=_make_words(s->lengthlist,s->entries,c->used_entries);
ogg_uint32_t **codep=(ogg_uint32_t **)alloca(sizeof(*codep)*n);
-
+
if(codes==NULL)goto err_out;
for(i=0;i<n;i++){
@@ -375,14 +375,14 @@ int vorbis_book_init_decode(codebook *c,const static_codebook *s){
_ogg_free(codes);
}
-
+
c->valuelist=_book_unquantize(s,n,sortindex,&c->binarypoint);
c->dec_index=(int *)_ogg_malloc(n*sizeof(*c->dec_index));
-
+
for(n=0,i=0;i<s->entries;i++)
if(s->lengthlist[i]>0)
c->dec_index[sortindex[n++]]=i;
-
+
c->dec_codelengths=(char *)_ogg_malloc(n*sizeof(*c->dec_codelengths));
for(n=0,i=0;i<s->entries;i++)
if(s->lengthlist[i]>0)
@@ -417,7 +417,7 @@ int vorbis_book_init_decode(codebook *c,const static_codebook *s){
if(c->dec_firsttable[bitreverse(word)]==0){
while((lo+1)<n && c->codelist[lo+1]<=word)lo++;
while( hi<n && word>=(c->codelist[hi]&mask))hi++;
-
+
/* we only actually have 15 bits per hint to play with here.
In order to overflow gracefully (nothing breaks, efficiency
just drops), encode as the difference from the extremes. */
@@ -433,7 +433,7 @@ int vorbis_book_init_decode(codebook *c,const static_codebook *s){
}
}
}
-
+
return(0);
err_out:
diff --git a/tremor/synthesis.c b/tremor/synthesis.c
index 6b33cfbde1..499111e363 100644
--- a/tremor/synthesis.c
+++ b/tremor/synthesis.c
@@ -32,7 +32,7 @@ int vorbis_synthesis(vorbis_block *vb,ogg_packet *op){
codec_setup_info *ci=(codec_setup_info *)vi->codec_setup;
oggpack_buffer *opb=&vb->opb;
int type,mode,i;
-
+
/* first things first. Make sure decode is ready */
_vorbis_block_ripcord(vb);
oggpack_readinit(opb,op->packet,op->bytes);
@@ -46,7 +46,7 @@ int vorbis_synthesis(vorbis_block *vb,ogg_packet *op){
/* read our mode and pre/post windowsize */
mode=oggpack_read(opb,b->modebits);
if(mode==-1)return(OV_EBADPACKET);
-
+
vb->mode=mode;
vb->W=ci->mode_param[mode]->blockflag;
if(vb->W){
@@ -57,7 +57,7 @@ int vorbis_synthesis(vorbis_block *vb,ogg_packet *op){
vb->lW=0;
vb->nW=0;
}
-
+
/* more setup */
vb->granulepos=op->granulepos;
vb->sequence=op->packetno-3; /* first block is third packet */
@@ -79,7 +79,7 @@ long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op){
codec_setup_info *ci=(codec_setup_info *)vi->codec_setup;
oggpack_buffer opb;
int mode;
-
+
oggpack_readinit(&opb,op->packet,op->bytes);
/* Check the packet type */
diff --git a/tremor/tremor.diff b/tremor/tremor.diff
index 2838721e69..09838bc250 100644
--- a/tremor/tremor.diff
+++ b/tremor/tremor.diff
@@ -2,10 +2,10 @@
+++ misc.h 2004-12-30 13:09:20.000000000 +0100
@@ -29,8 +29,9 @@
/* 64 bit multiply */
-
+
#include <sys/types.h>
+#include "config.h"
-
+
-#if BYTE_ORDER==LITTLE_ENDIAN
+#ifndef WORDS_BIGENDIAN
union magic {
@@ -15,7 +15,7 @@
} halves;
ogg_int64_t whole;
};
--#endif
+-#endif
-
-#if BYTE_ORDER==BIG_ENDIAN
+#else
@@ -32,16 +32,16 @@
+ ogg_int32_t point;
int val=VFLOAT_MULTI(delta,delpoint,
abs(b->quantlist[index]),&point);
-
+
@@ -242,7 +245,7 @@
int lastpoint=0;
-
+
for(k=0;k<b->dim;k++){
- int point;
+ ogg_int32_t point;
int val=VFLOAT_MULTI(delta,delpoint,
abs(b->quantlist[j*b->dim+k]),&point);
-
+
--- block.h (revision 0)
+++ block.h (revision 0)
@@ -0,0 +1,24 @@
@@ -76,9 +76,9 @@
#include "misc.h"
#include "os.h"
+#include "block.h"
-
+
#define LSP_FRACBITS 14
-
+
--- floor1.c (revision 24821)
+++ floor1.c (working copy)
@@ -24,6 +24,7 @@
@@ -86,9 +86,9 @@
#include "codebook.h"
#include "misc.h"
+#include "block.h"
-
+
#define floor1_rangedB 140 /* floor 1 fixed at -140dB to 0dB range */
-
+
--- synthesis.c (revision 24821)
+++ synthesis.c (working copy)
@@ -23,6 +23,7 @@
@@ -96,7 +96,7 @@
#include "misc.h"
#include "os.h"
+#include "block.h"
-
+
int vorbis_synthesis(vorbis_block *vb,ogg_packet *op){
vorbis_dsp_state *vd=vb->vd;
--- res012.c (revision 24821)
@@ -106,7 +106,7 @@
#include "misc.h"
#include "os.h"
+#include "block.h"
-
+
typedef struct {
vorbis_info_residue0 *info;
--- block.c (revision 24821)
@@ -116,7 +116,7 @@
#include "registry.h"
#include "misc.h"
+#include "block.h"
-
+
static int ilog(unsigned int v){
int ret=0;
--- os.h (revision 25873)
@@ -124,11 +124,11 @@
@@ -20,18 +20,8 @@
#include <math.h>
#include "os_types.h"
-
+
-#ifndef _V_IFDEFJAIL_H_
-# define _V_IFDEFJAIL_H_
+#define STIN static inline
-
+
-# ifdef __GNUC__
-# define STIN static __inline__
-# elif _WIN32
@@ -146,7 +146,7 @@
@@ -32,6 +32,15 @@
#define _ogg_realloc realloc
#define _ogg_free free
-
+
+#include <inttypes.h>
+typedef int64_t ogg_int64_t;
+typedef int32_t ogg_int32_t;
@@ -156,13 +156,13 @@
+
+#if 0
+
- #ifdef _WIN32
-
+ #ifdef _WIN32
+
# ifndef __GNUC__
@@ -85,4 +94,6 @@
-
+
#endif
-
+
+#endif /* 0 */
+
#endif /* _OS_TYPES_H */
diff --git a/tremor/window.c b/tremor/window.c
index 4d6e79e81d..cc92f979ac 100644
--- a/tremor/window.c
+++ b/tremor/window.c
@@ -56,7 +56,7 @@ const void *_vorbis_window(int type, int left){
void _vorbis_apply_window(ogg_int32_t *d,const void *window_p[2],
long *blocksizes,
int lW,int W,int nW){
-
+
LOOKUP_T *window[2]={window_p[0],window_p[1]};
long n=blocksizes[W];
long ln=blocksizes[lW];
@@ -67,7 +67,7 @@ void _vorbis_apply_window(ogg_int32_t *d,const void *window_p[2],
long rightbegin=n/2+n/4-rn/4;
long rightend=rightbegin+rn/2;
-
+
int i,p;
for(i=0;i<leftbegin;i++)
diff --git a/vobsub.c b/vobsub.c
index a16a27b9e4..09fa8bd5e6 100644
--- a/vobsub.c
+++ b/vobsub.c
@@ -1270,7 +1270,7 @@ create_idx(vobsub_out_t *me, const unsigned int *palette, unsigned int orig_widt
"#\n"
"# Generated by MPlayer " VERSION "\n"
"# See <URL:http://www.mplayerhq.hu/> for more information about MPlayer\n"
- "# See <URL:http://vobsub.edensrising.com/> for more information about Vobsub\n"
+ "# See <URL:http://wiki.multimedia.cx/index.php?title=VOBsub> for more information about Vobsub\n"
"#\n"
"size: %ux%u\n",
orig_width, orig_height);