diff options
-rw-r--r-- | DOCS/man/hu/mplayer.1 | 14 | ||||
-rw-r--r-- | DOCS/xml/hu/encoding-guide.xml | 4 | ||||
-rw-r--r-- | DOCS/xml/hu/faq.xml | 63 | ||||
-rw-r--r-- | DOCS/xml/hu/install.xml | 4 | ||||
-rw-r--r-- | DOCS/xml/hu/usage.xml | 58 | ||||
-rw-r--r-- | Makefile | 59 | ||||
-rwxr-xr-x | configure | 1 | ||||
-rw-r--r-- | help/help_mp-de.h | 2 | ||||
-rw-r--r-- | libmpcodecs/vd_ffmpeg.c | 401 | ||||
-rw-r--r-- | libvo/old_vo_defines.h | 2 | ||||
-rw-r--r-- | libvo/video_out.c | 60 | ||||
-rw-r--r-- | libvo/video_out.h | 4 | ||||
-rw-r--r-- | libvo/vo_direct3d.c | 53 | ||||
-rw-r--r-- | libvo/vo_xv.c | 60 | ||||
-rw-r--r-- | libvo/vo_xvmc.c | 21 | ||||
-rw-r--r-- | libvo/x11_common.c | 26 | ||||
-rw-r--r-- | libvo/x11_common.h | 3 |
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> @@ -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) @@ -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); |