Projects
Essentials
MPlayer
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 102
View file
MPlayer.changes
Changed
@@ -1,4 +1,9 @@ ------------------------------------------------------------------- +Mon Dec 18 07:37:22 UTC 2017 - olaf@aepfle.de + +- update to version 1.2.r38008 + +------------------------------------------------------------------- Thu Feb 23 10:54:28 UTC 2017 - scarabeus@opensuse.org - Fix mpg123 dependency
View file
MPlayer.spec
Changed
@@ -186,17 +186,15 @@ %{?_without_vorbis: %{expand: %%global build_vorbis 0}} Name: MPlayer -%define rversion 1.2 -%define rrelease r%{revision} -Version: %{rversion}.%{rrelease} -Release: 1 +Version: 1.2.r38008 +Release: 0 License: GPL-2.0+ Summary: Multimedia Player Summary(de): Multimedia-Abspielprogramm Url: http://www.mplayerhq.hu Group: Productivity/Multimedia/Video/Players ## svn://svn.mplayerhq.hu/mplayer/trunk -Source0: MPlayer-%{rversion}.%{rrelease}.tar.bz2 +Source0: %{name}-%{version}.tar.xz Source1: http://www1.mplayerhq.hu/MPlayer/skins/Blue-%{blue_version}.tar.bz2 Source2: http://www1.mplayerhq.hu/MPlayer/skins/Clearlooks-%{clearlooks_version}.tar.bz2 Patch1: MPlayer-1.0rc4-warn.patch @@ -483,7 +481,7 @@ and MPlayer implementation details. %prep -%setup -n MPlayer-%{rversion}.%{rrelease} -q -a 1 -a 2 +%setup -q -a 1 -a 2 %patch1 %patch2 %patch3
View file
MPlayer-1.2.r37916.tar.bz2/.gitignore
Deleted
@@ -1,59 +0,0 @@ -*.[od] -*.exe -*.ho -codec-cfg -codec-cfg-test -codecs2html -codecs.conf.h -config.* -cpuinfo -ffmpeg -gmplayer -help_mp.h -mencoder -mplayer -tags -TAGS -version.h -debian/changelog -debian/files -debian/mplayer-dbg/ -debian/mplayer-doc/ -debian/mplayer-gui/ -debian/*.debhelper -debian/*.debhelper.log -debian/*.substvars -DOCS/codecs-status.html -DOCS/HTML/ -DOCS/HTML-single/ -DOCS/tech/doxygen -DOCS/xml/html-chunk.xsl -DOCS/xml/html-single.xsl -DOCS/xml/xml.mak -DOCS/xml/*/main.xml -drivers/mga_vid_test -drivers/tdfx_vid_test -ffmpeg/ -libdvdnav/ -libdvdread4/ -libvo/aspecttest -loader/qtx/list -loader/qtx/qtxload -TOOLS/alaw-gen -TOOLS/alaw.dat -TOOLS/alaw.out -TOOLS/asfinfo -TOOLS/avi-fix -TOOLS/avisubdump -TOOLS/bmovl-test -TOOLS/compare -TOOLS/cpuinfo -TOOLS/dump_mp4 -TOOLS/fastmemcpybench -TOOLS/modify_reg -TOOLS/movinfo -TOOLS/netstream -TOOLS/subrip -TOOLS/vivodump -vidix/pci_*.[ch] -vidix/dhahelperwin/dhahelper.sys
View file
MPlayer-1.2.r37916.tar.bz2/Changelog -> MPlayer-1.2.r38008.tar.xz/Changelog
Changed
@@ -29,6 +29,11 @@ GUI: * No limitation on the number of entries in a font description file * Dramatic speedup of scanning font description files + * Playback improvements for cue sheet playlists + * Implementation of audio playback utilizing ReplayGain data + * New symbol character 'g' and new dynamic label variable $g + * Skins can leave current volume unchanged at startup + * New configuration file: gui.gain 1.3.0: "worksforme" February 16, 2016
View file
MPlayer-1.2.r37916.tar.bz2/DOCS/man/de/mplayer.1 -> MPlayer-1.2.r38008.tar.xz/DOCS/man/de/mplayer.1
Changed
@@ -33,7 +33,7 @@ .\" Titel .\" -------------------------------------------------------------------------- . -.TH MPlayer 1 "13.02.2015" "Das MPlayer Projekt" +.TH MPlayer 1 "10.10.2017" "Das MPlayer Projekt" . .SH NAME mplayer \- Movie Player @@ -624,6 +624,8 @@ gui_video_out_pos_y, load_fullscreen (ja/nein), playbar (aktiviert/deaktiviert), +replay_gain (aktiviert/deaktiviert), +replay_gain_adjustment (-30..10), show_videowin (ja/nein), vf_lavc .RB ( "vf lavc" ") (nur mit DXR3)," @@ -11437,61 +11439,6 @@ Decodierungszeitstempels (DTS) für jeden vorhandenen Stream (Verzögerung von Demuxing zu Decodierung). . -.TP -. -. -.\" -------------------------------------------------------------------------- -.\" Dateien -.\" -------------------------------------------------------------------------- -. -.SH DATEIEN -.TP -/usr/\:local/\:etc/\:mplayer/\:mplayer.conf -systemweite Einstellungen -. -.TP -~/.mplayer/\:config -Benutzereinstellungen -. -.TP -~/.mplayer/\:input.conf -Eingabebelegungen (siehe '\-input keylist' für eine vollständige Auflistung -aller Tastennamen) -. -.TP -~/.mplayer/\:gui.conf -Konfigurationsdatei für die GUI -. -.TP -~/.mplayer/\:gui.history -Verzeichnis-Verlaufsdatei für die GUI -. -.TP -~/.mplayer/\:gui.pl -Playlist für die GUI -. -.TP -~/.mplayer/\:gui.url -URL-Liste für die GUI -. -.TP -~/.mplayer/\:font/ -Schriftartenverzeichnis (es müssen sich eine Datei font.desc und Dateien mit -der Erweiterung .RAW in dem Verzeichnis befinden) -. -.TP -~/.mplayer/\:DVDkeys/ -zwischengespeicherte CSS-Schlüssel -. -.TP -Angenommen, dass /Pfad/\:zum/\:film.avi abgespielt wird, -sucht MPlayer nach Untertiteldateien in folgender Reihenfolge: -.RS -/Pfad/\:zum/\:film.sub -.br -~/.mplayer/\:sub/\:film.sub -.RE -.PD 1 . . .\" -------------------------------------------------------------------------- @@ -11737,10 +11684,10 @@ . . .\" -------------------------------------------------------------------------- -.\" Files +.\" Dateien .\" -------------------------------------------------------------------------- . -.SH FILES +.SH DATEIEN . .TP /usr/\:local/\:etc/\:mplayer/\:mplayer.conf @@ -11767,33 +11714,38 @@ GUI-Konfigurationsdatei . .TP +~/.mplayer/\:gui.gain +Für Audio-Dateien, die keine Information zur Lautstärke-Anpassung (Replay +Gain) enthalten, kann man eine Zeile mit Verstärkung oder Verminderung und +Dateinamen (durch ein Leerzeichen getrennt) eintragen, z. B. +.br + ++1.50 /home/ich/Musik/Lied.mp3 +. +.TP +~/.mplayer/\:gui.history +GUI-Verzeichnisverlauf +. +.TP ~/.mplayer/\:gui.pl GUI-Playliste . .TP +~/.mplayer/\:gui.url +GUI-URL-Liste +. +.TP ~/.mplayer/\:font/ Font-Verzeichnis (Es müssen eine font.desc-Datei und Dateien mit .RAW-Erweiterung existieren) . .TP ~/.mplayer/\:DVDkeys/ -Cacheverzeichnis für CSS-Schlüssel -. -.TP -Angenommen, das /path/\:to/\:movie.avi abgespielt werden soll, sucht -MPlayer in folgender Reichenfolge nach Untertiteldateien: -.RS -/path/\:to/\:movie.sub -.br -~/.mplayer/\:sub/\:movie.sub -.br -~/.mplayer/\:default.sub +zwischengespeicherte CSS-Schlüssel .RE .PD 1 . . -. -. .\" -------------------------------------------------------------------------- .\" Beispiele .\" --------------------------------------------------------------------------
View file
MPlayer-1.2.r37916.tar.bz2/DOCS/man/en/mplayer.1 -> MPlayer-1.2.r38008.tar.xz/DOCS/man/en/mplayer.1
Changed
@@ -1,4 +1,4 @@ -.\" $Revision: 37907 $ +.\" $Revision: 37994 $ .\" MPlayer (C) 2000-2017 MPlayer Team .\" This man page was/is done by Gabucino, Diego Biurrun, Jonas Jermann . @@ -31,7 +31,7 @@ .\" Title .\" -------------------------------------------------------------------------- . -.TH MPlayer 1 "2015-02-13" "The MPlayer Project" "The Movie Player" +.TH MPlayer 1 "2017-10-10" "The MPlayer Project" "The Movie Player" . .SH NAME mplayer \- movie player @@ -608,6 +608,8 @@ gui_video_out_pos_y, load_fullscreen (yes/no), playbar (enable/disable), +replay_gain (enable/disable), +replay_gain_adjustment (-30..10), show_videowin (yes/no), vf_lavc .RB ( "vf lavc" ") (DXR3 only)," @@ -12202,6 +12204,14 @@ GUI configuration file . .TP +~/.mplayer/\:gui.gain +for audio files not containing ReplayGain data, add a line with replay gain +and filename separated by a space character, e.g. +.br + ++1.50 /home/me/music/Song.mp3 +. +.TP ~/.mplayer/\:gui.history GUI directory history .
View file
MPlayer-1.2.r37916.tar.bz2/DOCS/xml/cs/bugreports.xml -> MPlayer-1.2.r38008.tar.xz/DOCS/xml/cs/bugreports.xml
Changed
@@ -232,7 +232,7 @@ <para> Bude potřeba připojit log, konfiguraci nebo vzorky souborů ke svému hlášení chyb. Pokud jsou některé z nich opravdu velké, pak je raději nahrajte na náš -<ulink url="ftp://upload.mplayerhq.hu/incoming/">FTP server</ulink> +<ulink url="http://streams.videolan.org/upload/">HTTP server</ulink> v komprimovaném formátu (preferujeme gzip a bzip2) a do zprávy zahrňte pouze cestu a název souboru. Naše konference mají limit velikosti zprávy 80k, pokud máte něco většího, musíte to zkomprimovat a nahrát na FTP. @@ -386,7 +386,7 @@ <para> Pokud se problém vztahuje k jednomu nebo více souborům, pak prosím nahrajte potížisty na: -<ulink url="ftp://upload.mplayerhq.hu/incoming/"/> +<ulink url="http://streams.videolan.org/upload/"/> </para> <para>
View file
MPlayer-1.2.r37916.tar.bz2/DOCS/xml/de/bugreports.xml -> MPlayer-1.2.r38008.tar.xz/DOCS/xml/de/bugreports.xml
Changed
@@ -194,7 +194,7 @@ Du wirst wahrscheinlich Logdateien, Konfigurationsinformationen und Beispieldateien in deinen Fehlerbericht aufnehmen müssen. Werden einige von ihnen ziemlich groß, ist es besser, wenn du sie auf unseren - <ulink url="ftp://upload.mplayerhq.hu/incoming/">FTP-Server</ulink> + <ulink url="http://streams.videolan.org/upload/">HTTP-Server</ulink> hochlädst, und zwar in komprimierter Form (gzip und bzip2 bevorzugt). Gib dann in deinem Fehlerbericht nur den Pfad- und den Dateinamen an. Unsere Mailinglisten haben ein Nachrichten-Größenlimit von 80k, wenn du etwas größeres hast, musst du es @@ -363,7 +363,7 @@ <para> Wenn dein Problem speziell mit einer oder mehreren Dateien zu tun hat, lade diese bitte hoch nach: - <ulink url="ftp://upload.mplayerhq.hu/incoming/"/> + <ulink url="http://streams.videolan.org/upload/"/> </para> <para>
View file
MPlayer-1.2.r37916.tar.bz2/DOCS/xml/de/skin.xml -> MPlayer-1.2.r38008.tar.xz/DOCS/xml/de/skin.xml
Changed
@@ -534,6 +534,12 @@ <literal>default</literal> - Voreinstellung des Potentiometers (im Bereich <literal>0</literal> bis <literal>100</literal>) </para> + <para> + (Für die Nachricht <literal>evSetVolume</literal> ist auch + ein einfaches Bindestrich-Minus als Wert erlaubt. Dieses + bewirkt, dass die aktuell eingestellte Lautstärke nicht + verändert wird.) + </para> </listitem> <listitem> <para> @@ -784,6 +790,12 @@ </entry> </row> <row> + <entry>$g</entry> + <entry> + Buchstabe <keycap>g</keycap> (wenn die Lautstärke-Anpassung aktiv ist) + </entry> + </row> + <row> <entry>$x</entry> <entry>Videobreite</entry> </row> @@ -988,6 +1000,7 @@ <row><entry><keycap>m</keycap></entry><entry>Mono-Sound</entry></row> <row><entry><keycap>t</keycap></entry><entry>Stereo-Sound</entry></row> <row><entry><keycap>r</keycap></entry><entry>Surround-Sound</entry></row> + <row><entry><keycap>g</keycap></entry><entry>Lautstärke-Anpassung (Replay Gain)</entry></row> <row><entry><keycap>Leerzeichen</keycap></entry><entry>kein (bekannter) Stream</entry></row> <row><entry><keycap>f</keycap></entry><entry>Stream ist eine Datei</entry></row> <row><entry><keycap>a</keycap></entry><entry>Stream ist eine CD</entry></row>
View file
MPlayer-1.2.r37916.tar.bz2/DOCS/xml/en/bugreports.xml -> MPlayer-1.2.r38008.tar.xz/DOCS/xml/en/bugreports.xml
Changed
@@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- $Revision: 37252 $ --> +<!-- $Revision: 37918 $ --> <appendix id="bugreports"> <title>How to report bugs</title> @@ -237,7 +237,7 @@ <para> You may need to include log, configuration or sample files in your bug report. If some of them are quite big then it is better to upload them to our -<ulink url="ftp://upload.mplayerhq.hu/incoming/">FTP server</ulink> in a +<ulink url="http://streams.videolan.org/upload/">HTTP server</ulink> in a compressed format (gzip and bzip2 preferred) and include only the path and file name in your bug report. Our mailing lists have a message size limit of 80k, if you have something bigger you have to compress or upload it. @@ -391,7 +391,7 @@ <para> If your problem is specific to one or more files, then please upload the offender(s) to: -<ulink url="ftp://upload.mplayerhq.hu/incoming/"/> +<ulink url="http://streams.videolan.org/upload/"/> </para> <para>
View file
MPlayer-1.2.r37916.tar.bz2/DOCS/xml/en/skin.xml -> MPlayer-1.2.r38008.tar.xz/DOCS/xml/en/skin.xml
Changed
@@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- $Revision: 37501 $ --> +<!-- $Revision: 37992 $ --> <appendix id="skin"> <title><application>MPlayer</application> skin format</title> @@ -442,6 +442,10 @@ <listitem><para> <literal>default</literal> - default value for the potentiometer (in the range <literal>0</literal> to <literal>100</literal>) + </para><para> + (If message is <literal>evSetVolume</literal>, it's allowed to use a + plain hyphen-minus as value. This will cause the currently set volume to + remain unchanged.) </para></listitem> <listitem><para> <literal>X</literal>, <literal>Y</literal> - position for the potentiometer @@ -642,6 +646,10 @@ <entry>the <keycap>e</keycap> character (if playback is paused)</entry> </row> <row> + <entry>$g</entry> + <entry>the <keycap>g</keycap> character (if ReplayGain is active)</entry> + </row> + <row> <entry>$x</entry> <entry>video width</entry> </row> @@ -835,6 +843,7 @@ <row><entry><keycap>m</keycap></entry><entry>mono sound</entry></row> <row><entry><keycap>t</keycap></entry><entry>stereo sound</entry></row> <row><entry><keycap>r</keycap></entry><entry>surround sound</entry></row> + <row><entry><keycap>g</keycap></entry><entry>replay gain</entry></row> <row><entry><keycap>space</keycap></entry><entry>no (known)stream</entry></row> <row><entry><keycap>f</keycap></entry><entry>stream is a file</entry></row> <row><entry><keycap>a</keycap></entry><entry>stream is a CD</entry></row>
View file
MPlayer-1.2.r37916.tar.bz2/DOCS/xml/es/bugreports.xml -> MPlayer-1.2.r38008.tar.xz/DOCS/xml/es/bugreports.xml
Changed
@@ -104,7 +104,7 @@ <para> Necesita incluir un historial, archivos de configuración o muestras en su informe de error. Si alguno de estos es muy grande entonces es mejor subirlos a nuestro -<ulink url="ftp://upload.mplayerhq.hu/incoming/">servidor FTP</ulink> en un +<ulink url="http://streams.videolan.org/upload/">servidor HTTP</ulink> en un formato comprimido (gzip y bzip2 preferentemente) e incluir solo la ruta al nombre del archivo en su informe de error. Nuestras listas de correo tienen un límite en el tamaño del mensaje de 80k, si tiene algo más grande entonces deberá comprimirlo @@ -253,7 +253,7 @@ <para> Si su problema es específico con uno o más archivos, suba las víctimas a: -<ulink url="ftp://mplayerhq.hu/incoming/"/> +<ulink url="http://streams.videolan.org/upload/"/> </para> <para>
View file
MPlayer-1.2.r37916.tar.bz2/DOCS/xml/fr/bugreports.xml -> MPlayer-1.2.r38008.tar.xz/DOCS/xml/fr/bugreports.xml
Changed
@@ -248,7 +248,7 @@ <para> Vous pouvez avoir besoin d'inclure des fichiers de log, de configuration ou d'échantillon. Si certains sont très gros alors il vaut mieux les uploader -sur notre <ulink url="ftp://upload.mplayerhq.hu/incoming/">serveur FTP</ulink> +sur notre <ulink url="http://streams.videolan.org/upload/">serveur HTTP</ulink> en format compressé (gzip et bzip2 préférés) et indiquer uniquement leur chemin et nom dans le rapport de bogue. Nos listes de diffusion ont une taille de message limite de 80k, si vous @@ -398,7 +398,7 @@ <para> Si votre problème est spécifique à un ou plusieurs fichiers, alors merci d'uploader le(s) fautif(s) sur : -<ulink url="ftp://upload.mplayerhq.hu/incoming/"/> +<ulink url="http://streams.videolan.org/upload/"/> </para> <para>
View file
MPlayer-1.2.r37916.tar.bz2/DOCS/xml/hu/bugreports.xml -> MPlayer-1.2.r38008.tar.xz/DOCS/xml/hu/bugreports.xml
Changed
@@ -237,7 +237,7 @@ <para> A hibajelentésedhez csatolnod kell a log-ot, konfigurációs vagy minta fájlokat. Ha ezek közül valamelyik nagy, jobb ha feltöltöd az -<ulink url="ftp://upload.mplayerhq.hu/incoming/">FTP szerverünkre</ulink> tömörített +<ulink url="http://streams.videolan.org/upload/">HTTP szerverünkre</ulink> tömörített formátumban (gzip és bzip2 a javasolt) és csak az elérési utat és a fájl nevet írod bele a hiba jelentésedbe. A levelezési listáinkon az üzenet mérete maximum 80k lehet, ha ennél nagyobb fájlod van, tömörítened kell, vagy feltöltened. @@ -390,7 +390,7 @@ <para> Ha a probléma egy vagy több fájl esetén specifikus, kérlek töltsd fel ide: -<ulink url="ftp://upload.mplayerhq.hu/incoming/"/> +<ulink url="http://streams.videolan.org/upload/"/> </para> <para>
View file
MPlayer-1.2.r37916.tar.bz2/DOCS/xml/it/bugreports.xml -> MPlayer-1.2.r38008.tar.xz/DOCS/xml/it/bugreports.xml
Changed
@@ -242,7 +242,7 @@ Potrebbe servire che tu includa nel tuo rapporto sul bug registrazioni, configurazioni o file di esempio. Se alcune di queste cose sono abbastanza grandi, è meglio caricarle sul nostro -<ulink url="ftp://upload.mplayerhq.hu/incoming/">server FTP</ulink> in +<ulink url="http://streams.videolan.org/upload/">server HTTP</ulink> in un formato compresso (si preferiscono gzip e bzip2) e inserisci nel rapporto solo il nome e il percorso del file. Le nostre mailing list hanno un limite sulla dimensione di 80k, se hai qualcosa di più grande devi comprimerlo o @@ -398,7 +398,7 @@ <para> Se il tuo problema è specifico per uno o più file, allora per favore carica quello/i incriminato/i in: -<ulink url="ftp://upload.mplayerhq.hu/incoming/"/> +<ulink url="http://streams.videolan.org/upload/"/> </para> <para>
View file
MPlayer-1.2.r37916.tar.bz2/DOCS/xml/pl/bugreports.xml -> MPlayer-1.2.r38008.tar.xz/DOCS/xml/pl/bugreports.xml
Changed
@@ -252,7 +252,7 @@ Może zajść potrzeba dołączenia logu, konfiguracji lub przykładowego pliku w Twoim zgłoszeniu błędu. Jeżeli któryś z nich ma duży rozmiar, lepiej załadować go na -nasz <ulink url="ftp://upload.mplayerhq.hu/incoming/">serwer FTP</ulink> +nasz <ulink url="http://streams.videolan.org/upload/">serwer HTTP</ulink> w skompresowanej postaci (gzip i bzip2 są preferowanymi formatami) i załączyć tylko ścieżkę i nazwę pliku do zgłoszenia błędu. Nasza lista ma ustawiony limit rozmiaru każdej wiadomości na 80k. Jeżeli potrzebujesz wysłać coś większego, @@ -411,7 +411,7 @@ <para> Jeżeli Twój problem jest specyficzny dla jednego albo wielu plików, załaduj winowajcę(ów) na: -<ulink url="ftp://upload.mplayerhq.hu/incoming/"/> +<ulink url="http://streams.videolan.org/upload/"/> </para> <para>
View file
MPlayer-1.2.r37916.tar.bz2/DOCS/xml/ru/bugreports.xml -> MPlayer-1.2.r38008.tar.xz/DOCS/xml/ru/bugreports.xml
Changed
@@ -235,7 +235,7 @@ <para> Вам необходимо включить лог, конфигурацию или примеры файлов в сообщение об ошибке. Если что-то из этого большое, то лучше загрузить это на наш -<ulink url="ftp://upload.mplayerhq.hu/incoming/">FTP сервер</ulink> +<ulink url="http://streams.videolan.org/upload/">HTTP сервер</ulink> в сжатом виде (предпочтительно gzip или bzip2) и включить в сообщение об ошибке только путь и имя файла. На наших рассылках стоит ограничение размера сообщения в 80КБ. Если у Вас что-то большее, то сожмите или загрузите это. @@ -384,7 +384,7 @@ <para> Если проблема специфична для одного или нескольких файлов, пожалуйста, загрузите проблемные файлы на: -<ulink url="ftp://mplayerhq.hu/incoming/"/> +<ulink url="http://streams.videolan.org/upload/"/> </para> <para>
View file
MPlayer-1.2.r37916.tar.bz2/DOCS/xml/zh_CN/bugreports.xml -> MPlayer-1.2.r38008.tar.xz/DOCS/xml/zh_CN/bugreports.xml
Changed
@@ -210,7 +210,7 @@ <para> 你可能要在你的错误报告中包含日志,配置或例子文件。如果他们中一些非常大, 最好把它压缩(请尽量使用gzip或bzip2)并提交到我们的 -<ulink url="ftp://upload.mplayerhq.hu/incoming/">FTP服务器</ulink> +<ulink url="http://streams.videolan.org/upload/">HTTP服务器</ulink> 上并且在你的错误报告中只包含路径及文件名称。我们的邮件列表有80k的信息限制, 如果你有更大的附件,你不得不压缩后提交。 </para> @@ -359,7 +359,7 @@ <para> 如果你的问题只针对一个或更多文件,请把他们上传到: -<ulink url="ftp://upload.mplayerhq.hu/incoming/"/> +<ulink url="http://streams.videolan.org/upload/"/> </para> <para>
View file
MPlayer-1.2.r37916.tar.bz2/Makefile -> MPlayer-1.2.r38008.tar.xz/Makefile
Changed
@@ -68,7 +68,6 @@ # These filters use private headers and do not work with shared FFmpeg. SRCS_COMMON-$(FFMPEG_A) += libmpcodecs/vf_fspp.c \ - libmpcodecs/vf_mcdeint.c \ libmpcodecs/vf_qp.c \ libmpcodecs/vf_spp.c \ libmpcodecs/vf_uspp.c \
View file
MPlayer-1.2.r37916.tar.bz2/configure -> MPlayer-1.2.r38008.tar.xz/configure
Changed
@@ -869,6 +869,7 @@ def_path_max_check="#define CONFIG_PATH_MAX_CHECK 0" def_priority="#undef CONFIG_PRIORITY" def_pthread_cache="#undef PTHREAD_CACHE" +def_simd_align_32='#define HAVE_SIMD_ALIGN_32 0' shmem=no option_value(){ @@ -1554,7 +1555,12 @@ libavdecoders_all=$(list_subparts DEC decoder codec/allcodecs.c) libavencoders_all=$(list_subparts ENC encoder codec/allcodecs.c) libavparsers_all=$(list_subparts PARSER parser codec/allcodecs.c) -libavhwaccels_all=$(list_subparts HWACCEL hwaccel codec/allcodecs.c) +test $? -eq 0 && _list_subparts=found || _list_subparts="not found" +echores "$_list_subparts" + +echocheck "ffmpeg/libavcodec/hwaccels.h" +libavhwaccels_all=$(list_subparts_extern AVHWAccel hwaccel codec/hwaccels.h) +test $? -eq 0 || libavhwaccels_all=$(list_subparts HWACCEL hwaccel codec/allcodecs.c) test $? -eq 0 && _list_subparts=found || _list_subparts="not found" echores "$_list_subparts" @@ -1579,6 +1585,14 @@ test $? -eq 0 && _list_subparts=found || _list_subparts="not found" echores "$_list_subparts" +# a white space separated list (1st arg) +# has an item with the given value (2nd arg) +contains_item() { + for item in $1; do + test "$item" = "$2" && return + done + false +} filter_out_component() { eval list=\$libav${1}s type=$(echo $1 | toupper) @@ -1600,9 +1614,10 @@ libavprotocols=$(echo $libavprotocols_all) libavfilters=$(echo $libavfilters_all) -libavdecoders=$(filter_out_component decoder 'LIB[A-Z0-9_]* H264_QSV MJPEG_QSV MPEG2_MMAL MPEG4_MMAL MPEG2_QSV HEVC_QSV VC1_MMAL VC1_QSV H264_MMAL H264_MEDIACODEC HEVC_MEDIACODEC H264_CUVID HEVC_CUVID VC1_CUVID VP8_CUVID VP9_CUVID H263_CUVID MJPEG_CUVID MPEG1_CUVID MPEG2_CUVID MPEG4_CUVID VP8_MEDIACODEC VP9_MEDIACODEC MPEG4_MEDIACODEC [A-Z0-9_]*_AT') -libavencoders=$(filter_out_component encoder 'LIB[A-Z0-9_]* H264_QSV MJPEG_QSV MPEG2_QSV HEVC_QSV VC1_MMAL VC1_QSV NVENC[A-Z0-9_]* H264_NVENC[A-Z0-9_]* HEVC_NVENC[A-Z0-9_]* HAP H264_VIDEOTOOLBOX H264_VAAPI HEVC_VAAPI MJPEG_VAAPI H264_OMX MPEG4_OMX [A-Z0-9_]*_AT') -libavdemuxers=$(filter_out_component demuxer 'AVISYNTH LIB[A-Z0-9_]* REDIR') +libavdecoders=$(filter_out_component decoder 'LIB[A-Z0-9_]* H264_QSV MJPEG_QSV MPEG2_MMAL MPEG4_MMAL MPEG2_QSV HEVC_QSV VC1_MMAL VC1_QSV H264_MMAL H264_MEDIACODEC HEVC_MEDIACODEC MPEG2_MEDIACODEC H264_CUVID HEVC_CUVID VC1_CUVID VP8_CUVID VP9_CUVID H263_CUVID MJPEG_CUVID MPEG1_CUVID MPEG2_CUVID MPEG4_CUVID VP8_MEDIACODEC VP9_MEDIACODEC MPEG4_MEDIACODEC VP8_QSV [A-Z0-9_]*_AT [A-Z0-9]*_RKMPP [A-Z0-9]*_V4L2M2M') +libavencoders=$(filter_out_component encoder 'LIB[A-Z0-9_]* H264_QSV MJPEG_QSV MPEG2_QSV HEVC_QSV VC1_MMAL VC1_QSV NVENC[A-Z0-9_]* H264_NVENC[A-Z0-9_]* HEVC_NVENC[A-Z0-9_]* HAP [A-Z0-9]*_VIDEOTOOLBOX H264_VAAPI HEVC_VAAPI MJPEG_VAAPI MPEG2_VAAPI VP8_VAAPI VP9_VAAPI H264_OMX MPEG4_OMX [A-Z0-9_]*_AT [A-Z0-9]*_V4L2M2M [A-Z0-9]*_AMF') +libavbsfs=$(filter_out_component bsf 'TRACE_HEADERS [A-Z0-9_]*_METADATA H264_REDUNDANT_PPS') +libavdemuxers=$(filter_out_component demuxer 'AVISYNTH DASH LIB[A-Z0-9_]* REDIR') libavmuxers=$(filter_out_component muxer 'CHROMAPRINT LIB[A-Z0-9_]* RTP RTSP SAP') libavprotocols=$(filter_out_component protocol 'BLURAY FFRTMPCRYPT HTTPS LIB[A-Z0-9_]* TLS TLS_GNUTLS TLS_OPENSSL TLS_SECURETRANSPORT TLS_SCHANNEL') libavfilters=$(filter_out_component filter 'FREI0R[A-Z0-9_]* LIB[A-Z0-9_]* MP OCV') @@ -2753,6 +2768,7 @@ fi fi +test "$_avx" != no && def_simd_align_32='#define HAVE_SIMD_ALIGN_32 1' # endian testing echocheck "byte order" @@ -2859,6 +2875,10 @@ CFLAGS="-D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 $CFLAGS" && HOSTCFLAGS="-D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 $HOSTCFLAGS" +if cygwin; then + CFLAGS="-D_XOPEN_SOURCE=600 $CFLAGS" +fi + if test "$cc_vendor" = "gnu" ; then cflag_check -fno-tree-vectorize && CFLAGS="$CFLAGS -fno-tree-vectorize" cflag_check -Wundef && WARNFLAGS="-Wundef $WARNFLAGS" @@ -3085,11 +3105,13 @@ fi fi if test $_yasm ; then - def_yasm='#define HAVE_YASM 1' + def_yasm='#define HAVE_YASM 1 +#define HAVE_X86ASM 1' have_yasm="yes" echores "$_yasm" else - def_yasm='#define HAVE_YASM 0' + def_yasm='#define HAVE_YASM 0 +#define HAVE_X86ASM 0' have_yasm="no" echores "no" fi @@ -3108,7 +3130,8 @@ else _yasm='' - def_yasm='#define HAVE_YASM 0' + def_yasm='#define HAVE_YASM 0 +#define HAVE_X86ASM 0' have_yasm="no" fi #if x86 @@ -3293,6 +3316,8 @@ test "$_iwmmxt" = yes && cpuexts="IWMMXT $cpuexts" test "$_vis" = yes && cpuexts="VIS $cpuexts" test "$_mvi" = yes && cpuexts="MVI $cpuexts" +cpuexts_external="" +test "$have_yasm" = yes && cpuexts_external="$cpuexts" # Checking kernel version... if x86_32 && linux ; then @@ -3872,7 +3897,7 @@ echocheck "aligned malloc" aligned_malloc=no def_aligned_malloc='#define HAVE_ALIGNED_MALLOC 0' -statement_check malloc.h '_aligned_malloc(0)' && aligned_malloc=yes && +statement_check malloc.h '_aligned_malloc(1, 32)' && aligned_malloc=yes && def_aligned_malloc='#define HAVE_ALIGNED_MALLOC 1' echores "$aligned_malloc" @@ -4440,7 +4465,12 @@ fi if test "$_gnutls" = yes ; then def_gnutls='#define CONFIG_GNUTLS 1' - libavprotocols="$libavprotocols HTTPS_PROTOCOL TLS_GNUTLS_PROTOCOL" + libavprotocols="$libavprotocols HTTPS_PROTOCOL" + if contains_item "$libavprotocols_all" 'TLS_GNUTLS_PROTOCOL' ; then + libavprotocols="$libavprotocols TLS_GNUTLS_PROTOCOL" + else + libavprotocols="$libavprotocols TLS_PROTOCOL" + fi extra_cflags="$extra_cflags $($_pkg_config --cflags gnutls)" extra_ldflags="$extra_ldflags $($_pkg_config --libs gnutls)" else @@ -4451,7 +4481,12 @@ echocheck "OpenSSL" if test "$_openssl" = yes ; then def_openssl='#define CONFIG_OPENSSL 1' - libavprotocols="$libavprotocols HTTPS_PROTOCOL TLS_OPENSSL_PROTOCOL" + libavprotocols="$libavprotocols HTTPS_PROTOCOL" + if contains_item "$libavprotocols_all" 'TLS_OPENSSL_PROTOCOL' ; then + libavprotocols="$libavprotocols TLS_OPENSSL_PROTOCOL" + else + libavprotocols="$libavprotocols TLS_PROTOCOL" + fi extra_cflags="$extra_cflags $($_pkg_config --cflags openssl)" extra_ldflags="$extra_ldflags $($_pkg_config --libs openssl)" else @@ -5301,12 +5336,30 @@ echocheck "OpenJPEG (JPEG 2000) support" if test "$libopenjpeg" = auto ; then libopenjpeg=no - define_statement_check OPJ_STATIC openjpeg.h 'opj_dparameters_t dec_params; opj_set_default_decoder_parameters(&dec_params);opj_decode_with_info(0,0,0)' -lopenjpeg && libopenjpeg=yes + if test "$ffmpeg_a" = no ; then + res_comment="dynamic linking to libopenjpeg is irrelevant when using dynamic FFmpeg" + else + cat > $TMPC << EOF +#include <openjpeg.h> + +int main(void) { + opj_dparameters_t dec_params; opj_set_default_decoder_parameters(&dec_params); + return opj_decode(0,0,0); +} +EOF + if $_pkg_config --exists "libopenjp2 >= 2.1.0" ; then + inc_libopenjpeg=$($_pkg_config --silence-errors --cflags libopenjp2) + ld_libopenjpeg=$($_pkg_config --silence-errors --libs libopenjp2) + cc_check $inc_libopenjpeg $ld_libopenjpeg && + libopenjpeg=yes && + extra_cflags="$extra_cflags $inc_libopenjpeg" && + extra_ldflags="$extra_ldflags $ld_libopenjpeg" + fi + fi fi echores "$libopenjpeg" if test "$libopenjpeg" = yes ; then def_libopenjpeg='#define CONFIG_LIBOPENJPEG 1' - extra_ldflags="$extra_ldflags -lopenjpeg" libavdecoders="$libavdecoders LIBOPENJPEG_DECODER" libavencoders="$libavencoders LIBOPENJPEG_ENCODER" codecmodules="OpenJPEG $codecmodules" @@ -6321,6 +6374,7 @@ fi if test "$_freetype" = auto ; then + test -n "$ld_static" && _freetypeconfig="$_freetypeconfig --static" if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then cat > $TMPC << EOF #include <stdio.h> @@ -6504,7 +6558,7 @@ mplayer_encoders="$mplayer_encoders PNG_ENCODER" else def_zlib='#define CONFIG_ZLIB 0' - libavdecoders=$(filter_out_component decoder 'APNG FLASHSV FLASHSV2 PNG ZMBV ZLIB DXA EXR G2M RSCC SCREENPRESSO TDSC TSCC ZEROCODEC') + libavdecoders=$(filter_out_component decoder 'APNG FLASHSV FLASHSV2 PNG ZMBV ZLIB DXA EXR G2M MSCC RSCC SCREENPRESSO SRGC TDSC TSCC ZEROCODEC') libavencoders=$(filter_out_component encoder 'APNG FLASHSV FLASHSV2 PNG ZMBV ZLIB') fi echores "$_zlib" @@ -8233,7 +8287,7 @@ done if test -z "$chunk_xsl"; then - chunk_xsl=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/chunk.xsl + chunk_xsl=http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl echores "not found, using default" fake_chunk_xsl=yes
View file
MPlayer-1.2.r37916.tar.bz2/etc/codecs.conf -> MPlayer-1.2.r38008.tar.xz/etc/codecs.conf
Changed
@@ -2083,6 +2083,15 @@ out YUY2,UYVY out BGR32,BGR24,BGR15 +videocodec mtvmj + info "Morgan TVMJ LSI M-JPEG Codec" + status working + fourcc TVMJ,FLJP + driver vfw + dll "mmtvmj.dll" + out YUY2,UYVY + out BGR32,BGR24,BGR15 + videocodec mjpeg info "MainConcept Motion JPEG" status working @@ -2481,7 +2490,7 @@ fourcc dvh5,dvh6,dvh3 fourcc dvhd,dvsl,dv25,dc25 fourcc dvs1,dvh1,dvis,PDVC - fourcc IPDV,ipdv + fourcc IPDV,ipdv,dvrs,DVRS fourcc SL25,SLDV driver ffmpeg dll dvvideo @@ -3372,6 +3381,13 @@ dll "mwsc.dll" out BGR24 flip +videocodec ffscpr + status working + fourcc SCPR + driver ffmpeg + dll scpr + out BGRA,ARGB + videocodec screenpressor info "ScreenPressor Lossless Codec" status working @@ -3518,6 +3534,14 @@ dll "wavlor.dll" out BGR24 +videocodec fffoxmotion + info "FFmpeg foxmotion video" + status working + fourcc FMVC + driver ffmpeg + dll fmvc + out BGR24,BGRA,BGR15 + videocodec foxmotion info "fox motion video" status working @@ -3706,6 +3730,15 @@ dll "AvidQTAVUICodec.qtx" out YUY2 +videocodec qtaffinity + info "QuickTime affinity" + comment "requires -demuxer mov" + status working + fourcc ImJG + driver qtvideo + dll "AFFINITYVIDEOCODEC.QTx" + out BGR24 + videocodec qth263 info "Win32/QuickTime H.263" status crashing @@ -4014,7 +4047,6 @@ dll tscc2 out 444P -; sample videos: http://www.techsmith.com/products/camtasia/examplevideos.asp videocodec camtasia info "TechSmith Camtasia Screen Codec" status working
View file
MPlayer-1.2.r37916.tar.bz2/gui/app/cfg.c -> MPlayer-1.2.r38008.tar.xz/gui/app/cfg.c
Changed
@@ -16,6 +16,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#include <errno.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -89,6 +90,9 @@ gtkASS_t gtkASS; +int gtkReplayGainOn; +int gtkReplayGainAdjustment; + int gtkEnablePlayBar = True; int gtkLoadFullscreen; int gtkShowVideoWindow = True; @@ -108,6 +112,7 @@ char *fsHistory[5]; static const char gui_configuration[] = "gui.conf"; +static const char gui_gainlist[] = "gui.gain"; static const char gui_history[] = "gui.history"; static const char gui_playlist[] = "gui.pl"; static const char gui_urllist[] = "gui.url"; @@ -170,6 +175,9 @@ audio_equ_row(5, 0), audio_equ_row(5, 1), audio_equ_row(5, 2), audio_equ_row(5, 3), audio_equ_row(5, 4), audio_equ_row(5, 5), audio_equ_row(5, 6), audio_equ_row(5, 7), audio_equ_row(5, 8), audio_equ_row(5, 9), #undef audio_equ_row + { "replay_gain", >kReplayGainOn, CONF_TYPE_FLAG, 0, 0, 1, NULL }, + { "replay_gain_adjustment", >kReplayGainAdjustment, CONF_TYPE_INT, CONF_RANGE, -30, 10, NULL }, + { "playbar", >kEnablePlayBar, CONF_TYPE_FLAG, 0, 0, 1, NULL }, { "load_fullscreen", >kLoadFullscreen, CONF_TYPE_FLAG, 0, 0, 1, NULL }, { "show_videowin", >kShowVideoWindow, CONF_TYPE_FLAG, 0, 0, 1, NULL }, @@ -361,6 +369,39 @@ } free(fname); + + /* ReplayGain list */ + + fname = get_path(gui_gainlist); + file = fopen(fname, "rt"); + + if (file) { + while (fgetstr(line, sizeof(line), file)) { + char *space = strchr(line, ' '); + + if (space) { + float gain; + + *space = 0; + errno = 0; + gain = strtof(line, NULL); + + if (errno == 0) { + gainItem *item = calloc(1, sizeof(*item)); + + if (item) { + item->filename = strdup(space + 1); + item->replay_gain = gain; + listMgr(GAINLIST_ITEM_INSERT, item); + } + } + } + } + + fclose(file); + } + + free(fname); } void cfg_write(void)
View file
MPlayer-1.2.r37916.tar.bz2/gui/app/cfg.h -> MPlayer-1.2.r38008.tar.xz/gui/app/cfg.h
Changed
@@ -80,6 +80,9 @@ extern gtkASS_t gtkASS; +extern int gtkReplayGainOn; +extern int gtkReplayGainAdjustment; + extern int gtkEnablePlayBar; extern int gtkLoadFullscreen; extern int gtkShowVideoWindow;
View file
MPlayer-1.2.r37916.tar.bz2/gui/dialog/playlist.c -> MPlayer-1.2.r38008.tar.xz/gui/dialog/playlist.c
Changed
@@ -118,6 +118,11 @@ } } +static void plFreeRowData (gpointer data) +{ + listMgr(PLITEM_FREE, data); +} + static void plButtonReleased( GtkButton * button,gpointer user_data ) { (void) button; @@ -127,27 +132,21 @@ case 1: // ok { int i; - plItem curr, * item, * old; + plItem *curr = NULL, *item, *old; item = listMgr( PLAYLIST_ITEM_GET_CURR,0 ); - if (item) - { - curr.path = gstrdup(item->path); - curr.name = gstrdup(item->name); - } - else - { - curr.path = NULL; - curr.name = NULL; - } + + if (item) curr = listMgr(PLITEM_COPY, item); + listMgr( PLAYLIST_DELETE,0 ); for ( i=0;i<NrOfSelected;i++ ) { - char * text[2]; - item=calloc( 1,sizeof( *item ) ); - gtk_clist_get_text( GTK_CLIST( CLSelected ),i,2,&text[0] ); - gtk_clist_get_text( GTK_CLIST( CLSelected ),i,3,&text[1] ); - item->name = strdup( text[0] ); - item->path = strdup( text[1] ); + plItem *data, *item; + + data = gtk_clist_get_row_data(GTK_CLIST(CLSelected), i); + item = listMgr(PLITEM_COPY, data); + + if (!item) continue; + listMgr( PLAYLIST_ITEM_APPEND,item ); } item = listMgr( PLAYLIST_GET,0 ); @@ -155,7 +154,8 @@ { if ( guiInfo.Playing ) { - old = listMgr( PLAYLIST_ITEM_FIND,&curr ); + old = (curr ? listMgr(PLAYLIST_ITEM_FIND, curr) : NULL); + if ( old ) { listMgr( PLAYLIST_ITEM_SET_CURR,old ); @@ -165,16 +165,21 @@ } if ( item ) { - uiSetFile( item->path,item->name,STREAMTYPE_FILE ); + if (item->stop) uiSetFileFromPlaylist(item); + else + { + uiSetFile(item->path, item->name, STREAMTYPE_FILE); + guiInfo.Track = 1; + } + guiInfo.MediumChanged = GUI_MEDIUM_NEW; guiInfo.PlaylistNext = !guiInfo.Playing; - guiInfo.Track = 1; } } else if (isPlaylistStreamtype && !guiInfo.Playing) uiUnsetFile(); guiInfo.Tracks = (uintptr_t) listMgr( PLAYLIST_ITEM_GET_POS,0 ); - free(curr.path); - free(curr.name); + + listMgr(PLITEM_FREE, curr); } case 0: // cancel NrOfSelected=NrOfEntrys=0; @@ -216,12 +221,18 @@ case 3: // add { int i; + plItem *data; void *p; - char * itext[2]; - char * text[1][5]; text[0][4]=""; + char *text[2]; + gint row; + gtk_clist_freeze( GTK_CLIST( CLSelected ) ); for ( i=0;i<NrOfEntrys;i++ ) { + data = calloc(1, sizeof(*data)); + + if (!data) continue; + if ( CLFileSelected[i] ) { NrOfSelected++; @@ -231,12 +242,13 @@ { CLListSelected=p; CLListSelected[NrOfSelected - 1]=False; - gtk_clist_get_text( GTK_CLIST( CLFiles ),i,0,&itext[0] ); - gtk_clist_get_text( GTK_CLIST( CLFiles ),i,1,&itext[1] ); - text[0][0]=itext[0]; text[0][1]=g_filename_display_name( current_path ); - text[0][2]=itext[1]; text[0][3]=current_path; - gtk_clist_append( GTK_CLIST( CLSelected ),text[0] ); - g_free( text[0][1] ); + gtk_clist_get_text(GTK_CLIST(CLFiles), i, 0, &text[0]); + text[1] = g_filename_display_name(current_path); + row = gtk_clist_append(GTK_CLIST(CLSelected), text); + data->name = strdup(cfg_old_filename_from_utf8(text[0])); + data->path = strdup(current_path); + gtk_clist_set_row_data_full(GTK_CLIST(CLSelected), row, data, plFreeRowData); + g_free(text[1]); } } } @@ -446,7 +458,7 @@ accel_group=gtk_accel_group_new(); Playlist=gtk_window_new( GTK_WINDOW_TOPLEVEL ); - gtk_widget_set_usize( Playlist,512,384 ); + gtk_widget_set_usize(Playlist, 640, 480); gtk_window_set_title( GTK_WINDOW( Playlist ),MSGTR_GUI_Playlist ); gtk_window_set_position( GTK_WINDOW( Playlist ),GTK_WIN_POS_CENTER ); gtk_window_set_wmclass( GTK_WINDOW( Playlist ),"Playlist",MPlayer ); @@ -525,13 +537,11 @@ gtk_box_pack_start( GTK_BOX( vbox2 ),scrolledwindow3,TRUE,TRUE,0 ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow3 ),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC ); - CLSelected=gtk_clist_new( 4 ); + CLSelected=gtk_clist_new(2); gtk_widget_show( CLSelected ); gtk_container_add( GTK_CONTAINER( scrolledwindow3 ),CLSelected ); - gtk_clist_set_column_width( GTK_CLIST( CLSelected ),0,295 ); + gtk_clist_set_column_width( GTK_CLIST( CLSelected ),0,298 ); gtk_clist_set_column_width( GTK_CLIST( CLSelected ),1,295 ); - gtk_clist_set_column_visibility( GTK_CLIST( CLSelected ),2,FALSE ); - gtk_clist_set_column_visibility( GTK_CLIST( CLSelected ),3,FALSE ); gtk_clist_set_selection_mode( GTK_CLIST( CLSelected ),GTK_SELECTION_MULTIPLE ); gtk_clist_column_titles_show( GTK_CLIST( CLSelected ) ); gtk_clist_set_shadow_type( GTK_CLIST( CLSelected ),GTK_SHADOW_NONE ); @@ -632,14 +642,31 @@ { while ( next || next->next ) { - char * text[1][5]; text[0][4]=""; - text[0][0]=g_filename_display_name( next->name ); - text[0][1]=g_filename_display_name( next->path ); - text[0][2]=next->name; - text[0][3]=next->path; - gtk_clist_append( GTK_CLIST( CLSelected ),text[0] ); - g_free( text[0][0] ); - g_free( text[0][1] ); + plItem *data; + char *name, *text[2]; + gint row; + + data = listMgr(PLITEM_COPY, next);; + + if (!data) break; + + name = g_filename_display_name(next->name); + + if (next->title) + { + char *title = g_strdup_printf("%s · %s", name, next->title); + g_free(name); + name = title; + } + + text[0] = name; + text[1] = g_filename_display_name(next->path); + + row = gtk_clist_append(GTK_CLIST(CLSelected), text); + gtk_clist_set_row_data_full(GTK_CLIST(CLSelected), row, data, plFreeRowData); + + g_free(text[0]); + g_free(text[1]); NrOfSelected++; if ( next->next ) next=next->next; else break; }
View file
MPlayer-1.2.r37916.tar.bz2/gui/dialog/preferences.c -> MPlayer-1.2.r38008.tar.xz/gui/dialog/preferences.c
Changed
@@ -86,6 +86,7 @@ static GtkWidget * CBAudioEqualizer; //static GtkWidget * CBSurround; static GtkWidget * CBExtraStereo; +static GtkWidget * CBReplayGain; static GtkWidget * CBNormalize; static GtkWidget * CBSoftwareMixer; static GtkWidget * CBDoubleBuffer; @@ -137,6 +138,9 @@ static GtkWidget * HSPPQuality; static GtkWidget * HSFPS; +static GtkWidget *RGbox; +static GtkObject *RGadj; + static GtkAdjustment * HSExtraStereoMuladj, * HSAudioDelayadj, * HSPanscanadj, * HSSubDelayadj; static GtkAdjustment * HSSubPositionadj, * HSSubFPSadj, * HSPPQualityadj, * HSFPSadj; @@ -286,6 +290,8 @@ { case bOk: /* 1st page */ + gtkReplayGainOn = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(CBReplayGain)); + gtkReplayGainAdjustment = GTK_ADJUSTMENT(RGadj)->value; gtkEnableAudioEqualizer=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBAudioEqualizer ) ); gtkAOExtraStereo=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBExtraStereo ) ); gtkAONorm=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNormalize ) ); @@ -532,6 +538,9 @@ } break; #endif + case 11: + gtk_widget_set_sensitive(RGbox, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(CBReplayGain))); + break; } } @@ -612,6 +621,8 @@ GtkWidget * hbox9; GtkWidget * hbox91; GtkWidget * hbox92; + GtkWidget * hbox10; + GtkWidget * RGspin; accel_group=gtk_accel_group_new(); @@ -660,6 +671,18 @@ gtkAddFrame( NULL,GTK_SHADOW_ETCHED_OUT,hbox1,0 ),1 ),0 ); gtk_widget_set_usize( vbox3,250,-2 ); + hbox10 = gtkAddHBox(vbox3, 1); + CBReplayGain = gtkAddCheckButton(MSGTR_GUI_ReplayGain, hbox10); + RGbox = gtkAddHBox(hbox10, 1); + gtkAddLabel(MSGTR_GUI_ReplayGainAdjustment, RGbox); + RGadj = gtk_adjustment_new(gtkReplayGainAdjustment, -30, 10, 1, 5, 0); + RGspin = gtk_spin_button_new(GTK_ADJUSTMENT(RGadj), 1, 0); + gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(RGspin), TRUE); + gtk_box_pack_start(GTK_BOX(RGbox), GTK_WIDGET(RGspin), FALSE, FALSE, 0); + gtkAddLabel(MSGTR_GUI_dB, RGbox); + gtk_widget_set_sensitive(RGbox, gtkReplayGainOn); + gtk_widget_show(RGspin); + CBNormalize=gtkAddCheckButton( MSGTR_GUI_NormalizeSound,vbox3 ); CBAudioEqualizer=gtkAddCheckButton( MSGTR_GUI_EnableEqualizer,vbox3 ); CBSoftwareMixer=gtkAddCheckButton( MSGTR_GUI_EnableSoftwareMixer,vbox3 ); @@ -1182,6 +1205,8 @@ #if 0 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSurround ),gtkAOSurround ); #endif + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(CBReplayGain), gtkReplayGainOn); + gtk_adjustment_set_value(GTK_ADJUSTMENT(RGadj), gtkReplayGainAdjustment); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBExtraStereo ),gtkAOExtraStereo ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBNormalize ),gtkAONorm ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSoftwareMixer ),soft_vol ); @@ -1427,6 +1452,7 @@ #ifdef CONFIG_ASS gtk_signal_connect( GTK_OBJECT( CBUseASS ),"toggled",GTK_SIGNAL_FUNC( prToggled ),GINT_TO_POINTER(10)); #endif + gtk_signal_connect(GTK_OBJECT(CBReplayGain), "toggled", GTK_SIGNAL_FUNC(prToggled), GINT_TO_POINTER(11)); gtk_signal_connect( GTK_OBJECT( HSExtraStereoMul ),"motion-notify-event",GTK_SIGNAL_FUNC( prHScaler ),GINT_TO_POINTER(0) ); gtk_signal_connect( GTK_OBJECT( HSAudioDelay ),"motion-notify-event",GTK_SIGNAL_FUNC( prHScaler ),GINT_TO_POINTER(1) );
View file
MPlayer-1.2.r37916.tar.bz2/gui/interface.c -> MPlayer-1.2.r38008.tar.xz/gui/interface.c
Changed
@@ -16,6 +16,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#include <limits.h> #include <stdarg.h> #include <stdint.h> #include <stdio.h> @@ -73,9 +74,11 @@ .StreamType = STREAMTYPE_DUMMY, .Volume = 50.0f, .Balance = 50.0f, + .LastVolume = -1.0f, .PlaylistNext = True }; +static int current_volume; static int guiInitialized; static int orig_fontconfig; static struct { @@ -309,6 +312,12 @@ btnValue(evSetBalance, &guiInfo.Balance); btnValue(evSetMoviePosition, &guiInfo.Position); + // skin demands usage of current volume + if (guiInfo.Volume < 0.0f) { + guiInfo.Volume = 0.0f; + current_volume = True; + } + if (guiInfo.Position) uiEvent(evSetMoviePosition, guiInfo.Position); @@ -404,11 +413,12 @@ */ int gui(int what, void *data) { - static float last_balance = -1.0f; + static float last_balance = -1.0f; + static int last_playlistnext = True; #ifdef CONFIG_DVDREAD dvd_priv_t *dvd; #endif - int idata = (intptr_t)data, msg, state; + int idata = (intptr_t)data, msg, state, replay_gain; stream_t *stream = NULL; sh_audio_t *sh_audio; mixer_t *mixer; @@ -446,8 +456,8 @@ wsMouseAutohide(); gtkEvents(); - if (guiInfo.Stop && (guiInfo.ElapsedTime >= guiInfo.Stop)) - guiInfo.MediumChanged = GUI_MEDIUM_NEW; + if (uiCueCheckNext(&last_playlistnext) == False) + uiCueSetTitle(); break; @@ -576,7 +586,7 @@ if (*(playlist + 1)) (*playlist)->stop = (*(playlist + 1))->start; else - (*playlist)->stop = 0; + (*playlist)->stop = INT_MAX; listMgr(PLAYLIST_ITEM_INSERT, *playlist); playlist++; @@ -910,9 +920,37 @@ if (guiInfo.AudioChannels < 2 || guiInfo.AudioPassthrough) btnSet(evSetBalance, btnDisabled); - if (last_balance < 0.0f) { + if (current_volume) { + mixer_getvolume(mpctx_get_mixer(guiInfo.mpcontext), &l, &r); + guiInfo.Volume = FFMAX(l, r); + current_volume = False; + } + + if (gtkReplayGainOn) { + gainItem *item; + int ReplayGain = False; + + item = listMgr(GAINLIST_ITEM_FIND, guiInfo.Filename); + + if (item) { + replay_gain = (item->replay_gain < 0.0f ? item->replay_gain - 0.05f : item->replay_gain + 0.05f) * 10; + ReplayGain = True; + } + + if (!ReplayGain) + ReplayGain = (demux_control(mpctx_get_demuxer(guiInfo.mpcontext), DEMUXER_CTRL_GET_REPLAY_GAIN, &replay_gain) == DEMUXER_CTRL_OK); + + if (ReplayGain) { + guiInfo.LastVolume = guiInfo.Volume; + guiInfo.Volume = constrain(100.0 + (replay_gain / 10.0 + gtkReplayGainAdjustment) / 0.5); + guiInfo.ReplayGainVolume = -1.0f; + } + } + + if (guiInfo.LastVolume >= 0.0f || last_balance < 0.0f) uiEvent(ivSetVolume, guiInfo.Volume); + if (last_balance < 0.0f) { if (guiInfo.AudioChannels == 2 && !guiInfo.AudioPassthrough) uiEvent(ivSetBalance, guiInfo.Balance); @@ -959,6 +997,9 @@ mixer_getvolume(mixer, &l, &r); guiInfo.Volume = FFMAX(l, r); + if (guiInfo.LastVolume >= 0.0f && guiInfo.ReplayGainVolume < 0.0f) + guiInfo.ReplayGainVolume = guiInfo.Volume; + mixer_getbalance(mixer, &b); guiInfo.Balance = (b + 1.0) * 50.0; // transform -1..1 to 0..100 @@ -1000,12 +1041,21 @@ guiInfo.sh_video = NULL; + if (guiInfo.LastVolume >= 0.0f) { + if (guiInfo.Volume == guiInfo.ReplayGainVolume) + uiEvent(ivSetVolume, guiInfo.LastVolume); + + guiInfo.LastVolume = -1.0f; + } + btnSet(evSetVolume, btnReleased); btnSet(evSetBalance, btnReleased); uiEvent(ivRedraw, True); if (guiInfo.Playing) { + last_playlistnext = guiInfo.PlaylistNext; + if (!guiInfo.PlaylistNext) { guiInfo.PlaylistNext = True; break; @@ -1017,6 +1067,11 @@ } next = listMgr(PLAYLIST_ITEM_GET_NEXT, 0); + + if (guiInfo.Stop && (guiInfo.ElapsedTime > guiInfo.Stop)) { + while (next && next->stop) + next = listMgr(PLAYLIST_ITEM_GET_NEXT, 0); + } } if (next) {
View file
MPlayer-1.2.r37916.tar.bz2/gui/interface.h -> MPlayer-1.2.r38008.tar.xz/gui/interface.h
Changed
@@ -140,6 +140,8 @@ float Volume; float Balance; + float LastVolume; + float ReplayGainVolume; int MediumChanged; // public, read access by MPlayer int PlaylistNext;
View file
MPlayer-1.2.r37916.tar.bz2/gui/skin/skin.c -> MPlayer-1.2.r38008.tar.xz/gui/skin/skin.c
Changed
@@ -603,9 +603,9 @@ { unsigned char bfname[256]; unsigned char phfname[256]; - unsigned char buf[512]; + unsigned char buf[512], dfmt[5]; int i = 0, av_uninit(x0), av_uninit(y0), av_uninit(x1), av_uninit(y1); - int bwidth, bheight, num, d, x, y, w, h, message; + int bwidth, bheight, num, no_default, d, x, y, w, h, message; if (!window_item(currItem)) return 1; @@ -628,6 +628,9 @@ y1 = cutInt(in, ',', i++); } + cutStr(in, buf, ',', i); + no_default = (strcmp(buf, "-") == 0); + d = cutInt(in, ',', i++); x = cutInt(in, ',', i++); y = cutInt(in, ',', i++); @@ -650,9 +653,15 @@ return 1; } + if ((message == evSetVolume) && no_default) { + d = -1; + strcpy(dfmt, "-"); + } else + sprintf(dfmt, "%d%%", d); + mp_msg(MSGT_GPLAYER, MSGL_DBG2, "[skin] %s image: %s %d,%d %dx%d\n", currItem, phfname, x, y, w, h); mp_msg(MSGT_GPLAYER, MSGL_DBG2, "[skin] button image: %s %dx%d\n", bfname, bwidth, bheight); - mp_msg(MSGT_GPLAYER, MSGL_DBG2, "[skin] numphases: %d, default: %d%%\n", num, d); + mp_msg(MSGT_GPLAYER, MSGL_DBG2, "[skin] numphases: %d, default: %s\n", num, dfmt); mp_msg(MSGT_GPLAYER, MSGL_DBG2, "[skin] message: %s (#%d)\n", buf, message); item->x = x;
View file
MPlayer-1.2.r37916.tar.bz2/gui/ui/actions.c -> MPlayer-1.2.r38008.tar.xz/gui/ui/actions.c
Changed
@@ -981,3 +981,68 @@ else if (!stop && !next && unset) uiUnsetMedia(True); } + +/** + * @brief Check whether the end of a cue sheet playlist track has been + * reached and set #guiInfo information for the next track. + * + * @param set whether to set next track's information or skip setting + * information once + * + * @note Parameter @a set will be set for next call of the function. + * + * @return #True (information for next track has been set), + * #False (end not yet reached) or -1 (@a set was #False) + */ +int uiCueCheckNext(int *set) +{ + plItem *next; + + if (guiInfo.Stop && (guiInfo.ElapsedTime == guiInfo.Stop)) { + if (!*set) { + *set = True; + return -1; + } + + next = listMgr(PLAYLIST_ITEM_GET_NEXT, 0); + + if (next) { + free(guiInfo.Title); + guiInfo.Title = gstrdup(next->title); + guiInfo.Track = (uintptr_t)listMgr(PLAYLIST_ITEM_GET_POS, next); + guiInfo.Start = next->start; + guiInfo.Stop = next->stop; + + if (guiInfo.ElapsedTime != guiInfo.Start) { + guiInfo.PlaylistNext = False; + guiInfo.MediumChanged = GUI_MEDIUM_NEW; + } + + *set = False; + } + + return True; + } else + return False; +} + +/** + * @brief Set or unset #guiInfo member @ref guiInterface_t.Title "Title" + * depending on whether playback position is within the current + * cue sheet playlist track or not. + */ +void uiCueSetTitle(void) +{ + if (guiInfo.MediumChanged) + return; + + if (guiInfo.Stop) { + if (guiInfo.ElapsedTime >= guiInfo.Start && guiInfo.ElapsedTime <= guiInfo.Stop) { + plItem *curr = listMgr(PLAYLIST_ITEM_GET_CURR, 0); + + if (curr && !guiInfo.Title) + guiInfo.Title = gstrdup(curr->title); + } else + nfree(guiInfo.Title); + } +}
View file
MPlayer-1.2.r37916.tar.bz2/gui/ui/actions.h -> MPlayer-1.2.r38008.tar.xz/gui/ui/actions.h
Changed
@@ -25,6 +25,8 @@ void uiAbsSeek(float sec); void uiChangeSkin(char *name); +int uiCueCheckNext(int *); +void uiCueSetTitle(void); void uiCurr(void); void uiEvent(int ev, float param); void uiFullScreen(void);
View file
MPlayer-1.2.r37916.tar.bz2/gui/ui/render.c -> MPlayer-1.2.r38008.tar.xz/gui/ui/render.c
Changed
@@ -47,7 +47,7 @@ #define DLABEL_DELAY 2500 /** - * @brief Convert #guiInfo member Filename. + * @brief Convert #guiInfo member @ref guiInterface_t.Filename "Filename". * * @param how 0 (cut file path and extension), * 1 (additionally, convert lower case) or @@ -268,6 +268,11 @@ av_strlcat(translation, trans, sizeof(translation)); break; + case 'g': + if (guiInfo.LastVolume >= 0.0f && guiInfo.Volume == guiInfo.ReplayGainVolume) + av_strlcat(translation, "g", sizeof(translation)); + break; + case 'o': TranslateFilename(0, trans, sizeof(trans)); av_strlcat(translation, trans, sizeof(translation));
View file
MPlayer-1.2.r37916.tar.bz2/gui/util/bitmap.c -> MPlayer-1.2.r38008.tar.xz/gui/util/bitmap.c
Changed
@@ -95,7 +95,7 @@ return 3; } - data = av_malloc(len + FF_INPUT_BUFFER_PADDING_SIZE); + data = av_malloc(len + AV_INPUT_BUFFER_PADDING_SIZE); if (!data) { fclose(file);
View file
MPlayer-1.2.r37916.tar.bz2/gui/util/list.c -> MPlayer-1.2.r38008.tar.xz/gui/util/list.c
Changed
@@ -33,6 +33,9 @@ #include "mp_msg.h" #include "path.h" +static gainItem *gainList; +static unsigned int gainCount; + static plItem *plList; static plItem *plCurrent; @@ -42,11 +45,12 @@ * @brief Manage playlists and URL lists. * * @param cmd task to be performed - * @param data list item for the task + * @param data list item (or string in case of GAINLIST_ITEM_FIND) for the task * * @return pointer to top of list (GET command), - * pointer to current list item (ITEM command) or - * NULL (DELETE or unknown command) + * pointer to current list item (ITEM command), + * pointer to copied item (PLITEM_COPY) or + * NULL (PLAYLIST_DELETE, PLITEM_FREE or unknown command) * * @note PLAYLIST_ITEM_GET_POS returns the position number as pointer value * (if @a data is NULL the last position number, i.e. number of items), @@ -55,10 +59,66 @@ void *listMgr(int cmd, void *data) { uintptr_t pos; - plItem *pdat = (plItem *)data; - urlItem *udat = (urlItem *)data; + gainItem *gdat = (gainItem *)data; + char *cdat = (char *)data; + plItem *pdat = (plItem *)data; + urlItem *udat = (urlItem *)data; + plItem *item; switch (cmd) { + /* ReplayGain list (sorted) */ + + case GAINLIST_ITEM_INSERT: + + if (!gainList || (strcmp(gainList->filename, gdat->filename) >= 0)) { + gdat->next = gainList; + gainList = gdat; + } else { + gainItem *item = gainList; + + while (item->next && (strcmp(item->next->filename, gdat->filename) < 0)) + item = item->next; + + gdat->next = item->next; + item->next = gdat; + } + + gainCount++; + return gdat; + + case GAINLIST_ITEM_FIND: + + if (!gainList || (strcmp(gainList->filename, cdat) == 0)) + return gainList; + else { + gainItem *left = gainList, *right = NULL; + unsigned int count = gainCount; + + while (count > 1) { + int cmp; + unsigned int i, newcount = count / 2; + + right = left; + + for (i = 0; i < newcount && right->next != NULL; i++) + right = right->next; + + cmp = strcmp(right->filename, cdat); + + if (cmp == 0) + return right; + else if (cmp < 0) + left = right; + + count -= newcount; + } + + if (right && (strcmp(right->filename, cdat) == 0)) + return right; + else + return NULL; + } + /* playlist */ case PLAYLIST_GET: @@ -68,7 +128,7 @@ case PLAYLIST_ITEM_APPEND: if (plList) { - plItem *item = plList; + item = plList; while (item->next) item = item->next; @@ -103,10 +163,13 @@ case PLAYLIST_ITEM_FIND: if (plList) { - plItem *item = plList; + item = plList; do { - if (gstrcmp(item->path, pdat->path) == 0 && gstrcmp(item->name, pdat->name) == 0) + if (gstrcmp(item->path, pdat->path) == 0 && + gstrcmp(item->name, pdat->name) == 0 && + gstrcmp(item->title, pdat->title) == 0 && + item->start == pdat->start && item->stop == pdat->stop) return item; item = item->next; @@ -129,8 +192,9 @@ pos = 0; if (plList) { - uintptr_t i = 0; - plItem *item = plList; + uintptr_t i = 0; + + item = plList; do { i++; @@ -170,7 +234,7 @@ case PLAYLIST_ITEM_GET_LAST: if (plList) { - plItem *item = plList; + item = plList; while (item->next) item = item->next; @@ -206,12 +270,9 @@ case PLAYLIST_DELETE: while (plList) { - plItem *item = plList->next; + item = plList->next; - free(plList->path); - free(plList->name); - free(plList->title); - free(plList); + listMgr(PLITEM_FREE, plList); plList = item; } @@ -219,6 +280,31 @@ plCurrent = NULL; return NULL; + case PLITEM_COPY: + + item = calloc(1, sizeof(*item)); + + if (item) { + item->path = gstrdup(pdat->path); + item->name = gstrdup(pdat->name); + item->title = gstrdup(pdat->title); + item->start = pdat->start; + item->stop = pdat->stop; + } + + return item; + + case PLITEM_FREE: + + if (pdat) { + free(pdat->path); + free(pdat->name); + free(pdat->title); + free(pdat); + } + + return NULL; + /* URL list */ case URLLIST_GET:
View file
MPlayer-1.2.r37916.tar.bz2/gui/util/list.h -> MPlayer-1.2.r38008.tar.xz/gui/util/list.h
Changed
@@ -21,6 +21,8 @@ /// listMgr() commands enum { + GAINLIST_ITEM_INSERT, + GAINLIST_ITEM_FIND, PLAYLIST_GET, PLAYLIST_ITEM_APPEND, PLAYLIST_ITEM_INSERT, @@ -33,11 +35,19 @@ PLAYLIST_ITEM_GET_LAST, PLAYLIST_ITEM_DEL_CURR, PLAYLIST_DELETE, + PLITEM_COPY, + PLITEM_FREE, URLLIST_GET, URLLIST_ITEM_ADD, URLLIST_DELETE }; +typedef struct gainItem { + char *filename; + float replay_gain; + struct gainItem *next; +} gainItem; + typedef struct plItem { char *path; char *name;
View file
MPlayer-1.2.r37916.tar.bz2/gui/util/misc.c -> MPlayer-1.2.r38008.tar.xz/gui/util/misc.c
Changed
@@ -120,7 +120,7 @@ */ plItem **cue_playlist(const char *fname) { - static plItem *item[100]; + static plItem *item[101]; FILE *file; char line[256], *l, *fmt, *path = NULL, *data = NULL; int i = -1, isFILE = False, isTRACK = False; @@ -132,6 +132,8 @@ else return NULL; + memset(item, 0, sizeof(item)); + while (fgetstr(line, sizeof(line), file) && (i < 99)) { l = (char *)ltrim(line);
View file
MPlayer-1.2.r37916.tar.bz2/gui/win32/interface.c -> MPlayer-1.2.r38008.tar.xz/gui/win32/interface.c
Changed
@@ -640,8 +640,11 @@ guiInfo.AudioChannels = 0; guiInfo.AudioPassthrough = FALSE; } - guiSetEvent(evSetVolume); - guiSetEvent(evSetBalance); + if (guiInfo.Volume >= 0.0f) /* otherwise skin demands usage of current volume */ + { + guiSetEvent(evSetVolume); + guiSetEvent(evSetBalance); + } if(IsWindowVisible(mygui->videowindow) && !guiInfo.VideoWindow) ShowWindow(mygui->videowindow, SW_HIDE); break;
View file
MPlayer-1.2.r37916.tar.bz2/gui/win32/skinload.c -> MPlayer-1.2.r38008.tar.xz/gui/win32/skinload.c
Changed
@@ -371,7 +371,7 @@ else if(!strncmp(desc, "hpotmeter", 9) || !strncmp(desc, "vpotmeter", 9) || !strncmp(desc, "rpotmeter", 9) || /* legacy */ !strncmp(desc, "potmeter", 8)) { int base = counttonextchar(desc, '=') + 1; - int i, av_uninit(x0), av_uninit(y0), av_uninit(x1), av_uninit(y1); + int i, av_uninit(x0), av_uninit(y0), av_uninit(x1), av_uninit(y1), no_default; /* hpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message */ if(!strncmp(desc, "vpotmeter", 9)) mywidget->type = tyVpotmeter; else if(!strncmp(desc, "rpotmeter", 9)) mywidget->type = tyRpotmeter; @@ -403,6 +403,7 @@ } mywidget->value = atof(findnextstring(temp, desc, &base)); + no_default = (strcmp(temp, "-") == 0); mywidget->x = mywidget->wx = atoi(findnextstring(temp, desc, &base)); mywidget->y = mywidget->wy = atoi(findnextstring(temp, desc, &base)); mywidget->wwidth = atoi(findnextstring(temp, desc, &base)); @@ -454,6 +455,8 @@ mywidget->width = mywidget->wwidth; mywidget->height = mywidget->wheight; } + + if ((mywidget->msg == evSetVolume) && no_default) mywidget->value = -1.0f; } else if(!strncmp(desc, "pimage", 6)) {
View file
MPlayer-1.2.r37916.tar.bz2/gui/win32/widgetrender.c -> MPlayer-1.2.r38008.tar.xz/gui/win32/widgetrender.c
Changed
@@ -124,7 +124,7 @@ } /** - * @brief Convert #guiInfo member Filename. + * @brief Convert #guiInfo member @ref guiInterface_t.Filename "Filename". * * @param how 0 (cut file path and extension), * 1 (additionally, convert lower case) or @@ -278,6 +278,8 @@ stringreplace(text, "$f", acp(TranslateFilename(1, tmp, sizeof(tmp)))); stringreplace(text, "$F", acp(TranslateFilename(2, tmp, sizeof(tmp)))); + stringreplace(text, "$g", ""); + return text; } @@ -314,7 +316,9 @@ for (i=0; i<skin->widgetcount; i++) if((skin->widgets[i]->type == tyDlabel) || (skin->widgets[i]->type == tySlabel)) { - if(skin->widgets[i]->window == priv->type) + char *text = generatetextfromlabel(skin->widgets[i]); + + if(*text && (skin->widgets[i]->window == priv->type)) render(skin->desktopbpp, &priv->img, find_background(skin, skin->widgets[i]), @@ -325,6 +329,8 @@ skin->widgets[i]->length, skin->widgets[i]->font->chars[0]->height, 1); + + free(text); } /* load all slabels and dlabels */
View file
MPlayer-1.2.r37916.tar.bz2/help/help_mp-de.h -> MPlayer-1.2.r38008.tar.xz/help/help_mp-de.h
Changed
@@ -809,6 +809,7 @@ #define MSGTR_GUI_CpShiftJis "Japanisch (SHIFT-JIS)" #define MSGTR_GUI_CpUnicode "Unicode" #define MSGTR_GUI_CpUTF8 "UTF-8" +#define MSGTR_GUI_dB "dB" #define MSGTR_GUI_DecimalMark "," #define MSGTR_GUI__Default_ "(Standard)" #define MSGTR_GUI_DefaultSetting "Standardeinstellung" @@ -982,6 +983,8 @@ #define MSGTR_GUI_RearLeft "Hinten links" #define MSGTR_GUI_RearRight "Hinten rechts" #define MSGTR_GUI_Remove "Entfernen" +#define MSGTR_GUI_ReplayGain "Lautstärke-Anpassung" +#define MSGTR_GUI_ReplayGainAdjustment "mit anschließender Korrektur um" #define MSGTR_GUI_Rotation "Drehung" #define MSGTR_GUI_Rotation180 "180°" #define MSGTR_GUI_Rotation90CCW "90° gegen den Uhrzeigersinn"
View file
MPlayer-1.2.r37916.tar.bz2/help/help_mp-en.h -> MPlayer-1.2.r38008.tar.xz/help/help_mp-en.h
Changed
@@ -1,4 +1,4 @@ -// $Revision: 37846 $ +// $Revision: 37988 $ // MASTER FILE. Use this file as base for translations. // Translated files should be sent to the mplayer-DOCS mailing list or // to the help messages maintainer, see DOCS/tech/MAINTAINERS. @@ -600,6 +600,7 @@ #define MSGTR_GUI_CpShiftJis "Japanese (SHIFT-JIS)" #define MSGTR_GUI_CpUnicode "Unicode" #define MSGTR_GUI_CpUTF8 "UTF-8" +#define MSGTR_GUI_dB "dB" #define MSGTR_GUI_DecimalMark "." #define MSGTR_GUI__Default_ "(Default)" #define MSGTR_GUI_DefaultSetting "Default setting" @@ -773,6 +774,8 @@ #define MSGTR_GUI_RearLeft "Rear left" #define MSGTR_GUI_RearRight "Rear right" #define MSGTR_GUI_Remove "Remove" +#define MSGTR_GUI_ReplayGain "ReplayGain" +#define MSGTR_GUI_ReplayGainAdjustment "with additional adjustment of" #define MSGTR_GUI_Rotation "Rotation" #define MSGTR_GUI_Rotation180 "180°" #define MSGTR_GUI_Rotation90CCW "90° counterclockwise"
View file
MPlayer-1.2.r37916.tar.bz2/libao2/ao_ivtv.c -> MPlayer-1.2.r38008.tar.xz/libao2/ao_ivtv.c
Changed
@@ -84,7 +84,7 @@ freq = rate; /* check for supported audio rate */ - if (rate != 32000 || rate != 41000 || rate != 48000) + if (rate != 32000 && rate != 41000 && rate != 48000) { mp_msg (MSGT_AO, MSGL_ERR, MSGTR_AO_MPEGPES_UnsupSamplerate, rate); rate = 48000;
View file
MPlayer-1.2.r37916.tar.bz2/libmenu/vf_menu.c -> MPlayer-1.2.r38008.tar.xz/libmenu/vf_menu.c
Changed
@@ -54,12 +54,12 @@ int passthrough; }; -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts); +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts); void vf_menu_pause_update(struct vf_instance *vf) { const vo_functions_t *video_out = mpctx_get_video_out(vf->priv->current->ctx); if(pause_mpi) { - put_image(vf,pause_mpi, MP_NOPTS_VALUE); + put_image(vf,pause_mpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); // Don't draw the osd atm //vf->control(vf,VFCTRL_DRAW_OSD,NULL); video_out->flip_page(); @@ -137,14 +137,14 @@ return menu_read_key(st_priv->current,code); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi = NULL; if (vf->priv->passthrough) { dmpi=vf_get_image(vf->next, IMGFMT_MPEGPES, MP_IMGTYPE_EXPORT, 0, mpi->w, mpi->h); dmpi->planes[0]=mpi->planes[0]; - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf,dmpi, pts, endpts); } // Close all menu who requested it @@ -202,7 +202,7 @@ dmpi->priv = mpi->priv; } } - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf,dmpi, pts, endpts); } static void uninit(vf_instance_t *vf) {
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/ad_ffmpeg.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/ad_ffmpeg.c
Changed
@@ -134,7 +134,7 @@ /* alloc extra data */ if (sh_audio->wf && sh_audio->wf->cbSize > 0) { - lavc_context->extradata = av_mallocz(sh_audio->wf->cbSize + FF_INPUT_BUFFER_PADDING_SIZE); + lavc_context->extradata = av_mallocz(sh_audio->wf->cbSize + AV_INPUT_BUFFER_PADDING_SIZE); lavc_context->extradata_size = sh_audio->wf->cbSize; memcpy(lavc_context->extradata, sh_audio->wf + 1, lavc_context->extradata_size); @@ -332,6 +332,11 @@ int in_size = x; int consumed = ds_parse(sh_audio->ds, &start, &x, pts, 0); sh_audio->ds->buffer_pos -= in_size - consumed; + // Note: hopefully below is correct, it was only + // added because FFmpeg broke the API and 0-sized + // packets started to break e.g. AC3 decode. + if (x <= 0) + break; // error or not enough data } av_init_packet(&pkt);
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/ae_lavc.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/ae_lavc.c
Changed
@@ -224,10 +224,10 @@ } if((lavc_param_audio_global_header&1) /*|| (video_global_header==0 && (oc->oformat->flags & AVFMT_GLOBALHEADER))*/){ - lavc_actx->flags |= CODEC_FLAG_GLOBAL_HEADER; + lavc_actx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; } if(lavc_param_audio_global_header&2){ - lavc_actx->flags2 |= CODEC_FLAG2_LOCAL_HEADER; + lavc_actx->flags2 |= AV_CODEC_FLAG2_LOCAL_HEADER; } if(avcodec_open2(lavc_actx, lavc_acodec, NULL) < 0)
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/dec_video.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/dec_video.c
Changed
@@ -388,7 +388,7 @@ } void *decode_video(sh_video_t *sh_video, unsigned char *start, int in_size, - int drop_frame, double pts, int *full_frame) + int drop_frame, double pts, double endpts, int *full_frame) { mp_image_t *mpi = NULL; unsigned int t = GetTimer(); @@ -420,9 +420,12 @@ for (i = 0; i < sh_video->num_buffered_pts; i++) if (sh_video->buffered_pts[i] < pts) break; - for (j = sh_video->num_buffered_pts; j > i; j--) + for (j = sh_video->num_buffered_pts; j > i; j--) { sh_video->buffered_pts[j] = sh_video->buffered_pts[j - 1]; + sh_video->buffered_endpts[j] = sh_video->buffered_endpts[j - 1]; + } sh_video->buffered_pts[i] = pts; + sh_video->buffered_endpts[i] = endpts; sh_video->num_buffered_pts++; } } @@ -454,10 +457,12 @@ if (sh_video->num_buffered_pts) { sh_video->num_buffered_pts--; sh_video->pts = sh_video->buffered_pts[sh_video->num_buffered_pts]; + sh_video->endpts = sh_video->buffered_endpts[sh_video->num_buffered_pts]; } else { mp_msg(MSGT_CPLAYER, MSGL_ERR, "No pts value from demuxer to use for frame!\n"); sh_video->pts = MP_NOPTS_VALUE; + sh_video->endpts = MP_NOPTS_VALUE; } if (delay >= 0) { // limit buffered pts only afterwards so we do not get confused @@ -479,13 +484,13 @@ return mpi; } -int filter_video(sh_video_t *sh_video, void *frame, double pts) +int filter_video(sh_video_t *sh_video, void *frame, double pts, double endpts) { mp_image_t *mpi = frame; unsigned int t2 = GetTimer(); vf_instance_t *vf = sh_video->vfilter; // apply video filters and call the leaf vo/ve - int ret = vf->put_image(vf, mpi, pts); + int ret = vf->put_image(vf, mpi, pts, endpts); if (ret > 0) { // draw EOSD first so it ends up below the OSD. // Note that changing this is will not work right with vf_ass and the
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/dec_video.h -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/dec_video.h
Changed
@@ -29,8 +29,8 @@ int init_best_video_codec(sh_video_t *sh_video, char** video_codec_list, char** video_fm_list); void uninit_video(sh_video_t *sh_video); -void *decode_video(sh_video_t *sh_video, unsigned char *start, int in_size, int drop_frame, double pts, int *full_frame); -int filter_video(sh_video_t *sh_video, void *frame, double pts); +void *decode_video(sh_video_t *sh_video, unsigned char *start, int in_size, int drop_frame, double pts, double endpts, int *full_frame); +int filter_video(sh_video_t *sh_video, void *frame, double pts, double endpts); int get_video_quality_max(sh_video_t *sh_video); void set_video_quality(sh_video_t *sh_video, int quality);
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vd_ffmpeg.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vd_ffmpeg.c
Changed
@@ -115,8 +115,7 @@ static int lavc_param_vstats=0; static int lavc_param_idct_algo=0; static int lavc_param_debug=0; -static int lavc_param_vismv=0; -#ifdef CODEC_FLAG2_SHOW_ALL +#ifdef AV_CODEC_FLAG2_SHOW_ALL static int lavc_param_wait_keyframe=0; #endif static int lavc_param_skip_top=0; @@ -141,24 +140,23 @@ const m_option_t lavc_decode_opts_conf[]={ {"bug" , &lavc_param_workaround_bugs , CONF_TYPE_INT , CONF_RANGE, -1, 999999, NULL}, {"er" , &lavc_param_error_resilience , CONF_TYPE_INT , CONF_RANGE, 0, 99, NULL}, - {"gray" , &lavc_param_gray , CONF_TYPE_FLAG , 0, 0, CODEC_FLAG_GRAY, NULL}, + {"gray" , &lavc_param_gray , CONF_TYPE_FLAG , 0, 0, AV_CODEC_FLAG_GRAY, NULL}, {"idct" , &lavc_param_idct_algo , CONF_TYPE_INT , CONF_RANGE, 0, 99, NULL}, {"ec" , &lavc_param_error_concealment , CONF_TYPE_INT , CONF_RANGE, 0, 99, NULL}, {"vstats" , &lavc_param_vstats , CONF_TYPE_FLAG , 0, 0, 1, NULL}, {"debug" , &lavc_param_debug , CONF_TYPE_INT , CONF_RANGE, 0, 9999999, NULL}, - {"vismv" , &lavc_param_vismv , CONF_TYPE_INT , CONF_RANGE, 0, 9999999, NULL}, -#ifdef CODEC_FLAG2_SHOW_ALL +#ifdef AV_CODEC_FLAG2_SHOW_ALL {"wait_keyframe" , &lavc_param_wait_keyframe , CONF_TYPE_FLAG , 0, 0, 1, NULL}, #endif {"st" , &lavc_param_skip_top , CONF_TYPE_INT , CONF_RANGE, 0, 999, NULL}, {"sb" , &lavc_param_skip_bottom , CONF_TYPE_INT , CONF_RANGE, 0, 999, NULL}, - {"fast" , &lavc_param_fast , CONF_TYPE_FLAG , 0, 0, CODEC_FLAG2_FAST, NULL}, + {"fast" , &lavc_param_fast , CONF_TYPE_FLAG , 0, 0, AV_CODEC_FLAG2_FAST, NULL}, {"lowres" , &lavc_param_lowres_str , CONF_TYPE_STRING , 0, 0, 0, NULL}, {"skiploopfilter", &lavc_param_skip_loop_filter_str , CONF_TYPE_STRING , 0, 0, 0, NULL}, {"skipidct" , &lavc_param_skip_idct_str , CONF_TYPE_STRING , 0, 0, 0, NULL}, {"skipframe" , &lavc_param_skip_frame_str , CONF_TYPE_STRING , 0, 0, 0, NULL}, {"threads" , &lavc_param_threads , CONF_TYPE_INT , CONF_RANGE, 1, 32, NULL}, - {"bitexact" , &lavc_param_bitexact , CONF_TYPE_FLAG , 0, 0, CODEC_FLAG_BITEXACT, NULL}, + {"bitexact" , &lavc_param_bitexact , CONF_TYPE_FLAG , 0, 0, AV_CODEC_FLAG_BITEXACT, NULL}, {"o" , &lavc_avopt , CONF_TYPE_STRING , 0, 0, 0, NULL}, {NULL, NULL, 0, 0, 0, 0, NULL} }; @@ -196,7 +194,7 @@ #if CONFIG_XVMC case IMGFMT_XVMC_IDCT_MPEG2: case IMGFMT_XVMC_MOCO_MPEG2: - if(avctx->pix_fmt == AV_PIX_FMT_XVMC_MPEG2_IDCT) return CONTROL_TRUE; + if(avctx->pix_fmt == AV_PIX_FMT_XVMC) return CONTROL_TRUE; #endif } return CONTROL_FALSE; @@ -257,9 +255,9 @@ // explicitly requested int use_slices = vd_use_slices > 0 || (vd_use_slices < 0 && lavc_param_threads <= 1); - ctx->do_slices = use_slices && (lavc_codec->capabilities & CODEC_CAP_DRAW_HORIZ_BAND); + ctx->do_slices = use_slices && (lavc_codec->capabilities & AV_CODEC_CAP_DRAW_HORIZ_BAND); - ctx->do_dr1 = (lavc_codec->capabilities & CODEC_CAP_DR1) && + ctx->do_dr1 = (lavc_codec->capabilities & AV_CODEC_CAP_DR1) && lavc_codec->id != AV_CODEC_ID_INTERPLAY_VIDEO && lavc_codec->id != AV_CODEC_ID_H264 && lavc_codec->id != AV_CODEC_ID_HEVC; @@ -271,12 +269,9 @@ ctx->do_dr1 = 1; ctx->nonref_dr = 1; } - if (lavc_param_vismv || (lavc_param_debug & (FF_DEBUG_VIS_MB_TYPE|FF_DEBUG_VIS_QP))) { - ctx->do_slices = ctx->do_dr1 = 0; - } if(ctx->do_dr1){ avctx->get_buffer2 = get_buffer2; - } else if (lavc_codec->capabilities & CODEC_CAP_DR1) { + } else if (lavc_codec->capabilities & AV_CODEC_CAP_DR1) { avctx->get_buffer2 = avcodec_default_get_buffer2; } avctx->slice_flags = 0; @@ -372,9 +367,9 @@ case 1: avctx->err_recognition |= AV_EF_CAREFUL; } - lavc_param_gray|= CODEC_FLAG_GRAY; -#ifdef CODEC_FLAG2_SHOW_ALL - if(!lavc_param_wait_keyframe) avctx->flags2 |= CODEC_FLAG2_SHOW_ALL; + lavc_param_gray|= AV_CODEC_FLAG_GRAY; +#ifdef AV_CODEC_FLAG2_SHOW_ALL + if(!lavc_param_wait_keyframe) avctx->flags2 |= AV_CODEC_FLAG2_SHOW_ALL; #endif avctx->flags2|= lavc_param_fast; avctx->codec_tag= sh->format; @@ -383,7 +378,6 @@ avctx->debug= lavc_param_debug; if (lavc_param_debug) av_log_set_level(AV_LOG_DEBUG); - avctx->debug_mv= lavc_param_vismv; avctx->skip_top = lavc_param_skip_top; avctx->skip_bottom= lavc_param_skip_bottom; if(lavc_param_lowres_str != NULL) @@ -419,7 +413,7 @@ 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); + avctx->extradata = av_mallocz(avctx->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE); memcpy(avctx->extradata, ((int *)sh->ImageDesc)+1, avctx->extradata_size); break; } @@ -434,7 +428,7 @@ break; av_dict_set(&opts, "extern_huff", "1", 0); avctx->extradata_size = sh->bih->biSize-sizeof(*sh->bih); - avctx->extradata = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); + avctx->extradata = av_mallocz(avctx->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE); memcpy(avctx->extradata, sh->bih+1, avctx->extradata_size); #if 0 @@ -457,14 +451,14 @@ if(sh->bih->biSize<sizeof(*sh->bih)+8){ /* 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); + avctx->extradata = av_mallocz(avctx->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE); ((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(*sh->bih); - avctx->extradata = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); + avctx->extradata = av_mallocz(avctx->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE); memcpy(avctx->extradata, sh->bih+1, avctx->extradata_size); } @@ -475,7 +469,7 @@ if (!sh->bih || sh->bih->biSize <= (int)sizeof(*sh->bih)) break; avctx->extradata_size = sh->bih->biSize-sizeof(*sh->bih); - avctx->extradata = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); + avctx->extradata = av_mallocz(avctx->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE); if (!avctx->extradata) { avctx->extradata_size = 0; break; @@ -1159,7 +1153,7 @@ */ CompatReleaseBufPriv *priv = NULL; AVBufferRef *dummy_buf = NULL; - int planes, i, ret; + int planes, i, ret, w = avctx->width, h = avctx->height; ret = get_buffer(avctx, frame, flags & AV_GET_BUFFER_FLAG_REF); if (ret < 0) @@ -1209,8 +1203,14 @@ planes = av_pix_fmt_count_planes(frame->format); /* workaround for AVHWAccel plane count of 0, buf[0] is used as check for allocated buffers: make libavcodec happy */ - if (desc && desc->flags & AV_PIX_FMT_FLAG_HWACCEL) + /* newest FFmpeg versions in addition need to coded_width + * as frame width value in case of hwaccel codecs or they + * will apply the cropping amount twice */ + if (desc && desc->flags & AV_PIX_FMT_FLAG_HWACCEL) { planes = 1; + w = avctx->coded_width; + h = avctx->coded_height; + } if (!desc || planes <= 0) { ret = AVERROR(EINVAL); goto fail; @@ -1227,8 +1227,8 @@ av_buffer_unref(&dummy_buf); end0: - frame->width = avctx->width; - frame->height = avctx->height; + frame->width = w; + frame->height = h; return 0;
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/ve_lavc.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/ve_lavc.c
Changed
@@ -63,12 +63,9 @@ static int lavc_param_vrate_tolerance = 1000*8; static int lavc_param_mb_decision = 0; /* default is realtime encoding */ static int lavc_param_v4mv = 0; -static int lavc_param_vme = 4; static float lavc_param_vqscale = -1; static int lavc_param_vqmin = 2; static int lavc_param_vqmax = 31; -static float lavc_param_lmin = 2; -static float lavc_param_lmax = 31; static float lavc_param_mb_lmin = 2; static float lavc_param_mb_lmax = 31; static int lavc_param_vqdiff = 3; @@ -81,22 +78,15 @@ static int lavc_param_vmax_b_frames = 0; static int lavc_param_keyint = -1; static int lavc_param_vpass = 0; -static int lavc_param_vrc_strategy = 0; static int lavc_param_vb_strategy = 0; static int lavc_param_packet_size= 0; static int lavc_param_strict= -1; static int lavc_param_data_partitioning= 0; static int lavc_param_gray=0; -static float lavc_param_rc_qsquish=1.0; -static float lavc_param_rc_qmod_amp=0; -static int lavc_param_rc_qmod_freq=0; static char *lavc_param_rc_override_string=NULL; -static char *lavc_param_rc_eq="tex^qComp"; static int lavc_param_rc_buffer_size=0; -static float lavc_param_rc_buffer_aggressivity=1.0; static int lavc_param_rc_max_rate=0; static int lavc_param_rc_min_rate=0; -static float lavc_param_rc_initial_cplx=0; static float lavc_param_rc_initial_buffer_occupancy=0.9; static int lavc_param_mpeg_quant=0; static int lavc_param_fdct=0; @@ -108,8 +98,6 @@ static float lavc_param_temporal_cplx_masking= 0.0; static float lavc_param_spatial_cplx_masking= 0.0; static float lavc_param_p_masking= 0.0; -static float lavc_param_border_masking= 0.0; -static int lavc_param_normalize_aqp= 0; static int lavc_param_interlaced_dct= 0; static int lavc_param_prediction_method= FF_PRED_LEFT; static int lavc_param_format= IMGFMT_YV12; @@ -131,15 +119,12 @@ static int lavc_param_aic= 0; static int lavc_param_aiv= 0; static int lavc_param_umv= 0; -static int lavc_param_gmc= 0; static int lavc_param_obmc= 0; static int lavc_param_loop= 0; static int lavc_param_last_pred= 0; static int lavc_param_pre_me= 1; static int lavc_param_me_subpel_quality= 8; static int lavc_param_me_range= 0; -static int lavc_param_ibias= FF_DEFAULT_QUANT_BIAS; -static int lavc_param_pbias= FF_DEFAULT_QUANT_BIAS; static int lavc_param_coder= 0; static int lavc_param_context= 0; static char *lavc_param_intra_matrix = NULL; @@ -162,7 +147,6 @@ static int lavc_param_skip_cmp=0; static int lavc_param_brd_scale = 0; static int lavc_param_bidir_refine = 0; -static int lavc_param_sc_factor = 1; static int lavc_param_video_global_header= 0; static int lavc_param_mv0_threshold = 256; static int lavc_param_refs = 1; @@ -190,21 +174,21 @@ {"vhq", &lavc_param_mb_decision, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"mbd", &lavc_param_mb_decision, CONF_TYPE_INT, CONF_RANGE, 0, 9, NULL}, {"v4mv", &lavc_param_v4mv, CONF_TYPE_FLAG, 0, 0, 1, NULL}, - {"vme", &lavc_param_vme, CONF_TYPE_INT, CONF_RANGE, 0, 8, NULL}, + {"vme", "vme has no effect, please use the corresponding codec specific option (see FFmpeg documentation) instead of vme.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, {"vqscale", &lavc_param_vqscale, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 255.0, NULL}, {"vqmin", &lavc_param_vqmin, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL}, {"vqmax", &lavc_param_vqmax, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL}, - {"lmin", &lavc_param_lmin, CONF_TYPE_FLOAT, CONF_RANGE, 0.01, 255.0, NULL}, - {"lmax", &lavc_param_lmax, CONF_TYPE_FLOAT, CONF_RANGE, 0.01, 255.0, NULL}, + {"lmin", "Please use o=lmin=<value>*QP2LAMBDA instead of lmin.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, + {"lmax", "Please use o=lmax=<value>*QP2LAMBDA instead of lmax.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, {"mblmin", &lavc_param_mb_lmin, CONF_TYPE_FLOAT, CONF_RANGE, 0.01, 255.0, NULL}, {"mblmax", &lavc_param_mb_lmax, CONF_TYPE_FLOAT, CONF_RANGE, 0.01, 255.0, NULL}, {"vqdiff", &lavc_param_vqdiff, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL}, {"vqcomp", &lavc_param_vqcompress, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 1.0, NULL}, {"vqblur", &lavc_param_vqblur, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 1.0, NULL}, {"vb_qfactor", &lavc_param_vb_qfactor, CONF_TYPE_FLOAT, CONF_RANGE, -31.0, 31.0, NULL}, - {"vmax_b_frames", &lavc_param_vmax_b_frames, CONF_TYPE_INT, CONF_RANGE, 0, FF_MAX_B_FRAMES, NULL}, + {"vmax_b_frames", &lavc_param_vmax_b_frames, CONF_TYPE_INT, CONF_RANGE, 0, 16, NULL}, // FF_MAX_B_FRAMES was removed from FFmpeg. We still use its value here, so we probably limit ourselves in some cases. {"vpass", &lavc_param_vpass, CONF_TYPE_INT, CONF_RANGE, 0, 3, NULL}, - {"vrc_strategy", &lavc_param_vrc_strategy, CONF_TYPE_INT, CONF_RANGE, 0, 2, NULL}, + {"vrc_strategy", "Please use o=rc_strategy=<value> instead of vrc_strategy.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, {"vb_strategy", &lavc_param_vb_strategy, CONF_TYPE_INT, CONF_RANGE, 0, 10, NULL}, {"vb_qoffset", &lavc_param_vb_qoffset, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 31.0, NULL}, {"vlelim", "Please use o=luma_elim_threshold=<value> instead of vlelim.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, @@ -213,20 +197,20 @@ {"vstrict", &lavc_param_strict, CONF_TYPE_INT, CONF_RANGE, -99, 99, NULL}, {"vdpart", &lavc_param_data_partitioning, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"keyint", &lavc_param_keyint, CONF_TYPE_INT, 0, 0, 0, NULL}, - {"gray", &lavc_param_gray, CONF_TYPE_FLAG, 0, 0, CODEC_FLAG_GRAY, NULL}, + {"gray", &lavc_param_gray, CONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_GRAY, NULL}, {"mpeg_quant", &lavc_param_mpeg_quant, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"vi_qfactor", &lavc_param_vi_qfactor, CONF_TYPE_FLOAT, CONF_RANGE, -31.0, 31.0, NULL}, {"vi_qoffset", &lavc_param_vi_qoffset, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 31.0, NULL}, - {"vqsquish", &lavc_param_rc_qsquish, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 99.0, NULL}, - {"vqmod_amp", &lavc_param_rc_qmod_amp, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 99.0, NULL}, - {"vqmod_freq", &lavc_param_rc_qmod_freq, CONF_TYPE_INT, 0, 0, 0, NULL}, - {"vrc_eq", &lavc_param_rc_eq, CONF_TYPE_STRING, 0, 0, 0, NULL}, + {"vqsquish", "Please use o=qsquish=<value> instead of vqsquish.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, + {"vqmod_amp", "Please use o=rc_qmod_amp=<value> instead of vqmod_amp.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, + {"vqmod_freq", "Please use o=rc_qmod_freq=<value> instead of vqmod_freq.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, + {"vrc_eq", "Please use o=rc_eq=<value> instead of vrc_eq.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, {"vrc_override", &lavc_param_rc_override_string, CONF_TYPE_STRING, 0, 0, 0, NULL}, {"vrc_maxrate", &lavc_param_rc_max_rate, CONF_TYPE_INT, CONF_RANGE, 0, MAX_BITRATE, NULL}, {"vrc_minrate", &lavc_param_rc_min_rate, CONF_TYPE_INT, CONF_RANGE, 0, MAX_BITRATE, NULL}, {"vrc_buf_size", &lavc_param_rc_buffer_size, CONF_TYPE_INT, CONF_RANGE, 4, MAX_BITRATE, NULL}, - {"vrc_buf_aggressivity", &lavc_param_rc_buffer_aggressivity, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 99.0, NULL}, - {"vrc_init_cplx", &lavc_param_rc_initial_cplx, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 9999999.0, NULL}, + {"vrc_buf_aggressivity", "Please use o=rc_buf_aggressivity=<value> instead of vrc_buf_aggressivity.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, + {"vrc_init_cplx", "Please use o=rc_init_cplx=<value> instead of vrc_init_cplx.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, {"vrc_init_occupancy", &lavc_param_rc_initial_buffer_occupancy, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 1.0, NULL}, {"vfdct", &lavc_param_fdct, CONF_TYPE_INT, CONF_RANGE, 0, 10, NULL}, {"aspect", &lavc_param_aspect, CONF_TYPE_STRING, 0, 0, 0, NULL}, @@ -235,14 +219,14 @@ {"tcplx_mask", &lavc_param_temporal_cplx_masking, CONF_TYPE_FLOAT, CONF_RANGE, -1.0, 1.0, NULL}, {"scplx_mask", &lavc_param_spatial_cplx_masking, CONF_TYPE_FLOAT, CONF_RANGE, -1.0, 1.0, NULL}, {"p_mask", &lavc_param_p_masking, CONF_TYPE_FLOAT, CONF_RANGE, -1.0, 1.0, NULL}, - {"naq", &lavc_param_normalize_aqp, CONF_TYPE_FLAG, 0, 0, 1, NULL}, + {"naq", "Please use o=mpv_flags=+naq instead of naq.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, {"dark_mask", &lavc_param_dark_masking, CONF_TYPE_FLOAT, CONF_RANGE, -1.0, 1.0, NULL}, {"ildct", &lavc_param_interlaced_dct, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"idct", &lavc_param_idct, CONF_TYPE_INT, CONF_RANGE, 0, 20, NULL}, {"pred", &lavc_param_prediction_method, CONF_TYPE_INT, CONF_RANGE, 0, 20, NULL}, {"format", &lavc_param_format, CONF_TYPE_IMGFMT, 0, 0, 0, NULL}, {"debug", &lavc_param_debug, CONF_TYPE_INT, CONF_RANGE, 0, 100000000, NULL}, - {"psnr", &lavc_param_psnr, CONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PSNR, NULL}, + {"psnr", &lavc_param_psnr, CONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_PSNR, NULL}, {"precmp", &lavc_param_me_pre_cmp, CONF_TYPE_INT, CONF_RANGE, 0, 2000, NULL}, {"cmp", &lavc_param_me_cmp, CONF_TYPE_INT, CONF_RANGE, 0, 2000, NULL}, {"subcmp", &lavc_param_me_sub_cmp, CONF_TYPE_INT, CONF_RANGE, 0, 2000, NULL}, @@ -251,23 +235,23 @@ #ifdef FF_CMP_VSAD {"ildctcmp", &lavc_param_ildct_cmp, CONF_TYPE_INT, CONF_RANGE, 0, 2000, NULL}, #endif - {"bit_exact", &lavc_param_bit_exact, CONF_TYPE_FLAG, 0, 0, CODEC_FLAG_BITEXACT, NULL}, + {"bit_exact", &lavc_param_bit_exact, CONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_BITEXACT, NULL}, {"predia", &lavc_param_pre_dia_size, CONF_TYPE_INT, CONF_RANGE, -2000, 2000, NULL}, {"dia", &lavc_param_dia_size, CONF_TYPE_INT, CONF_RANGE, -2000, 2000, NULL}, - {"qpel", &lavc_param_qpel, CONF_TYPE_FLAG, 0, 0, CODEC_FLAG_QPEL, NULL}, + {"qpel", &lavc_param_qpel, CONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_QPEL, NULL}, {"trell", &lavc_param_trell, CONF_TYPE_FLAG, 0, 0, 1, NULL}, - {"lowdelay", &lavc_param_lowdelay, CONF_TYPE_FLAG, 0, 0, CODEC_FLAG_LOW_DELAY, NULL}, + {"lowdelay", &lavc_param_lowdelay, CONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_LOW_DELAY, NULL}, {"last_pred", &lavc_param_last_pred, CONF_TYPE_INT, CONF_RANGE, 0, 2000, NULL}, {"preme", &lavc_param_pre_me, CONF_TYPE_INT, CONF_RANGE, 0, 2000, NULL}, {"subq", &lavc_param_me_subpel_quality, CONF_TYPE_INT, CONF_RANGE, 0, 8, NULL}, {"me_range", &lavc_param_me_range, CONF_TYPE_INT, CONF_RANGE, 0, 16000, NULL}, - {"aic", &lavc_param_aic, CONF_TYPE_FLAG, 0, 0, CODEC_FLAG_AC_PRED, NULL}, + {"aic", &lavc_param_aic, CONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_AC_PRED, NULL}, {"umv", &lavc_param_umv, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"aiv", &lavc_param_aiv, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"obmc", &lavc_param_obmc, CONF_TYPE_FLAG, 0, 0, 1, NULL}, - {"loop", &lavc_param_loop, CONF_TYPE_FLAG, 0, 0, CODEC_FLAG_LOOP_FILTER, NULL}, - {"ibias", &lavc_param_ibias, CONF_TYPE_INT, CONF_RANGE, -512, 512, NULL}, - {"pbias", &lavc_param_pbias, CONF_TYPE_INT, CONF_RANGE, -512, 512, NULL}, + {"loop", &lavc_param_loop, CONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_LOOP_FILTER, NULL}, + {"ibias", "Please use o=ibias=<value> instead of ibias.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, + {"pbias", "Please use o=pbias=<value> instead of pbias.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, {"coder", &lavc_param_coder, CONF_TYPE_INT, CONF_RANGE, 0, 10, NULL}, {"context", &lavc_param_context, CONF_TYPE_INT, CONF_RANGE, 0, 10, NULL}, {"intra_matrix", &lavc_param_intra_matrix, CONF_TYPE_STRING, 0, 0, 0, NULL}, @@ -278,11 +262,11 @@ {"qprd", "Please use o=mpv_flags=+qp_rd instead of qprd.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, {"ss", &lavc_param_ss, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"alt", &lavc_param_alt, CONF_TYPE_FLAG, 0, 0, 1, NULL}, - {"ilme", &lavc_param_ilme, CONF_TYPE_FLAG, 0, 0, CODEC_FLAG_INTERLACED_ME, NULL}, - {"cgop", &lavc_param_closed_gop, CONF_TYPE_FLAG, 0, 0, CODEC_FLAG_CLOSED_GOP, NULL}, - {"gmc", &lavc_param_gmc, CONF_TYPE_FLAG, 0, 0, CODEC_FLAG_GMC, NULL}, + {"ilme", &lavc_param_ilme, CONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_INTERLACED_ME, NULL}, + {"cgop", &lavc_param_closed_gop, CONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_CLOSED_GOP, NULL}, + {"gmc", "Please use o=gmc=<value> instead of gmc.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, {"dc", &lavc_param_dc_precision, CONF_TYPE_INT, CONF_RANGE, 8, 11, NULL}, - {"border_mask", &lavc_param_border_masking, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 1.0, NULL}, + {"border_mask", "Please use o=border_mask=<value> instead of border_mask.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, {"inter_threshold", "inter_threshold has no effect, please remove it.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, {"sc_threshold", &lavc_param_sc_threshold, CONF_TYPE_INT, CONF_RANGE, -1000000000, 1000000000, NULL}, {"top", &lavc_param_top, CONF_TYPE_INT, CONF_RANGE, -1, 1, NULL}, @@ -295,7 +279,7 @@ {"skip_exp", &lavc_param_skip_exp, CONF_TYPE_INT, CONF_RANGE, 0, 1000000, NULL}, {"brd_scale", &lavc_param_brd_scale, CONF_TYPE_INT, CONF_RANGE, 0, 10, NULL}, {"bidir_refine", &lavc_param_bidir_refine, CONF_TYPE_INT, CONF_RANGE, 0, 4, NULL}, - {"sc_factor", &lavc_param_sc_factor, CONF_TYPE_INT, CONF_RANGE, 1, INT_MAX, NULL}, + {"sc_factor", "sc_factor has no effect, please remove it.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, {"vglobal", &lavc_param_video_global_header, CONF_TYPE_INT, CONF_RANGE, 0, INT_MAX, NULL}, {"aglobal", &lavc_param_audio_global_header, CONF_TYPE_INT, CONF_RANGE, 0, INT_MAX, NULL}, {"mv0_threshold", &lavc_param_mv0_threshold, CONF_TYPE_INT, CONF_RANGE, 0, INT_MAX, NULL}, @@ -353,8 +337,6 @@ lavc_venc_context->time_base= (AVRational){mux_v->h.dwScale, mux_v->h.dwRate}; lavc_venc_context->qmin= lavc_param_vqmin;
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf.c
Changed
@@ -200,7 +200,7 @@ &vf_info_uspp, &vf_info_fspp, &vf_info_qp, - &vf_info_mcdeint, +// &vf_info_mcdeint, //TODO: vf_mcdeint is deactivated because it doesn't build after latest FFmpeg major bumps #endif &vf_info_yuvcsp, &vf_info_kerndeint, @@ -716,14 +716,14 @@ return flags; } -int vf_next_put_image(struct vf_instance *vf,mp_image_t *mpi, double pts){ +int vf_next_put_image(struct vf_instance *vf,mp_image_t *mpi, double pts, double endpts){ mpi->usage_count--; if (mpi->usage_count < 0) { mp_msg(MSGT_VFILTER, MSGL_V, "Bad mp_image usage count %i in vf_%s (type %i)\n", mpi->usage_count, vf->info->name, mpi->type); mpi->usage_count = 0; } - return vf->next->put_image(vf->next,mpi, pts); + return vf->next->put_image(vf->next,mpi, pts, endpts); } void vf_next_draw_slice(struct vf_instance *vf,unsigned char** src, int * stride,int w, int h, int x, int y){
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf.h -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf.h
Changed
@@ -66,7 +66,7 @@ void (*get_image)(struct vf_instance *vf, mp_image_t *mpi); int (*put_image)(struct vf_instance *vf, - mp_image_t *mpi, double pts); + mp_image_t *mpi, double pts, double endpts); void (*start_slice)(struct vf_instance *vf, mp_image_t *mpi); void (*draw_slice)(struct vf_instance *vf, @@ -109,8 +109,9 @@ #define VFCTRL_INIT_EOSD 15 /* Select EOSD renderer */ #define VFCTRL_DRAW_EOSD 16 /* Render EOSD */ #define VFCTRL_GET_PTS 17 /* Return last pts value that reached vf_vo*/ -#define VFCTRL_SET_DEINTERLACE 18 /* Set deinterlacing status */ -#define VFCTRL_GET_DEINTERLACE 19 /* Get deinterlacing status */ +#define VFCTRL_GET_ENDPTS 18 /* Return last endpts value that reached vf_vo*/ +#define VFCTRL_SET_DEINTERLACE 19 /* Set deinterlacing status */ +#define VFCTRL_GET_DEINTERLACE 20 /* Get deinterlacing status */ #include "vfcap.h" @@ -138,7 +139,7 @@ int vf_next_control(struct vf_instance *vf, int request, void* data); void vf_extra_flip(struct vf_instance *vf); int vf_next_query_format(struct vf_instance *vf, unsigned int fmt); -int vf_next_put_image(struct vf_instance *vf,mp_image_t *mpi, double pts); +int vf_next_put_image(struct vf_instance *vf,mp_image_t *mpi, double pts, double endpts); void vf_next_draw_slice (struct vf_instance *vf, unsigned char** src, int* stride, int w,int h, int x, int y); vf_instance_t* append_filters(vf_instance_t* last);
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_1bpp.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_1bpp.c
Changed
@@ -123,7 +123,7 @@ } } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; // hope we'll get DR buffer: @@ -173,7 +173,7 @@ return 0; } - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf,dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_2xsai.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_2xsai.c
Changed
@@ -290,7 +290,7 @@ return vf_next_config(vf,2*width,2*height,2*d_width,2*d_height,flags,outfmt); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; // hope we'll get DR buffer: @@ -302,7 +302,7 @@ dmpi->planes[0], dmpi->stride[0], mpi->w, mpi->h, mpi->bpp/8); - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf,dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_ass.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_ass.c
Changed
@@ -836,7 +836,7 @@ vf->priv->prepare_buffer(vf); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { struct mp_eosd_image_list images; eosd_render_frame(pts, &images); @@ -844,7 +844,7 @@ if (images.changed) prepare_eosd(vf, &images); vf->priv->render_frame(vf); - return vf_next_put_image(vf, vf->dmpi, pts); + return vf_next_put_image(vf, vf->dmpi, pts, endpts); } static int query_format(struct vf_instance *vf, unsigned int fmt)
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_blackframe.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_blackframe.c
Changed
@@ -66,7 +66,7 @@ return 0; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; int x, y; int nblack=0, pblack=0; @@ -107,7 +107,7 @@ vf_clone_mpi_attributes(dmpi, mpi); - return vf_next_put_image(vf, dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static int control(struct vf_instance *vf, int request, void* data){
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_bmovl.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_bmovl.c
Changed
@@ -217,7 +217,7 @@ static int -put_image(struct vf_instance *vf, mp_image_t* mpi, double pts){ +put_image(struct vf_instance *vf, mp_image_t* mpi, double pts, double endpts){ int buf_x=0, buf_y=0, buf_pos=0; int have, got, want; int xpos=0, ypos=0, pos=0; @@ -264,10 +264,10 @@ else if( strncmp(cmd,"OPAQUE",6)==0 ) vf->priv->opaque=TRUE; else if( strncmp(cmd,"SHOW", 4)==0 ) vf->priv->hidden=FALSE; else if( strncmp(cmd,"HIDE", 4)==0 ) vf->priv->hidden=TRUE; - else if( strncmp(cmd,"FLUSH" ,5)==0 ) return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + else if( strncmp(cmd,"FLUSH" ,5)==0 ) return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); else { mp_msg(MSGT_VFILTER, MSGL_WARN, "\nvf_bmovl: Unknown command: '%s'. Ignoring.\n", cmd); - return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); } if(command == CMD_ALPHA) { @@ -286,7 +286,7 @@ buffer = malloc(imgw*imgh*pxsz); if(!buffer) { mp_msg(MSGT_VFILTER, MSGL_WARN, "\nvf_bmovl: Couldn't allocate temporary buffer! Skipping...\n\n"); - return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); } /* pipes/sockets might need multiple calls to read(): */ want = (imgw*imgh*pxsz); @@ -347,7 +347,7 @@ if( (imgx <= vf->priv->x2) && ( (imgx+imgw) >= vf->priv->x2) ) vf->priv->x2 = imgx; } - return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); } for( buf_y=0 ; (buf_y < imgh) && (buf_y < (vf->priv->h-imgy)) ; buf_y++ ) { @@ -405,7 +405,7 @@ } } - if(vf->priv->hidden) return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + if(vf->priv->hidden) return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); if(vf->priv->opaque) { // Just copy buffer memory to screen for( ypos=vf->priv->y1 ; ypos < vf->priv->y2 ; ypos++ ) { @@ -460,7 +460,7 @@ } // for xpos } // for ypos } // if !opaque - return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); } // put_image static int
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_boxblur.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_boxblur.c
Changed
@@ -127,7 +127,7 @@ } } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ int cw= mpi->w >> mpi->chroma_x_shift; int ch= mpi->h >> mpi->chroma_y_shift; @@ -151,7 +151,7 @@ vBlur(dmpi->planes[2], dmpi->planes[2], cw,ch, dmpi->stride[2], dmpi->stride[2], vf->priv->chromaParam.radius, vf->priv->chromaParam.power); - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf,dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_crop.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_crop.c
Changed
@@ -84,10 +84,10 @@ return vf_next_config(vf,vf->priv->crop_w,vf->priv->crop_h,d_width,d_height,flags,outfmt); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; if (mpi->flags&MP_IMGFLAG_DRAW_CALLBACK) - return vf_next_put_image(vf,vf->dmpi, pts); + return vf_next_put_image(vf,vf->dmpi, pts, endpts); dmpi=vf_get_image(vf->next,mpi->imgfmt, MP_IMGTYPE_EXPORT, 0, vf->priv->crop_w, vf->priv->crop_h); @@ -108,7 +108,7 @@ } dmpi->stride[0]=mpi->stride[0]; dmpi->width=mpi->width; - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf,dmpi, pts, endpts); } static void start_slice(struct vf_instance *vf, mp_image_t *mpi){
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_cropdetect.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_cropdetect.c
Changed
@@ -72,7 +72,7 @@ return vf_next_config(vf,width,height,d_width,d_height,flags,outfmt); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; int bpp=mpi->bpp/8; int w,h,x,y,shrink_by; @@ -161,7 +161,7 @@ } - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf,dmpi, pts, endpts); } static int query_format(struct vf_instance *vf, unsigned int fmt) {
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_decimate.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_decimate.c
Changed
@@ -128,7 +128,7 @@ new->w*(new->bpp/8), new->h, old->stride[0], new->stride[0]); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi; @@ -161,7 +161,7 @@ mpi->chroma_width, mpi->chroma_height, dmpi->stride[2], mpi->stride[2]); } - return vf_next_put_image(vf, dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static void uninit(struct vf_instance *vf)
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_delogo.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_delogo.c
Changed
@@ -195,7 +195,7 @@ mpi->flags|=MP_IMGFLAG_DIRECT; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; if(mpi->flags&MP_IMGFLAG_DIRECT) { @@ -223,7 +223,7 @@ vf_clone_mpi_attributes(dmpi, mpi); - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static void uninit(struct vf_instance *vf){
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_denoise3d.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_denoise3d.c
Changed
@@ -109,7 +109,7 @@ -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ int cw= mpi->w >> mpi->chroma_x_shift; int ch= mpi->h >> mpi->chroma_y_shift; int W = mpi->w, H = mpi->h; @@ -142,7 +142,7 @@ vf->priv->Coefs[3] + 256); vf->priv->pmpi=dmpi; // save reference image - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_detc.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_detc.c
Changed
@@ -310,10 +310,10 @@ } p->outframes++; - return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { int ret=0; mp_image_t *dmpi;
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_dint.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_dint.c
Changed
@@ -79,7 +79,7 @@ return vf_next_config(vf,width,height,d_width,d_height,flags,outfmt); } -static int put_image (struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image (struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { int8_t rrow0[MAXROWSIZE]; int8_t rrow1[MAXROWSIZE]; @@ -188,7 +188,7 @@ } vf->priv->was_dint = 0; // mp_msg (MSGT_VFILTER, MSGL_INFO, "DI:%d/%d ", vf->priv->rdfr, vf->priv->dfr); - return vf_next_put_image (vf, mpi, pts); + return vf_next_put_image(vf, mpi, pts, endpts); } static int vf_open(vf_instance_t *vf, char *args){
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_divtc.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_divtc.c
Changed
@@ -258,7 +258,7 @@ return m; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi, *tmpi=0; int n, m, f, newphase; @@ -373,12 +373,12 @@ imgop(copyop, tmpi, mpi, 0); imgop(deghost_plane, tmpi, dmpi, p->deghost); imgop(copyop, dmpi, mpi, 0); - return vf_next_put_image(vf, tmpi, MP_NOPTS_VALUE); + return vf_next_put_image(vf, tmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); } } imgop(copyop, dmpi, mpi, 0); - return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); } static int analyze(struct vf_priv_s *p)
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_down3dright.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_down3dright.c
Changed
@@ -96,7 +96,7 @@ } } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi; @@ -110,7 +110,7 @@ toright(dmpi->planes, mpi->planes, dmpi->stride, mpi->stride, mpi->w, mpi->h, vf->priv); - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static int config(struct vf_instance *vf,
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_eq.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_eq.c
Changed
@@ -132,7 +132,7 @@ /* FIXME: add packed yuv version of process */ -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi; @@ -158,7 +158,7 @@ vf->priv->contrast); } - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static int control(struct vf_instance *vf, int request, void* data)
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_eq2.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_eq2.c
Changed
@@ -238,7 +238,7 @@ } static -int put_image (vf_instance_t *vf, mp_image_t *src, double pts) +int put_image (vf_instance_t *vf, mp_image_t *src, double pts, double endpts) { unsigned i; vf_eq2_t *eq2; @@ -278,7 +278,7 @@ } } - return vf_next_put_image (vf, dst, pts); + return vf_next_put_image(vf, dst, pts, endpts); } static
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_expand.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_expand.c
Changed
@@ -398,12 +398,12 @@ vf->priv->first_slice = 0; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ if (vf->priv->passthrough) { mp_image_t *dmpi = vf_get_image(vf->next, IMGFMT_MPEGPES, MP_IMGTYPE_EXPORT, 0, mpi->w, mpi->h); dmpi->planes[0]=mpi->planes[0]; - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } if(mpi->flags&MP_IMGFLAG_DIRECT || mpi->flags&MP_IMGFLAG_DRAW_CALLBACK){ @@ -423,7 +423,7 @@ // we've used DR, so we're ready... if(!(mpi->flags&MP_IMGFLAG_PLANAR)) vf->dmpi->planes[1] = mpi->planes[1]; // passthrough rgb8 palette - return vf_next_put_image(vf,vf->dmpi, pts); + return vf_next_put_image(vf, vf->dmpi, pts, endpts); } // hope we'll get DR buffer: @@ -455,7 +455,7 @@ #ifdef OSD_SUPPORT if(vf->priv->osd) draw_osd(vf,mpi->w,mpi->h); #endif - return vf_next_put_image(vf,vf->dmpi, pts); + return vf_next_put_image(vf, vf->dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_field.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_field.c
Changed
@@ -38,7 +38,7 @@ return vf_next_config(vf,width,height/2,d_width,d_height,flags,outfmt); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ vf->dmpi=vf_get_image(vf->next,mpi->imgfmt, MP_IMGTYPE_EXPORT, MP_IMGFLAG_ACCEPT_STRIDE, mpi->width, mpi->height/2); @@ -56,7 +56,7 @@ } else vf->dmpi->planes[1]=mpi->planes[1]; // passthru bgr8 palette!!! - return vf_next_put_image(vf,vf->dmpi, pts); + return vf_next_put_image(vf, vf->dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_fil.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_fil.c
Changed
@@ -63,10 +63,10 @@ (d_width*vf->priv->stridefactor)>>1, 2*d_height/vf->priv->stridefactor, flags, outfmt); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ if(mpi->flags&MP_IMGFLAG_DIRECT){ // we've used DR, so we're ready... - return vf_next_put_image(vf,(mp_image_t*)mpi->priv, pts); + return vf_next_put_image(vf, (mp_image_t*)mpi->priv, pts, endpts); } vf->dmpi=vf_get_image(vf->next,mpi->imgfmt, @@ -84,7 +84,7 @@ } else vf->dmpi->planes[1]=mpi->planes[1]; // passthru bgr8 palette!!! - return vf_next_put_image(vf,vf->dmpi, pts); + return vf_next_put_image(vf, vf->dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_filmdint.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_filmdint.c
Changed
@@ -1136,7 +1136,7 @@ #define ITOC(X) (!(X) ? ' ' : (X) + ((X)>9 ? 'a'-10 : '0')) -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi; struct vf_priv_s *p = vf->priv; @@ -1331,7 +1331,7 @@ "" : " @@@@@@@@@@@@@@@@@"); p->merge_time += get_time() - diff_time; - return show_fields ? vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE) : 0; + return show_fields ? vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE) : 0; } static int query_format(struct vf_instance *vf, unsigned int fmt)
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_fixpts.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_fixpts.c
Changed
@@ -38,7 +38,7 @@ unsigned print:1; }; -static int put_image(vf_instance_t *vf, mp_image_t *src, double pts) +static int put_image(vf_instance_t *vf, mp_image_t *src, double pts, double endpts) { struct vf_priv_s *p = vf->priv; @@ -63,7 +63,7 @@ } else { pts = MP_NOPTS_VALUE; } - return vf_next_put_image(vf, src, pts); + return vf_next_put_image(vf, src, pts, endpts); } static void uninit(vf_instance_t *vf)
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_flip.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_flip.c
Changed
@@ -59,12 +59,12 @@ } } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ if(mpi->flags&MP_IMGFLAG_DIRECT){ // we've used DR, so we're ready... if(!(mpi->flags&MP_IMGFLAG_PLANAR)) ((mp_image_t*)mpi->priv)->planes[1] = mpi->planes[1]; // passthrough rgb8 palette - return vf_next_put_image(vf,(mp_image_t*)mpi->priv, pts); + return vf_next_put_image(vf, (mp_image_t*)mpi->priv, pts, endpts); } vf->dmpi=vf_get_image(vf->next,mpi->imgfmt, @@ -85,7 +85,7 @@ } else vf->dmpi->planes[1]=mpi->planes[1]; // passthru bgr8 palette!!! - return vf_next_put_image(vf,vf->dmpi, pts); + return vf_next_put_image(vf, vf->dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_framestep.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_framestep.c
Changed
@@ -89,7 +89,7 @@ }; /* Filter handler */ -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi; struct vf_priv_s *priv; @@ -139,7 +139,7 @@ dmpi->height = mpi->height; /* Chain to next filter / output ... */ - return vf_next_put_image(vf, dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } /* Skip the frame */
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_fspp.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_fspp.c
Changed
@@ -523,7 +523,7 @@ mpi->flags|=MP_IMGFLAG_DIRECT; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi; if(!(mpi->flags&MP_IMGFLAG_DIRECT)){ @@ -574,7 +574,7 @@ #if HAVE_MMXEXT_INLINE if(gCpuCaps.hasMMX2) __asm__ volatile ("sfence\n\t"); #endif - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static void uninit(struct vf_instance *vf)
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_geq.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_geq.c
Changed
@@ -78,7 +78,7 @@ return getpix(vf, x, y, 2); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; int x,y, plane; @@ -124,7 +124,7 @@ vf->priv->framenum++; - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static void uninit(struct vf_instance *vf){
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_gradfun.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_gradfun.c
Changed
@@ -295,7 +295,7 @@ mpi->flags |= MP_IMGFLAG_DIRECT; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi = vf->dmpi; int p; @@ -326,7 +326,7 @@ dmpi->stride[p], mpi->stride[p]); } - return vf_next_put_image(vf, dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static int query_format(struct vf_instance *vf, unsigned int fmt)
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_halfpack.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_halfpack.c
Changed
@@ -163,7 +163,7 @@ int dststride, int srcstride[3], int w, int h); -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { const uint8_t *src[MP_MAX_PLANES] = { mpi->planes[0] + mpi->stride[0]*vf->priv->field, @@ -187,7 +187,7 @@ mpi->stride, mpi->w, mpi->h); } - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static int config(struct vf_instance *vf,
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_harddup.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_harddup.c
Changed
@@ -31,7 +31,7 @@ mp_image_t *last_mpi; }; -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi; @@ -49,7 +49,7 @@ dmpi->stride[2] = mpi->stride[2]; } - return vf_next_put_image(vf, dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static int control(struct vf_instance *vf, int request, void* data) @@ -61,7 +61,7 @@ // has been called earlier in the filter chain // since the last put_image. This is reasonable // because we're handling a duplicate frame! - if (put_image(vf, vf->priv->last_mpi, MP_NOPTS_VALUE)) + if (put_image(vf, vf->priv->last_mpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE)) return CONTROL_TRUE; break; }
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_hqdn3d.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_hqdn3d.c
Changed
@@ -208,7 +208,7 @@ } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ int cw= mpi->w >> mpi->chroma_x_shift; int ch= mpi->h >> mpi->chroma_y_shift; int W = mpi->w, H = mpi->h; @@ -238,7 +238,7 @@ vf->priv->Coefs[2], vf->priv->Coefs[3]); - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_hue.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_hue.c
Changed
@@ -76,7 +76,7 @@ /* FIXME: add packed yuv version of process */ -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi; @@ -107,7 +107,7 @@ vf->priv->hue, vf->priv->saturation); } - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static int control(struct vf_instance *vf, int request, void* data)
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_il.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_il.c
Changed
@@ -73,7 +73,7 @@ } } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ int w; FilterParam *luma = &vf->priv->lumaParam; FilterParam *chroma= &vf->priv->chromaParam; @@ -100,7 +100,7 @@ dmpi->stride[2], mpi->stride[2], chroma->interleave, luma->swap); } - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_ilpack.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_ilpack.c
Changed
@@ -373,7 +373,7 @@ } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi; @@ -384,7 +384,7 @@ ilpack(dmpi->planes[0], mpi->planes, dmpi->stride[0], mpi->stride, mpi->w, mpi->h, vf->priv->pack); - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static int config(struct vf_instance *vf,
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_ivtc.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_ivtc.c
Changed
@@ -452,10 +452,10 @@ } p->outframes++; - return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { int ret=0; struct vf_priv_s *p = vf->priv;
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_kerndeint.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_kerndeint.c
Changed
@@ -74,7 +74,7 @@ #define PLANAR_U 1 #define PLANAR_V 2 -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ int cw= mpi->w >> mpi->chroma_x_shift; int ch= mpi->h >> mpi->chroma_y_shift; int W = mpi->w, H = mpi->h; @@ -98,7 +98,7 @@ mp_image_t *dmpi, *pmpi; if(!vf->priv->do_deinterlace) - return vf_next_put_image(vf, mpi, pts); + return vf_next_put_image(vf, mpi, pts, endpts); dmpi=vf_get_image(vf->next,mpi->imgfmt, MP_IMGTYPE_IP, MP_IMGFLAG_ACCEPT_STRIDE, @@ -273,7 +273,7 @@ } } - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_lavc.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_lavc.c
Changed
@@ -82,7 +82,7 @@ return vf_next_config(vf,width,height,d_width,d_height,flags,IMGFMT_MPEGPES); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t* dmpi; int out_size; AVFrame *pic= vf->priv->pic; @@ -116,7 +116,7 @@ dmpi->planes[0]=(unsigned char*)&vf->priv->pes; - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } //===========================================================================// @@ -157,7 +157,7 @@ if(p_quality<32){ // fixed qscale - lavc_venc_context.flags = CODEC_FLAG_QSCALE; + lavc_venc_context.flags = AV_CODEC_FLAG_QSCALE; lavc_venc_context.global_quality = vf->priv->pic->quality = (int)(FF_QP2LAMBDA * ((p_quality<1) ? 1 : p_quality) + 0.5); } else {
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_lavfi.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_lavfi.c
Changed
@@ -300,7 +300,7 @@ mpi->priv = buf; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { AVFilterBufferRef *buf; mp_image_t *cmpi = NULL;
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_mcdeint.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_mcdeint.c
Changed
@@ -231,7 +231,7 @@ avctx_enc->gop_size = 300; avctx_enc->max_b_frames= 0; avctx_enc->pix_fmt = AV_PIX_FMT_YUV420P; - avctx_enc->flags = CODEC_FLAG_QSCALE | CODEC_FLAG_LOW_DELAY; + avctx_enc->flags = AV_CODEC_FLAG_QSCALE | AV_CODEC_FLAG_LOW_DELAY; avctx_enc->strict_std_compliance = FF_COMPLIANCE_EXPERIMENTAL; avctx_enc->global_quality= 1; av_dict_set(&opts, "memc_only", "1", 0); @@ -245,11 +245,11 @@ case 2: avctx_enc->me_method= ME_ITER; case 1: - avctx_enc->flags |= CODEC_FLAG_4MV; + avctx_enc->flags |= AV_CODEC_FLAG_4MV; avctx_enc->dia_size=2; // avctx_enc->mb_decision = MB_DECISION_RD; case 0: - avctx_enc->flags |= CODEC_FLAG_QPEL; + avctx_enc->flags |= AV_CODEC_FLAG_QPEL; } avcodec_open2(avctx_enc, enc, &opts); @@ -282,7 +282,7 @@ mpi->flags|=MP_IMGFLAG_DIRECT; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; if(!(mpi->flags&MP_IMGFLAG_DIRECT)){ @@ -298,7 +298,7 @@ filter(vf->priv, dmpi->planes, mpi->planes, dmpi->stride, mpi->stride, mpi->w, mpi->h); - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static void uninit(struct vf_instance *vf){
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_mirror.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_mirror.c
Changed
@@ -83,7 +83,7 @@ //===========================================================================// -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; // hope we'll get DR buffer: @@ -108,7 +108,7 @@ dmpi->planes[1]=mpi->planes[1]; // passthrough rgb8 palette } - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_noise.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_noise.c
Changed
@@ -339,7 +339,7 @@ mpi->flags|=MP_IMGFLAG_DIRECT; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; if(!(mpi->flags&MP_IMGFLAG_DIRECT)){ @@ -365,7 +365,7 @@ if(gCpuCaps.hasMMX2) __asm__ volatile ("sfence\n\t"); #endif - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static void uninit(struct vf_instance *vf){
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_ow.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_ow.c
Changed
@@ -233,7 +233,7 @@ mpi->flags|=MP_IMGFLAG_DIRECT; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; if(!(mpi->flags&MP_IMGFLAG_DIRECT)){ @@ -251,7 +251,7 @@ filter(vf->priv, dmpi->planes[1], mpi->planes[1], dmpi->stride[1], mpi->stride[1], mpi->w>>mpi->chroma_x_shift, mpi->h>>mpi->chroma_y_shift, 0); filter(vf->priv, dmpi->planes[2], mpi->planes[2], dmpi->stride[2], mpi->stride[2], mpi->w>>mpi->chroma_x_shift, mpi->h>>mpi->chroma_y_shift, 0); - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static void uninit(struct vf_instance *vf){
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_palette.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_palette.c
Changed
@@ -112,7 +112,7 @@ return vf_next_config(vf,width,height,d_width,d_height,flags,vf->priv->fmt); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; uint8_t *old_palette = mpi->planes[1]; @@ -171,7 +171,7 @@ } mpi->planes[1] = old_palette; - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_perspective.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_perspective.c
Changed
@@ -260,7 +260,7 @@ } } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ int cw= mpi->w >> mpi->chroma_x_shift; int ch= mpi->h >> mpi->chroma_y_shift; @@ -286,7 +286,7 @@ vf->priv, mpi->chroma_x_shift, mpi->chroma_y_shift); } - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_phase.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_phase.c
Changed
@@ -196,7 +196,7 @@ return mode; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi; int w; @@ -237,7 +237,7 @@ &vf->priv->buf[2], mode); } - return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); } static void uninit(struct vf_instance *vf)
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_pp.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_pp.c
Changed
@@ -128,7 +128,7 @@ mpi->flags|=MP_IMGFLAG_DIRECT; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ if(!(mpi->flags&MP_IMGFLAG_DIRECT)){ // no DR, so get a new image! hope we'll get DR buffer: vf->dmpi=vf_get_image(vf->next,mpi->imgfmt, @@ -153,7 +153,7 @@ mpi->pict_type); #endif } - return vf_next_put_image(vf,vf->dmpi, pts); + return vf_next_put_image(vf, vf->dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_pp7.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_pp7.c
Changed
@@ -372,7 +372,7 @@ mpi->flags|=MP_IMGFLAG_DIRECT; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; if(mpi->flags&MP_IMGFLAG_DIRECT){ @@ -404,7 +404,7 @@ if(gCpuCaps.hasMMX2) __asm__ volatile ("sfence\n\t"); #endif - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static void uninit(struct vf_instance *vf){
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_pullup.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_pullup.c
Changed
@@ -104,7 +104,7 @@ } #endif -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { struct pullup_context *c = vf->priv->ctx; struct pullup_buffer *b; @@ -230,7 +230,7 @@ dmpi->qstride = mpi->qstride; dmpi->qscale_type = mpi->qscale_type; } - return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); } dmpi = vf_get_image(vf->next, mpi->imgfmt, MP_IMGTYPE_EXPORT, MP_IMGFLAG_ACCEPT_STRIDE, @@ -249,7 +249,7 @@ dmpi->qstride = mpi->qstride; dmpi->qscale_type = mpi->qscale_type; } - ret = vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + ret = vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); pullup_release_frame(f); return ret; }
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_qp.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_qp.c
Changed
@@ -99,7 +99,7 @@ mpi->flags|=MP_IMGFLAG_DIRECT; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; int x,y; @@ -139,7 +139,7 @@ } } - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static void uninit(struct vf_instance *vf){
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_rectangle.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_rectangle.c
Changed
@@ -83,7 +83,7 @@ return 0; } static int -put_image(struct vf_instance *vf, mp_image_t* mpi, double pts){ +put_image(struct vf_instance *vf, mp_image_t* mpi, double pts, double endpts){ mp_image_t* dmpi; unsigned int bpp = mpi->bpp / 8; int x, y, w, h; @@ -152,7 +152,7 @@ p += dmpi->stride[0]; } } - return vf_next_put_image(vf, dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static int
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_remove_logo.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_remove_logo.c
Changed
@@ -774,7 +774,7 @@ * filter, has the logo removed by the filter, and is then sent to the next * filter. */ -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; dmpi=vf_get_image(vf->next,vf->priv->fmt, @@ -813,7 +813,7 @@ return 0; } - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_rgbtest.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_rgbtest.c
Changed
@@ -113,7 +113,7 @@ return vf_next_config(vf,width,height,d_width,d_height,flags,vf->priv->fmt); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; int x, y; int w = vf->priv->w > 0 ? vf->priv->w : mpi->w; @@ -137,7 +137,7 @@ } } - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_rotate.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_rotate.c
Changed
@@ -84,7 +84,7 @@ return vf_next_config(vf,height,width,d_height,d_width,flags,outfmt); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; // hope we'll get DR buffer: @@ -109,7 +109,7 @@ dmpi->planes[1] = mpi->planes[1]; // passthrough rgb8 palette } - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_sab.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_sab.c
Changed
@@ -241,7 +241,7 @@ } } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ int cw= mpi->w >> mpi->chroma_x_shift; int ch= mpi->h >> mpi->chroma_y_shift; @@ -255,7 +255,7 @@ blur(dmpi->planes[1], mpi->planes[1], cw , ch , dmpi->stride[1], mpi->stride[1], &vf->priv->chroma); blur(dmpi->planes[2], mpi->planes[2], cw , ch , dmpi->stride[2], mpi->stride[2], &vf->priv->chroma); - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_scale.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_scale.c
Changed
@@ -459,7 +459,7 @@ scale(vf->priv->ctx, vf->priv->ctx2, src, stride, y, h, dmpi->planes, dmpi->stride, vf->priv->interlaced); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi=mpi->priv; // printf("vf_scale::put_image(): processing whole frame! dmpi=%p flag=%d\n", @@ -483,7 +483,7 @@ if(vf->priv->palette) dmpi->planes[1]=vf->priv->palette; // export palette! - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static int control(struct vf_instance *vf, int request, void* data){
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_screenshot.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_screenshot.c
Changed
@@ -194,7 +194,7 @@ mpi->priv=vf->dmpi; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi = (mp_image_t *)mpi->priv; @@ -224,7 +224,7 @@ vf->priv->store_slices = 0; } - return vf_next_put_image(vf, dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static int control (vf_instance_t *vf, int request, void *data)
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_smartblur.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_smartblur.c
Changed
@@ -182,7 +182,7 @@ } } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ int cw= mpi->w >> mpi->chroma_x_shift; int ch= mpi->h >> mpi->chroma_y_shift; int threshold = vf->priv->luma.threshold || vf->priv->chroma.threshold; @@ -198,7 +198,7 @@ blur(dmpi->planes[1], mpi->planes[1], cw , ch , dmpi->stride[1], mpi->stride[1], &vf->priv->chroma); blur(dmpi->planes[2], mpi->planes[2], cw , ch , dmpi->stride[2], mpi->stride[2], &vf->priv->chroma); - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_softpulldown.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_softpulldown.c
Changed
@@ -35,7 +35,7 @@ long long out; }; -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi; int ret = 0; @@ -61,7 +61,7 @@ } if (state == 0) { - ret = vf_next_put_image(vf, mpi, MP_NOPTS_VALUE); + ret = vf_next_put_image(vf, mpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); vf->priv->out++; if (flags & MP_IMGFIELD_REPEAT_FIRST) { my_memcpy_pic(dmpi->planes[0], @@ -97,10 +97,10 @@ mpi->chroma_width, mpi->chroma_height/2, dmpi->stride[2]*2, mpi->stride[2]*2); } - ret = vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + ret = vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); vf->priv->out++; if (flags & MP_IMGFIELD_REPEAT_FIRST) { - ret |= vf_next_put_image(vf, mpi, MP_NOPTS_VALUE); + ret |= vf_next_put_image(vf, mpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); vf->priv->out++; state=0; } else {
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_softskip.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_softskip.c
Changed
@@ -31,7 +31,7 @@ int skipflag; }; -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi; @@ -51,7 +51,7 @@ dmpi->stride[2] = mpi->stride[2]; } - return vf_next_put_image(vf, dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static int control(struct vf_instance *vf, int request, void* data)
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_spp.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_spp.c
Changed
@@ -470,7 +470,7 @@ mpi->flags|=MP_IMGFLAG_DIRECT; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; if(!(mpi->flags&MP_IMGFLAG_DIRECT)){ @@ -519,7 +519,7 @@ if(gCpuCaps.hasMMX2) __asm__ volatile ("sfence\n\t"); #endif - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static void uninit(struct vf_instance *vf){
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_stereo3d.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_stereo3d.c
Changed
@@ -283,7 +283,7 @@ d_width, d_height, flags, outfmt); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi; if (vf->priv->in.fmt == vf->priv->out.fmt) { //nothing to do @@ -384,7 +384,7 @@ break; } } - return vf_next_put_image(vf, dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static int query_format(struct vf_instance *vf, unsigned int fmt)
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_swapuv.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_swapuv.c
Changed
@@ -48,7 +48,7 @@ mpi->priv=(void*)dmpi; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; if(mpi->flags&MP_IMGFLAG_DIRECT){ @@ -67,7 +67,7 @@ vf_clone_mpi_attributes(dmpi, mpi); - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_telecine.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_telecine.c
Changed
@@ -33,7 +33,7 @@ int frame; }; -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi; int ret; @@ -63,7 +63,7 @@ chroma_width, mpi->chroma_height/2, dmpi->stride[2]*2, mpi->stride[2]*2); } - ret = vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + ret = vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); /* Fallthrough */ case 1: case 2: @@ -77,7 +77,7 @@ chroma_width, mpi->chroma_height, dmpi->stride[2], mpi->stride[2]); } - return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE) || ret; + return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE) || ret; case 3: my_memcpy_pic(dmpi->planes[0]+dmpi->stride[0], mpi->planes[0]+mpi->stride[0], w, mpi->h/2, @@ -92,7 +92,7 @@ chroma_width, mpi->chroma_height/2, dmpi->stride[2]*2, mpi->stride[2]*2); } - ret = vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + ret = vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); my_memcpy_pic(dmpi->planes[0], mpi->planes[0], w, mpi->h/2, dmpi->stride[0]*2, mpi->stride[0]*2); if (mpi->flags & MP_IMGFLAG_PLANAR) {
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_test.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_test.c
Changed
@@ -269,7 +269,7 @@ } } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; int frame= vf->priv->frame_num; @@ -302,7 +302,7 @@ frame++; vf->priv->frame_num= frame; - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_tfields.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_tfields.c
Changed
@@ -328,7 +328,7 @@ static int continue_buffered_image(struct vf_instance *vf); -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { vf->priv->buffered_mpi = mpi; vf->priv->buffered_pts = pts; @@ -392,7 +392,7 @@ dmpi->stride[1] = 2*mpi->stride[1]; dmpi->stride[2] = 2*mpi->stride[2]; } - ret |= vf_next_put_image(vf, dmpi, calc_pts(pts, i)); + ret |= vf_next_put_image(vf, dmpi, calc_pts(pts, i), MP_NOPTS_VALUE); if (correct_pts) break; else @@ -422,7 +422,7 @@ deint(dmpi->planes[2], dmpi->stride[2], mpi->planes[2], mpi->stride[2], mpi->chroma_width, mpi->chroma_height, (i^!tff)); } - ret |= vf_next_put_image(vf, dmpi, calc_pts(pts, i)); + ret |= vf_next_put_image(vf, dmpi, calc_pts(pts, i), MP_NOPTS_VALUE); if (correct_pts) break; else @@ -448,7 +448,7 @@ mpi->chroma_width, mpi->chroma_height/2, dmpi->stride[2], mpi->stride[2]*2, (i^!tff)); } - ret |= vf_next_put_image(vf, dmpi, calc_pts(pts, i)); + ret |= vf_next_put_image(vf, dmpi, calc_pts(pts, i), MP_NOPTS_VALUE); if (correct_pts) break; else
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_tile.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_tile.c
Changed
@@ -107,7 +107,7 @@ } /* Filter handler */ -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi; struct vf_priv_s *priv; @@ -184,7 +184,7 @@ /* Display the composition */ dmpi->width = xw; dmpi->height = yh; - return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); } else { /* Skip the frame */
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_tinterlace.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_tinterlace.c
Changed
@@ -37,7 +37,7 @@ mp_image_t *dmpi; }; -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { int ret = 0; mp_image_t *dmpi; @@ -76,16 +76,16 @@ mpi->chroma_width, mpi->chroma_height, dmpi->stride[2]*2, mpi->stride[2]); } - ret = vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + ret = vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); } break; case 1: if (vf->priv->frame & 1) - ret = vf_next_put_image(vf, mpi, MP_NOPTS_VALUE); + ret = vf_next_put_image(vf, mpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); break; case 2: if ((vf->priv->frame & 1) == 0) - ret = vf_next_put_image(vf, mpi, MP_NOPTS_VALUE); + ret = vf_next_put_image(vf, mpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); break; case 3: dmpi = vf_get_image(vf->next, mpi->imgfmt, @@ -116,7 +116,7 @@ dmpi->stride[2]*2, mpi->stride[2]); } } - ret = vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + ret = vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); break; case 4: // Interleave even lines (only) from Frame 'i' with odd @@ -166,7 +166,7 @@ mpi->chroma_width, mpi->chroma_height/2, dmpi->stride[2]*2, mpi->stride[2]*2); } - ret = vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); + ret = vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE, MP_NOPTS_VALUE); } break; }
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_unsharp.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_unsharp.c
Changed
@@ -179,7 +179,7 @@ mpi->flags |= MP_IMGFLAG_DIRECT; } -static int put_image( struct vf_instance *vf, mp_image_t *mpi, double pts) { +static int put_image( struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts) { mp_image_t *dmpi = mpi->priv; mpi->priv = NULL; @@ -202,7 +202,7 @@ __asm__ volatile ("sfence\n\t"); #endif - return vf_next_put_image( vf, dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static void uninit( struct vf_instance *vf ) {
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_uspp.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_uspp.c
Changed
@@ -240,7 +240,7 @@ avctx_enc->gop_size = 300; avctx_enc->max_b_frames= 0; avctx_enc->pix_fmt = AV_PIX_FMT_YUV420P; - avctx_enc->flags = CODEC_FLAG_QSCALE | CODEC_FLAG_LOW_DELAY; + avctx_enc->flags = AV_CODEC_FLAG_QSCALE | AV_CODEC_FLAG_LOW_DELAY; avctx_enc->strict_std_compliance = FF_COMPLIANCE_EXPERIMENTAL; avctx_enc->global_quality= 123; av_dict_set(&opts, "no_bitstream", "1", 0); @@ -275,7 +275,7 @@ mpi->flags|=MP_IMGFLAG_DIRECT; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; if(!(mpi->flags&MP_IMGFLAG_DIRECT)){ @@ -307,7 +307,7 @@ if(gCpuCaps.hasMMX2) __asm__ volatile ("sfence\n\t"); #endif - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } static void uninit(struct vf_instance *vf){
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_vo.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_vo.c
Changed
@@ -34,6 +34,7 @@ struct vf_priv_s { double pts; + double endpts; const vo_functions_t *vo; }; #define video_out (vf->priv->vo) @@ -136,6 +137,11 @@ *(double *)data = vf->priv->pts; return CONTROL_TRUE; } + case VFCTRL_GET_ENDPTS: + { + *(double *)data = vf->priv->endpts; + return CONTROL_TRUE; + } } // return video_out->control(request,data); return CONTROL_UNKNOWN; @@ -160,10 +166,11 @@ } static int put_image(struct vf_instance *vf, - mp_image_t *mpi, double pts){ + mp_image_t *mpi, double pts, double endpts){ if(!vo_config_count) return 0; // vo not configured? // record pts (potentially modified by filters) for main loop vf->priv->pts = pts; + vf->priv->endpts = endpts; // first check, maybe the vo/vf plugin implements draw_image using mpi: if(video_out->control(VOCTRL_DRAW_IMAGE,mpi)==VO_TRUE) return 1; // done. // nope, fallback to old draw_frame/draw_slice:
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_yadif.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_yadif.c
Changed
@@ -396,7 +396,7 @@ static int continue_buffered_image(struct vf_instance *vf); -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ int tff; if(vf->priv->parity < 0) { @@ -415,7 +415,7 @@ vf->priv->buffered_pts = pts; if(vf->priv->do_deinterlace == 0) - return vf_next_put_image(vf, mpi, pts); + return vf_next_put_image(vf, mpi, pts, endpts); else if(vf->priv->do_deinterlace == 1){ vf->priv->do_deinterlace= 2; return 0; @@ -443,7 +443,7 @@ filter(vf->priv, dmpi->planes, dmpi->stride, mpi->w, mpi->h, i ^ tff ^ 1, tff); if (correct_pts && i < (vf->priv->mode & 1)) vf_queue_frame(vf, continue_buffered_image); - ret |= vf_next_put_image(vf, dmpi, pts /*FIXME*/); + ret |= vf_next_put_image(vf, dmpi, pts /*FIXME*/, MP_NOPTS_VALUE); if (correct_pts) break; if(i<(vf->priv->mode&1))
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_yuvcsp.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_yuvcsp.c
Changed
@@ -48,7 +48,7 @@ return (x > 240) ? 240 : (x < 16) ? 16 : x; } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ int i,j; uint8_t *y_in, *cb_in, *cr_in; uint8_t *y_out, *cb_out, *cr_out; @@ -76,7 +76,7 @@ cr_out[i*vf->dmpi->stride[2]+j] = clamp_c(cr_in[i*mpi->stride[2]+j]); } - return vf_next_put_image(vf,vf->dmpi, pts); + return vf_next_put_image(vf, vf->dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_yvu9.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_yvu9.c
Changed
@@ -45,7 +45,7 @@ return vf_next_config(vf,width,height,d_width,d_height,flags,IMGFMT_YV12); } -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ mp_image_t *dmpi; int y,w,h; @@ -75,7 +75,7 @@ vf_clone_mpi_attributes(dmpi, mpi); - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } //===========================================================================//
View file
MPlayer-1.2.r37916.tar.bz2/libmpcodecs/vf_zrmjpeg.c -> MPlayer-1.2.r38008.tar.xz/libmpcodecs/vf_zrmjpeg.c
Changed
@@ -817,7 +817,7 @@ * \param mpi pointer to mp_image_t structure * \param pts */ -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ +static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts, double endpts){ struct vf_priv_s *priv = vf->priv; int size = 0; int i; @@ -833,7 +833,7 @@ MP_IMGTYPE_EXPORT, 0, mpi->w, mpi->h); dmpi->planes[0] = (uint8_t*)priv->buf; dmpi->planes[1] = (uint8_t*)size; - return vf_next_put_image(vf,dmpi, pts); + return vf_next_put_image(vf, dmpi, pts, endpts); } /// query_format entrypoint for the ZRMJPEG vf filter
View file
MPlayer-1.2.r37916.tar.bz2/libmpdemux/demux_audio.c -> MPlayer-1.2.r38008.tar.xz/libmpdemux/demux_audio.c
Changed
@@ -45,6 +45,7 @@ typedef struct da_priv { int frmt; double next_pts; + int r_gain; } da_priv_t; //! rather arbitrary value for maximum length of wav-format headers @@ -285,7 +286,7 @@ * * @return 0 (error or no variable bitrate mode) or number of frames */ -static unsigned int mp3_vbr_frames(stream_t *s, off_t off) { +static unsigned int mp3_vbr_frames(stream_t *s, off_t off, da_priv_t *priv) { static const int xing_offset[2][2] = {{32, 17}, {17, 9}}; unsigned int data; unsigned char hdr[4]; @@ -317,7 +318,21 @@ data = stream_read_dword(s); if (data & 0x1) // frames field is present - return stream_read_dword(s); // frames + data = stream_read_dword(s); // frames + + if (stream_skip(s, 123)) { + uint16_t word = stream_read_word(s); + + /* Radio ReplayGain */ + if ((word >> 13) == 1) { + priv->r_gain = word & 0x1ff; + + if ((word >> 9) & 1) + priv->r_gain = -priv->r_gain; + } + } + + return data; } /* VBRI (at fixed position: 32 bytes after header) */ @@ -436,6 +451,9 @@ sh_audio = new_sh_audio(demuxer,0, NULL); + priv = malloc(sizeof(da_priv_t)); + priv->r_gain = INT32_MIN; + switch(frmt) { case MP3: sh_audio->format = (mp3_found->mpa_layer < 3 ? 0x50 : 0x55); @@ -453,7 +471,7 @@ sh_audio->wf->nBlockAlign = mp3_found->mpa_spf; sh_audio->wf->wBitsPerSample = 16; sh_audio->wf->cbSize = 0; - duration = (double) mp3_vbr_frames(s, demuxer->movi_start) * mp3_found->mpa_spf / mp3_found->mp3_freq; + duration = (double) mp3_vbr_frames(s, demuxer->movi_start, priv) * mp3_found->mpa_spf / mp3_found->mp3_freq; free(mp3_found); mp3_found = NULL; if(demuxer->movi_end && (s->flags & MP_STREAM_SEEK) == MP_STREAM_SEEK) { @@ -645,7 +663,6 @@ } break; } - priv = malloc(sizeof(da_priv_t)); priv->frmt = frmt; priv->next_pts = 0; demuxer->priv = priv; @@ -836,6 +853,11 @@ *((int *)arg)=(int)( (priv->next_pts*100) / audio_length); return DEMUXER_CTRL_OK; + case DEMUXER_CTRL_GET_REPLAY_GAIN: + if (priv->r_gain == INT32_MIN) return DEMUXER_CTRL_DONTKNOW; + *((int *)arg) = priv->r_gain; + return DEMUXER_CTRL_OK; + default: return DEMUXER_CTRL_NOTIMPL; }
View file
MPlayer-1.2.r37916.tar.bz2/libmpdemux/demux_lavf.c -> MPlayer-1.2.r38008.tar.xz/libmpdemux/demux_lavf.c
Changed
@@ -42,6 +42,7 @@ #include "libavutil/avstring.h" #include "libavutil/mathematics.h" #include "libavutil/opt.h" +#include "libavutil/replaygain.h" #include "mp_taglists.h" @@ -80,6 +81,7 @@ int cur_program; int nb_streams_last; int use_lavf_netstream; + int r_gain; }lavf_priv_t; static int mp_read(void *opaque, uint8_t *buf, int size) { @@ -88,6 +90,8 @@ int ret; ret=stream_read(stream, buf, size); + if (!ret && stream->eof) + ret = AVERROR_EOF; mp_msg(MSGT_HEADER,MSGL_DBG2,"%d=mp_read(%p, %p, %d), pos: %"PRId64", eof:%d\n", ret, stream, buf, size, stream_tell(stream), stream->eof); @@ -155,8 +159,10 @@ int read_size = INITIAL_PROBE_SIZE; int score; - if(!demuxer->priv) + if(!demuxer->priv) { demuxer->priv=calloc(sizeof(lavf_priv_t),1); + ((lavf_priv_t *)demuxer->priv)->r_gain = INT32_MIN; + } priv= demuxer->priv; init_avformat(); @@ -176,7 +182,7 @@ } avpd.buf = av_mallocz(FFMAX(BIO_BUFFER_SIZE, PROBE_BUF_SIZE) + - FF_INPUT_BUFFER_PADDING_SIZE); + AV_INPUT_BUFFER_PADDING_SIZE); do { read_size = stream_read(demuxer->stream, avpd.buf + probe_data_size, read_size); if(read_size < 0) { @@ -229,6 +235,7 @@ "cdxl", "dxa", "flv", + "flac", "gxf", "nut", "nuv", @@ -357,6 +364,14 @@ } if (demuxer->audio->id != i) st->discard= AVDISCARD_ALL; + if (priv->audio_streams == 0) { + int rg_size; + AVReplayGain *rg = (AVReplayGain*)av_stream_get_side_data(st, AV_PKT_DATA_REPLAYGAIN, &rg_size); + if (rg && rg_size >= sizeof(*rg)) { + priv->r_gain = rg->track_gain / 10000; + } + } else + priv->r_gain = INT32_MIN; stream_id = priv->audio_streams++; break; } @@ -902,6 +917,11 @@ priv->cur_program = prog->progid = program->id; return DEMUXER_CTRL_OK; } + case DEMUXER_CTRL_GET_REPLAY_GAIN: + if (priv->r_gain == INT32_MIN) + return DEMUXER_CTRL_DONTKNOW; + *((int *)arg) = priv->r_gain; + return DEMUXER_CTRL_OK; default: return DEMUXER_CTRL_NOTIMPL; }
View file
MPlayer-1.2.r37916.tar.bz2/libmpdemux/demuxer.c -> MPlayer-1.2.r38008.tar.xz/libmpdemux/demuxer.c
Changed
@@ -50,7 +50,7 @@ #ifdef CONFIG_FFMPEG #include "libavcodec/avcodec.h" -#if MP_INPUT_BUFFER_PADDING_SIZE < FF_INPUT_BUFFER_PADDING_SIZE +#if MP_INPUT_BUFFER_PADDING_SIZE < AV_INPUT_BUFFER_PADDING_SIZE #error MP_INPUT_BUFFER_PADDING_SIZE is too small! #endif #include "av_helpers.h" @@ -886,14 +886,23 @@ int ds_get_packet_pts(demux_stream_t *ds, unsigned char **start, double *pts) { + double dummy; + return ds_get_packet_pts_endpts(ds, start, pts, &dummy); +} + +int ds_get_packet_pts_endpts(demux_stream_t *ds, unsigned char **start, double *pts, double *endpts) +{ int len; *pts = MP_NOPTS_VALUE; + *endpts = MP_NOPTS_VALUE; len = ds_get_packet(ds, start); if (len < 0) return len; // Return pts unless this read starts from the middle of a packet if (len == ds->buffer_pos) *pts = ds->current->pts; + if (len == ds->buffer_size) + *endpts = ds->current->endpts; return len; }
View file
MPlayer-1.2.r37916.tar.bz2/libmpdemux/demuxer.h -> MPlayer-1.2.r38008.tar.xz/libmpdemux/demuxer.h
Changed
@@ -110,6 +110,7 @@ #define DEMUXER_CTRL_SWITCH_VIDEO 14 #define DEMUXER_CTRL_IDENTIFY_PROGRAM 15 #define DEMUXER_CTRL_CORRECT_PTS 16 +#define DEMUXER_CTRL_GET_REPLAY_GAIN 17 // returns 10x the adjustment #define SEEK_ABSOLUTE (1 << 0) #define SEEK_FACTOR (1 << 1) @@ -405,6 +406,7 @@ void ds_free_packs(demux_stream_t *ds); int ds_get_packet(demux_stream_t *ds,unsigned char **start); int ds_get_packet_pts(demux_stream_t *ds, unsigned char **start, double *pts); +int ds_get_packet_pts_endpts(demux_stream_t *ds, unsigned char **start, double *pts, double *endpts); int ds_get_packet_sub(demux_stream_t *ds,unsigned char **start, double *pts, double *endpts); double ds_get_next_pts(demux_stream_t *ds);
View file
MPlayer-1.2.r37916.tar.bz2/libmpdemux/stheader.h -> MPlayer-1.2.r38008.tar.xz/libmpdemux/stheader.h
Changed
@@ -38,6 +38,7 @@ /* audio: last known pts value in output from decoder \ * video: predicted/interpolated PTS of the current frame */ \ double pts; \ + double endpts; \ /* codec-specific: */ \ void* context; /* codec-specific stuff (usually HANDLE or struct pointer) */ \ char* lang; /* track language */ \ @@ -102,6 +103,7 @@ float next_frame_time; double last_pts; double buffered_pts[64]; + double buffered_endpts[64]; int num_buffered_pts; // output format: (set by demuxer) float fps; // frames per second (set only if constant fps)
View file
MPlayer-1.2.r37916.tar.bz2/libvo/osx_objc_common.m -> MPlayer-1.2.r38008.tar.xz/libvo/osx_objc_common.m
Changed
@@ -48,16 +48,28 @@ static NSAutoreleasePool *autoreleasepool; static MPCommonOpenGLView *oglv; +static NSOpenGLPixelFormat *pixfmt; void (*vo_osx_redraw_func)(void); +static const NSOpenGLPixelFormatAttribute double_attribs[] = { + NSOpenGLPFADoubleBuffer, 0 +}; + +static const NSOpenGLPixelFormatAttribute nodouble_attribs[] = { + 0 +}; + int vo_osx_init(void) { autoreleasepool = [[NSAutoreleasePool alloc] init]; - oglv = [[MPCommonOpenGLView alloc] initWithFrame:NSMakeRect(0, 0, 100, 100) pixelFormat:[MPCommonOpenGLView defaultPixelFormat]]; + const NSOpenGLPixelFormatAttribute *attribs = vo_doublebuffering ? double_attribs : nodouble_attribs; + pixfmt = [[NSOpenGLPixelFormat alloc] initWithAttributes:attribs]; + oglv = [[MPCommonOpenGLView alloc] initWithFrame:NSMakeRect(0, 0, 100, 100) pixelFormat:pixfmt]; [oglv autorelease]; [oglv display]; [oglv preinit]; + [pixfmt autorelease]; return 1; } @@ -105,12 +117,11 @@ } @implementation MPCommonOpenGLView -- (void) update_screen_info +- (NSScreen *) fullscreen_screen { int screen_id = xinerama_screen; NSArray *screen_array = [NSScreen screens]; NSScreen *screen_handle; - NSRect screen_frame; if(screen_id >= (int)[screen_array count]) { @@ -121,8 +132,13 @@ screen_handle = [[self window] screen]; else screen_handle = [screen_array objectAtIndex:(screen_id < 0 ? 0 : screen_id)]; + return screen_handle; +} - screen_frame = [screen_handle frame]; +- (void) update_screen_info +{ + NSScreen *screen_handle = [self fullscreen_screen]; + NSRect screen_frame = [screen_handle frame]; vo_screenwidth = screen_frame.size.width; vo_screenheight = screen_frame.size.height; xinerama_x = screen_frame.origin.x; @@ -168,7 +184,7 @@ winSizeMult = 1; //create OpenGL Context - glContext = [[NSOpenGLContext alloc] initWithFormat:[NSOpenGLView defaultPixelFormat] shareContext:nil]; + glContext = [[NSOpenGLContext alloc] initWithFormat:pixfmt shareContext:nil]; [self setOpenGLContext:glContext]; [glContext setValues:&swapInterval forParameter:NSOpenGLCPSwapInterval]; @@ -384,6 +400,9 @@ //go fullscreen if(vo_fs) { + if ([window respondsToSelector:@selector(enterFullScreenMode)]) { + [window enterFullScreenMode:[self fullscreen_screen]]; + } if(!vo_rootwin) { SetSystemUIMode( kUIModeAllHidden, kUIOptionAutoShowMenuBar); @@ -403,6 +422,9 @@ } else { + if ([window respondsToSelector:@selector(exitFullScreenMode)]) { + [window exitFullScreenMode:[self fullscreen_screen]]; + } SetSystemUIMode( kUIModeNormal, 0); CGDisplayShowCursor(kCGDirectMainDisplay);
View file
MPlayer-1.2.r37916.tar.bz2/libvo/vo_vdpau.c -> MPlayer-1.2.r38008.tar.xz/libvo/vo_vdpau.c
Changed
@@ -34,6 +34,7 @@ #include <stdio.h> #include <strings.h> +#include <vdpau/vdpau_x11.h> #include "config.h" #include "sub/ass_mp.h"
View file
MPlayer-1.2.r37916.tar.bz2/libvo/vo_xv.c -> MPlayer-1.2.r38008.tar.xz/libvo/vo_xv.c
Changed
@@ -386,34 +386,46 @@ int x, int y) { uint8_t *dst; + int idx_p1 = 1, idx_p2 = 2; dst = xvimage[current_buf]->data + xvimage[current_buf]->offsets[0] + xvimage[current_buf]->pitches[0] * y + x; memcpy_pic(dst, image[0], w, h, xvimage[current_buf]->pitches[0], stride[0]); - x /= 2; - y /= 2; - w /= 2; - h /= 2; - - dst = xvimage[current_buf]->data + xvimage[current_buf]->offsets[1] + - xvimage[current_buf]->pitches[1] * y + x; - if (image_format != IMGFMT_YV12) - memcpy_pic(dst, image[1], w, h, xvimage[current_buf]->pitches[1], - stride[1]); - else - memcpy_pic(dst, image[2], w, h, xvimage[current_buf]->pitches[1], - stride[2]); - - dst = xvimage[current_buf]->data + xvimage[current_buf]->offsets[2] + - xvimage[current_buf]->pitches[2] * y + x; - if (image_format == IMGFMT_YV12) - memcpy_pic(dst, image[1], w, h, xvimage[current_buf]->pitches[1], - stride[1]); - else - memcpy_pic(dst, image[2], w, h, xvimage[current_buf]->pitches[1], - stride[2]); + switch (image_format) { + case IMGFMT_YV12: + idx_p1 = 2; idx_p2 = 1; + case IMGFMT_I420: + case IMGFMT_IYUV: + x /= 2; + y /= 2; + w /= 2; + h /= 2; + + dst = xvimage[current_buf]->data + xvimage[current_buf]->offsets[1] + + xvimage[current_buf]->pitches[1] * y + x; + memcpy_pic(dst, image[idx_p1], w, h, xvimage[current_buf]->pitches[1], + stride[idx_p1]); + + dst = xvimage[current_buf]->data + xvimage[current_buf]->offsets[2] + + xvimage[current_buf]->pitches[2] * y + x; + memcpy_pic(dst, image[idx_p2], w, h, xvimage[current_buf]->pitches[2], + stride[idx_p2]); + break; + case IMGFMT_NV12: + case IMGFMT_NV21: + x &= ~1; + y /= 2; + w &= ~1; + h /= 2; + + dst = xvimage[current_buf]->data + xvimage[current_buf]->offsets[1] + + xvimage[current_buf]->pitches[1] * y + x; + memcpy_pic(dst, image[idx_p1], w, h, xvimage[current_buf]->pitches[1], + stride[idx_p1]); + break; + } return 0; } @@ -476,36 +488,33 @@ if ((mpi->flags & (MP_IMGFLAG_ACCEPT_STRIDE | MP_IMGFLAG_ACCEPT_WIDTH)) || (mpi->width * (mpi->bpp / 8) == xvimage[buf]->pitches[0])) { + int idx_p1 = 1, idx_p2 = 2; current_buf = buf; mpi->planes[0] = xvimage[current_buf]->data + xvimage[current_buf]->offsets[0]; mpi->stride[0] = xvimage[current_buf]->pitches[0]; mpi->width = mpi->stride[0] / (mpi->bpp / 8); - if (mpi->flags & MP_IMGFLAG_PLANAR) - { - if (mpi->flags & MP_IMGFLAG_SWAPPED) - { - // I420 - mpi->planes[1] = - xvimage[current_buf]->data + - xvimage[current_buf]->offsets[1]; - mpi->planes[2] = - xvimage[current_buf]->data + - xvimage[current_buf]->offsets[2]; - mpi->stride[1] = xvimage[current_buf]->pitches[1]; - mpi->stride[2] = xvimage[current_buf]->pitches[2]; - } else - { - // YV12 - mpi->planes[1] = - xvimage[current_buf]->data + - xvimage[current_buf]->offsets[2]; - mpi->planes[2] = - xvimage[current_buf]->data + - xvimage[current_buf]->offsets[1]; - mpi->stride[1] = xvimage[current_buf]->pitches[2]; - mpi->stride[2] = xvimage[current_buf]->pitches[1]; - } + switch (image_format) { + case IMGFMT_YV12: + idx_p1 = 2; idx_p2 = 1; + case IMGFMT_I420: + case IMGFMT_IYUV: + mpi->planes[1] = + xvimage[current_buf]->data + + xvimage[current_buf]->offsets[idx_p1]; + mpi->planes[2] = + xvimage[current_buf]->data + + xvimage[current_buf]->offsets[idx_p2]; + mpi->stride[1] = xvimage[current_buf]->pitches[idx_p1]; + mpi->stride[2] = xvimage[current_buf]->pitches[idx_p2]; + break; + case IMGFMT_NV12: + case IMGFMT_NV21: + mpi->planes[1] = + xvimage[current_buf]->data + + xvimage[current_buf]->offsets[1]; + mpi->stride[1] = xvimage[current_buf]->pitches[1]; + break; } mpi->flags |= MP_IMGFLAG_DIRECT; mpi->priv = (void *)(intptr_t)current_buf; @@ -515,10 +524,27 @@ return VO_FALSE; } +static int is_supported_format(uint32_t format) +{ + switch (format) { + case IMGFMT_YV12: + case IMGFMT_I420: + case IMGFMT_IYUV: + case IMGFMT_NV12: + case IMGFMT_NV21: + return 1; + default: + return !mp_get_chroma_shift(image_format, NULL, NULL, NULL); + } +} + static int query_format(uint32_t format) { uint32_t i; int flag = VFCAP_CSP_SUPPORTED | VFCAP_CSP_SUPPORTED_BY_HW | VFCAP_HWSCALE_UP | VFCAP_HWSCALE_DOWN | VFCAP_OSD | VFCAP_ACCEPT_STRIDE; // FIXME! check for DOWN + if (!is_supported_format(format)) { + return 0; + } /* check image formats */ for (i = 0; i < formats; i++)
View file
MPlayer-1.2.r37916.tar.bz2/mencoder.c -> MPlayer-1.2.r38008.tar.xz/mencoder.c
Changed
@@ -463,9 +463,9 @@ if (vfilter) { int softskip = (vfilter->control(vfilter, VFCTRL_SKIP_NEXT_FRAME, 0) == CONTROL_TRUE); - void *decoded_frame = decode_video(sh_video, frame_data->start, frame_data->in_size, !softskip, MP_NOPTS_VALUE, NULL); + void *decoded_frame = decode_video(sh_video, frame_data->start, frame_data->in_size, !softskip, MP_NOPTS_VALUE, MP_NOPTS_VALUE, NULL); if (decoded_frame) - filter_video(sh_video, decoded_frame, MP_NOPTS_VALUE); + filter_video(sh_video, decoded_frame, MP_NOPTS_VALUE, MP_NOPTS_VALUE); else if (frame_data->flush) return 2; } @@ -1504,7 +1504,7 @@ (!sh_video->vfilter || ((vf_instance_t *)sh_video->vfilter)->control(sh_video->vfilter, VFCTRL_SKIP_NEXT_FRAME, 0) != CONTROL_TRUE); void *decoded_frame = decode_video(sh_video,frame_data.start,frame_data.in_size, - drop_frame, MP_NOPTS_VALUE, NULL); + drop_frame, MP_NOPTS_VALUE, MP_NOPTS_VALUE, NULL); if (frame_data.flush && !decoded_frame) at_eof = 3; if (did_seek && sh_video->pts != MP_NOPTS_VALUE) { @@ -1517,7 +1517,7 @@ // sh_video->pts causes flickering with subtitles and complaints from MPEG-4 // encoder due to not being monotonic. // If you change this please note the reason here! - blit_frame = decoded_frame && filter_video(sh_video, decoded_frame, v_muxer_time + sub_offset);} + blit_frame = decoded_frame && filter_video(sh_video, decoded_frame, v_muxer_time + sub_offset, MP_NOPTS_VALUE);} v_muxer_time = adjusted_muxer_time(mux_v); // update after muxing if (sh_video->vf_initialized < 0) mencoder_exit(1, NULL);
View file
MPlayer-1.2.r37916.tar.bz2/mpcommon.c -> MPlayer-1.2.r38008.tar.xz/mpcommon.c
Changed
@@ -588,9 +588,6 @@ set_priority(); #endif - if (codec_path) - set_codec_path(codec_path); - /* Check codecs.conf. */ if (!codecs_file || !parse_codec_cfg(codecs_file)) { char *conf_path = get_path("codecs.conf");
View file
MPlayer-1.2.r37916.tar.bz2/mplayer.c -> MPlayer-1.2.r38008.tar.xz/mplayer.c
Changed
@@ -1777,6 +1777,7 @@ int in_size; int hit_eof = 0; double pts; + double endpts; while (1) { int drop_frame = 0; @@ -1787,7 +1788,7 @@ if (vf_output_queued_frame(sh_video->vfilter)) break; current_module = "video_read_frame"; - in_size = ds_get_packet_pts(d_video, &start, &pts); + in_size = ds_get_packet_pts_endpts(d_video, &start, &pts, &endpts); if (in_size < 0) { // try to extract last frames in case of decoder lag in_size = 0; @@ -1799,13 +1800,13 @@ if (in_size > max_framesize) max_framesize = in_size; current_module = "decode video"; - decoded_frame = decode_video(sh_video, start, in_size, drop_frame, pts, NULL); + decoded_frame = decode_video(sh_video, start, in_size, drop_frame, pts, endpts, NULL); if (decoded_frame) { update_subtitles(sh_video, sh_video->pts, mpctx->d_sub, 0); update_teletext(sh_video, mpctx->demuxer, 0); update_osd_msg(); current_module = "filter video"; - if (filter_video(sh_video, decoded_frame, sh_video->pts)) + if (filter_video(sh_video, decoded_frame, sh_video->pts, sh_video->endpts)) break; } else if (drop_frame) return -1; @@ -2491,7 +2492,7 @@ // still frame has been reached, no need to decode if ((in_size > 0 || flush) && !decoded_frame) decoded_frame = decode_video(sh_video, start, in_size, drop_frame, - sh_video->pts, &full_frame); + sh_video->pts, sh_video->endpts, &full_frame); if (flush && !decoded_frame) return -1; @@ -2512,13 +2513,15 @@ current_module = "filter_video"; *blit_frame = (decoded_frame && filter_video(sh_video, decoded_frame, - sh_video->pts)); + sh_video->pts, sh_video->endpts)); } else { int res = generate_video_frame(sh_video, mpctx->d_video); if (!res) return -1; ((vf_instance_t *)sh_video->vfilter)->control(sh_video->vfilter, VFCTRL_GET_PTS, &sh_video->pts); + ((vf_instance_t *)sh_video->vfilter)->control(sh_video->vfilter, + VFCTRL_GET_ENDPTS, &sh_video->endpts); if (sh_video->pts == MP_NOPTS_VALUE) { mp_msg(MSGT_CPLAYER, MSGL_ERR, MSGTR_PtsAfterFiltersMissing); sh_video->pts = sh_video->last_pts; @@ -2536,7 +2539,9 @@ mp_msg(MSGT_CPLAYER, MSGL_V, "pts value < previous\n"); } frame_time = sh_video->pts - sh_video->last_pts; - if (!frame_time) + // The first frame should be displayed directly, + // all others should get a default frame_time + if (!frame_time && mpctx->startup_decode_retry == 0) frame_time = sh_video->frametime; sh_video->last_pts = sh_video->pts; advance_timer(frame_time); @@ -3793,7 +3798,7 @@ update_osd_msg(); } else { int frame_time_remaining = 0; - int blit_frame = 1; + int blit_frame = mpctx->num_buffered_frames > 0; // skip timing after seek int skip_timing = mpctx->startup_decode_retry > 0; @@ -3820,13 +3825,26 @@ goto goto_next_file; } if (frame_time < 0) { + // try to figure out duration of last frame + if (correct_pts && mpctx->sh_video->endpts != MP_NOPTS_VALUE && + mpctx->sh_video->pts != MP_NOPTS_VALUE && + mpctx->sh_video->endpts > mpctx->sh_video->pts) { + frame_time = mpctx->sh_video->endpts - mpctx->sh_video->pts; + } else { + frame_time = mpctx->sh_video->frametime; + } + // mark as last frame. Note: needs to be reset on seeking + mpctx->sh_video->frametime = -1; + mpctx->sh_video->endpts = MP_NOPTS_VALUE; + } + if (frame_time < 0) { // if we have no more video, sleep some arbitrary time frame_time = 1.0 / 20.0; // Ensure vo_pts is updated so that ao_pcm will not hang. advance_timer(frame_time); // only stop playing when audio is at end as well if (!mpctx->sh_audio || (mpctx->d_audio->eof && !ds_fill_buffer(mpctx->d_audio))) - mpctx->eof = 1; + mpctx->eof = mpctx->time_frame <= 0; } else { // might return with !eof && !blit_frame if !correct_pts mpctx->num_buffered_frames += blit_frame; @@ -4015,6 +4033,9 @@ } } + // reset last frame marker + if (mpctx->sh_video && mpctx->sh_video->frametime < 0) + mpctx->sh_video->frametime = 1.0f / mpctx->sh_video->fps; rel_seek_secs = 0; abs_seek_pos = 0; loop_seek = 0; @@ -4029,9 +4050,10 @@ } else { guiInfo.Position = demuxer_get_percent_pos(mpctx->demuxer); } + guiInfo.ElapsedTime = -1; if (mpctx->sh_video) guiInfo.ElapsedTime = mpctx->sh_video->pts; - else if (mpctx->sh_audio) + if (guiInfo.ElapsedTime < 0 && mpctx->sh_audio) guiInfo.ElapsedTime = playing_audio_pts(mpctx->sh_audio, mpctx->d_audio, mpctx->audio_out); guiInfo.RunningTime = demuxer_get_time_length(mpctx->demuxer); gui(GUI_SET_VOLUME_BALANCE, &mpctx->mixer);
View file
MPlayer-1.2.r37916.tar.bz2/path.c -> MPlayer-1.2.r38008.tar.xz/path.c
Changed
@@ -174,22 +174,6 @@ char *codec_path = BINARY_CODECS_PATH; -static int needs_free = 0; - -void set_codec_path(const char *path) -{ - if (needs_free) - free(codec_path); - if (path == 0) { - codec_path = BINARY_CODECS_PATH; - needs_free = 0; - return; - } - codec_path = malloc(strlen(path) + 1); - strcpy(codec_path, path); - needs_free = 1; -} - /** * @brief Returns the basename substring of a path. */
View file
MPlayer-1.2.r37916.tar.bz2/path.h -> MPlayer-1.2.r38008.tar.xz/path.h
Changed
@@ -25,7 +25,6 @@ char *get_path(const char *filename); void set_path_env(void); -void set_codec_path(const char *path); const char *mp_basename(const char *path); char *mp_dirname(const char *path); char *mp_path_join(const char *base, const char *new_path);
View file
MPlayer-1.2.r37916.tar.bz2/stream/stream.c -> MPlayer-1.2.r38008.tar.xz/stream/stream.c
Changed
@@ -746,3 +746,70 @@ } return 0; } + +#if defined(__MINGW32__) || defined(__CYGWIN__) +wchar_t *utf8_to_wide_char(const char *utf8) +{ + int conv_size; + wchar_t *wide_char = NULL; + + int wide_char_size = MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, utf8, -1, wide_char, 0); + if (wide_char_size < 0) goto err_out; + + wide_char = calloc(wide_char_size, sizeof(*wide_char)); + if (!wide_char) goto err_out; + + conv_size = MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, utf8, -1, wide_char, wide_char_size); + if (conv_size <= 0) goto err_out; + + return wide_char; + +err_out: + free(wide_char); + + return 0; +} + +static char *wide_char_to_local_windows_code_page(const wchar_t *wide_char) +{ + int conv_size; + + char *ansi = NULL; + + int ansi_size = WideCharToMultiByte(CP_ACP, 0, wide_char, -1, NULL, 0, NULL, NULL); + if (ansi_size < 0) goto err_out; + + ansi = calloc(ansi_size, sizeof(*ansi)); + if (!ansi) goto err_out; + + conv_size = WideCharToMultiByte(CP_ACP, 0, wide_char, -1, ansi, ansi_size, NULL, NULL); + if (conv_size < 0) goto err_out; + + return ansi; + +err_out: + free(ansi); + + return 0; +} + +char *utf8_to_local_windows_code_page(const char *utf8) +{ + char *windows_local_code_page = NULL; + + wchar_t *wide_char = utf8_to_wide_char(utf8); + if (!wide_char) goto err_out; + + windows_local_code_page = wide_char_to_local_windows_code_page(wide_char); + if (!windows_local_code_page) goto err_out; + + free(wide_char); + + return windows_local_code_page; + +err_out: + free(wide_char); + free(windows_local_code_page); + return NULL; +} +#endif
View file
MPlayer-1.2.r37916.tar.bz2/stream/stream.h -> MPlayer-1.2.r38008.tar.xz/stream/stream.h
Changed
@@ -404,4 +404,9 @@ int parse_chapter_range(const m_option_t *conf, const char *range); +#if defined(__MINGW32__) || defined(__CYGWIN__) +wchar_t *utf8_to_wide_char(const char *utf8); +char *utf8_to_local_windows_code_page(const char *utf8); +#endif + #endif /* MPLAYER_STREAM_H */
View file
MPlayer-1.2.r37916.tar.bz2/stream/stream_dvd.c -> MPlayer-1.2.r38008.tar.xz/stream/stream_dvd.c
Changed
@@ -790,7 +790,14 @@ } else #endif /* defined(__APPLE__) || defined(__DARWIN__) */ { +#if defined(__MINGW32__) || defined(__CYGWIN__) + char *ansi_dvd_device_current = utf8_to_local_windows_code_page(dvd_device_current); + + dvd = DVDOpen(ansi_dvd_device_current ? ansi_dvd_device_current : dvd_device_current); + free(ansi_dvd_device_current); +#else dvd = DVDOpen(dvd_device_current); +#endif if(!dvd) { mp_msg(MSGT_OPEN,MSGL_ERR,MSGTR_CantOpenDVD,dvd_device_current, strerror(errno)); goto fail;
View file
MPlayer-1.2.r37916.tar.bz2/stream/stream_file.c -> MPlayer-1.2.r38008.tar.xz/stream/stream_file.c
Changed
@@ -123,17 +123,13 @@ #ifdef __MINGW32__ static int win32_open(const char *fname, int m, int omode) { - int cnt; int fd = -1; - wchar_t fname_w[MAX_PATH]; - int WINAPI (*mb2wc)(UINT, DWORD, LPCSTR, int, LPWSTR, int) = NULL; - HMODULE kernel32 = GetModuleHandle("Kernel32.dll"); - if (!kernel32) goto fallback; - mb2wc = GetProcAddress(kernel32, "MultiByteToWideChar"); - if (!mb2wc) goto fallback; - cnt = mb2wc(CP_UTF8, MB_ERR_INVALID_CHARS, fname, -1, fname_w, sizeof(fname_w) / sizeof(*fname_w)); - if (cnt <= 0) goto fallback; + wchar_t *fname_w = utf8_to_wide_char(fname); + if (!fname_w) goto fallback; + fd = _wsopen(fname_w, m, SH_DENYNO, omode); + free(fname_w); + if (fd != -1 || (m & O_CREAT)) return fd;
View file
MPlayer-1.2.r37916.tar.bz2/sub/osd.c -> MPlayer-1.2.r38008.tar.xz/sub/osd.c
Changed
@@ -450,6 +450,8 @@ case IMGFMT_YV12: case IMGFMT_I420: case IMGFMT_IYUV: + case IMGFMT_NV12: + case IMGFMT_NV21: return vo_draw_alpha_yv12; case IMGFMT_YUY2: case IMGFMT_YVYU:
View file
_service
Added
@@ -0,0 +1,13 @@ +<services> + <service name="tar_scm" mode="disabled"> + <param name="url">svn://svn.mplayerhq.hu/mplayer/trunk</param> + <param name="scm">svn</param> + <param name="versionformat">1.2.r%r</param> + <param name="filename">MPlayer</param> + </service> + <service name="recompress" mode="disabled"> + <param name="file">*.tar</param> + <param name="compression">xz</param> + </service> + <service name="set_version" mode="disabled"/> +</services>
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.