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 108
View file
MPlayer.changes
Changed
@@ -1,4 +1,9 @@ ------------------------------------------------------------------- +Tue Feb 4 17:18:19 UTC 2020 - olaf@aepfle.de + +- update to version 1.2.r38170 + +------------------------------------------------------------------- Wed Nov 14 07:29:37 UTC 2018 - olaf@aepfle.de - update to version 1.2.r38117
View file
MPlayer.spec
Changed
@@ -62,7 +62,6 @@ %define build_v4l2 1 %define build_xvmc 1 %define build_vdpau 1 -%define build_ivtv 0 %define build_libass 1 %define build_rtmp 1 %define build_zr 0 @@ -187,7 +186,7 @@ %{?_without_vorbis: %{expand: %%global build_vorbis 0}} Name: MPlayer -Version: 1.2.r38117 +Version: 1.2.r38170 Release: 0 License: GPL-2.0+ Summary: Multimedia Player @@ -316,7 +315,6 @@ BuildRequires: libfaad-devel BuildRequires: libdvdread-devel BuildRequires: libdvdnav-devel -BuildRequires: libdvdcss-devel %endif %if %build_mpeg2 @@ -648,9 +646,6 @@ %if %build_xvmc --enable-xvmc \ %endif -%if ! %build_ivtv - --disable-ivtv \ -%endif %if %build_vstream --enable-vstream \ %endif
View file
MPlayer-1.2.r38117.tar.xz/libao2/ao_ivtv.c
Deleted
@@ -1,162 +0,0 @@ -/* - * audio output for WinTV PVR-150/250/350 (a.k.a IVTV) cards - * through Connexant hardware MPEG decoder - * See http://ivtvdriver.org/index.php/Main_Page for more details on the - * cards supported by the ivtv driver. - * - * WARNING: You need to force -ac hwmpa for audio output to work. - * - * Copyright (C) 2006 Benjamin Zores - * - * This file is part of MPlayer. - * - * MPlayer is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * MPlayer is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with MPlayer; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#include <inttypes.h> - -#include "config.h" - -#include "mp_msg.h" -#include "help_mp.h" - -#include "audio_out.h" -#include "audio_out_internal.h" -#include "libaf/af_format.h" -#include "libmpdemux/mpeg_packetizer.h" -#include "libvo/vo_ivtv.h" -#include "libvo/video_out.h" /* only for vo_pts */ - -#define MPEG_AUDIO_ID 0x1C0 - -static int freq = 0; - -static const ao_info_t info = -{ - "IVTV MPEG Audio Decoder output", - "ivtv", - "Benjamin Zores", - "" -}; - -LIBAO_EXTERN(ivtv) - -/* to set/get/query special features/parameters */ -static int -control (int cmd,void *arg) -{ - return CONTROL_UNKNOWN; -} - -/* open & setup audio device */ -static int -init (int rate, int channels, int format, int flags) -{ - if (ivtv_fd < 0) - return 0; - - if (format != AF_FORMAT_MPEG2) - { - mp_msg (MSGT_AO, MSGL_FATAL, - "AO: [ivtv] can only handle MPEG audio streams.\n"); - return 0; - } - - ao_data.outburst = 2048; - ao_data.samplerate = rate; - ao_data.channels = channels; - ao_data.format = AF_FORMAT_MPEG2; - ao_data.buffersize = 2048; - ao_data.bps = rate * 2 * 2; - ao_data.pts = 0; - freq = rate; - - /* check for supported audio rate */ - if (rate != 32000 && rate != 41000 && rate != 48000) - { - mp_msg (MSGT_AO, MSGL_ERR, MSGTR_AO_MPEGPES_UnsupSamplerate, rate); - rate = 48000; - } - - return 1; -} - -/* close audio device */ -static void -uninit (int immed) -{ - /* nothing to do */ -} - -/* stop playing and empty buffers (for seeking/pause) */ -static void -reset (void) -{ - /* nothing to do */ -} - -/* stop playing, keep buffers (for pause) */ -static void -audio_pause (void) -{ - reset (); -} - -/* resume playing, after audio_pause() */ -static void -audio_resume (void) -{ - /* nothing to do */ -} - -/* how many bytes can be played without blocking */ -static int -get_space (void) -{ - float x; - int y; - - x = (float) (vo_pts - ao_data.pts) / 90000.0; - if (x <= 0) - return 0; - - y = freq * 4 * x; - y /= ao_data.outburst; - y *= ao_data.outburst; - - if (y > 32000) - y = 32000; - - return y; -} - -/* number of bytes played */ -static int -play (void *data, int len, int flags) -{ - if (ao_data.format != AF_FORMAT_MPEG2) - return 0; - - send_mpeg_pes_packet (data, len, MPEG_AUDIO_ID, ao_data.pts, 2, ivtv_write); - - return len; -} - -/* delay in seconds between first and last sample in buffer */ -static float -get_delay (void) -{ - return 0.0; -}
View file
MPlayer-1.2.r38117.tar.xz/libvo/vo_ivtv.c
Deleted
@@ -1,300 +0,0 @@ -/* - * video output for WinTV PVR-150/250/350 (a.k.a IVTV) cards - * TV-Out through hardware MPEG decoder - * Based on some old code from ivtv driver authors. - * See http://ivtvdriver.org/index.php/Main_Page for more details on the - * cards supported by the ivtv driver. - * - * Copyright (C) 2006 Benjamin Zores - * - * This file is part of MPlayer. - * - * MPlayer is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * MPlayer is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with MPlayer; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#include "config.h" - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <sys/ioctl.h> -#include <fcntl.h> -#include <unistd.h> -#include <stdlib.h> -#include <inttypes.h> -#include <linux/types.h> -#include <linux/videodev2.h> -#include <linux/ivtv.h> -#include <linux/ioctl.h> - -#include "mp_msg.h" -#include "subopt-helper.h" -#include "video_out.h" -#define NO_DRAW_SLICE -#include "video_out_internal.h" -#include "vo_ivtv.h" -#include "libmpdemux/mpeg_packetizer.h" - -#define DEFAULT_MPEG_DECODER "/dev/video16" -#define IVTV_VO_HDR "VO: [ivtv]" - -/* ivtv private */ -int ivtv_fd = -1; -static vo_mpegpes_t *pes; - -/* suboptions */ -static int output = -1; -static char *device = NULL; - -static const opt_t subopts[] = { - {"output", OPT_ARG_INT, &output, int_non_neg}, - {"device", OPT_ARG_MSTRZ, &device, NULL}, - {NULL} -}; - -static const vo_info_t info = -{ - "IVTV MPEG Video Decoder TV-Out", - "ivtv", - "Benjamin Zores", - "" -}; -const LIBVO_EXTERN (ivtv) - -/* ivtv internals */ - -static uint32_t -ivtv_reset (int blank_screen) -{ - struct ivtv_cfg_stop_decode sd; - struct ivtv_cfg_start_decode sd1; - int flags = 0; - - if (blank_screen) - flags |= IVTV_STOP_FL_HIDE_FRAME; - sd.flags = flags; - - if (ioctl (ivtv_fd, IVTV_IOC_STOP_DECODE, &sd) < 0) - { - mp_msg (MSGT_VO, MSGL_ERR, - "IVTV_IOC_STOP_DECODE: %s\n", strerror (errno)); - return 1; - } - - sd1.gop_offset = 0; - sd1.muted_audio_frames = 0; - - if (ioctl (ivtv_fd, IVTV_IOC_START_DECODE, &sd1) < 0) - { - mp_msg (MSGT_VO, MSGL_ERR, - "IVTV_IOC_START_DECODE: %s\n", strerror (errno)); - return 1; - } - - return 0; -} - -int -ivtv_write (const unsigned char *data, int len) -{ - if (ivtv_fd < 0) - return 0; - - return write (ivtv_fd, data, len); -} - -/* video out functions */ - -static int -config (uint32_t width, uint32_t height, - uint32_t d_width, uint32_t d_height, - uint32_t fullscreen, char *title, uint32_t format) -{ - return 0; -} - -static int -preinit (const char *arg) -{ - struct v4l2_output vout; - int err; - - if (subopt_parse (arg, subopts) != 0) - { - mp_msg (MSGT_VO, MSGL_FATAL, - "\n-vo ivtv command line help:\n" - "Example: mplayer -vo ivtv:device=/dev/video16:output=2\n" - "\nOptions:\n" - " device=/dev/videoX\n" - " Name of the MPEG decoder device file.\n" - " output=<0-...>\n" - " V4L2 id of the TV output.\n" - "\n" ); - return -1; - } - - if (!device) - device = strdup (DEFAULT_MPEG_DECODER); - - ivtv_fd = open (device, O_RDWR); - if (ivtv_fd < 0) - { - free (device); - mp_msg (MSGT_VO, MSGL_FATAL, "%s %s\n", IVTV_VO_HDR, strerror (errno)); - return -1; - } - - /* list available outputs */ - vout.index = 0; - err = 1; - mp_msg (MSGT_VO, MSGL_INFO, "%s Available video outputs: ", IVTV_VO_HDR); - while (ioctl (ivtv_fd, VIDIOC_ENUMOUTPUT, &vout) >= 0) - { - err = 0; - mp_msg (MSGT_VO, MSGL_INFO, "'#%d, %s' ", vout.index, vout.name); - vout.index++; - } - if (err) - { - mp_msg (MSGT_VO, MSGL_INFO, "none\n"); - free (device); - return -1; - } - else - mp_msg (MSGT_VO, MSGL_INFO, "\n"); - - /* set user specified output */ - if (output != -1) - { - if (ioctl (ivtv_fd, VIDIOC_S_OUTPUT, &output) < 0) - { - mp_msg (MSGT_VO, MSGL_ERR, - "%s can't set output (%s)\n", IVTV_VO_HDR, strerror (errno)); - free (device); - return -1; - } - } - - /* display device name */ - mp_msg (MSGT_VO, MSGL_INFO, "%s using %s\n", IVTV_VO_HDR, device); - free (device); - - /* display current video output */ - if (ioctl (ivtv_fd, VIDIOC_G_OUTPUT, &output) == 0) - {
View file
MPlayer-1.2.r38117.tar.xz/libvo/vo_ivtv.h
Deleted
@@ -1,34 +0,0 @@ -/* - * video output for WinTV PVR-150/250/350 (a.k.a IVTV) cards - * TV-Out through hardware MPEG decoder - * Based on some old code from ivtv driver authors. - * See http://ivtvdriver.org/index.php/Main_Page for more details on the - * cards supported by the ivtv driver. - * - * Copyright (C) 2006 Benjamin Zores - * - * This file is part of MPlayer. - * - * MPlayer is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * MPlayer is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with MPlayer; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#ifndef MPLAYER_VO_IVTV_H -#define MPLAYER_VO_IVTV_H - -extern int ivtv_fd; - -int ivtv_write(const unsigned char *data, int len); - -#endif /* MPLAYER_VO_IVTV_H */
View file
MPlayer-1.2.r38117.tar.xz/Changelog -> MPlayer-1.2.r38170.tar.xz/Changelog
Changed
@@ -1,6 +1,18 @@ MPlayer Decoders, demuxers, streams: + * ffmpeg12vpdau is no longer supported by FFmpeg, + provide separate ffmpeg1vpdau and ffmpeg2vdpau instead + + GUI: + * Fix wrongly sized video window after leaving fullscreen mode + * Clear screen when switching to fullscreen mode using the x11 + video output driver + * Enable video output drivers which write to files + + 1.4: "SubCounter" April 18, 2019 + + Decoders, demuxers, streams: * More pixel formats are supported for VP9, RSCC, Screenpresso * pvr:// support for the Hauppauge HD PVR model 1212 * Speed up detection of mpg format while streaming (limit probe to 4 MB) @@ -12,7 +24,8 @@ * support GBR pixel formats for HEVC * FFmpeg audio decoders: g721, g732 * FFmpeg video decoders: more Matrox mpeg2 formats (M702-3-4-5), Truemotion - RT, Matrox Uncompressed SD/HD + RT, Matrox Uncompressed SD/HD, BitJazz SheerVideo, YUY2 Lossless Codec + Apple Pixlet, ScreenPressor, FM Screen Capture Codec * FFmpeg IFF video/image decoders: ANIM, ILBM, PBM, RGB8, RGBN Fixes: @@ -21,10 +34,15 @@ * fix -subcp enca: with external ASS subtitles (#2281) * fix reading of bitmap fonts * fix -subdelay applied inverted + * some fixes for video filter bmovl (#2304, #2308) + * fix timing of first and last frame (#2315) Other: * MPlayer can link against OpenSSL instead of GnuTLS for https support (Warning: the resulting binary can not be redistributed) + * OSD: NV12/NV21 support + * video output xv: NV12/NV21 support + * video outputs for OSX: fix a few issues with newer OSX versions GUI: * No limitation on the number of entries in a font description file
View file
MPlayer-1.2.r38117.tar.xz/DOCS/man/cs/mplayer.1 -> MPlayer-1.2.r38170.tar.xz/DOCS/man/cs/mplayer.1
Changed
@@ -1,5 +1,5 @@ .\" Synced with r24573 -.\" MPlayer (C) 2000-2018 MPlayer Team +.\" MPlayer (C) 2000-2020 MPlayer Team .\" Tuto man stránku napsali/píší Gabucino, Diego Biurrun, Jonas Jermann .\" Překlad (translation): Jiří Heryán .\" @@ -10556,7 +10556,7 @@ MPlayer byl původně napsán Arpadem Gereoffym. Viz soubor AUTHORS pro seznam některých dalších přispěvatelů. .TP -MPlayer (C) 2000\-2018 The MPlayer Team +MPlayer (C) 2000\-2020 The MPlayer Team .PP Tuto manuálovou stránku převážně píší: Gabucino, Jonas Jermann a Diego Biurrun. Spravuje ji (anglický originál): Diego Biurrun
View file
MPlayer-1.2.r38117.tar.xz/DOCS/man/de/mplayer.1 -> MPlayer-1.2.r38170.tar.xz/DOCS/man/de/mplayer.1
Changed
@@ -1,4 +1,4 @@ -.\" MPlayer (C) 2000-2018 MPlayer Team +.\" MPlayer (C) 2000-2020 MPlayer Team .\" Diese Man-Page wurde/wird von Moritz Bunkus, Sebastian Krämer, .\" Tobias Diedrich gepflegt. .\" @@ -33,7 +33,7 @@ .\" Titel .\" -------------------------------------------------------------------------- . -.TH MPlayer 1 "10.06.2018" "Das MPlayer Projekt" +.TH MPlayer 1 "09.03.2019" "Das MPlayer Projekt" . .SH NAME mplayer \- Movie Player @@ -127,7 +127,7 @@ . .br .B gmplayer -[Optionen] +[Optionen] [Datei|URL|Playlist] [\-skin\ Skin] . .br @@ -11962,7 +11962,7 @@ MPlayer wurde ursprünglich von Arpad Gereöffy geschrieben. Siehe Datei AUTHORS für eine Liste einiger der vielen anderen Beitragenden. .PP -MPlayer is (C) 2000\-2018 The MPlayer Team +MPlayer is (C) 2000\-2020 The MPlayer Team .PP Diese Manpage wurde zum größten Teil von Gabucino, Diego Biurrun und Jonas Jermann geschrieben und von Moritz Bunkus und Sebastian Krämer
View file
MPlayer-1.2.r38117.tar.xz/DOCS/man/en/mplayer.1 -> MPlayer-1.2.r38170.tar.xz/DOCS/man/en/mplayer.1
Changed
@@ -1,5 +1,5 @@ -.\" $Revision: 38113 $ -.\" MPlayer (C) 2000-2018 MPlayer Team +.\" $Revision: 38159 $ +.\" MPlayer (C) 2000-2020 MPlayer Team .\" This man page was/is done by Gabucino, Diego Biurrun, Jonas Jermann . .\" -------------------------------------------------------------------------- @@ -31,7 +31,7 @@ .\" Title .\" -------------------------------------------------------------------------- . -.TH MPlayer 1 "2018-06-10" "The MPlayer Project" "The Movie Player" +.TH MPlayer 1 "2019-03-09" "The MPlayer Project" "The Movie Player" . .SH NAME mplayer \- movie player @@ -130,7 +130,7 @@ . .br .B gmplayer -[options] +[options] [file|URL|playlist] [\-skin\ skin] . .br @@ -3268,11 +3268,6 @@ Creative DXR2 specific output driver . .TP -.B ivtv (IVTV only) -IVTV specific MPEG audio output driver. -Works with \-ac hwmpa only. -. -.TP .B v4l2 (requires Linux 2.6.22+ kernel) Audio output driver for V4L2 cards with hardware MPEG decoder. . @@ -3916,7 +3911,7 @@ .PD 1 . .TP -.B vdpau (with \-vc ffmpeg12vdpau, ffwmv3vdpau, ffvc1vdpau, ffh264vdpau or ffodivxvdpau) +.B vdpau (with \-vc ffmpeg2vdpau, ffwmv3vdpau, ffvc1vdpau, ffh264vdpau or ffodivxvdpau) Video output that uses VDPAU to decode video via hardware. Also supports displaying of software-decoded video. .PD 0 @@ -4730,21 +4725,6 @@ .PD 1 . .TP -.B ivtv (IVTV only) -Conexant CX23415 (iCompression iTVC15) or Conexant CX23416 (iCompression -iTVC16) MPEG decoder chip (Hauppauge WinTV PVR-150/250/350/500) -specific video output driver for TV-out. -Also see the lavc video filter. -.PD 0 -.RSs -.IPs <device> -Explicitly choose the MPEG decoder device name to use (default: /dev/video16). -.IPs <output> -Explicitly choose the TV-out output to be used for the video signal. -.RE -.PD 1 -. -.TP .B v4l2 (requires Linux 2.6.22+ kernel) Video output driver for V4L2 compliant cards with built-in hardware MPEG decoder. Also see the lavc video filter. @@ -5284,8 +5264,12 @@ Skips decoding of frames completely. Big speedup, but jerky motion and sometimes bad artifacts (see skiploopfilter for available skip values). -.IPs "threads=<1\-8> (MPEG-1/2 and H.264 only)" -number of threads to use for decoding (default: 1) +.IPs "threads=<1\-32>" +Maximum number of threads used for decoding. +Not all decoders support threading and decoders with support +might stay below the provided limit at their choice. +(default: 1) + .IPs vismv=<value> Visualize motion vectors. .RSss @@ -8755,7 +8739,7 @@ Do not use this option unless you know exactly what you are doing. . .TP -.B threads=<1\-8> +.B threads=<1\-16> Maximum number of threads to use (default: 1). May have a slight negative effect on motion estimation. .RE @@ -12444,7 +12428,7 @@ MPlayer was initially written by Arpad Gereoffy. See the AUTHORS file for a list of some of the many other contributors. .PP -MPlayer is (C) 2000\-2018 The MPlayer Team +MPlayer is (C) 2000\-2020 The MPlayer Team .PP This man page was written mainly by Gabucino, Jonas Jermann and Diego Biurrun. It is maintained by Diego Biurrun.
View file
MPlayer-1.2.r38117.tar.xz/DOCS/man/es/mplayer.1 -> MPlayer-1.2.r38170.tar.xz/DOCS/man/es/mplayer.1
Changed
@@ -1,6 +1,6 @@ \" synced with 1.685 \" synced with Revision: 34821 -.\" MPlayer (C) 2000-2018 El equipo de MPlayer +.\" MPlayer (C) 2000-2020 El equipo de MPlayer .\" Esta página de manual ha sido escrita por Gabucino, Diego Biurrun, .\" Jonas Jermann y traducida al español por Juan Martín López. .\" Revisado por Juan A. Javierre @@ -7804,7 +7804,7 @@ contribuyentes. . .TP -MPlayer es (C) 2000\-2018 +MPlayer es (C) 2000\-2020 .B El Equipo MPlayer . .TP
View file
MPlayer-1.2.r38117.tar.xz/DOCS/man/fr/mplayer.1 -> MPlayer-1.2.r38170.tar.xz/DOCS/man/fr/mplayer.1
Changed
@@ -1,5 +1,5 @@ .\" synced with r30135 -.\" MPlayer (C) 2000-2018 MPlayer Team +.\" MPlayer (C) 2000-2020 MPlayer Team .\" The English man page was/is done by Gabucino, Diego Biurrun, Jonas Jermann .\" Traduction: Guillaume POIRIER < poirierg AT gmail POINT com >, . @@ -3646,7 +3646,7 @@ .PD 1 . .TP -.B vdpau (avec \-vc ffmpeg12vdpau, ffwmv3vdpau, ffvc1vdpau, ffh264vdpau, +.B vdpau (avec \-vc ffmpeg2vdpau, ffwmv3vdpau, ffvc1vdpau, ffh264vdpau, ou ffodivxvdpau) Sortie vidéo utilisant VDPAU pour décoder les vidéos matériellement. Gère aussi l'affichage de vidéos décodées en logiciel. @@ -11931,7 +11931,7 @@ Voir le fichier AUTHORS pour la liste de certains des nombreux autres contributeurs. .TP -MPlayer est (C) 2000\-2018 The MPlayer Team +MPlayer est (C) 2000\-2020 The MPlayer Team .TP Cette page de man est basée sur sa version en langue anglaise, écrite et maintenue par Gabucino, Jonas Jermann et Diego Biurrun
View file
MPlayer-1.2.r38117.tar.xz/DOCS/man/hu/mplayer.1 -> MPlayer-1.2.r38170.tar.xz/DOCS/man/hu/mplayer.1
Changed
@@ -1,5 +1,5 @@ .\" Synced with r32066 -.\" MPlayer (C) 2000-2018 MPlayer Team +.\" MPlayer (C) 2000-2020 MPlayer Team .\" Ezt a man oldalt Gabucino, Diego Biurrun és Jonas Jermann készíti/készítette .\" Karbantartó: Gabrov . @@ -3587,7 +3587,7 @@ .PD 1 . .TP -.B vdpau (\-vc ffmpeg12vdpau, ffwmv3vdpau, ffvc1vdpau, ffh264vdpau vagy ffodivxvdpau kapcsolókkal) +.B vdpau (\-vc ffmpeg2vdpau, ffwmv3vdpau, ffvc1vdpau, ffh264vdpau vagy ffodivxvdpau kapcsolókkal) Videó kimenet, ami a VDPAU-t használja a videó hardveres dekódolásához. Támogatja a szoftveresen dekódolt videó megjelenítését is. .PD 0 @@ -11803,7 +11803,7 @@ Az MPlayert eredetileg Gereöffy Árpád írta. Lásd az AUTHORS fájlt a többi közreműködő listájához. .PP -MPlayer (C) 2000\-2018 Az MPlayer Csapat +MPlayer (C) 2000\-2020 Az MPlayer Csapat .PP Ezt a man oldalt nagyrészt Gabucino, Jonas Jermann és Diego Biurrun írta. A karbantartó Diego Biurrun.
View file
MPlayer-1.2.r38117.tar.xz/DOCS/man/it/mplayer.1 -> MPlayer-1.2.r38170.tar.xz/DOCS/man/it/mplayer.1
Changed
@@ -1,5 +1,5 @@ .\" synced with r30610 -.\" MPlayer (C) 2000-2018 MPlayer Team +.\" MPlayer (C) 2000-2020 MPlayer Team .\" Questa pagina di manuale è stata fatta da Gabucino, Diego Biurrun, .\" Jonas Jermann .\" Traduzione in italiano di Daniele Forghieri, aggiornamenti PaulTT @@ -3982,7 +3982,7 @@ .PD 1 . .TP -.B vdpau (con \-vc ffmpeg12vdpau, ffwmv3vdpau, ffvc1vdpau, ffh264vdpau +.B vdpau (con \-vc ffmpeg2vdpau, ffwmv3vdpau, ffvc1vdpau, ffh264vdpau o ffodivxvdpau) Driver di uscita video che usa VDPAU per la docodifica video via hardware. Gestisce anche la visualizzazione di video decodificato via software. @@ -12549,7 +12549,7 @@ Vedi il file AUTHORS per una lista di alcuni dei tanti altri contributori. . .TP -MPlayer è (C) 2000\-2018 The MPlayer Team +MPlayer è (C) 2000\-2020 The MPlayer Team .PP Questa pagina di manuale (versione inglese) è stata scritta principalmente da Gabucino, Jonas Jermann e Diego Biurrun.
View file
MPlayer-1.2.r38117.tar.xz/DOCS/man/pl/mplayer.1 -> MPlayer-1.2.r38170.tar.xz/DOCS/man/pl/mplayer.1
Changed
@@ -1,5 +1,5 @@ .\" synced with 1.1114 -.\" MPlayer (C) 2000-2018 MPlayer Team +.\" MPlayer (C) 2000-2020 MPlayer Team .\" This man page was/is done by Gabucino, Diego Biurrun, Jonas Jermann .\" Tłumaczenie: Wacław "Torinthiel" Schiller (torinthiel@wp.pl) .\" i Maciej "Paszczi" Paszta (paszczi@go2.pl) @@ -9108,7 +9108,7 @@ MPlayer został stworzony przez Arpad'a Gereöffy. Lista niektórych z wielu uczestników znajduje się w zbiorze AUTHORS. .PP -MPlayer (C) 2000\-2018 Załoga MPlayera +MPlayer (C) 2000\-2020 Załoga MPlayera .PP Głównymi autorami tej strony są Gabucino, Jonas Jermann i Diego Biurrun. Obecnie opiekuje się nią Diego Biurrun.
View file
MPlayer-1.2.r38117.tar.xz/DOCS/man/ru/mplayer.1 -> MPlayer-1.2.r38170.tar.xz/DOCS/man/ru/mplayer.1
Changed
@@ -1,4 +1,4 @@ -.\" MPlayer (C) 2000-2018 MPlayer Team +.\" MPlayer (C) 2000-2020 MPlayer Team .\" This man page was/is done by Gabucino, Diego Biurrun, Jonas Jermann .\" Translated by Vladimir Voroshilov <voroshil@gmail.com> .\" synced with r28991 @@ -3392,7 +3392,7 @@ .PD 1 . .TP -.B vdpau (совместно с \-vc ffmpeg12vdpau, ffwmv3vdpau, ffvc1vdpau или ffh264vdpau) +.B vdpau (совместно с \-vc ffmpeg2vdpau, ffwmv3vdpau, ffvc1vdpau или ffh264vdpau) Вывод видео, использующий VDPAU для аппаратного декодирования видео. Также поддерживает отображение программно декодированного видео. .PD 0 @@ -11538,7 +11538,7 @@ MPlayer изначально был написан Arpad Gereoffy. Смотрите файл AUTHORS, чтобы получить список некоторых из множества других разработчиков. .PP -MPlayer is (C) 2000\-2018 The MPlayer Team +MPlayer is (C) 2000\-2020 The MPlayer Team .PP Оригинальная английская версия этого руководства в основном была написана Gabucino, Jonas Jermann и Diego Biurrun. Сейчас она поддерживается Diego Biurrun.
View file
MPlayer-1.2.r38117.tar.xz/DOCS/man/zh_CN/mplayer.1 -> MPlayer-1.2.r38170.tar.xz/DOCS/man/zh_CN/mplayer.1
Changed
@@ -1,5 +1,5 @@ .\" sync with en/mplayer.1 rev. 37846 -.\" MPlayer (C) 2000-2018 MPlayer Team +.\" MPlayer (C) 2000-2020 MPlayer Team .\" This man page was/is translated by JRaSH<jrash06 at gmail.com> . .\" -------------------------------------------------------------------------- @@ -3911,7 +3911,7 @@ .PD 1 . .TP -.B vdpau(与 \-vc ffmpeg12vdpau、ffwmv3vdpau、ffvc1vdpau、ffh264vdpau 或 ffodivxvdpau 一同使用) +.B vdpau(与 \-vc ffmpeg2vdpau、ffwmv3vdpau、ffvc1vdpau、ffh264vdpau 或 ffodivxvdpau 一同使用) 使用 VDPAU 硬件解码视频的视频输出方式。\ 同时支持显示软件解码的视频。 .PD 0 @@ -12431,7 +12431,7 @@ MPlayer 最初由 Arpad Gereoffy 制作。\ 参见 AUTHORS 文件以查看其它众多贡献者的部分列表。 .PP -MPlayer 为 (C) 2000\-2018 MPlayer 团队所有 +MPlayer 为 (C) 2000\-2020 MPlayer 团队所有 .PP 本(英文)手册主要由 Gabucino、Jonas Jermann 和 Diego Biurrun 编写,\ 由 Diego Biurrun 维护。中文版由 JRaSH <jrash06 AT 163.com> 翻译。\
View file
MPlayer-1.2.r38117.tar.xz/DOCS/tech/MAINTAINERS -> MPlayer-1.2.r38170.tar.xz/DOCS/tech/MAINTAINERS
Changed
@@ -169,7 +169,6 @@ * vo_gif89a.c - Joey Parrish * vo_gl.c - Reimar Döffinger * vo_gl2.c - Reimar Döffinger - * vo_ivtv.c - Benjamin Zores * vo_jpeg.c - Ivo van Poorten * vo_md5sum.c - Ivo van Poorten * vo_mga.c - None @@ -206,7 +205,6 @@ * ao_dsound.c - None * ao_dxr2.c - None * ao_esd.c - None - * ao_ivtv.c - Benjamin Zores * ao_jack.c - Reimar Döffinger * ao_mpegpes.c - None * ao_nas.c - Tobias Diedrich
View file
MPlayer-1.2.r38117.tar.xz/DOCS/tech/release-howto.txt -> MPlayer-1.2.r38170.tar.xz/DOCS/tech/release-howto.txt
Changed
@@ -48,6 +48,4 @@ Update release version in #mplayer and #mplayerdev topics. -Update project page on Freshmeat - Done.
View file
MPlayer-1.2.r38117.tar.xz/DOCS/xml/cs/documentation.xml -> MPlayer-1.2.r38170.tar.xz/DOCS/xml/cs/documentation.xml
Changed
@@ -25,6 +25,8 @@ <year>2016</year> <year>2017</year> <year>2018</year> + <year>2019</year> + <year>2020</year> <holder>MPlayer team</holder> </copyright> <legalnotice>
View file
MPlayer-1.2.r38117.tar.xz/DOCS/xml/de/documentation.xml -> MPlayer-1.2.r38170.tar.xz/DOCS/xml/de/documentation.xml
Changed
@@ -27,6 +27,8 @@ <year>2016</year> <year>2017</year> <year>2018</year> + <year>2019</year> + <year>2020</year> <holder>MPlayer-Team</holder> </copyright> <legalnotice>
View file
MPlayer-1.2.r38117.tar.xz/DOCS/xml/en/documentation.xml -> MPlayer-1.2.r38170.tar.xz/DOCS/xml/en/documentation.xml
Changed
@@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- $Revision: 38015 $ --> +<!-- $Revision: 38158 $ --> <bookinfo id="toc"> <title><application>MPlayer</application> - The Movie Player</title> @@ -25,6 +25,8 @@ <year>2016</year> <year>2017</year> <year>2018</year> + <year>2019</year> + <year>2020</year> <holder>MPlayer team</holder> </copyright> <legalnotice>
View file
MPlayer-1.2.r38117.tar.xz/DOCS/xml/es/documentation.xml -> MPlayer-1.2.r38170.tar.xz/DOCS/xml/es/documentation.xml
Changed
@@ -26,6 +26,8 @@ <year>2016</year> <year>2017</year> <year>2018</year> + <year>2019</year> + <year>2020</year> <holder>MPlayer team</holder> </copyright> <legalnotice>
View file
MPlayer-1.2.r38117.tar.xz/DOCS/xml/fr/documentation.xml -> MPlayer-1.2.r38170.tar.xz/DOCS/xml/fr/documentation.xml
Changed
@@ -25,6 +25,8 @@ <year>2016</year> <year>2017</year> <year>2018</year> + <year>2019</year> + <year>2020</year> <holder>MPlayer team</holder> </copyright> <legalnotice>
View file
MPlayer-1.2.r38117.tar.xz/DOCS/xml/hu/documentation.xml -> MPlayer-1.2.r38170.tar.xz/DOCS/xml/hu/documentation.xml
Changed
@@ -25,6 +25,8 @@ <year>2016</year> <year>2017</year> <year>2018</year> + <year>2019</year> + <year>2020</year> <holder>MPlayer team</holder> </copyright> <legalnotice>
View file
MPlayer-1.2.r38117.tar.xz/DOCS/xml/it/documentation.xml -> MPlayer-1.2.r38170.tar.xz/DOCS/xml/it/documentation.xml
Changed
@@ -25,6 +25,8 @@ <year>2016</year> <year>2017</year> <year>2018</year> + <year>2019</year> + <year>2020</year> <holder>MPlayer team</holder> </copyright> <legalnotice>
View file
MPlayer-1.2.r38117.tar.xz/DOCS/xml/pl/documentation.xml -> MPlayer-1.2.r38170.tar.xz/DOCS/xml/pl/documentation.xml
Changed
@@ -26,6 +26,8 @@ <year>2016</year> <year>2017</year> <year>2018</year> + <year>2019</year> + <year>2020</year> <holder>Załoga MPlayera</holder> </copyright> <legalnotice>
View file
MPlayer-1.2.r38117.tar.xz/DOCS/xml/ru/documentation.xml -> MPlayer-1.2.r38170.tar.xz/DOCS/xml/ru/documentation.xml
Changed
@@ -25,6 +25,8 @@ <year>2016</year> <year>2017</year> <year>2018</year> + <year>2019</year> + <year>2020</year> <holder>MPlayer team</holder> </copyright> <legalnotice>
View file
MPlayer-1.2.r38117.tar.xz/DOCS/xml/zh_CN/documentation.xml -> MPlayer-1.2.r38170.tar.xz/DOCS/xml/zh_CN/documentation.xml
Changed
@@ -25,6 +25,8 @@ <year>2016</year> <year>2017</year> <year>2018</year> + <year>2019</year> + <year>2020</year> <holder>MPlayer工作组</holder> </copyright> <!--
View file
MPlayer-1.2.r38117.tar.xz/Makefile -> MPlayer-1.2.r38170.tar.xz/Makefile
Changed
@@ -509,7 +509,6 @@ gui/win32/widgetrender.c \ gui/win32/wincfg.c \ -SRCS_MPLAYER-$(IVTV) += libao2/ao_ivtv.c libvo/vo_ivtv.c SRCS_MPLAYER-$(JACK) += libao2/ao_jack.c SRCS_MPLAYER-$(JOYSTICK) += input/joystick.c SRCS_MPLAYER-$(JPEG) += libvo/vo_jpeg.c
View file
MPlayer-1.2.r38117.tar.xz/configure -> MPlayer-1.2.r38170.tar.xz/configure
Changed
@@ -270,9 +270,16 @@ esac } +aarch64() { + case "$host_arch" in + aarch64*) return 0;; + *) return 1;; + esac +} + arm() { case "$host_arch" in - arm*) return 0;; + arm*|aarch64*) return 0;; *) return 1;; esac } @@ -405,6 +412,8 @@ --disable-x264 disable x264 [autodetect] --disable-x264-lavc disable x264 in libavcodec [autodetect] --disable-libvpx-lavc disable libvpx in libavcodec [autodetect] + --disable-libdav1d-lavc disable libdav1d in libavcodec [autodetect] + --disable-libaom-lavc disable libaom in libavcodec [autodetect] --disable-libnut disable libnut [autodetect] --disable-ffmpeg_a disable static FFmpeg [autodetect] --disable-ffmpeg_so disable shared FFmpeg [autodetect] @@ -478,7 +487,6 @@ --enable-directx enable DirectX video output [autodetect] --enable-dxr2 enable DXR2 video output [autodetect] --enable-dxr3 enable DXR3/H+ video output [autodetect] - --enable-ivtv enable IVTV TV-Out video output [autodetect] --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect] --enable-dvb enable DVB video output [autodetect] --enable-mga enable mga_vid video output [autodetect] @@ -706,7 +714,6 @@ _dvb=auto _dxr2=auto _dxr3=auto -_ivtv=auto _v4l2=auto _iconv=auto _langinfo=auto @@ -785,6 +792,7 @@ _pvr=auto networking=yes _winsock2_h=auto +_struct_pollfd=auto _struct_addrinfo=auto _getaddrinfo=auto _struct_sockaddr_storage=auto @@ -800,6 +808,8 @@ _x264=auto _x264_lavc=auto _libvpx_lavc=auto +_libdav1d_lavc=auto +_libaom_lavc=auto _libnut=auto _lirc=auto _lircc=auto @@ -1082,8 +1092,6 @@ --disable-dxr2) _dxr2=no ;; --enable-dxr3) _dxr3=yes ;; --disable-dxr3) _dxr3=no ;; - --enable-ivtv) _ivtv=yes ;; - --disable-ivtv) _ivtv=no ;; --enable-v4l2) _v4l2=yes ;; --disable-v4l2) _v4l2=no ;; --enable-iconv) _iconv=yes ;; @@ -1254,6 +1262,10 @@ --disable-x264-lavc) _x264_lavc=no ;; --enable-libvpx-lavc) _libvpx_lavc=yes ;; --disable-libvpx-lavc) _libvpx_lavc=no ;; + --enable-libdav1d-lavc) _libdav1d_lavc=yes ;; + --disable-libdav1d-lavc) _libdav1d_lavc=no ;; + --enable-libaom-lavc) _libaom_lavc=yes ;; + --disable-libaom-lavc) _libaom_lavc=no ;; --enable-libnut) _libnut=yes ;; --disable-libnut) _libnut=no ;; --enable-libopencore_amrnb) _libopencore_amrnb=yes ;; @@ -1504,7 +1516,7 @@ fi FFBRANCH=master -test -e FFBRANCH && FFBRANCH=$(cat FFMPEG_BRANCH) +test -e FFBRANCH && FFBRANCH=$(cat FFBRANCH) if test -e ffmpeg/mp_auto_pull ; then echo "Updating FFmpeg, (re)move ffmpeg/mp_auto_pull to disable" @@ -1614,8 +1626,8 @@ 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 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') +libavdecoders=$(filter_out_component decoder 'LIB[A-Z0-9_]* [A-Z0-9]*_QSV [A-Z0-9]*_MMAL [A-Z0-9]*_MEDIACODEC [A-Z0-9]*_CUVID [A-Z0-9_]*_AT [A-Z0-9]*_RKMPP [A-Z0-9]*_V4L2M2M') +libavencoders=$(filter_out_component encoder 'LIB[A-Z0-9_]* [A-Z0-9]*_QSV [A-Z0-9]*_MMAL NVENC[A-Z0-9_]* H264_NVENC[A-Z0-9_]* HEVC_NVENC[A-Z0-9_]* HAP [A-Z0-9]*_VIDEOTOOLBOX [A-Z0-9]*_VAAPI [A-Z0-9]*_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 FILTER_UNITS') libavdemuxers=$(filter_out_component demuxer 'AVISYNTH DASH LIB[A-Z0-9_]* REDIR VAPOURSYNTH') libavmuxers=$(filter_out_component muxer 'CHROMAPRINT LIB[A-Z0-9_]* RTP RTSP SAP') @@ -1894,6 +1906,9 @@ if sparc ; then cc_check && host_arch=sparc64 || host_arch=sparc fi +if arm ; then + cc_check && host_arch=aarch64 || host_arch=arm +fi fi echo "Detected operating system: $system_name" @@ -3222,6 +3237,7 @@ if test $_armvfp = "auto" ; then _armvfp=no inline_asm_check '"fadds s0, s0, s0"' && _armvfp=yes + inline_asm_check '"fmadd d0, d0, d1, d2"' && _armvfp=yes fi echores "$_armvfp" @@ -3253,9 +3269,15 @@ if test $neon = "auto" ; then neon=no inline_asm_check '"vadd.i16 q0, q0, q0"' && neon=yes + inline_asm_check '"ext v0.8B, v0.8B, v1.8B, #1"' && neon=yes fi echores "$neon" + echocheck "ARM NEON intrinsics" + neon_intrinsics=no + statement_check "arm_neon.h" "int16x8_t test = vdupq_n_s16(0)" && neon_intrinsics=yes + echores "$neon_intrinsics" + echocheck "ARM THUMB" if test $armthumb = "auto" ; then armthumb=no @@ -3264,7 +3286,7 @@ extra_cflags="$extra_cflags -mthumb" def_armthumb='#define CONFIG_THUMB 1' else - extra_cflags="$extra_cflags -marm" + aarch64 || extra_cflags="$extra_cflags -marm" def_armthumb='#define CONFIG_THUMB 0' fi echores "$armthumb" @@ -3277,7 +3299,8 @@ echores "$_iwmmxt" fi -cpuexts_all='ALTIVEC XOP AVX AVX2 AVX512 FMA3 FMA4 MMX MMX2 MMXEXT AMD3DNOW AMD3DNOWEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE42 FAST_CMOV I686 FAST_CLZ ARMV5TE ARMV6 ARMV6T2 VFP VFPV3 SETEND NEON IWMMXT MMI VIS MVI' +intrinsics="none" +cpuexts_all='ALTIVEC XOP AVX AVX2 AVX512 FMA3 FMA4 MMX MMX2 MMXEXT AMD3DNOW AMD3DNOWEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE42 FAST_CMOV I686 FAST_CLZ ARMV5TE ARMV6 ARMV6T2 ARMV8 VFP VFPV3 SETEND NEON INTRINSICS_NEON IWMMXT MMI VIS MVI' test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts" test "$_mmx" = yes && cpuexts="MMX $cpuexts" test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts" @@ -3302,10 +3325,12 @@ test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts" test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts" test "$_armv6t2" = yes && cpuexts="ARMV6T2 $cpuexts" +aarch64 && cpuexts="ARMV8 $cpuexts" test "$_armvfp" = yes && cpuexts="VFP $cpuexts" test "$vfpv3" = yes && cpuexts="VFPV3 $cpuexts" test "$setend" = yes && cpuexts="SETEND $cpuexts" test "$neon" = yes && cpuexts="NEON $cpuexts" +test "$neon_intrinsics" = yes && cpuexts="INTRINSICS_NEON $cpuexts" && intrinsics="neon" test "$_iwmmxt" = yes && cpuexts="IWMMXT $cpuexts" test "$_vis" = yes && cpuexts="VIS $cpuexts" test "$_mvi" = yes && cpuexts="MVI $cpuexts" @@ -3562,6 +3587,26 @@ cc_check_winsock2_h='-DHAVE_WINSOCK2_H=0' fi +echocheck "struct pollfd" +if test "$_struct_pollfd" = auto; then + _struct_pollfd=no + cat > $TMPC << EOF +#if HAVE_WINSOCK2_H +#include <winsock2.h> +#else +#include <poll.h> +#endif +int main(void) { struct pollfd p; return 0; } +EOF + cc_check $cc_check_winsock2_h && _struct_pollfd=yes +fi +echores "$_struct_pollfd" + +if test "$_struct_pollfd" = yes; then + def_struct_pollfd="#define HAVE_STRUCT_POLLFD 1" +else + def_struct_pollfd="#define HAVE_STRUCT_POLLFD 0" +fi echocheck "netdb.h, struct addrinfo" if test "$_struct_addrinfo" = auto; then @@ -3842,6 +3887,26 @@ def_poll_h='#define HAVE_POLL_H 1' echores "$poll_h" +echocheck "emmintrin.h (SSE intrinsics)" +emmintrin_h=no +def_emmintrin_h='#define HAVE_EMMINTRIN_H 0'
View file
MPlayer-1.2.r38117.tar.xz/etc/codecs.conf -> MPlayer-1.2.r38170.tar.xz/etc/codecs.conf
Changed
@@ -3,11 +3,31 @@ ; Before editing this file, please read DOCS/tech/codecs.conf.txt ! ;============================================================================= -release 20111012 +release 20191203 ;============================================================================= ; VIDEO CODECS ;============================================================================= +videocodec fflibdav1d + info "FFmpeg wrapper for libdav1d" + status working + fourcc AV01,av01 + driver ffmpeg + dll libdav1d + out YV12,420P10,420P12 + out 422P,422P10,422P12 + out 444P,444P10,444P12 + out GBR24P,GBR10P,GBR12P + +videocodec fflibaomav1 + info "FFmpeg wrapper for libaom/AV1" + status working + fourcc AV01,av01 + driver ffmpeg + dll libaom-av1 + out YV12,420P10,420P12 + out 422P,422P10,422P12 + out 444P,444P10,444P12 videocodec ffiff info "FFmpeg IFF ANIM/ILBM/PBM/RGB8/RGBN" @@ -611,17 +631,27 @@ out IDCT_MPEG2 out MOCO_MPEG2 -videocodec ffmpeg12vdpau - info "FFmpeg MPEG-1/2 (VDPAU)" +videocodec ffmpeg1vdpau + info "FFmpeg MPEG-1 (VDPAU)" status working format 0x10000001 ; MPEG-1 - format 0x10000002 ; MPEG-2 - fourcc mpg1,mpg2,MPG2 + fourcc mpg1 fourcc PIM1 ; Pinnacle hardware-MPEG-1 + fourcc MPEG + fourcc m1v1 + fourcc "m1v " + driver ffmpeg + dll "mpeg1video" + out VDPAU_MPEG1 + +videocodec ffmpeg2vdpau + info "FFmpeg MPEG-1/2 (VDPAU)" + status working + format 0x10000002 ; MPEG-2 + fourcc mpg2,MPG2 fourcc PIM2 ; Pinnacle hardware-MPEG-2 fourcc "DVR " fourcc hdv2 - fourcc MPEG fourcc hdv1 fourcc hdv3 ; HDV 1080i50 fourcc hdv5 ; HDV 720p25 @@ -637,11 +667,9 @@ fourcc AVmp fourcc mp2v,mpgv fourcc LMP2 ; Lead mpeg2 in avi - fourcc m2v1,m1v1 - fourcc "m1v " + fourcc m2v1 driver ffmpeg - dll "mpegvideo" - out VDPAU_MPEG1 + dll "mpeg2video" out VDPAU_MPEG2 videocodec ffmpeg2crystalhd @@ -3709,10 +3737,13 @@ videocodec qtm100 info "Media-100 iFinish Transcoder" status working - fourcc dtPA,dtnt,dtmt ;dtmt untested + fourcc dtPA,dtpa,dtNT,dtnt + fourcc 601P,601N + ; fourcc mjpb untested driver qtvideo dll "M100WinTranscoder.qtx" out UYVY + out YUY2 videocodec qt3ivx info "win32/quicktime 3IV1 (3ivx)"
View file
MPlayer-1.2.r38117.tar.xz/etc/example.conf -> MPlayer-1.2.r38170.tar.xz/etc/example.conf
Changed
@@ -159,7 +159,7 @@ #nocache=yes #[vo.vdpau] -#vc=ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau,ffh264vdpau,ffodivxvdpau, +#vc=ffmpeg2vdpau,ffwmv3vdpau,ffvc1vdpau,ffh264vdpau,ffodivxvdpau, # Most video filters do not work with vdpau. #vf-clr=yes
View file
MPlayer-1.2.r38117.tar.xz/gui/dialog/icons.c -> MPlayer-1.2.r38170.tar.xz/gui/dialog/icons.c
Changed
@@ -3953,55 +3953,44 @@ /* height (16) */ "\0\0\0\20" /* pixel_data: */ - "P\234\5""6P\234\7\340N\232\6\376N\232\6\377N\232\6\377N\232\6\377N\232" - "\6\377N\232\6\376\304\240\0\376\304\240\0\377\304\240\0\377\304\240\0" - "\377\304\240\0\377\304\240\0\376\306\243\0\340\305\237\0""5P\234\7\340" - "w\3036\377\213\326O\377\213\326O\377\213\326O\377\213\326O\377\213\326" - "O\377z\264D\376\341\317\200\377\366\352\200\377\366\352\200\377\366\352" - "\200\377\366\352\200\377\366\351\177\377\351\326R\377\306\244\0\337N" - "\232\6\376\213\326O\377d\310\24\377d\310\24\377d\310\24\377d\310\24\377" - "d\310\24\377z\264D\376\341\317\200\377\355\324\0\377\355\324\0\377\355" - "\324\0\377\355\324\0\377\355\324\1\377\366\351\177\377\304\240\0\376" - "N\232\6\377\213\326O\377d\310\24\377d\310\24\377d\310\24\377d\310\24" - "\377d\310\24\377z\264D\376\342\320\200\377\355\324\0\377\355\324\0\377" - "\355\324\0\377\355\324\0\377\355\324\0\377\366\352\200\377\304\240\0" - "\377N\232\6\377\213\326O\377d\310\24\377d\310\24\377d\310\24\377d\310" - "\24\377d\310\24\377z\264D\376\342\320\200\377\355\324\0\377\355\324\0" - "\377\355\324\0\377\355\324\0\377\355\324\0\377\366\352\200\377\304\240" - "\0\377N\232\6\377\213\326O\377d\310\24\377d\310\24\377d\310\24\377d\310" - "\24\377d\310\24\377z\264D\376\342\320\200\377\355\324\0\377\355\324\0" - "\377\355\324\0\377\355\324\0\377\355\324\0\377\366\352\200\377\304\240" - "\0\377N\232\6\377\213\326O\377d\310\24\377d\310\24\377d\310\24\377d\310" - "\24\377d\310\24\377z\264D\376\342\320\200\377\355\324\0\377\355\324\0" - "\377\355\324\0\377\355\324\0\377\355\324\0\377\366\352\200\377\304\240" - "\0\377N\232\6\377z\263D\377z\263D\377z\263D\377z\263D\377z\263D\377z" - "\263D\377z\263D\377\342\320\200\377\342\320\200\377\342\320\200\377\342" - "\320\200\377\342\320\200\377\342\320\200\377\342\320\200\377\304\240" - "\0\377\244\0\0\377\322\200\200\377\322\200\200\377\322\200\200\377\322" - "\200\200\377\322\200\200\377\322\200\200\377\322\200\200\377q\223\277" - "\377q\223\277\377q\223\277\377q\223\277\377q\223\277\377q\223\277\377" - "q\223\277\3774e\244\377\244\0\0\377\346\200\200\377\314\0\0\377\314\0" - "\0\377\314\0\0\377\314\0\0\377\314\0\0\377\321\200\200\377q\223\277\377" - "r\237\317\377r\237\317\377r\237\317\377r\237\317\377r\237\317\377\234" - "\274\335\3774e\244\377\244\0\0\377\346\200\200\377\314\0\0\377\314\0" - "\0\377\314\0\0\377\314\0\0\377\314\0\0\377\321\200\200\377q\223\277\377" - "r\237\317\377r\237\317\377r\237\317\377r\237\317\377r\237\317\377\234" - "\274\335\3774e\244\377\244\0\0\377\346\200\200\377\314\0\0\377\314\0" - "\0\377\314\0\0\377\314\0\0\377\314\0\0\377\321\200\200\377q\223\277\377" - "r\237\317\377r\237\317\377r\237\317\377r\237\317\377r\237\317\377\234" - "\274\335\3774e\244\377\244\0\0\377\346\200\200\377\314\0\0\377\314\0" - "\0\377\314\0\0\377\314\0\0\377\314\0\0\377\321\200\200\377q\223\277\377" - "r\237\317\377r\237\317\377r\237\317\377r\237\317\377r\237\317\377\234" - "\274\335\3774e\244\377\244\0\0\376\345\177\177\377\314\1\1\377\314\0" - "\0\377\314\0\0\377\314\0\0\377\314\0\0\377\321\200\200\377q\224\277\376" - "r\236\317\377r\237\317\377r\237\317\377r\237\317\377r\237\317\377\234" - "\273\335\3774e\244\376\246\0\0\340\323RR\377\345\177\177\377\346\200" - "\200\377\346\200\200\377\346\200\200\377\346\200\200\377\321\200\200" - "\377q\224\277\376\234\273\335\377\234\274\335\377\234\274\335\377\234" - "\274\335\377\234\273\335\377{\241\314\3778h\246\337\244\0\0""5\246\0" - "\0\337\243\0\0\377\244\0\0\377\244\0\0\377\244\0\0\377\244\0\0\377\244" - "\0\0\3764e\244\3764e\244\3774e\244\3774e\244\3774e\244\3774e\243\377" - "8h\246\3375e\2445"}; + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""9q\0\11:r\3\2466k\4\3654g\4" + "\3774g\4\3774g\4\3774g\4\3776k\4\365:r\3\2449q\0\11\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0:r\3\246@}\7\370^\274\22\377d\310\24\377" + "d\310\24\377d\310\24\377d\310\24\377_\274\22\377@~\7\367:r\3\244\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""6k\4\365_\274\22\377d\310" + "\24\377d\310\24\377d\310\24\377d\310\24\377d\310\24\377d\310\24\377^" + "\273\22\3776k\4\364\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""4" + "g\4\377\211\325L\377\210\325K\377\210\325J\377\204\323E\377z\3206\377" + "i\312\33\377d\310\24\377d\310\24\3774g\4\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\200f\0\12\206n\0\252|e\0\365v`\0\377wa\2\377xb\4\377xb\4\377\201p\15" + "\377\213\232&\377\207\322H\377h\312\32\377^\273\22\3776k\4\364\0\0\0" + "\0\0\0\0\0\0\0\0\0\206n\0\252\222{\0\371\337\306\0\377\355\324\0\377" + "\355\324\0\377\355\324\0\377\355\324\0\377\337\306\0\377\220|\1\377\213" + "\232&\377u\3054\377\77~\7\3679q\3\242\0\0\0\0\0\0\0\0\0\0\0\0}e\0\365" + "\337\306\1\377\355\325\7\377\355\325\5\377\355\324\1\377\355\324\0\377" + "\355\324\0\377\355\324\0\377\335\304\0\377zg\2\3778l\6\3649q\3\242@\200" + "\0\10\0\0\0\0\0\0\0\0\0\0\0\0wa\1\377\361\336>\377\361\3369\377\361\336" + ";\377\361\336<\377\360\333*\377\356\326\12\377\355\324\0\377\355\324" + "\0\377v`\0\377\0\0\0\0\0\0\0\0\0\0\0\0\252U\0\11\227D\0\246\217\77\0" + "\365\211=\0\377\211=\0\377\211=\0\377\211=\0\377\225J\5\377\275\206\34" + "\377\357\332:\377\356\326\14\377\335\304\0\377{e\0\365\0\0\0\0\0\0\0" + "\0\0\0\0\0\227D\0\246\243K\0\370\350r\0\377\365y\0\377\365y\0\377\365" + "y\0\377\365y\0\377\350r\0\377\245O\0\377\275\205\33\377\342\315)\377" + "\222z\0\370\206o\0\246\0\0\0\0\0\0\0\0\0\0\0\0\217\77\0\365\350r\0\377" + "\365y\0\377\365y\0\377\365y\0\377\365y\0\377\365y\0\377\365y\0\377\347" + "p\0\377\216C\1\377|f\0\365\206o\0\246\237\200\0\10\0\0\0\0\0\0\0\0\0" + "\0\0\0\211=\0\377\365y\0\377\365y\0\377\365y\0\377\365y\0\377\365y\0" + "\377\365y\0\377\365y\0\377\365y\0\377\211=\0\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\217\77\0\365\350r\0\377\365y\0\377\365y" + "\0\377\365y\0\377\365y\0\377\365y\0\377\365y\0\377\347p\0\377\217A\0" + "\364\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\227C\0\244\242K" + "\0\370\350r\0\377\365y\0\377\365y\0\377\365y\0\377\365y\0\377\347p\0" + "\377\243J\0\367\227D\0\242\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\252U\0\11\227C\0\244\217A\0\364\211=\0\377\211=\0\377\211=\0\377" + "\211=\0\377\217A\0\364\227D\0\242\237@\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0"}; /* GdkPixbuf RGBA C-Source image dump */
View file
MPlayer-1.2.r38117.tar.xz/gui/dialog/menu.c -> MPlayer-1.2.r38170.tar.xz/gui/dialog/menu.c
Changed
@@ -291,6 +291,7 @@ { lng( 'n','l' ), "nld", "Nederlands" }, { lng( 'n','l' ), "dut", "Nederlands" }, { lng( 'n','n' ), "nno", "Nynorsk" }, + { lng( 'n','o' ), "nor", "Norsk" }, { lng( 'n','r' ), "nbl", "isiNdebele" }, { lng( 'n','v' ), "nav", "Diné bizaad" }, { lng( 'n','y' ), "nya", "Chichewa" },
View file
MPlayer-1.2.r38117.tar.xz/gui/dialog/preferences.c -> MPlayer-1.2.r38170.tar.xz/gui/dialog/preferences.c
Changed
@@ -658,7 +658,7 @@ CLADrivers=gtk_clist_new( 2 ); gtk_widget_show( CLADrivers ); gtk_container_add( GTK_CONTAINER( scrolledwindow3 ),CLADrivers ); - gtk_clist_set_column_width( GTK_CLIST( CLADrivers ),0,50 ); + gtk_clist_set_column_width( GTK_CLIST( CLADrivers ),0,65 ); gtk_clist_column_titles_show( GTK_CLIST( CLADrivers ) ); gtk_clist_set_shadow_type( GTK_CLIST( CLADrivers ),GTK_SHADOW_NONE ); gtk_widget_set_usize( CLADrivers,250,-2 ); @@ -725,7 +725,7 @@ CLVDrivers=gtk_clist_new( 2 ); gtk_widget_show( CLVDrivers ); gtk_container_add( GTK_CONTAINER( scrolledwindow2 ),CLVDrivers ); - gtk_clist_set_column_width( GTK_CLIST( CLVDrivers ),0,50 ); + gtk_clist_set_column_width( GTK_CLIST( CLVDrivers ),0,65 ); gtk_clist_column_titles_show( GTK_CLIST( CLVDrivers ) ); gtk_clist_set_shadow_type( GTK_CLIST( CLVDrivers ),GTK_SHADOW_NONE ); gtk_widget_set_usize( CLVDrivers,250,-2 ); @@ -1222,6 +1222,7 @@ while ( audio_out_drivers[i] ) { const ao_info_t *info = audio_out_drivers[i++]->info; + if ( !strcmp( info->short_name,"mpegpes" ) ) continue; if ( !strcmp( info->short_name,"plugin" ) ) continue; if ( audio_driver_list ) {
View file
MPlayer-1.2.r38117.tar.xz/gui/interface.c -> MPlayer-1.2.r38170.tar.xz/gui/interface.c
Changed
@@ -1140,7 +1140,7 @@ wsWindowVisibility(&guiApp.videoWindow, wsShowWindow); if (gtkLoadFullscreen ^ guiApp.videoWindow.isFullScreen) - uiEvent(evFullScreen, False); + uiEvent(evFullScreen, -1); } else { wsWindowVisibility(&guiApp.videoWindow, wsHideWindow); guiInfo.VideoWindow = False;
View file
MPlayer-1.2.r38117.tar.xz/gui/ui/actions.c -> MPlayer-1.2.r38170.tar.xz/gui/ui/actions.c
Changed
@@ -439,7 +439,7 @@ uiFullScreen(); if (!guiApp.videoWindow.isFullScreen) - wsWindowResize(&guiApp.videoWindow, iparam ? guiInfo.VideoWidth : guiApp.video.width, iparam ? guiInfo.VideoHeight : guiApp.video.height); + wsWindowResize(&guiApp.videoWindow, iparam >= 0 ? guiInfo.VideoWidth : guiApp.video.width, iparam >= 0 ? guiInfo.VideoHeight : guiApp.video.height); } if (guiApp.videoWindow.isFullScreen)
View file
MPlayer-1.2.r38117.tar.xz/gui/wm/ws.c -> MPlayer-1.2.r38170.tar.xz/gui/wm/ws.c
Changed
@@ -343,6 +343,25 @@ return -1; } +static void wsClearWindowParts(Display *display, wsWindow *win) +{ + int W_leftover, H_leftover; + + if (win->Width <= win->xImage->width && win->Height <= win->xImage->height) + return; + + W_leftover = (win->Width - win->xImage->width) / 2; + H_leftover = (win->Height - win->xImage->height) / 2; + + XFillRectangle(display, win->WindowID, win->wGC, 0, 0, win->Width, H_leftover); + XFillRectangle(display, win->WindowID, win->wGC, 0, win->Height - H_leftover - 1, win->Width, H_leftover + 1); + + if (win->Width > win->xImage->width) { + XFillRectangle(display, win->WindowID, win->wGC, 0, H_leftover, W_leftover, win->xImage->height); + XFillRectangle(display, win->WindowID, win->wGC, win->Width - W_leftover - 1, H_leftover, W_leftover + 1, win->xImage->height); + } +} + void wsEvent(XEvent *event) { unsigned long i = 0; @@ -443,8 +462,10 @@ wsWindowList[l]->State = wsWindowExpose; - if ((wsWindowList[l]->DrawHandler) && (!event->xexpose.count)) + if ((wsWindowList[l]->DrawHandler) && (!event->xexpose.count)) { + wsClearWindowParts(wsDisplay, wsWindowList[l]); wsWindowList[l]->DrawHandler(); + } break;
View file
MPlayer-1.2.r38117.tar.xz/libaf/af_format.c -> MPlayer-1.2.r38170.tar.xz/libaf/af_format.c
Changed
@@ -494,7 +494,7 @@ ((int8_t *)out)[i] = av_clip_int8(lrintf(128.0f * in[i])); break; case(2): -#if HAVE_NEON +#if HAVE_NEON && !ARCH_AARCH64 { const float *in_end = in + len; while (in < in_end - 7) {
View file
MPlayer-1.2.r38117.tar.xz/libaf/af_volume.c -> MPlayer-1.2.r38170.tar.xz/libaf/af_volume.c
Changed
@@ -125,7 +125,7 @@ static av_always_inline void float_inner_loop(float *data, int len, int offset, int step, float level, int softclip) { int i; -#if HAVE_NEON +#if HAVE_NEON && !ARCH_AARCH64 if (offset == 0 && step == 1 && !softclip && len >= 8) { __asm__(
View file
MPlayer-1.2.r38117.tar.xz/libao2/ao_kai.c -> MPlayer-1.2.r38170.tar.xz/libao2/ao_kai.c
Changed
@@ -166,7 +166,8 @@ {NULL} }; - const char *audioDriver[] = {"DART", "UNIAUD",}; + const char *audioDriver[] = {"UNKNOWN", "DART", "UNIAUD",}; + int nAudioDriver = sizeof(audioDriver) / sizeof(*audioDriver); if (subopt_parse(ao_subdevice, subopts) != 0) { print_help(); @@ -190,7 +191,7 @@ kaiCaps(&kc); mp_msg(MSGT_AO, MSGL_V, "KAI: selected audio driver = %s\n", - audioDriver[kc.ulMode - 1]); + audioDriver[kc.ulMode >= nAudioDriver ? 0 : kc.ulMode]); mp_msg(MSGT_AO, MSGL_V, "KAI: PDD name = %s, maximum channels = %lu\n", kc.szPDDName, kc.ulMaxChannels);
View file
MPlayer-1.2.r38117.tar.xz/libao2/audio_out.c -> MPlayer-1.2.r38170.tar.xz/libao2/audio_out.c
Changed
@@ -50,7 +50,6 @@ extern const ao_functions_t audio_out_kai; extern const ao_functions_t audio_out_dart; extern const ao_functions_t audio_out_dxr2; -extern const ao_functions_t audio_out_ivtv; extern const ao_functions_t audio_out_v4l2; extern const ao_functions_t audio_out_mpegpes; extern const ao_functions_t audio_out_pcm; @@ -115,9 +114,6 @@ #ifdef CONFIG_DXR2 &audio_out_dxr2, #endif -#ifdef CONFIG_IVTV - &audio_out_ivtv, -#endif #ifdef CONFIG_V4L2_DECODER &audio_out_v4l2, #endif
View file
MPlayer-1.2.r38117.tar.xz/libmpcodecs/ad_ffmpeg.c -> MPlayer-1.2.r38170.tar.xz/libmpcodecs/ad_ffmpeg.c
Changed
@@ -223,7 +223,7 @@ { size_t s, c, o = 0; -#if HAVE_NEON_INLINE +#if HAVE_NEON_INLINE && !ARCH_AARCH64 if (nb_channels == 2 && bps == 4) { const unsigned char *src0 = src[0]; const unsigned char *src1 = src[1];
View file
MPlayer-1.2.r38117.tar.xz/libmpcodecs/pullup.c -> MPlayer-1.2.r38170.tar.xz/libmpcodecs/pullup.c
Changed
@@ -24,8 +24,6 @@ #include "config.h" #include "pullup.h" - - #if ARCH_X86 #if HAVE_MMX_INLINE static int diff_y_mmx(unsigned char *a, unsigned char *b, int s) @@ -212,6 +210,106 @@ #endif #endif +#if HAVE_EMMINTRIN_H +#include <emmintrin.h> + +ATTR_TARGET_SSE2 +static int diff_y_sse2(unsigned char *a, unsigned char *b, int s) +{ + __m128i res; + __m128i mma = _mm_loadl_epi64((const __m128i *)a); + __m128i mmb = _mm_loadl_epi64((const __m128i *)b); + a+=s; b+=s; + mma = _mm_castpd_si128(_mm_loadh_pd(_mm_castsi128_pd(mma), (const double *)a)); + mmb = _mm_castpd_si128(_mm_loadh_pd(_mm_castsi128_pd(mmb), (const double *)b)); + a+=s; b+=s; + res = _mm_sad_epu8(mma, mmb); + + mma = _mm_loadl_epi64((const __m128i *)a); + mmb = _mm_loadl_epi64((const __m128i *)b); + a+=s; b+=s; + mma = _mm_castpd_si128(_mm_loadh_pd(_mm_castsi128_pd(mma), (const double *)a)); + mmb = _mm_castpd_si128(_mm_loadh_pd(_mm_castsi128_pd(mmb), (const double *)b)); + a+=s; b+=s; + res = _mm_add_epi16(res, _mm_sad_epu8(mma, mmb)); + + // sum high and low result + res = _mm_add_epi16(res, _mm_srli_si128(res, 8)); + + return _mm_extract_epi16(res, 0); +} + +ATTR_TARGET_SSE2 +static inline __m128i loadu8u16(const unsigned char *p) +{ + __m128i res = _mm_loadl_epi64((const __m128i *)p); + res = _mm_unpacklo_epi8(res, _mm_setzero_si128()); + return res; +} + +ATTR_TARGET_SSE2 +static inline __m128i mmabs16(__m128i v) +{ + // For the cases this is used, the subtraction + // cannot overflow, so skip saturation for slight + // better performance on some architectures + __m128i neg = _mm_sub_epi16(_mm_setzero_si128(), v); + return _mm_max_epi16(neg, v); +} + +ATTR_TARGET_SSE2 +static int licomb_y_sse2(unsigned char *a, unsigned char *b, int s) +{ + int i; + __m128i res = _mm_setzero_si128(); + __m128i mmbprev = loadu8u16(b-s); + __m128i mma = loadu8u16(a); + + for (i=4; i; i--) { + __m128i tmpa, tmpb; + __m128i mmb = loadu8u16(b); + __m128i mmanext = loadu8u16(a+s); + + tmpa = _mm_add_epi16(mma, mma); + tmpa = _mm_sub_epi16(tmpa, mmbprev); + tmpa = _mm_sub_epi16(tmpa, mmb); + + res = _mm_add_epi16(res, mmabs16(tmpa)); + + tmpb = _mm_add_epi16(mmb, mmb); + tmpb = _mm_sub_epi16(tmpb, mma); + tmpb = _mm_sub_epi16(tmpb, mmanext); + + res = _mm_add_epi16(res, mmabs16(tmpb)); + + mma = mmanext; + mmbprev = mmb; + a += s; b += s; + } + + // Sum reduce 8 to 4 to 2 to 1 elements. + // A bit wasteful to do 8 adds for a single result we + // care about, but _mm_extract_epi16 has high latency. + res = _mm_add_epi16(res, _mm_srli_si128(res, 8)); + res = _mm_add_epi16(res, _mm_srli_si128(res, 4)); + res = _mm_add_epi16(res, _mm_srli_si128(res, 2)); + return _mm_extract_epi16(res, 0); +} + +ATTR_TARGET_SSE2 +static int var_y_sse2(unsigned char *a, unsigned char *b, int s) +{ + __m128i a0 = _mm_loadl_epi64((const __m128i *)a); + __m128i a1 = _mm_loadl_epi64((const __m128i *)(a + s)); + __m128i a2 = _mm_loadl_epi64((const __m128i *)(a + 2*s)); + __m128i a3 = _mm_loadl_epi64((const __m128i *)(a + 3*s)); + __m128i res = _mm_sad_epu8(a0, a1); + res = _mm_add_epi16(res, _mm_sad_epu8(a1, a2)); + res = _mm_add_epi16(res, _mm_sad_epu8(a2, a3)); + return 4*_mm_extract_epi16(res, 0); +} +#endif + #define ABS(a) (((a)^((a)>>31))-((a)>>31)) static int diff_y(unsigned char *a, unsigned char *b, int s) @@ -252,8 +350,10 @@ { int c = licomb_y(a,b,s); int m = licomb_y_mmx(a,b,s); + int sse2 = licomb_y_sse2(a,b,s); if (c != m) printf("%d != %d\n", c, m); - return m; + if (c != sse2) printf("%d != %d (SSE2)\n", c, sse2); + return sse2; } #endif @@ -792,6 +892,13 @@ c->var = var_y_mmx; } #endif +#if HAVE_EMMINTRIN_H + if (c->cpu & PULLUP_CPU_SSE) { + c->diff = diff_y_sse2; + c->comb = licomb_y_sse2; + c->var = var_y_sse2; + } +#endif #endif /* c->comb = qpcomb_y; */ break;
View file
MPlayer-1.2.r38117.tar.xz/libmpcodecs/vf_eq.c -> MPlayer-1.2.r38170.tar.xz/libmpcodecs/vf_eq.c
Changed
@@ -104,6 +104,45 @@ } #endif +#if HAVE_EMMINTRIN_H +#include <emmintrin.h> + +ATTR_TARGET_SSE2 +static void process_SSE2(unsigned char *dest, int dstride, unsigned char *src, int sstride, + int w, int h, int brightness, int contrast) +{ + int scaled_contrast = ((contrast+100)*256*16)/100; + int scaled_brightness = ((brightness+100)*511)/200-128 - scaled_contrast/32; + __m128i mmcontrast = _mm_set1_epi16(scaled_contrast); + __m128i mmbrightness = _mm_set1_epi16(scaled_brightness); + __m128i zero = _mm_setzero_si128(); + while (h--) { + int i; + for (i = 0; i < w - 15; i += 16) + { + __m128i mmsrc = _mm_loadu_si128((const __m128i *)(src + i)); + __m128i srclo = _mm_unpacklo_epi8(mmsrc, zero); + __m128i srchi = _mm_unpackhi_epi8(mmsrc, zero); + srclo = _mm_slli_epi16(srclo, 4); + srchi = _mm_slli_epi16(srchi, 4); + srclo = _mm_mulhi_epu16(srclo, mmcontrast); + srchi = _mm_mulhi_epu16(srchi, mmcontrast); + srclo = _mm_add_epi16(srclo, mmbrightness); + srchi = _mm_add_epi16(srchi, mmbrightness); + _mm_storeu_si128((__m128i *)(dest + i), _mm_packus_epi16(srclo, srchi)); + } + for (; i < w; i++) + { + int pel = ((src[i] * scaled_contrast)>>12) + scaled_brightness; + if(pel&768) pel = (-pel)>>31; + dest[i] = pel; + } + src += sstride; + dest += dstride; + } +} +#endif + static void process_C(unsigned char *dest, int dstride, unsigned char *src, int sstride, int w, int h, int brightness, int contrast) { @@ -230,6 +269,9 @@ #if HAVE_MMX_INLINE if(gCpuCaps.hasMMX) process = process_MMX; #endif +#if HAVE_EMMINTRIN_H + if(gCpuCaps.hasSSE2) process = process_SSE2; +#endif return 1; }
View file
MPlayer-1.2.r38117.tar.xz/libmpcodecs/vf_eq2.c -> MPlayer-1.2.r38170.tar.xz/libmpcodecs/vf_eq2.c
Changed
@@ -188,6 +188,45 @@ } #endif +#if HAVE_EMMINTRIN_H +#include <emmintrin.h> + +ATTR_TARGET_SSE2 +static void affine_1d_SSE2(eq2_param_t *par, unsigned char *dst, unsigned char *src, + unsigned w, unsigned h, unsigned dstride, unsigned sstride) +{ + int scaled_contrast = par->c * 256 * 16; + int scaled_brightness = ((par->b+1.0)*511)/2-128 - scaled_contrast/32; + __m128i mmcontrast = _mm_set1_epi16(scaled_contrast); + __m128i mmbrightness = _mm_set1_epi16(scaled_brightness); + __m128i zero = _mm_setzero_si128(); + while (h--) { + int i; + for (i = 0; i < w - 15; i += 16) + { + __m128i mmsrc = _mm_loadu_si128((const __m128i *)(src + i)); + __m128i srclo = _mm_unpacklo_epi8(mmsrc, zero); + __m128i srchi = _mm_unpackhi_epi8(mmsrc, zero); + srclo = _mm_slli_epi16(srclo, 4); + srchi = _mm_slli_epi16(srchi, 4); + srclo = _mm_mulhi_epu16(srclo, mmcontrast); + srchi = _mm_mulhi_epu16(srchi, mmcontrast); + srclo = _mm_add_epi16(srclo, mmbrightness); + srchi = _mm_add_epi16(srchi, mmbrightness); + _mm_storeu_si128((__m128i *)(dst + i), _mm_packus_epi16(srclo, srchi)); + } + for (; i < w; i++) + { + int pel = ((src[i] * scaled_contrast)>>12) + scaled_brightness; + if(pel&768) pel = (-pel)>>31; + dst[i] = pel; + } + src += sstride; + dst += dstride; + } +} +#endif + static void apply_lut (eq2_param_t *par, unsigned char *dst, unsigned char *src, unsigned w, unsigned h, unsigned dstride, unsigned sstride) @@ -289,6 +328,11 @@ if ((par->c == 1.0) && (par->b == 0.0) && (par->g == 1.0)) { par->adjust = NULL; } +#if HAVE_EMMINTRIN_H + else if (par->g == 1.0 && gCpuCaps.hasSSE2) { + par->adjust = &affine_1d_SSE2; + } +#endif #if HAVE_MMX_INLINE else if (par->g == 1.0 && gCpuCaps.hasMMX) { par->adjust = &affine_1d_MMX;
View file
MPlayer-1.2.r38117.tar.xz/libmpcodecs/vf_noise.c -> MPlayer-1.2.r38170.tar.xz/libmpcodecs/vf_noise.c
Changed
@@ -72,7 +72,7 @@ static int nonTempRandShift_init; static int nonTempRandShift[MAX_RES]; -static int patt[4] = { +static const int patt[4] = { -1,0,1,0 };
View file
MPlayer-1.2.r38117.tar.xz/libmpdemux/demux_lavf.c -> MPlayer-1.2.r38170.tar.xz/libmpdemux/demux_lavf.c
Changed
@@ -839,7 +839,7 @@ else { ds_free_packs(ds); - if(ds->id >= 0) + if(ds->id >= 0 && ds->id < nstreams) priv->avfc->streams[ds->id]->discard = AVDISCARD_ALL; *((int*)arg) = ds->id = newid; if(newid >= 0)
View file
MPlayer-1.2.r38117.tar.xz/libmpdemux/demux_mkv.c -> MPlayer-1.2.r38170.tar.xz/libmpdemux/demux_mkv.c
Changed
@@ -402,7 +402,7 @@ uint64_t length, l; int il; uint64_t tc_scale = 1000000; - long double duration = 0.; + double duration = 0.; length = ebml_read_length(s, NULL); while (length > 0) { @@ -420,11 +420,11 @@ case MATROSKA_ID_DURATION: { - long double num = ebml_read_float(s, &l); + double num = ebml_read_float(s, &l); if (num == EBML_FLOAT_INVALID) return 1; duration = num; - mp_msg(MSGT_DEMUX, MSGL_V, "[mkv] | + duration: %.3Lfs\n", + mp_msg(MSGT_DEMUX, MSGL_V, "[mkv] | + duration: %.3fs\n", duration * tc_scale / 1000000000.0); break; } @@ -615,7 +615,7 @@ switch (ebml_read_id(s, &il)) { case MATROSKA_ID_AUDIOSAMPLINGFREQ: { - long double num = ebml_read_float(s, &l); + double num = ebml_read_float(s, &l); if (num == EBML_FLOAT_INVALID) return 0; track->a_sfreq = num; @@ -667,7 +667,7 @@ switch (ebml_read_id(s, &il)) { case MATROSKA_ID_VIDEOFRAMERATE: { - long double num = ebml_read_float(s, &l); + double num = ebml_read_float(s, &l); if (num == EBML_FLOAT_INVALID) return 0; track->v_frate = num;
View file
MPlayer-1.2.r38117.tar.xz/libmpdemux/ebml.c -> MPlayer-1.2.r38170.tar.xz/libmpdemux/ebml.c
Changed
@@ -176,9 +176,9 @@ /* * Read the next element as a float. */ -long double ebml_read_float(stream_t *s, uint64_t *length) +double ebml_read_float(stream_t *s, uint64_t *length) { - long double value; + double value; uint64_t len; int l;
View file
MPlayer-1.2.r38117.tar.xz/libmpdemux/ebml.h -> MPlayer-1.2.r38170.tar.xz/libmpdemux/ebml.h
Changed
@@ -200,7 +200,7 @@ uint64_t ebml_read_length (stream_t *s, int *length); uint64_t ebml_read_uint (stream_t *s, uint64_t *length); int64_t ebml_read_int (stream_t *s, uint64_t *length); -long double ebml_read_float (stream_t *s, uint64_t *length); +double ebml_read_float (stream_t *s, uint64_t *length); char *ebml_read_ascii (stream_t *s, uint64_t *length); char *ebml_read_utf8 (stream_t *s, uint64_t *length); int ebml_read_skip (stream_t *s, uint64_t *length);
View file
MPlayer-1.2.r38117.tar.xz/libvo/video_out.c -> MPlayer-1.2.r38170.tar.xz/libvo/video_out.c
Changed
@@ -129,7 +129,6 @@ extern const vo_functions_t video_out_kva; extern const vo_functions_t video_out_dxr2; extern const vo_functions_t video_out_dxr3; -extern const vo_functions_t video_out_ivtv; extern const vo_functions_t video_out_v4l2; extern const vo_functions_t video_out_jpeg; extern const vo_functions_t video_out_gif89a; @@ -245,9 +244,6 @@ #ifdef CONFIG_DXR3 &video_out_dxr3, #endif -#ifdef CONFIG_IVTV - &video_out_ivtv, -#endif #ifdef CONFIG_V4L2_DECODER &video_out_v4l2, #endif @@ -274,11 +270,11 @@ #endif &video_out_cvidix, #endif - &video_out_null, // should not be auto-selected #if CONFIG_XVMC &video_out_xvmc, #endif + &video_out_null, &video_out_mpegpes, #ifdef CONFIG_YUV4MPEG &video_out_yuv4mpeg,
View file
MPlayer-1.2.r38117.tar.xz/libvo/vo_aa.c -> MPlayer-1.2.r38170.tar.xz/libvo/vo_aa.c
Changed
@@ -92,6 +92,7 @@ static int osd_text_length = 0; int aaconfigmode=1; font_desc_t* vo_font_save = NULL; +font_desc_t* sub_font_save = NULL; static struct SwsContext *sws=NULL; /* configuration */ @@ -250,7 +251,8 @@ /* now init our own 'font' */ if(!vo_font_save) vo_font_save = vo_font; if(vo_font == vo_font_save) { - vo_font=malloc(sizeof(font_desc_t));//if(!desc) return NULL; + sub_font_save = sub_font; + sub_font=vo_font=malloc(sizeof(font_desc_t));//if(!desc) return NULL; memset(vo_font,0,sizeof(font_desc_t)); vo_font->pic_a[0]=malloc(sizeof(raw_file)); memset(vo_font->pic_a[0],0,sizeof(raw_file)); @@ -517,6 +519,10 @@ vo_font = vo_font_save; vo_font_save = NULL; } + if(sub_font_save) { + sub_font = sub_font_save; + sub_font_save = NULL; + } aa_close(c); }
View file
MPlayer-1.2.r38117.tar.xz/libvo/vo_caca.c -> MPlayer-1.2.r38170.tar.xz/libvo/vo_caca.c
Changed
@@ -216,7 +216,7 @@ static const struct mp_keymap keysym_map[] = { {CACA_KEY_RETURN, KEY_ENTER}, {CACA_KEY_ESCAPE, KEY_ESC}, - {CACA_KEY_UP, KEY_DOWN}, {CACA_KEY_DOWN, KEY_DOWN}, + {CACA_KEY_UP, KEY_UP}, {CACA_KEY_DOWN, KEY_DOWN}, {CACA_KEY_LEFT, KEY_LEFT}, {CACA_KEY_RIGHT, KEY_RIGHT}, {CACA_KEY_PAGEUP, KEY_PAGE_UP}, {CACA_KEY_PAGEDOWN, KEY_PAGE_DOWN}, {CACA_KEY_HOME, KEY_HOME}, {CACA_KEY_END, KEY_END},
View file
MPlayer-1.2.r38117.tar.xz/libvo/vo_jpeg.c -> MPlayer-1.2.r38170.tar.xz/libvo/vo_jpeg.c
Changed
@@ -396,6 +396,8 @@ switch (request) { case VOCTRL_QUERY_FORMAT: return query_format(*((uint32_t*)data)); + case VOCTRL_GUISUPPORT: + return VO_TRUE; } return VO_NOTIMPL; }
View file
MPlayer-1.2.r38117.tar.xz/libvo/vo_kva.c -> MPlayer-1.2.r38170.tar.xz/libvo/vo_kva.c
Changed
@@ -608,7 +608,9 @@ {NULL, 0, NULL, NULL} }; - PCSZ pcszVideoModeStr[3] = {"DIVE", "WarpOverlay!", "SNAP", "VMAN"}; + PCSZ pcszVideoModeStr[] = {"UNKNOWN", "DIVE", "WarpOverlay!", "SNAP", + "VMAN"}; + int nVideoModeStr = sizeof(pcszVideoModeStr) / sizeof(*pcszVideoModeStr); if (subopt_parse(arg, subopts) != 0) return -1; @@ -688,7 +690,8 @@ kvaCaps(&m_int.kvac); mp_msg(MSGT_VO, MSGL_V, "KVA: Selected video mode = %s\n", - pcszVideoModeStr[m_int.kvac.ulMode - 1]); + pcszVideoModeStr[m_int.kvac.ulMode >= nVideoModeStr ? + 0 : m_int.kvac.ulMode]); kvaDisableScreenSaver();
View file
MPlayer-1.2.r38117.tar.xz/libvo/vo_md5sum.c -> MPlayer-1.2.r38170.tar.xz/libvo/vo_md5sum.c
Changed
@@ -255,6 +255,8 @@ return query_format(*((uint32_t*)data)); case VOCTRL_DRAW_IMAGE: return draw_image(data); + case VOCTRL_GUISUPPORT: + return VO_TRUE; } return VO_NOTIMPL; }
View file
MPlayer-1.2.r38117.tar.xz/libvo/vo_null.c -> MPlayer-1.2.r38170.tar.xz/libvo/vo_null.c
Changed
@@ -100,6 +100,8 @@ switch (request) { case VOCTRL_QUERY_FORMAT: return query_format(*((uint32_t*)data)); + case VOCTRL_GUISUPPORT: + return VO_TRUE; } return VO_NOTIMPL; }
View file
MPlayer-1.2.r38117.tar.xz/libvo/vo_png.c -> MPlayer-1.2.r38170.tar.xz/libvo/vo_png.c
Changed
@@ -262,6 +262,8 @@ return draw_image(data); case VOCTRL_QUERY_FORMAT: return query_format(*((uint32_t*)data)); + case VOCTRL_GUISUPPORT: + return VO_TRUE; } return VO_NOTIMPL; }
View file
MPlayer-1.2.r38117.tar.xz/libvo/vo_pnm.c -> MPlayer-1.2.r38170.tar.xz/libvo/vo_pnm.c
Changed
@@ -532,6 +532,8 @@ return query_format(*((uint32_t*)data)); case VOCTRL_DRAW_IMAGE: return draw_image(data); + case VOCTRL_GUISUPPORT: + return VO_TRUE; } return VO_NOTIMPL; }
View file
MPlayer-1.2.r38117.tar.xz/libvo/vo_tga.c -> MPlayer-1.2.r38170.tar.xz/libvo/vo_tga.c
Changed
@@ -219,6 +219,9 @@ case VOCTRL_QUERY_FORMAT: return query_format(*((uint32_t*)data)); + + case VOCTRL_GUISUPPORT: + return VO_TRUE; } return VO_NOTIMPL; }
View file
MPlayer-1.2.r38117.tar.xz/libvo/vo_vdpau.c -> MPlayer-1.2.r38170.tar.xz/libvo/vo_vdpau.c
Changed
@@ -824,6 +824,38 @@ } } +#if HAVE_EMMINTRIN_H +#include <emmintrin.h> + +#include "cpudetect.h" + +ATTR_TARGET_SSE2 +static void copyosd_SSE2(int w, int h, unsigned char *src, unsigned char *srca, int stride) +{ + unsigned char *dst = index_data; + __m128i zero = _mm_setzero_si128(); + while (h--) { + int i; + for (i = 0; i < w - 15; i += 16) + { + __m128i mmsrc = _mm_loadu_si128((const __m128i *)(src + i)); + __m128i mmsrca = _mm_loadu_si128((const __m128i *)(srca + i)); + mmsrca = _mm_sub_epi8(zero, mmsrca); + _mm_storeu_si128((__m128i *)(dst + 0), _mm_unpacklo_epi8(mmsrc, mmsrca)); + _mm_storeu_si128((__m128i *)(dst + 16), _mm_unpackhi_epi8(mmsrc, mmsrca)); + dst += 32; + } + for (; i < w; i++) + { + *dst++ = src [i]; + *dst++ = -srca[i]; + } + src += stride; + srca += stride; + } +} +#endif + static void draw_osd_I8A8(int x0,int y0, int w,int h, unsigned char *src, unsigned char *srca, int stride) { @@ -845,11 +877,18 @@ } // index_data creation, component order - I, A, I, A, ..... - for (i = 0; i < h; i++) - for (j = 0; j < w; j++) { - index_data[i*2*w + j*2] = src [i*stride + j]; - index_data[i*2*w + j*2 + 1] = -srca[i*stride + j]; - } +#if HAVE_EMMINTRIN_H + if (gCpuCaps.hasSSE2) copyosd_SSE2(w, h, src, srca, stride); + else +#endif + { + unsigned char *dst = index_data; + for (i = 0; i < h; i++) + for (j = 0; j < w; j++) { + *dst++ = src [i*stride + j]; + *dst++ = -srca[i*stride + j]; + } + } output_indexed_rect_vid.x0 = x0; output_indexed_rect_vid.y0 = y0;
View file
MPlayer-1.2.r38117.tar.xz/libvo/vo_yuv4mpeg.c -> MPlayer-1.2.r38170.tar.xz/libvo/vo_yuv4mpeg.c
Changed
@@ -301,6 +301,8 @@ return query_format(*((uint32_t*)data)); case VOCTRL_DUPLICATE_FRAME: return write_last_frame(); + case VOCTRL_GUISUPPORT: + return VO_TRUE; } return VO_NOTIMPL; }
View file
MPlayer-1.2.r38117.tar.xz/osdep/mplayer.rc -> MPlayer-1.2.r38170.tar.xz/osdep/mplayer.rc
Changed
@@ -36,7 +36,7 @@ VALUE "FileDescription", "MPlayer - Movie Player\000" VALUE "FileVersion",VERSION VALUE "InternalName", "Counter Counter\000" - VALUE "LegalCopyright", " (C) 2000-2018 MPlayer Team\000" + VALUE "LegalCopyright", " (C) 2000-2020 MPlayer Team\000" //VALUE "LegalTrademarks"," \000"; VALUE "OriginalFilename", "mplayer.exe\000" VALUE "ProductName", "MPlayer - The Movie Player\000"
View file
MPlayer-1.2.r38117.tar.xz/stream/http.c -> MPlayer-1.2.r38170.tar.xz/stream/http.c
Changed
@@ -828,7 +828,7 @@ if( next_url!=NULL ) { int is_ultravox = strcasecmp(stream->streaming_ctrl->url->protocol, "unsv") == 0; stream->streaming_ctrl->url = url_redirect( &url, next_url ); - if (url_is_protocol(url, "mms")) { + if (url_is_protocol(url, "https") || url_is_protocol(url, "mms")) { res = STREAM_REDIRECTED; goto err_out; }
View file
MPlayer-1.2.r38117.tar.xz/stream/pvr.h -> MPlayer-1.2.r38170.tar.xz/stream/pvr.h
Changed
@@ -1,8 +1,6 @@ /* * stream layer for hardware MPEG 1/2/4 encoders a.k.a PVR * (such as WinTV PVR-150/250/350/500 (a.k.a IVTV), pvrusb2 and cx88) - * See http://ivtvdriver.org/index.php/Main_Page for more details on the - * cards supported by the ivtv driver. * * Copyright (C) 2006 Benjamin Zores * Copyright (C) 2007 Sven Gothel (Channel Navigation)
View file
MPlayer-1.2.r38117.tar.xz/stream/stream_bd.c -> MPlayer-1.2.r38170.tar.xz/stream/stream_bd.c
Changed
@@ -142,7 +142,7 @@ int i; idlen = FFMIN(idlen, 20); for (i = 0; i < idlen; i++) - snprintf(dst + 2*i, 3, "%02"PRIX8, id[i]); + snprintf(dst + 2*i, 3, "%02"PRIx8, id[i]); } static int find_vuk(struct bd_priv *bd, const uint8_t discid[20]) @@ -153,17 +153,35 @@ int vukfound = 0; stream_t *file; char idstr[ID_STR_LEN]; + id2str(discid, 20, idstr); // look up discid in KEYDB.cfg to get VUK home = getenv("HOME"); - snprintf(filename, sizeof(filename), "%s/.dvdcss/KEYDB.cfg", home); + snprintf(filename, sizeof(filename), "%s/.cache/aacs/vuk/%s", home, idstr); + file = open_stream(filename, NULL, NULL); + if (file) { + vukfound = 1; + memset(line, 0, sizeof(line)); + vukfound &= stream_read(file, line, 32) == 32; + vukfound &= sscanf(line, "%16"SCNx64, &bd->vuk.u64[0]) == 1; + vukfound &= sscanf(line + 16, "%16"SCNx64, &bd->vuk.u64[1]) == 1; + bd->vuk.u64[0] = av_be2ne64(bd->vuk.u64[0]); + bd->vuk.u64[1] = av_be2ne64(bd->vuk.u64[1]); + free_stream(file); + if (vukfound) + return 1; + } + snprintf(filename, sizeof(filename), "%s/.config/aacs/KEYDB.cfg", home); file = open_stream(filename, NULL, NULL); if (!file) { + snprintf(filename, sizeof(filename), "%s/.dvdcss/KEYDB.cfg", home); + file = open_stream(filename, NULL, NULL); + } + if (!file) { mp_msg(MSGT_OPEN,MSGL_ERR, "Cannot open VUK database file %s\n", filename); return 0; } - id2str(discid, 20, idstr); while (stream_read_line(file, line, sizeof(line), 0)) { char *vst; @@ -356,6 +374,7 @@ case 4: case 0x0f: case 0x11: + case 0x80: case 0x81: case 0x8A: case 0x82:
View file
MPlayer-1.2.r38117.tar.xz/stream/stream_ffmpeg.c -> MPlayer-1.2.r38170.tar.xz/stream/stream_ffmpeg.c
Changed
@@ -158,7 +158,7 @@ "", "", open_f, - { "ffmpeg", "rtmp", "rtsp", "https", NULL }, + { "ffmpeg", "rtmp", "rtsp", "http", "https", "gopher", NULL }, NULL, 1 // Urls are an option string };
View file
MPlayer-1.2.r38117.tar.xz/stream/stream_pvr.c -> MPlayer-1.2.r38170.tar.xz/stream/stream_pvr.c
Changed
@@ -1,8 +1,6 @@ /* * stream layer for hardware MPEG 1/2/4 encoders a.k.a PVR * (such as WinTV PVR-150/250/350/500 (a.k.a IVTV), pvrusb2 and cx88) - * See http://ivtvdriver.org/index.php/Main_Page for more details on the - * cards supported by the ivtv driver. * * Copyright (C) 2006 Benjamin Zores * Copyright (C) 2007 Sven Gothel (channel navigation)
View file
MPlayer-1.2.r38117.tar.xz/sub/osd.c -> MPlayer-1.2.r38170.tar.xz/sub/osd.c
Changed
@@ -31,7 +31,12 @@ #include "libmpcodecs/img_format.h" #include "cpudetect.h" -#if ARCH_X86 +#if !HAVE_EMMINTRIN_H +#undef HAVE_SSE2 +#define HAVE_SSE2 0 +#endif + +#if ARCH_X86 && (!HAVE_SSE2 || CONFIG_RUNTIME_CPUDETECT) static const uint64_t bFF __attribute__((aligned(8))) = 0xFFFFFFFFFFFFFFFFULL; static const unsigned long long mask24lh __attribute__((aligned(8))) = 0xFFFF000000000000ULL; static const unsigned long long mask24hl __attribute__((aligned(8))) = 0x0000FFFFFFFFFFFFULL; @@ -39,32 +44,38 @@ //Note: we have C, X86-nommx, MMX, MMX2, 3DNOW version therse no 3DNOW+MMX2 one //Plain C versions -#if !HAVE_MMX || CONFIG_RUNTIME_CPUDETECT +#if (!HAVE_MMX && !HAVE_SSE2) || CONFIG_RUNTIME_CPUDETECT #define COMPILE_C #endif #if ARCH_X86 -#if (HAVE_MMX && !HAVE_AMD3DNOW && !HAVE_MMX2) || CONFIG_RUNTIME_CPUDETECT +#if (HAVE_MMX && !HAVE_AMD3DNOW && !HAVE_MMX2 && !HAVE_SSE2) || CONFIG_RUNTIME_CPUDETECT #define COMPILE_MMX #endif -#if HAVE_MMX2 || CONFIG_RUNTIME_CPUDETECT +#if (HAVE_MMX2 && !HAVE_SSE2) || CONFIG_RUNTIME_CPUDETECT #define COMPILE_MMX2 #endif -#if (HAVE_AMD3DNOW && !HAVE_MMX2) || CONFIG_RUNTIME_CPUDETECT +#if (HAVE_AMD3DNOW && !HAVE_MMX2 && !HAVE_SSE2) || CONFIG_RUNTIME_CPUDETECT #define COMPILE_3DNOW #endif +#if HAVE_SSE2 || CONFIG_RUNTIME_CPUDETECT +#define COMPILE_SSE2 +#endif + #endif /* ARCH_X86 */ #undef HAVE_MMX #undef HAVE_MMX2 #undef HAVE_AMD3DNOW +#undef HAVE_SSE2 #define HAVE_MMX 0 #define HAVE_MMX2 0 #define HAVE_AMD3DNOW 0 +#define HAVE_SSE2 0 #if ! ARCH_X86 @@ -72,9 +83,11 @@ #undef HAVE_MMX #undef HAVE_MMX2 #undef HAVE_AMD3DNOW +#undef HAVE_SSE2 #define HAVE_MMX 0 #define HAVE_MMX2 0 #define HAVE_AMD3DNOW 0 +#define HAVE_SSE2 0 #define RENAME(a) a ## _C #include "osd_template.c" #endif @@ -87,9 +100,11 @@ #undef HAVE_MMX #undef HAVE_MMX2 #undef HAVE_AMD3DNOW +#undef HAVE_SSE2 #define HAVE_MMX 0 #define HAVE_MMX2 0 #define HAVE_AMD3DNOW 0 +#define HAVE_SSE2 0 #define RENAME(a) a ## _X86 #include "osd_template.c" #endif @@ -100,9 +115,11 @@ #undef HAVE_MMX #undef HAVE_MMX2 #undef HAVE_AMD3DNOW +#undef HAVE_SSE2 #define HAVE_MMX 1 #define HAVE_MMX2 0 #define HAVE_AMD3DNOW 0 +#define HAVE_SSE2 0 #define RENAME(a) a ## _MMX #include "osd_template.c" #endif @@ -113,9 +130,11 @@ #undef HAVE_MMX #undef HAVE_MMX2 #undef HAVE_AMD3DNOW +#undef HAVE_SSE2 #define HAVE_MMX 1 #define HAVE_MMX2 1 #define HAVE_AMD3DNOW 0 +#define HAVE_SSE2 0 #define RENAME(a) a ## _MMX2 #include "osd_template.c" #endif @@ -126,20 +145,39 @@ #undef HAVE_MMX #undef HAVE_MMX2 #undef HAVE_AMD3DNOW +#undef HAVE_SSE2 #define HAVE_MMX 1 #define HAVE_MMX2 0 #define HAVE_AMD3DNOW 1 +#define HAVE_SSE2 0 #define RENAME(a) a ## _3DNow #include "osd_template.c" #endif +//SSE2 versions +#ifdef COMPILE_SSE2 +#undef RENAME +#undef HAVE_MMX +#undef HAVE_MMX2 +#undef HAVE_AMD3DNOW +#undef HAVE_SSE2 +#define HAVE_MMX 0 +#define HAVE_MMX2 0 +#define HAVE_AMD3DNOW 0 +#define HAVE_SSE2 1 +#define RENAME(a) a ## _SSE2 +#include <emmintrin.h> +#include "osd_template.c" +#endif #endif /* ARCH_X86 */ void vo_draw_alpha_yv12(int w,int h, unsigned char* src, unsigned char *srca, int srcstride, unsigned char* dstbase,int dststride){ #if CONFIG_RUNTIME_CPUDETECT #if ARCH_X86 // ordered by speed / fastest first - if(gCpuCaps.hasMMX2) + if(HAVE_EMMINTRIN_H && gCpuCaps.hasSSE2) + vo_draw_alpha_yv12_SSE2(w, h, src, srca, srcstride, dstbase, dststride); + else if(gCpuCaps.hasMMX2) vo_draw_alpha_yv12_MMX2(w, h, src, srca, srcstride, dstbase, dststride); else if(gCpuCaps.has3DNow) vo_draw_alpha_yv12_3DNow(w, h, src, srca, srcstride, dstbase, dststride); @@ -151,7 +189,9 @@ vo_draw_alpha_yv12_C(w, h, src, srca, srcstride, dstbase, dststride); #endif #else //CONFIG_RUNTIME_CPUDETECT -#if HAVE_MMX2 +#if HAVE_SSE2 + vo_draw_alpha_yv12_SSE2(w, h, src, srca, srcstride, dstbase, dststride); +#elif HAVE_MMX2 vo_draw_alpha_yv12_MMX2(w, h, src, srca, srcstride, dstbase, dststride); #elif HAVE_AMD3DNOW vo_draw_alpha_yv12_3DNow(w, h, src, srca, srcstride, dstbase, dststride); @@ -169,7 +209,9 @@ #if CONFIG_RUNTIME_CPUDETECT #if ARCH_X86 // ordered by speed / fastest first - if(gCpuCaps.hasMMX2) + if(HAVE_EMMINTRIN_H && gCpuCaps.hasSSE2) + vo_draw_alpha_yuy2_SSE2(w, h, src, srca, srcstride, dstbase, dststride); + else if(gCpuCaps.hasMMX2) vo_draw_alpha_yuy2_MMX2(w, h, src, srca, srcstride, dstbase, dststride); else if(gCpuCaps.has3DNow) vo_draw_alpha_yuy2_3DNow(w, h, src, srca, srcstride, dstbase, dststride); @@ -181,7 +223,9 @@ vo_draw_alpha_yuy2_C(w, h, src, srca, srcstride, dstbase, dststride); #endif #else //CONFIG_RUNTIME_CPUDETECT -#if HAVE_MMX2 +#if HAVE_SSE2 + vo_draw_alpha_yuy2_SSE2(w, h, src, srca, srcstride, dstbase, dststride); +#elif HAVE_MMX2 vo_draw_alpha_yuy2_MMX2(w, h, src, srca, srcstride, dstbase, dststride); #elif HAVE_AMD3DNOW vo_draw_alpha_yuy2_3DNow(w, h, src, srca, srcstride, dstbase, dststride); @@ -199,7 +243,9 @@ #if CONFIG_RUNTIME_CPUDETECT #if ARCH_X86 // ordered by speed / fastest first - if(gCpuCaps.hasMMX2) + if(HAVE_EMMINTRIN_H && gCpuCaps.hasSSE2) + vo_draw_alpha_uyvy_SSE2(w, h, src, srca, srcstride, dstbase, dststride); + else if(gCpuCaps.hasMMX2) vo_draw_alpha_uyvy_MMX2(w, h, src, srca, srcstride, dstbase, dststride); else if(gCpuCaps.has3DNow) vo_draw_alpha_uyvy_3DNow(w, h, src, srca, srcstride, dstbase, dststride); @@ -211,7 +257,9 @@ vo_draw_alpha_uyvy_C(w, h, src, srca, srcstride, dstbase, dststride); #endif #else //CONFIG_RUNTIME_CPUDETECT -#if HAVE_MMX2 +#if HAVE_SSE2 + vo_draw_alpha_uyvy_SSE2(w, h, src, srca, srcstride, dstbase, dststride); +#elif HAVE_MMX2 vo_draw_alpha_uyvy_MMX2(w, h, src, srca, srcstride, dstbase, dststride); #elif HAVE_AMD3DNOW
View file
MPlayer-1.2.r38117.tar.xz/sub/osd_template.c -> MPlayer-1.2.r38170.tar.xz/sub/osd_template.c
Changed
@@ -44,9 +44,60 @@ #define EMMS "emms" #endif +#if HAVE_SSE2 +ATTR_TARGET_SSE2 +static inline __m128i muladd_src_unpacked(__m128i dstlo, __m128i dsthi, __m128i src, __m128i srcalo, __m128i srcahi) +{ + // (mmhigh,mmlow) = (dst * (srca * 256)) / 65536 (= (dst * srca) >> 8) + __m128i mmlow = _mm_mulhi_epu16(dstlo, srcalo); + __m128i mmhigh = _mm_mulhi_epu16(dsthi, srcahi); + + __m128i res = _mm_packus_epi16(mmlow, mmhigh); + + return _mm_add_epi8(res, src); +} + +ATTR_TARGET_SSE2 +static inline __m128i muladd_src(__m128i dst, __m128i src, __m128i srca) +{ + __m128i zero = _mm_setzero_si128(); + __m128i dstlo = _mm_unpacklo_epi8(dst, zero); + __m128i dsthi = _mm_unpackhi_epi8(dst, zero); + __m128i srcalo = _mm_unpacklo_epi8(zero, srca); + __m128i srcahi = _mm_unpackhi_epi8(zero, srca); + return muladd_src_unpacked(dstlo, dsthi, src, srcalo, srcahi); +} + +ATTR_TARGET_SSE2 +static inline __m128i alphamask(__m128i orig, __m128i blended, __m128i srca) +{ + __m128i zero = _mm_setzero_si128(); + // if (!srca) res |= dst --- assumes srca == 0 implies src == 0, + // thus no need to mask res + __m128i mask = _mm_cmpeq_epi8(srca, zero); + orig = _mm_and_si128(orig, mask); + return _mm_or_si128(blended, orig); +} + +// Special version that compares alpha in 16 bit chunks instead of bytewise +ATTR_TARGET_SSE2 +static inline __m128i alphamask16(__m128i orig, __m128i blended, __m128i srca) +{ + __m128i zero = _mm_setzero_si128(); + // if (!srca) res |= dst --- assumes srca == 0 implies src == 0, + // thus no need to mask res + __m128i mask = _mm_cmpeq_epi16(srca, zero); + orig = _mm_and_si128(orig, mask); + return _mm_or_si128(blended, orig); +} +#endif + +#if HAVE_SSE2 +ATTR_TARGET_SSE2 +#endif static inline void RENAME(vo_draw_alpha_yv12)(int w,int h, unsigned char* src, unsigned char *srca, int srcstride, unsigned char* dstbase,int dststride){ int y; -#if defined(FAST_OSD) && !HAVE_MMX +#if defined(FAST_OSD) && !HAVE_MMX && !HAVE_SSE2 w=w>>1; #endif #if HAVE_MMX @@ -94,7 +145,28 @@ :: "m" (dstbase[x]), "m" (srca[x]), "m" (src[x]) : "%eax"); } -#else +#elif HAVE_SSE2 + __m128i zero = _mm_setzero_si128(); + for(x=0;x+15<w;x+=16){ + __m128i mmsrc, mmdst, res; + __m128i mmsrca = _mm_load_si128((const __m128i *)(srca + x)); + + int alpha = _mm_movemask_epi8(_mm_cmpeq_epi8(mmsrca, zero)); + if (alpha == 0xffff) continue; + + mmdst = _mm_loadu_si128((const __m128i *)(dstbase + x)); + mmsrc = _mm_load_si128((const __m128i *)(src + x)); + + res = muladd_src(mmdst, mmsrc, mmsrca); + + // _mm_maskmoveu_s128 would be an alternative but slower + res = alphamask(mmdst, res, mmsrca); + _mm_storeu_si128((__m128i *)(dstbase + x), res); + } + for(;x<w;x++){ + if(srca[x]) dstbase[x]=((dstbase[x]*srca[x])>>8)+src[x]; + } +#else /* HAVE_SSE2 */ for(x=0;x<w;x++){ #ifdef FAST_OSD if(srca[2*x+0]) dstbase[2*x+0]=src[2*x+0]; @@ -114,6 +186,9 @@ return; } +#if HAVE_SSE2 +ATTR_TARGET_SSE2 +#endif static inline void RENAME(vo_draw_alpha_yuy2)(int w,int h, unsigned char* src, unsigned char *srca, int srcstride, unsigned char* dstbase,int dststride){ int y; #if defined(FAST_OSD) && !HAVE_MMX @@ -155,7 +230,7 @@ "psrlw $8, %%mm0\n\t" "pand %%mm5, %%mm1\n\t" //U0V0U0V0 "movd %2, %%mm2\n\t" //src 0000DCBA - "punpcklbw %%mm7, %%mm2\n\t" //srca 0D0C0B0A + "punpcklbw %%mm7, %%mm2\n\t" //src 0D0C0B0A "por %%mm1, %%mm0\n\t" "paddb %%mm2, %%mm0\n\t" "movq %%mm0, %0\n\t" @@ -163,7 +238,56 @@ :: "m" (dstbase[x*2]), "m" (srca[x]), "m" (src[x]) : "%eax"); } -#else +#elif HAVE_SSE2 + __m128i zero = _mm_setzero_si128(); + __m128i ymask = _mm_set1_epi16(0xff); + __m128i uvofs = _mm_set1_epi16(0x8000); + for(x=0;x+15<w;x+=16){ + __m128i mmsrc, mmsrcalo, mmsrcahi, mmdst, mmdst2, mmlow, mmhigh, mmy, mmuv, res; + __m128i mmsrca = _mm_load_si128((const __m128i *)(srca + x)); + int alpha = _mm_movemask_epi8(_mm_cmpeq_epi8(mmsrca, zero)); + if (alpha == 0xffff) continue; + + mmdst = _mm_loadu_si128((const __m128i *)(dstbase + 2*x)); + mmdst2 = _mm_loadu_si128((const __m128i *)(dstbase + 2*x + 16)); + + // convert UV to signed + mmdst = _mm_xor_si128(mmdst, uvofs); + mmdst2 = _mm_xor_si128(mmdst2, uvofs); + + mmsrc = _mm_load_si128((const __m128i *)(src + x)); + mmsrcalo = _mm_unpacklo_epi8(zero, mmsrca); + mmsrcahi = _mm_unpackhi_epi8(zero, mmsrca); + + mmy = muladd_src_unpacked(_mm_and_si128(mmdst, ymask), _mm_and_si128(mmdst2, ymask), mmsrc, mmsrcalo, mmsrcahi); + + // mmuv = ((dst(uv) ^ 128) * (srca * 256)) / 65536 ^ 128 (= (((dst - 128) * srca) >> 8)) + 128 + mmlow = _mm_srai_epi16(mmdst, 8); + mmlow = _mm_mulhi_epi16(mmlow, mmsrcalo); + mmhigh = _mm_srai_epi16(mmdst2, 8); + mmhigh = _mm_mulhi_epi16(mmhigh, mmsrcahi); + + mmuv = _mm_packs_epi16(mmlow, mmhigh); + + res = _mm_unpacklo_epi8(mmy, mmuv); + res = alphamask16(mmdst, res, mmsrcalo); + // convert UV to unsigned + res = _mm_xor_si128(res, uvofs); + _mm_storeu_si128((__m128i *)(dstbase + 2 * x), res); + + res = _mm_unpackhi_epi8(mmy, mmuv); + res = alphamask16(mmdst2, res, mmsrcahi); + // convert UV to unsigned + res = _mm_xor_si128(res, uvofs); + _mm_storeu_si128((__m128i *)(dstbase + 2 * x + 16), res); + } + for(;x<w;x++){ + if(srca[x]) { + dstbase[2*x]=((dstbase[2*x]*srca[x])>>8)+src[x]; + dstbase[2*x+1]=((((signed)dstbase[2*x+1]-128)*srca[x])>>8)+128; + } + } +#else /* HAVE_SSE2 */ for(x=0;x<w;x++){ #ifdef FAST_OSD if(srca[2*x+0]) dstbase[4*x+0]=src[2*x+0]; @@ -186,6 +310,9 @@ return; } +#if HAVE_SSE2 +ATTR_TARGET_SSE2 +#endif static inline void RENAME(vo_draw_alpha_uyvy)(int w,int h, unsigned char* src, unsigned char *srca, int srcstride, unsigned char* dstbase,int dststride){ int y; #if defined(FAST_OSD) @@ -193,6 +320,58 @@ #endif for(y=0;y<h;y++){ register int x; +#if HAVE_SSE2 + __m128i zero = _mm_setzero_si128(); + __m128i uvofs = _mm_set1_epi16(0x80); + for(x=0;x+15<w;x+=16){ + __m128i mmsrc, mmsrcalo, mmsrcahi, mmdst, mmdst2, mmlow, mmhigh, mmy, mmuv, res; + __m128i mmsrca = _mm_load_si128((const __m128i *)(srca + x)); + int alpha = _mm_movemask_epi8(_mm_cmpeq_epi8(mmsrca, zero)); + if (alpha == 0xffff) continue; + + mmdst = _mm_loadu_si128((const __m128i *)(dstbase + 2*x)); + mmdst2 = _mm_loadu_si128((const __m128i *)(dstbase + 2*x + 16)); + + // convert UV to signed + mmdst = _mm_xor_si128(mmdst, uvofs); + mmdst2 = _mm_xor_si128(mmdst2, uvofs); + + mmsrc = _mm_load_si128((const __m128i *)(src + x));
View file
MPlayer-1.2.r38117.tar.xz/sub/spudec.c -> MPlayer-1.2.r38170.tar.xz/sub/spudec.c
Changed
@@ -148,7 +148,7 @@ static void spudec_free_packet(packet_t *packet) { - free(packet->packet); + av_freep(&packet->packet); free(packet); } @@ -228,19 +228,19 @@ this->height = height; if (this->image_size < this->stride * this->height) { if (this->image != NULL) { - free(this->image); + av_freep(&this->image); this->image = NULL; - free(this->pal_image); + av_freep(&this->pal_image); this->pal_image = NULL; this->image_size = 0; this->pal_width = this->pal_height = 0; } - this->image = malloc(2 * this->stride * this->height); + this->image = av_malloc(2 * this->stride * this->height); if (this->image) { this->image_size = this->stride * this->height; this->aimage = this->image + this->image_size; // use stride here as well to simplify reallocation checks - this->pal_image = malloc(this->stride * this->height); + this->pal_image = av_malloc(this->stride * this->height); } } return this->image != NULL; @@ -279,7 +279,7 @@ int i; uint8_t *src; uint16_t pal[4]; - unsigned stride = (crop_w + 7) & ~7; + unsigned stride = (crop_w + 15) & ~15; int ret = 1; if (crop_x > this->pal_width || crop_y > this->pal_height || crop_w > this->pal_width - crop_x || crop_h > this->pal_width - crop_y || @@ -530,7 +530,7 @@ start_col = a >> 12; end_col = a & 0xfff; width = (end_col < start_col) ? 0 : end_col - start_col + 1; - stride = (width + 7) & ~7; /* Kludge: draw_alpha needs width multiple of 8 */ + stride = (width + 15) & ~15; /* Kludge: draw_alpha needs width multiple of 16 */ start_row = b >> 12; end_row = b & 0xfff; height = (end_row < start_row) ? 0 : end_row - start_row /* + 1 */; @@ -577,7 +577,7 @@ packet->alpha[i] = this->alpha[i]; packet->palette[i] = this->palette[i]; } - packet->packet = malloc(this->packet_size); + packet->packet = av_malloc(this->packet_size); memcpy(packet->packet, this->packet, this->packet_size); spudec_queue_packet(this, packet); } @@ -698,7 +698,7 @@ spu->start_pts = packet->start_pts; spu->end_pts = packet->end_pts; if (packet->is_decoded) { - free(spu->image); + av_freep(&spu->image); spu->image_size = packet->data_len; spu->image = packet->packet; spu->aimage = packet->packet + packet->stride * packet->height; @@ -928,14 +928,14 @@ spu->scaled_start_row = spu->start_row * scaley / 0x100; spu->scaled_width = spu->width * scalex / 0x100; spu->scaled_height = spu->height * scaley / 0x100; - /* Kludge: draw_alpha needs width multiple of 8 */ - spu->scaled_stride = (spu->scaled_width + 7) & ~7; + /* Kludge: draw_alpha needs width multiple of 16 */ + spu->scaled_stride = (spu->scaled_width + 15) & ~15; if (spu->scaled_image_size < spu->scaled_stride * spu->scaled_height) { if (spu->scaled_image) { - free(spu->scaled_image); + av_freep(&spu->scaled_image); spu->scaled_image_size = 0; } - spu->scaled_image = malloc(2 * spu->scaled_stride * spu->scaled_height); + spu->scaled_image = av_malloc(2 * spu->scaled_stride * spu->scaled_height); if (spu->scaled_image) { spu->scaled_image_size = spu->scaled_stride * spu->scaled_height; spu->scaled_aimage = spu->scaled_image + spu->scaled_image_size; @@ -1347,12 +1347,12 @@ spudec_free_packet(spudec_dequeue_packet(spu)); free(spu->packet); spu->packet = NULL; - free(spu->scaled_image); + av_freep(&spu->scaled_image); spu->scaled_image = NULL; - free(spu->image); + av_freep(&spu->image); spu->image = NULL; spu->aimage = NULL; - free(spu->pal_image); + av_freep(&spu->pal_image); spu->pal_image = NULL; spu->image_size = 0; spu->pal_width = spu->pal_height = 0; @@ -1374,7 +1374,7 @@ packet_t *spudec_packet_create(int x, int y, int w, int h) { packet_t *packet; - int stride = (w + 7) & ~7; + int stride = (w + 15) & ~15; if ((unsigned)w >= 0x8000 || (unsigned)h > 0x4000) return NULL; packet = calloc(1, sizeof(packet_t)); @@ -1386,7 +1386,7 @@ packet->start_row = y; packet->data_len = 2 * stride * h; if (packet->data_len) { // size 0 is a special "clear" packet - packet->packet = malloc(packet->data_len); + packet->packet = av_malloc(packet->data_len); if (!packet->packet) { free(packet); packet = NULL;
View file
MPlayer-1.2.r38117.tar.xz/sub/sub.c -> MPlayer-1.2.r38170.tar.xz/sub/sub.c
Changed
@@ -152,7 +152,7 @@ int len; if (obj->bbox.x2 < obj->bbox.x1) obj->bbox.x2 = obj->bbox.x1; if (obj->bbox.y2 < obj->bbox.y1) obj->bbox.y2 = obj->bbox.y1; - obj->stride = ((obj->bbox.x2-obj->bbox.x1)+7)&(~7); + obj->stride = ((obj->bbox.x2-obj->bbox.x1)+15)&(~15); len = obj->stride*(obj->bbox.y2-obj->bbox.y1); if (obj->allocated<len) { obj->allocated = len;
View file
MPlayer-1.2.r38117.tar.xz/version.sh -> MPlayer-1.2.r38170.tar.xz/version.sh
Changed
@@ -19,7 +19,7 @@ NEW_REVISION="#define VERSION \"${version}${extra}\"" OLD_REVISION=$(head -n 1 version.h 2> /dev/null) -TITLE='#define MP_TITLE "%s "VERSION" (C) 2000-2018 MPlayer Team\n"' +TITLE='#define MP_TITLE "%s "VERSION" (C) 2000-2020 MPlayer Team\n"' # Update version.h only on revision changes to avoid spurious rebuilds if test "$NEW_REVISION" != "$OLD_REVISION"; then
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
.