summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/hu/mplayer.114
-rw-r--r--DOCS/xml/hu/encoding-guide.xml4
-rw-r--r--DOCS/xml/hu/faq.xml63
-rw-r--r--DOCS/xml/hu/install.xml4
-rw-r--r--DOCS/xml/hu/usage.xml58
-rw-r--r--Makefile59
-rwxr-xr-xconfigure1
-rw-r--r--help/help_mp-de.h2
-rw-r--r--libmpcodecs/vd_ffmpeg.c401
-rw-r--r--libvo/old_vo_defines.h2
-rw-r--r--libvo/video_out.c60
-rw-r--r--libvo/video_out.h4
-rw-r--r--libvo/vo_direct3d.c53
-rw-r--r--libvo/vo_xv.c60
-rw-r--r--libvo/vo_xvmc.c21
-rw-r--r--libvo/x11_common.c26
-rw-r--r--libvo/x11_common.h3
17 files changed, 378 insertions, 457 deletions
diff --git a/DOCS/man/hu/mplayer.1 b/DOCS/man/hu/mplayer.1
index 4a986fe97e..53af727ed7 100644
--- a/DOCS/man/hu/mplayer.1
+++ b/DOCS/man/hu/mplayer.1
@@ -1,4 +1,4 @@
-.\" Synced with r28279
+.\" Synced with r28520
.\" 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. 01. 10." "MPlayer Project" "A film lejtsz"
+.TH MPlayer 1 "2009. 02. 12." "MPlayer Project" "A film lejtsz"
.
.SH NV
mplayer \- film lejtsz
@@ -732,7 +732,7 @@ alaphelyzetben megakadlyozza, hogy a sttuszsor
megfelelen a kocsi visszt (pl.\& \\r).
.
.TP
-.B \-priority <prio> (csak Windows alatt)
+.B \-priority <prio> (csak Windows s OS/2 alatt)
Az MPlayer processz proirtst lltja be a Windows alatt elrhet
elre definilt rtkeknek megfelelen.
A <prio> lehetsges rtkei:
@@ -3575,7 +3575,9 @@ Mac OS X CoreVideo kimeneti vide vezrl
.PD 0
.RSs
.IPs device_id=<szm>
-Teljes kpernys lejtszsnl a hasznlni kvnt kperny eszkz.
+Teljes kpernys lejtszsnl a hasznlni kvnt kperny eszkz, vagy -1-re lltva
+mindig ugyan azt a kpernyt hasznlja, amelyiken a vide ablak van (alaprtelmezett: \-1 \- auto).
+.
.IPs shared_buffer
A kimenetet egy osztott memria bufferbe rja a megjelentse helyett s
megprbl megnyitni egy ltez NSConnection-t a GUI-val trtn kommunikcihoz.
@@ -9124,6 +9126,10 @@ Jelenleg csak akkor mkdik, ha a jelenet vlts detektl le van tiltva
(sc_threshold=1000000000).
.
.TP
+.B "gmc\ \ \ \ "
+A Global Motion Compensation engedlyezse.
+.
+.TP
.B (no)lowdelay
Belltja az alacsony ksleltetsi jelzst az MPEG-1/2-nl (letiltja a B-kockkat, alaprtelmezett: ki).
.
diff --git a/DOCS/xml/hu/encoding-guide.xml b/DOCS/xml/hu/encoding-guide.xml
index b1bf502045..e675f7bb3b 100644
--- a/DOCS/xml/hu/encoding-guide.xml
+++ b/DOCS/xml/hu/encoding-guide.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- synced with r27843 -->
+<!-- synced with r28510 -->
<chapter id="encoding-guide">
<title>Kódolás a <application>MEncoder</application>rel</title>
@@ -3779,7 +3779,7 @@ Kérlek vedd figyelembe, hogy a forrásanyagodtól, a géped típusától
<para>
Az <systemitem class="library">x264</systemitem> egy szabad függvénykönyvtár
a H.264/AVC videó folyamok kódolásához.
-Mielőtt elkezdenél kódolni, <link linkend="codec-x264">be kell
+Mielőtt elkezdenél kódolni, <link linkend="x264">be kell
állítanod a <application>MEncoder</application>ben a támogatását</link>.
</para>
diff --git a/DOCS/xml/hu/faq.xml b/DOCS/xml/hu/faq.xml
index 010b93a19b..aeb0a1d2a5 100644
--- a/DOCS/xml/hu/faq.xml
+++ b/DOCS/xml/hu/faq.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- synced with r28207 -->
+<!-- synced with r28531 -->
<chapter id="faq" xreflabel="FAQ">
<title>Gyakran ismételt kérdések</title>
@@ -229,17 +229,6 @@ Kérünk olvasd el a <link linkend="bugreports">hiba jelentési útmutatót</lin
<qandaentry>
<question><para>
-Problémám van a ... codec-kel történő lejátszással. Egyáltalán használható?
-</para></question>
-<answer><para>
-Ellenőrizd a <ulink url="../../codecs-status.html">codec státusz</ulink>
-oldalt, ha nem tartalmazza a te codecedet, olvasd el a
-<ulink url="../../tech/win32-codec-howto">Win32 codec HOWTO</ulink>-t és keress meg minket.
-</para></answer>
-</qandaentry>
-
-<qandaentry>
-<question><para>
Egy core dump-ot kapok, amikor folyamokat dump-olok, mi a baj?
</para></question>
<answer><para>
@@ -396,27 +385,6 @@ cseréld ki az <systemitem>#undef FAST_OSD</systemitem> sort
<qandaentry>
<question><para>
-Nem érem el a GUI menüt. Jobb gombbal kattintok, de semelyik menüelemet
-sem tudom elérni!
-</para></question>
-<answer><para>
-FVWM-et használsz? Próbáld ki ezt:
-<orderedlist>
-<listitem><para>
- <menuchoice><guimenu>Start</guimenu><guisubmenu>Settings</guisubmenu>
- <guisubmenu>Configuration</guisubmenu>
- <guimenuitem>Base Configuration</guimenuitem></menuchoice>
-</para></listitem>
-<listitem><para>
- Állítsd át a <systemitem>Use Applications position hints</systemitem>-et
- <systemitem>Yes</systemitem>-re!
-</para></listitem>
-</orderedlist>
-</para></answer>
-</qandaentry>
-
-<qandaentry>
-<question><para>
Hogy tudom az <application>MPlayer</application> a háttérben futtatni?
</para></question>
<answer><para>
@@ -709,18 +677,6 @@ fel a fájlt az FTP-re.
<qandaentry>
<question><para>
-A számítógépem az MS DivX AVI-kat ~ 640x300-as felbontásban játssza le, sztereó MP3
-hanggal, és lassú.
-Ha használom a <option>-nosound</option> kapcsolót, minden rendben (csak nincs hang).
-</para></question>
-<answer><para>
-A géped túl lassú vagy a hangkártyád vezérlője hibás. Nézd végig a dokumentációt,
-hogy megtudd, hogyan javíthatsz a teljesítményen.
-</para></answer>
-</qandaentry>
-
-<qandaentry>
-<question><para>
Hogy tudom használni a <application>dmix</application>-et az
<application>MPlayer</application>rel?
</para></question>
@@ -850,21 +806,6 @@ neked magadnak kell megcsinálnod, de vigyázz, nagy fába vágod a fejszédet.
<qandaentry>
<question><para>
-Nem tudok egyetlen újabb DVD-t sem megnézni a Sony Pictures/BMG-től.
-</para></question>
-<answer><para>
-Ez normális; átvertek, egy szándékosan elrontott lemezt adtak el neked.
-Az egyetlen módszer ezen DVD-k lejátszására a hibás blokkok kikerülése
-az mpdvdkit2 helyett a DVDnav használatával.
-Ezt úgy teheted meg, hogy az <application>MPlayer</application> DVDnav
-támogatással fordítod le, majd a parancssori dvd:// dvdnav://-ra cseréled.
-A DVDnav nagyon nagy mértékben kizárja az mpdvdkit2-et, győződj meg róla, hogy
-a <option>--disable-mpdvdkit</option> opciót megadtad a configure-nak.
-</para></answer>
-</qandaentry>
-
-<qandaentry>
-<question><para>
Mi van a feliratokkal? Meg tudja őket jeleníteni az <application>MPlayer</application>?
</para></question>
<answer><para>
@@ -1288,7 +1229,7 @@ Használd az <filename>avisubdump.c</filename> fájlt a
<qandaentry>
<question><para>
-Az MPlayer nem...
+A MEncoder nem...
</para></question>
<answer><para>
Nézz bele a <filename class="directory">TOOLS</filename>
diff --git a/DOCS/xml/hu/install.xml b/DOCS/xml/hu/install.xml
index 88386b6875..e92d75f5d7 100644
--- a/DOCS/xml/hu/install.xml
+++ b/DOCS/xml/hu/install.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- synced with r28422 -->
+<!-- synced with r28510 -->
<chapter id="install">
<title>Telepítés</title>
@@ -405,7 +405,7 @@ alapértelmezett, mivel jobb a sebessége.
<!-- ********** -->
-<sect2 id="codec-x264">
+<sect2 id="x264">
<title><systemitem class="library">x264</systemitem></title>
<para>
diff --git a/DOCS/xml/hu/usage.xml b/DOCS/xml/hu/usage.xml
index b079fdff6e..160e2a97ae 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 r26990 -->
+<!-- synced with r28532 -->
<chapter id="usage">
<title>Használat</title>
@@ -501,18 +501,19 @@ leírt blokkok kihagyása.
</para>
</sect2>
</sect1>
+</chapter>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-<sect1 id="advaudio" xreflabel="Advanced Audio">
-<title>Továbbfejlesztett audió</title>
+<chapter id="advaudio" xreflabel="Advanced Audio">
+<title>Továbbfejlesztett audió használata</title>
-<sect2 id="advaudio-surround">
+<sect1 id="advaudio-surround">
<title>Térhatású/többcsatornás lejátszás</title>
-<sect3 id="advaudio-surround-DVD">
+<sect2 id="advaudio-surround-DVD">
<title>DVD-k</title>
<para>
@@ -532,10 +533,10 @@ kvadrafónikus lejátszás alapértelmezetté tételéhez írd be ezt a sort:
Az <application>MPlayer</application> ekkor az audiót négy csatornán fogja
lejátszani, ha mind a négy csatorna elérhető.
</para>
-</sect3>
+</sect2>
-<sect3 id="advaudio-surround-stereoinfour">
+<sect2 id="advaudio-surround-stereoinfour">
<title>Sztereó fájlok lejátszása négy hangszórón</title>
<para>
@@ -545,10 +546,10 @@ ahogy a legtöbb audió vezérlő sem. Ha ilyet akarsz, kézzel kell megadnod:
Lásd a <link linkend="advaudio-channels-copying">csatorna másolásról</link>
szóló rész a magyarázatért.
</para>
-</sect3>
+</sect2>
-<sect3 id="advaudio-surround-passthrough">
+<sect2 id="advaudio-surround-passthrough">
<title>AC-3/DTS áteresztés</title>
<para>
@@ -600,10 +601,10 @@ amiben nincs AC-3-as vagy DTS audió. Az <option>afm=hwac3</option>
sorba nem kell vessző; az <application>MPlayer</application> mindenképpen vált
ha egy audió család van megadva.
</para>
-</sect3>
+</sect2>
-<sect3 id="hwmpa-surround-passthrough">
+<sect2 id="hwmpa-surround-passthrough">
<title>MPEG audió áteresztés</title>
<para>
@@ -619,10 +620,10 @@ az audió adatok dekódolásával.
To use this codec:
<screen> mplayer -ac hwmpa </screen>
</para>
-</sect3>
+</sect2>
-<sect3 id="advaudio-surround-matrix">
+<sect2 id="advaudio-surround-matrix">
<title>Mátrix-kódolású audió</title>
<para>
@@ -653,10 +654,10 @@ Jó link-ek:
</para></listitem>
</itemizedlist>
</para>
-</sect3>
+</sect2>
-<sect3 id="advaudio-surround-hrtf">
+<sect2 id="advaudio-surround-hrtf">
<title>Térhatás emulálása fülhallgatóval</title>
<para>
@@ -691,10 +692,10 @@ történő lejátszáshoz újra kell mintáznod:
mplayer <replaceable>fájlnév</replaceable> -channels 6 -af resample=48000,hrtf
</screen>
</para>
-</sect3>
+</sect2>
-<sect3 id="advaudio-surround-troubleshooting">
+<sect2 id="advaudio-surround-troubleshooting">
<title>Hibajavítás</title>
<para>
@@ -702,15 +703,15 @@ Ha nem hallasz semmilyen hangot a térhatású csatornáidból, ellenőrizd a mi
beállításait egy mixer programmal, mint pl. az <application>alsamixer</application>;
az audió kimenetek gyakran le vannak némítva és nulla hangerőre vannak állítva alapértelmezésben.
</para>
-</sect3>
</sect2>
+</sect1>
<!-- ********** -->
-<sect2 id="advaudio-channels">
+<sect1 id="advaudio-channels">
<title>Csatorna többszörözés</title>
-<sect3 id="advaudio-channels-general">
+<sect2 id="advaudio-channels-general">
<title>Általános információk</title>
<para>
@@ -780,10 +781,10 @@ vagy eltávolítására, a hangkártya felé kiküldött csatornák számának b
való. Lásd a következő fejezeteket a csatorna manipulációval kapcsolatos bővebb
információkért.
</para>
-</sect3>
+</sect2>
-<sect3 id="advaudio-channels-mono">
+<sect2 id="advaudio-channels-mono">
<title>Mono lejátszása két hangszóróval</title>
<para>
@@ -807,10 +808,10 @@ kikísérletezed és megkeresed a helyes hangerőt. Például:
mplayer <replaceable>filename</replaceable> -af extrastereo=0,volume=5
</screen>
</para>
-</sect3>
+</sect2>
-<sect3 id="advaudio-channels-copying">
+<sect2 id="advaudio-channels-copying">
<title>Csatorna másolás/mozgatás</title>
<para>
@@ -909,10 +910,10 @@ Az alopciók összeállításával kapjuk:
mplayer <replaceable>fájlnév</replaceable> -af channels=4:4:0:2:0:0:1:3:1:1
</screen>
</para>
-</sect3>
+</sect2>
-<sect3 id="advaudio-channels-mixing">
+<sect2 id="advaudio-channels-mixing">
<title>Csatorna keverés</title>
<para>
@@ -1077,12 +1078,12 @@ Ezen opciók összevonásával születik meg az eredmény:
mplayer <replaceable>dvd://1</replaceable> -channels 6 -af pan=5:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0.5:0.5:0:0:0
</screen>
</para>
-</sect3>
</sect2>
+</sect1>
<!-- ********** -->
-<sect2 id="advaudio-volume">
+<sect1 id="advaudio-volume">
<title>Szoftveres hangerő állítás</title>
<para>
@@ -1122,6 +1123,5 @@ meg, a <option>volume</option>-nek lehet, hogy le kell csípnie a jelet, hogy
megakadályozza a hangkártyád elfogadható tartományán kívül eső adatok küldését;
ez zavart audiót eredményez.
</para>
-</sect2>
</sect1>
</chapter>
diff --git a/Makefile b/Makefile
index bf2365c75b..f6b4c04e55 100644
--- a/Makefile
+++ b/Makefile
@@ -935,16 +935,18 @@ uninstall:
rm -f $(MANDIR)/man1/mplayer.1 $(MANDIR)/man1/mencoder.1
rm -f $(foreach lang,$(MAN_LANGS),$(foreach man,mplayer.1 mencoder.1,$(MANDIR)/$(lang)/man1/$(man)))
+ADD_ALL_EXESUFS = $(foreach exesuf,$(EXESUFS_ALL),$(1) $(1)$(exesuf))
+
clean:
- rm -f $(foreach dir,$(DIRS),$(foreach suffix,/*.o /*.a /*.ho /*~, $(addsuffix $(suffix),$(dir))))
- rm -f mplayer$(EXESUF) mencoder$(EXESUF)
+ -rm -f $(foreach dir,$(DIRS),$(foreach suffix,/*.o /*.a /*.ho /*~, $(addsuffix $(suffix),$(dir))))
+ -rm -f $(foreach file,mplayer mencoder,$(call ADD_ALL_EXESUFS,$(file)))
distclean: clean testsclean toolsclean driversclean dhahelperclean dhahelperwinclean
- rm -rf DOCS/tech/doxygen
- rm -f $(foreach dir,$(DIRS),$(foreach suffix,/*.d, $(addsuffix $(suffix),$(dir))))
- rm -f configure.log config.mak config.h codecs.conf.h help_mp.h \
- version.h $(VIDIX_PCI_FILES) \
- codec-cfg$(EXESUF) cpuinfo$(EXESUF) TAGS tags
+ -rm -rf DOCS/tech/doxygen
+ -rm -f $(foreach dir,$(DIRS),$(foreach suffix,/*.d, $(addsuffix $(suffix),$(dir))))
+ -rm -f configure.log config.mak config.h codecs.conf.h help_mp.h \
+ version.h $(VIDIX_PCI_FILES) TAGS tags
+ -rm -f $(foreach file,codec-cfg cpuinfo,$(call ADD_ALL_EXESUFS,$(file)))
doxygen:
doxygen DOCS/tech/Doxyfile
@@ -978,43 +980,32 @@ loader/qtx/list$(EXESUF) loader/qtx/qtxload$(EXESUF): $(LOADER_TEST_OBJS)
mp3lib/test$(EXESUF) mp3lib/test2$(EXESUF): $(filter mp3lib/%,$(SRCS_COMMON:.c=.o)) libvo/aclib.o cpudetect.o $(TEST_OBJS)
-TESTS = codecs2html$(EXESUF) codec-cfg-test$(EXESUF) \
- liba52/test$(EXESUF) libvo/aspecttest$(EXESUF) \
- mp3lib/test$(EXESUF) mp3lib/test2$(EXESUF)
+TESTS = codecs2html codec-cfg-test liba52/test libvo/aspecttest \
+ mp3lib/test mp3lib/test2
ifdef ARCH_X86
-TESTS += loader/qtx/list$(EXESUF) loader/qtx/qtxload$(EXESUF)
+TESTS += loader/qtx/list loader/qtx/qtxload
endif
-tests: $(TESTS)
+tests: $(addsuffix $(EXESUF),$(TESTS))
testsclean:
- rm -f $(TESTS)
-
-TOOLS = TOOLS/alaw-gen$(EXESUF) \
- TOOLS/asfinfo$(EXESUF) \
- TOOLS/avi-fix$(EXESUF) \
- TOOLS/avisubdump$(EXESUF) \
- TOOLS/compare$(EXESUF) \
- TOOLS/dump_mp4$(EXESUF) \
- TOOLS/movinfo$(EXESUF) \
- TOOLS/netstream$(EXESUF) \
- TOOLS/subrip$(EXESUF) \
- TOOLS/vivodump$(EXESUF) \
+ -rm -f $(foreach file,$(TESTS),$(call ADD_ALL_EXESUFS,$(file)))
+
+TOOLS = $(addprefix TOOLS/,alaw-gen asfinfo avi-fix avisubdump compare dump_mp4 movinfo netstream subrip vivodump)
ifdef ARCH_X86
-TOOLS += TOOLS/modify_reg$(EXESUF)
+TOOLS += TOOLS/modify_reg
endif
-ALLTOOLS = $(TOOLS) \
- TOOLS/bmovl-test$(EXESUF) \
- TOOLS/vfw2menc$(EXESUF) \
+ALLTOOLS = $(TOOLS) TOOLS/bmovl-test TOOLS/vfw2menc
-tools: $(TOOLS)
-alltools: $(ALLTOOLS)
+tools: $(addsuffix $(EXESUF),$(TOOLS))
+alltools: $(addsuffix $(EXESUF),$(ALLTOOLS))
toolsclean:
- rm -f $(ALLTOOLS) TOOLS/fastmem*-* TOOLS/realcodecs/*.so.6.0
+ -rm -f $(foreach file,$(ALLTOOLS),$(call ADD_ALL_EXESUFSx,$(file)))
+ -rm -f TOOLS/fastmem*-* TOOLS/realcodecs/*.so.6.0
TOOLS/bmovl-test$(EXESUF): -lSDL_image
@@ -1082,7 +1073,7 @@ install-drivers: $(DRIVER_OBJS)
-ln -s /dev/radeon_vid /dev/rage128_vid
driversclean:
- rm -f $(DRIVER_OBJS) drivers/*~
+ -rm -f $(DRIVER_OBJS) drivers/*~
dhahelper: vidix/dhahelper/dhahelper.o vidix/dhahelper/test
@@ -1096,7 +1087,7 @@ install-dhahelper: vidix/dhahelper/dhahelper.o
-mknod /dev/dhahelper c 180 0
dhahelperclean:
- rm -f vidix/dhahelper/*.o vidix/dhahelper/*~ vidix/dhahelper/test
+ -rm -f vidix/dhahelper/*.o vidix/dhahelper/*~ vidix/dhahelper/test
dhahelperwin: vidix/dhahelperwin/dhasetup.exe vidix/dhahelperwin/dhahelper.sys
@@ -1128,7 +1119,7 @@ install-dhahelperwin:
vidix/dhahelperwin/dhasetup.exe install
dhahelperwinclean:
- rm -f $(addprefix vidix/dhahelperwin/,*.o *~ dhahelper.sys dhasetup.exe base.tmp temp.exp)
+ -rm -f $(addprefix vidix/dhahelperwin/,*.o *~ dhahelper.sys dhasetup.exe base.tmp temp.exp)
diff --git a/configure b/configure
index c5d85e04d6..3347a7fcf8 100755
--- a/configure
+++ b/configure
@@ -8025,6 +8025,7 @@ HELP_FILE = $_mp_help
TIMER = $_timer
EXESUF = $_exesuf
+EXESUFS_ALL = .exe
$_target_arch
$_target_arch_x86
diff --git a/help/help_mp-de.h b/help/help_mp-de.h
index 8cb6ac4805..147ef34043 100644
--- a/help/help_mp-de.h
+++ b/help/help_mp-de.h
@@ -1250,7 +1250,7 @@ static char help_text[]=
#define MSGTR_AO_ALSA_ErrorSetBlockMode "[AL_ALSA] Fehler beim Setzen des block-Modus %s.\n"
#define MSGTR_AO_ALSA_UnableToGetInitialParameters "[AO_ALSA] Kann Startparameter nicht ermitteln: %s\n"
#define MSGTR_AO_ALSA_UnableToSetAccessType "[AO_ALSA] Kann Zugriffstyp nicht setzen: %s\n"
-#define MSGTR_AO_ALSA_FormatNotSupportedByHardware "[AO_ALSA] Format %s wird von der Hardware nicht unterstütz, versuche Standard.\n"
+#define MSGTR_AO_ALSA_FormatNotSupportedByHardware "[AO_ALSA] Format %s wird von der Hardware nicht unterstützt, versuche Standard.\n"
#define MSGTR_AO_ALSA_UnableToSetFormat "[AO_ALSA] Kann Format nicht setzen: %s\n"
#define MSGTR_AO_ALSA_UnableToSetChannels "[AO_ALSA] Kann Kanäle nicht ermitteln: %s\n"
#define MSGTR_AO_ALSA_UnableToDisableResampling "[AO_ALSA] Kann Resampling nicht deaktivieren: %s\n"
diff --git a/libmpcodecs/vd_ffmpeg.c b/libmpcodecs/vd_ffmpeg.c
index 159136eac1..1395f524ee 100644
--- a/libmpcodecs/vd_ffmpeg.c
+++ b/libmpcodecs/vd_ffmpeg.c
@@ -16,11 +16,11 @@
#include "vd_internal.h"
static const vd_info_t info = {
- "FFmpeg's libavcodec codec family",
- "ffmpeg",
- "A'rpi",
- "A'rpi, Michael, Alex",
- "native codecs"
+ "FFmpeg's libavcodec codec family",
+ "ffmpeg",
+ "A'rpi",
+ "A'rpi, Michael, Alex",
+ "native codecs"
};
LIBVD_EXTERN(ffmpeg)
@@ -52,10 +52,6 @@ typedef struct {
int lowres;
} vd_ffmpeg_ctx;
-//#ifdef CONFIG_LIBPOSTPROC
-//unsigned int lavc_pp=0;
-//#endif
-
#include "m_option.h"
static int get_buffer(AVCodecContext *avctx, AVFrame *pic);
@@ -68,7 +64,7 @@ static int mc_get_buffer(AVCodecContext *avctx, AVFrame *pic);
static void mc_release_buffer(AVCodecContext *avctx, AVFrame *pic);
static void mc_render_slice(struct AVCodecContext *s,
const AVFrame *src, int offset[4],
- int y, int type, int height);
+ int y, int type, int height);
#endif
const m_option_t lavc_decode_opts_conf[]={
@@ -82,9 +78,7 @@ const m_option_t lavc_decode_opts_conf[]={
OPT_INTRANGE("vismv", lavc_param.vismv, 0, 0, 9999999),
OPT_INTRANGE("st", lavc_param.skip_top, 0, 0, 999),
OPT_INTRANGE("sb", lavc_param.skip_bottom, 0, 0, 999),
-#ifdef CODEC_FLAG2_FAST
OPT_FLAG_CONSTANTS("fast", lavc_param.fast, 0, 0, CODEC_FLAG2_FAST),
-#endif
OPT_STRING("lowres", lavc_param.lowres_str, 0),
OPT_STRING("skiploopfilter", lavc_param.skip_loop_filter_str, 0),
OPT_STRING("skipidct", lavc_param.skip_idct_str, 0),
@@ -115,30 +109,30 @@ static int control(sh_video_t *sh,int cmd,void* arg,...){
case VDCTRL_QUERY_FORMAT:
{
int format =(*((int*)arg));
- if( format == ctx->best_csp ) return CONTROL_TRUE;//supported
- // possible conversions:
- switch( format ){
+ if( format == ctx->best_csp ) return CONTROL_TRUE;//supported
+ // possible conversions:
+ switch( format ){
case IMGFMT_YV12:
case IMGFMT_IYUV:
case IMGFMT_I420:
- // "converted" using pointer/stride modification
- if(avctx->pix_fmt==PIX_FMT_YUV420P) return CONTROL_TRUE;// u/v swap
- if(avctx->pix_fmt==PIX_FMT_YUV422P && !ctx->do_dr1) return CONTROL_TRUE;// half stride
- break;
+ // "converted" using pointer/stride modification
+ if(avctx->pix_fmt==PIX_FMT_YUV420P) return CONTROL_TRUE;// u/v swap
+ if(avctx->pix_fmt==PIX_FMT_YUV422P && !ctx->do_dr1) return CONTROL_TRUE;// half stride
+ break;
#if CONFIG_XVMC
case IMGFMT_XVMC_IDCT_MPEG2:
case IMGFMT_XVMC_MOCO_MPEG2:
if(avctx->pix_fmt==PIX_FMT_XVMC_MPEG2_IDCT) return CONTROL_TRUE;
#endif
- }
+ }
return CONTROL_FALSE;
}
break;
case VDCTRL_RESYNC_STREAM:
avcodec_flush_buffers(avctx);
- return CONTROL_TRUE;
+ return CONTROL_TRUE;
case VDCTRL_QUERY_UNSEEN_FRAMES:
- return avctx->has_b_frames + 10;
+ return avctx->has_b_frames + 10;
}
return CONTROL_UNKNOWN;
}
@@ -211,21 +205,21 @@ static int init(sh_video_t *sh){
ctx = sh->context = malloc(sizeof(vd_ffmpeg_ctx));
if (!ctx)
- return 0;
+ return 0;
memset(ctx, 0, sizeof(vd_ffmpeg_ctx));
-
+
lavc_codec = (AVCodec *)avcodec_find_decoder_by_name(sh->codec->dll);
if(!lavc_codec){
- mp_msg(MSGT_DECVIDEO,MSGL_ERR,MSGTR_MissingLAVCcodec,sh->codec->dll);
+ mp_msg(MSGT_DECVIDEO,MSGL_ERR,MSGTR_MissingLAVCcodec,sh->codec->dll);
uninit(sh);
- return 0;
+ return 0;
}
if(sh->opts->vd_use_slices && (lavc_codec->capabilities&CODEC_CAP_DRAW_HORIZ_BAND) && !do_vis_debug)
- ctx->do_slices=1;
-
+ ctx->do_slices=1;
+
if(lavc_codec->capabilities&CODEC_CAP_DR1 && !do_vis_debug && lavc_codec->id != CODEC_ID_H264 && lavc_codec->id != CODEC_ID_INTERPLAY_VIDEO && lavc_codec->id != CODEC_ID_ROQ)
- ctx->do_dr1=1;
+ ctx->do_dr1=1;
ctx->b_age= ctx->ip_age[0]= ctx->ip_age[1]= 256*256*256*64;
ctx->ip_count= ctx->b_count= 0;
@@ -235,11 +229,7 @@ static int init(sh_video_t *sh){
#if CONFIG_XVMC
-#ifdef CODEC_CAP_HWACCEL
if(lavc_codec->capabilities & CODEC_CAP_HWACCEL){
-#else
- if(lavc_codec->id == CODEC_ID_MPEG2VIDEO_XVMC){
-#endif /* CODEC_CAP_HWACCEL */
mp_msg(MSGT_DECVIDEO, MSGL_INFO, MSGTR_MPCODECS_XVMCAcceleratedCodec);
assert(ctx->do_dr1);//these are must to!
assert(ctx->do_slices); //it is (vo_)ffmpeg bug if this fails
@@ -252,25 +242,20 @@ static int init(sh_video_t *sh){
}else
#endif /* CONFIG_XVMC */
if(ctx->do_dr1){
- avctx->flags|= CODEC_FLAG_EMU_EDGE;
+ avctx->flags|= CODEC_FLAG_EMU_EDGE;
avctx->get_buffer= get_buffer;
avctx->release_buffer= release_buffer;
avctx->reget_buffer= get_buffer;
}
-#ifdef CODEC_FLAG_NOT_TRUNCATED
- avctx->flags|= CODEC_FLAG_NOT_TRUNCATED;
-#endif
avctx->flags|= lavc_param->bitexact;
-
+
avctx->width = sh->disp_w;
avctx->height= sh->disp_h;
avctx->workaround_bugs= lavc_param->workaround_bugs;
avctx->error_recognition= lavc_param->error_resilience;
if(lavc_param->gray) avctx->flags|= CODEC_FLAG_GRAY;
-#ifdef CODEC_FLAG2_FAST
avctx->flags2|= lavc_param->fast;
-#endif
avctx->codec_tag= sh->format;
avctx->stream_codec_tag= sh->video.fccHandler;
avctx->idct_algo= lavc_param->idct_algo;
@@ -306,37 +291,37 @@ static int init(sh_video_t *sh){
/* SVQ3 extradata can show up as sh->ImageDesc if demux_mov is used, or
in the phony AVI header if demux_lavf is used. The first case is
handled here; the second case falls through to the next section. */
- if (sh->ImageDesc) {
- avctx->extradata_size = (*(int*)sh->ImageDesc) - sizeof(int);
- avctx->extradata = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
- memcpy(avctx->extradata, ((int*)sh->ImageDesc)+1, avctx->extradata_size);
- break;
- }
- /* fallthrough */
+ if (sh->ImageDesc) {
+ avctx->extradata_size = (*(int*)sh->ImageDesc) - sizeof(int);
+ avctx->extradata = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
+ memcpy(avctx->extradata, ((int*)sh->ImageDesc)+1, avctx->extradata_size);
+ break;
+ }
+ /* fallthrough */
case mmioFOURCC('A','V','R','n'):
case mmioFOURCC('M','J','P','G'):
/* AVRn stores huffman table in AVI header */
/* Pegasus MJPEG stores it also in AVI header, but it uses the common
MJPG fourcc :( */
- if (!sh->bih || sh->bih->biSize <= sizeof(BITMAPINFOHEADER))
- break;
- avctx->flags |= CODEC_FLAG_EXTERN_HUFF;
- avctx->extradata_size = sh->bih->biSize-sizeof(BITMAPINFOHEADER);
- avctx->extradata = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
- memcpy(avctx->extradata, sh->bih+1, avctx->extradata_size);
+ if (!sh->bih || sh->bih->biSize <= sizeof(BITMAPINFOHEADER))
+ break;
+ avctx->flags |= CODEC_FLAG_EXTERN_HUFF;
+ avctx->extradata_size = sh->bih->biSize-sizeof(BITMAPINFOHEADER);
+ avctx->extradata = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
+ memcpy(avctx->extradata, sh->bih+1, avctx->extradata_size);
#if 0
- {
- int x;
- uint8_t *p = avctx->extradata;
-
- for (x=0; x<avctx->extradata_size; x++)
- mp_msg(MSGT_DECVIDEO, MSGL_INFO,"[%x] ", p[x]);
- mp_msg(MSGT_DECVIDEO, MSGL_INFO,"\n");
- }
+ {
+ int x;
+ uint8_t *p = avctx->extradata;
+
+ for (x=0; x<avctx->extradata_size; x++)
+ mp_msg(MSGT_DECVIDEO, MSGL_INFO,"[%x] ", p[x]);
+ mp_msg(MSGT_DECVIDEO, MSGL_INFO,"\n");
+ }
#endif
- break;
+ break;
case mmioFOURCC('R', 'V', '1', '0'):
case mmioFOURCC('R', 'V', '1', '3'):
@@ -347,27 +332,27 @@ static int init(sh_video_t *sh){
/* only 1 packet per frame & sub_id from fourcc */
avctx->extradata_size= 8;
avctx->extradata = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
- ((uint32_t*)avctx->extradata)[0] = 0;
- ((uint32_t*)avctx->extradata)[1] =
- (sh->format == mmioFOURCC('R', 'V', '1', '3')) ? 0x10003001 : 0x10000000;
+ ((uint32_t*)avctx->extradata)[0] = 0;
+ ((uint32_t*)avctx->extradata)[1] =
+ (sh->format == mmioFOURCC('R', 'V', '1', '3')) ? 0x10003001 : 0x10000000;
} else {
- /* has extra slice header (demux_rm or rm->avi streamcopy) */
- avctx->extradata_size = sh->bih->biSize-sizeof(BITMAPINFOHEADER);
- avctx->extradata = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
- memcpy(avctx->extradata, sh->bih+1, avctx->extradata_size);
- }
- avctx->sub_id= AV_RB32(avctx->extradata+4);
+ /* has extra slice header (demux_rm or rm->avi streamcopy) */
+ avctx->extradata_size = sh->bih->biSize-sizeof(BITMAPINFOHEADER);
+ avctx->extradata = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
+ memcpy(avctx->extradata, sh->bih+1, avctx->extradata_size);
+ }
+ avctx->sub_id= AV_RB32(avctx->extradata+4);
// printf("%X %X %d %d\n", extrahdr[0], extrahdr[1]);
break;
default:
- if (!sh->bih || sh->bih->biSize <= sizeof(BITMAPINFOHEADER))
- break;
- avctx->extradata_size = sh->bih->biSize-sizeof(BITMAPINFOHEADER);
- avctx->extradata = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
- memcpy(avctx->extradata, sh->bih+1, avctx->extradata_size);
- break;
+ if (!sh->bih || sh->bih->biSize <= sizeof(BITMAPINFOHEADER))
+ break;
+ avctx->extradata_size = sh->bih->biSize-sizeof(BITMAPINFOHEADER);
+ avctx->extradata = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
+ memcpy(avctx->extradata, sh->bih+1, avctx->extradata_size);
+ break;
}
/* Pass palette to codec */
if (sh->bih && (sh->bih->biBitCount <= 8)) {
@@ -381,10 +366,10 @@ static int init(sh_video_t *sh){
/* Palette size in biClrUsed */
memcpy(avctx->palctrl->palette, sh->bih+1,
FFMIN(sh->bih->biClrUsed * 4, AVPALETTE_SIZE));
- }
+ }
if(sh->bih)
- avctx->bits_per_coded_sample= sh->bih->biBitCount;
+ avctx->bits_per_coded_sample= sh->bih->biBitCount;
if(lavc_param->threads > 1)
avcodec_thread_init(avctx, lavc_param->threads);
@@ -402,13 +387,13 @@ static int init(sh_video_t *sh){
static void uninit(sh_video_t *sh){
vd_ffmpeg_ctx *ctx = sh->context;
AVCodecContext *avctx = ctx->avctx;
-
+
if(sh->opts->lavc_param.vstats){
int i;
for(i=1; i<32; i++){
mp_msg(MSGT_DECVIDEO, MSGL_INFO,"QP: %d, count: %d\n", i, ctx->qp_stat[i]);
}
- mp_msg(MSGT_DECVIDEO, MSGL_INFO,MSGTR_MPCODECS_ArithmeticMeanOfQP,
+ mp_msg(MSGT_DECVIDEO, MSGL_INFO,MSGTR_MPCODECS_ArithmeticMeanOfQP,
ctx->qp_sum / avctx->coded_frame->coded_picture_number,
1.0/(ctx->inv_qp_sum / avctx->coded_frame->coded_picture_number)
);
@@ -426,12 +411,12 @@ static void uninit(sh_video_t *sh){
av_freep(&avctx);
av_freep(&ctx->pic);
if (ctx)
- free(ctx);
+ free(ctx);
}
static void draw_slice(struct AVCodecContext *s,
const AVFrame *src, int offset[4],
- int y, int type, int height){
+ int y, int type, int height){
sh_video_t * sh = s->opaque;
uint8_t *source[3]= {src->data[0] + offset[0], src->data[1] + offset[1], src->data[2] + offset[2]};
#if 0
@@ -442,18 +427,18 @@ static void draw_slice(struct AVCodecContext *s,
uint8_t *skip= &s->coded_frame->mbskip_table[(y>>4)*skip_stride];
int threshold= s->coded_frame->age;
if(s->pict_type!=B_TYPE){
- for(i=0; i*16<width+16; i++){
+ for(i=0; i*16<width+16; i++){
if(i*