1
0
mirror of https://github.com/mpv-player/mpv synced 2025-04-11 04:01:31 +00:00

Merge svn changes up to r27347

Conflicts:

	libvo/x11_common.c
	libvo/x11_common.h

Rename the vo_gl macro "vo_border()" to "vo_gl_border" as it conflicts
with the global variable "vo_border"; done in the merge commit because
uses of the macro needed changes anyway to resolve conflicts.
This commit is contained in:
Uoti Urpala 2008-07-25 02:14:16 +03:00
commit 3a69d65f8d
13 changed files with 212 additions and 75 deletions

View File

@ -2888,7 +2888,6 @@ Only supported by the fbdev, dga, svga, vesa video output drivers.
Play movie with window border and decorations. Play movie with window border and decorations.
Since this is on by default, use \-noborder to disable the standard window Since this is on by default, use \-noborder to disable the standard window
decorations. decorations.
Supported by the directx video output driver.
. .
.TP .TP
.B \-brightness <\-100\-100> .B \-brightness <\-100\-100>
@ -3237,7 +3236,7 @@ This tells MPlayer to attach to an existing window.
Useful to embed MPlayer in a browser (e.g.\& the plugger extension). Useful to embed MPlayer in a browser (e.g.\& the plugger extension).
. .
.TP .TP
.B \-xineramascreen <\-2\-...> (X11 only) .B \-xineramascreen <\-2\-...>
In Xinerama configurations (i.e.\& a single desktop that spans across multiple In Xinerama configurations (i.e.\& a single desktop that spans across multiple
displays) this option tells MPlayer which screen to display the movie on. displays) this option tells MPlayer which screen to display the movie on.
A value of \-2 means fullscreen across the whole virtual display (in this case A value of \-2 means fullscreen across the whole virtual display (in this case
@ -3246,6 +3245,9 @@ fullscreen on the display the window currently is on.
The initial position set via the \-geometry option is relative to the The initial position set via the \-geometry option is relative to the
specified screen. specified screen.
Will usually only work with "\-fstype \-fullscreen" or "\-fstype none". Will usually only work with "\-fstype \-fullscreen" or "\-fstype none".
This option is not suitable to only set the startup screen (and not also the
fullscreen screen), \-geometry is the best that is available for that purpose
currently.
. .
.TP .TP
.B \-zrbw (\-vo zr only) .B \-zrbw (\-vo zr only)

View File

@ -1,4 +1,4 @@
.\" synced with r27236 .\" synced with r27337
.\" Encoding: iso-8859-1 .\" Encoding: iso-8859-1
.\" MPlayer (C) 2000-2008 MPlayer Team .\" MPlayer (C) 2000-2008 MPlayer Team
.\" The English man page was/is done by Gabucino, Diego Biurrun, Jonas Jermann .\" The English man page was/is done by Gabucino, Diego Biurrun, Jonas Jermann
@ -3044,7 +3044,6 @@ G
Joue la vidéo avec les bordures et décorations de fenêtre (par défaut). Joue la vidéo avec les bordures et décorations de fenêtre (par défaut).
Spécifiez \-noborder pour désactiver les décorations de fenêtre Spécifiez \-noborder pour désactiver les décorations de fenêtre
standard. standard.
Supporté par le pilote de sortie vidéo directx.
. .
.TP .TP
.B \-brightness <\-100\-100> .B \-brightness <\-100\-100>

View File

@ -1,4 +1,4 @@
.\" synced with r27236 .\" synced with r27337
.\" Encoding: iso-8859-1 .\" Encoding: iso-8859-1
.\" MPlayer (C) 2000-2008 MPlayer Team .\" MPlayer (C) 2000-2008 MPlayer Team
.\" Questa pagina di manuale è stata fatta da Gabucino, Diego Biurrun, .\" Questa pagina di manuale è stata fatta da Gabucino, Diego Biurrun,
@ -3011,7 +3011,6 @@ Supportato solo dai driver di uscita video fbdev, dga, svga e vesa.
Riproduce il filmato in una finestra con bordi e decorazioni. Riproduce il filmato in una finestra con bordi e decorazioni.
Dato che questo è il default, usa \-noborder per disabilitare le decorazioni Dato che questo è il default, usa \-noborder per disabilitare le decorazioni
standard della finestra. standard della finestra.
Supportato dal driver di uscita video directx.
. .
.TP .TP
.B \-brightness <\-100\-100> .B \-brightness <\-100\-100>

View File

@ -48,7 +48,7 @@ Requirements
~~~~~~~~~~~~ ~~~~~~~~~~~~
The requirements for any (official) mirror are: The requirements for any (official) mirror are:
1) rsync installed and some way to run the sync script periodicaly (eg cron) 1) rsync installed and some way to run the sync script periodicaly (eg cron)
2) subscribing to the mplayer-mirror mailinglist (see below) 2) subscribing to the mplayer-mirror mailing list (see below)
The requirements for a full website mirror are: The requirements for a full website mirror are:
1) 500MB of free disk space (for the ftp and homepage directories). 1) 500MB of free disk space (for the ftp and homepage directories).
@ -188,21 +188,46 @@ appear to default to defining a standard charset. This breaks our documentation
translations, which are written in different encodings. translations, which are written in different encodings.
The second VirtualHost is necessary for the DNS round-robin address. The second VirtualHost is necessary for the DNS round-robin address.
To check whether this VirtualHost works, you can add a temporary entry into
your /etc/hosts file:
1.2.3.4 www.mplayerhq.hu
Replace the IP address by the real IP address of your mirror. Do not forget to
remove the entry after you finish testing.
Webserver checklist
~~~~~~~~~~~~~~~~~~~
After setting up the web server, please verify that the following things work
both for your mirror address (www#.mplayerhq.hu) and the DNS round-robin
address (www.mplayerhq.hu):
- The virtual host is reachable by its address.
- The subdirectories MPlayer, DOCS and homepage work.
- The man pages and documentation are served with the correct content-type.
Try Russian or Chinese, you will notice breakage immediately.
Setting up an FTP server Setting up an FTP server
~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~
Any FTP server will do. We use vsftpd, it's fast and secure. You should have Any FTP server will do. We use vsftpd, it is fast and secure. The setup is
the same directory layout as we do on our server, so there should be a similar to the web server setup. The FTP server should listen on both its mirror
subdirectory named 'MPlayer' (notice the capitals) that contains the address (ftp#.mplayerhq.hu) and the DNS round-robin address (ftp.mplayerhq.hu).
downloadable files. All our mirrors are public, so you should allow anonymous access.
You should have the same directory layout as we do on our server, so there
should be a subdirectory named 'MPlayer' (notice the capitals) that contains
the downloadable files.
Mailinglist Mailing list
~~~~~~~~~~~ ~~~~~~~~~~~~
All official mirror admins are required to subscribe to the mplayer-mirror All official mirror admins are required to subscribe to the mplayer-mirror
mailinglist. It's used to coordinate the efforts and distribute information mailing list. It's used to coordinate the efforts and distribute information
among all admins. It is also very low traffic. Please use the webinterface among all admins. It is also very low traffic. Please use the webinterface
on http://lists.mplayerhq.hu/mailman/listinfo/mplayer-mirror to subscribe. on http://lists.mplayerhq.hu/mailman/listinfo/mplayer-mirror to subscribe.
Please do not top-post on this mailing list.

88
configure vendored
View File

@ -292,6 +292,9 @@ Codecs:
--disable-xvid-lavc disable Xvid in libavcodec [autodetect] --disable-xvid-lavc disable Xvid in libavcodec [autodetect]
--disable-x264 disable x264 [autodetect] --disable-x264 disable x264 [autodetect]
--disable-x264-lavc disable x264 in libavcodec [autodetect] --disable-x264-lavc disable x264 in libavcodec [autodetect]
--disable-libdirac-lavc disable Dirac in libavcodec [autodetect]
--disable-libschroedinger-lavc disable Dirac in libavcodec (Schroedinger
decoder) [autodetect]
--disable-libnut disable libnut [autodetect] --disable-libnut disable libnut [autodetect]
--disable-libavutil_a disable static libavutil [autodetect] --disable-libavutil_a disable static libavutil [autodetect]
--disable-libavcodec_a disable static libavcodec [autodetect] --disable-libavcodec_a disable static libavcodec [autodetect]
@ -633,6 +636,8 @@ _xvid=auto
_xvid_lavc=auto _xvid_lavc=auto
_x264=auto _x264=auto
_x264_lavc=auto _x264_lavc=auto
_libdirac_lavc=auto
_libschroedinger_lavc=auto
_libnut=auto _libnut=auto
_lirc=auto _lirc=auto
_lircc=auto _lircc=auto
@ -1044,6 +1049,10 @@ for ac_option do
--disable-x264) _x264=no ;; --disable-x264) _x264=no ;;
--enable-x264-lavc) _x264_lavc=yes ;; --enable-x264-lavc) _x264_lavc=yes ;;
--disable-x264-lavc) _x264_lavc=no ;; --disable-x264-lavc) _x264_lavc=no ;;
--enable-libdirac-lavc) _libdirac_lavc=yes ;;
--disable-libdirac-lavc) _libdirac_lavc=no ;;
--enable-libschroedinger-lavc) _libschroedinger_lavc=yes ;;
--disable-libschroedinger-lavc) _libschroedinger_lavc=no ;;
--enable-libnut) _libnut=yes ;; --enable-libnut) _libnut=yes ;;
--disable-libnut) _libnut=no ;; --disable-libnut) _libnut=no ;;
--enable-libavutil_a) _libavutil_a=yes ;; --enable-libavutil_a) _libavutil_a=yes ;;
@ -6659,6 +6668,79 @@ _res_comment="in libavcodec: $_x264_lavc"
echores "$_x264" echores "$_x264"
echocheck "libdirac"
if test "$_libdirac_lavc" = auto; then
_libdirac_lavc=no
if test "$_libavcodec_a" != yes; then
_res_comment="libavcodec (static) is required by libdirac, sorry"
else
cat > $TMPC << EOF
#include <libdirac_encoder/dirac_encoder.h>
#include <libdirac_decoder/dirac_parser.h>
int main(void)
{
dirac_encoder_context_t enc_ctx;
dirac_decoder_t *dec_handle;
dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50);
dec_handle = dirac_decoder_init(0);
if (dec_handle)
dirac_decoder_close(dec_handle);
return 0;
}
EOF
if $_pkg_config --exists dirac ; then
_inc_dirac=`$_pkg_config --silence-errors --cflags dirac`
_ld_dirac=`$_pkg_config --silence-errors --libs dirac`
cc_check $_inc_dirac $_ld_dirac &&
_libdirac_lavc=yes &&
_inc_extra="$_inc_extra $_inc_dirac" &&
_ld_extra="$_ld_extra $_ld_dirac"
fi
fi
fi
if test "$_libdirac_lavc" = yes ; then
_def_libdirac_lavc='#define CONFIG_LIBDIRAC 1'
_libavencoders="$_libavencoders LIBDIRAC_ENCODER"
_libavdecoders="$_libavdecoders LIBDIRAC_DECODER"
_codecmodules="libdirac $_codecmodules"
else
_def_libdirac_lavc='#undef CONFIG_LIBDIRAC'
_nocodecmodules="libdirac $_nocodecmodules"
fi
echores "$_libdirac_lavc"
echocheck "libschroedinger"
if test "$_libschroedinger_lavc" = auto ; then
_libschroedinger_lavc=no
if test "$_libavcodec_a" != yes; then
_res_comment="libavcodec (static) is required by libschroedinger, sorry"
else
cat > $TMPC << EOF
#include <schroedinger/schro.h>
int main(void) { schro_init(); return 0; }
EOF
if $_pkg_config --exists schroedinger-1.0 ; then
_inc_schroedinger=`$_pkg_config --silence-errors --cflags schroedinger-1.0`
_ld_schroedinger=`$_pkg_config --silence-errors --libs schroedinger-1.0`
cc_check $_inc_schroedinger $_ld_schroedinger &&
_libschroedinger_lavc=yes &&
_inc_extra="$_inc_extra $_inc_schroedinger" &&
_ld_extra="$_ld_extra $_ld_schroedinger"
fi
fi
fi
if test "$_libschroedinger_lavc" = yes ; then
_def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1'
_libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER"
_libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER"
_codecmodules="libschroedinger $_codecmodules"
else
_def_libschroedinger_lavc='#undef CONFIG_LIBSCHROEDINGER'
_nocodecmodules="libschroedinger $_nocodecmodules"
fi
echores "$_libschroedinger_lavc"
echocheck "libnut" echocheck "libnut"
if test "$_libnut" = auto ; then if test "$_libnut" = auto ; then
cat > $TMPC << EOF cat > $TMPC << EOF
@ -7383,7 +7465,7 @@ else
_def_charset="#undef MSG_CHARSET" _def_charset="#undef MSG_CHARSET"
fi fi
if test "$_charset" != "UTF-8" ; then if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
echocheck "iconv program" echocheck "iconv program"
iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG" iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
if test "$?" -ne 0 ; then if test "$?" -ne 0 ; then
@ -7827,8 +7909,10 @@ CONFIG_MUXERS=$_mencoder
CONFIG_LIBAMR=$_libamr CONFIG_LIBAMR=$_libamr
CONFIG_LIBAMR_NB=$_libamr_nb CONFIG_LIBAMR_NB=$_libamr_nb
CONFIG_LIBAMR_WB=$_libamr_wb CONFIG_LIBAMR_WB=$_libamr_wb
CONFIG_LIBDIRAC=$_libdirac_lavc
CONFIG_LIBFAAC=$_faac_lavc CONFIG_LIBFAAC=$_faac_lavc
CONFIG_LIBMP3LAME=$_mp3lame_lavc CONFIG_LIBMP3LAME=$_mp3lame_lavc
CONFIG_LIBSCHROEDINGER=$_libschroedinger_lavc
CONFIG_LIBVORBIS=$_libvorbis CONFIG_LIBVORBIS=$_libvorbis
CONFIG_LIBX264=$_x264_lavc CONFIG_LIBX264=$_x264_lavc
CONFIG_LIBXVID=$_xvid_lavc CONFIG_LIBXVID=$_xvid_lavc
@ -8224,8 +8308,10 @@ $_def_libamr_wb
`ff_config_enable "$_libavprotocols_all" "$_libavprotocols"` `ff_config_enable "$_libavprotocols_all" "$_libavprotocols"`
`ff_config_enable "$_libavbsfs_all" "$_libavbsfs"` `ff_config_enable "$_libavbsfs_all" "$_libavbsfs"`
$_def_libdirac_lavc
$_def_faac_lavc $_def_faac_lavc
$_def_mp3lame_lavc $_def_mp3lame_lavc
$_def_libschroedinger_lavc
$_def_x264_lavc $_def_x264_lavc
$_def_xvid_lavc $_def_xvid_lavc

View File

@ -708,6 +708,22 @@ videocodec ffwv1f
dll mpeg4 dll mpeg4
out YV12,I420,IYUV flip out YV12,I420,IYUV flip
videocodec fflibschroedinger
info "Dirac (through FFmpeg libschroedinger)"
status working
fourcc drac
driver ffmpeg
dll libschroedinger
out I420,IYUV,422P,444P
videocodec fflibdirac
info "Dirac (through FFmpeg libdirac)"
status working
fourcc drac
driver ffmpeg
dll libdirac
out I420,IYUV,422P,444P
videocodec xvid videocodec xvid
info "Xvid (MPEG-4)" info "Xvid (MPEG-4)"
status working status working

View File

@ -1021,6 +1021,10 @@ static int vf_open(vf_instance_t *vf, char* args){
mux_v->bih->biCompression = mmioFOURCC('d', 'v', 's', 'd'); mux_v->bih->biCompression = mmioFOURCC('d', 'v', 's', 'd');
else if (!strcasecmp(lavc_param_vcodec, "libx264")) else if (!strcasecmp(lavc_param_vcodec, "libx264"))
mux_v->bih->biCompression = mmioFOURCC('h', '2', '6', '4'); mux_v->bih->biCompression = mmioFOURCC('h', '2', '6', '4');
else if (!strcasecmp(lavc_param_vcodec, "libschroedinger"))
mux_v->bih->biCompression = mmioFOURCC('d', 'r', 'a', 'c');
else if (!strcasecmp(lavc_param_vcodec, "libdirac"))
mux_v->bih->biCompression = mmioFOURCC('d', 'r', 'a', 'c');
else else
mux_v->bih->biCompression = mmioFOURCC(lavc_param_vcodec[0], mux_v->bih->biCompression = mmioFOURCC(lavc_param_vcodec[0],
lavc_param_vcodec[1], lavc_param_vcodec[2], lavc_param_vcodec[3]); /* FIXME!!! */ lavc_param_vcodec[1], lavc_param_vcodec[2], lavc_param_vcodec[3]); /* FIXME!!! */

View File

@ -143,14 +143,14 @@ typedef signed char sbyte;
*/ */
static static
const vector unsigned char const vector unsigned char
perm_rgb_0 = AVV(0x00,0x01,0x10,0x02,0x03,0x11,0x04,0x05, perm_rgb_0 = {0x00,0x01,0x10,0x02,0x03,0x11,0x04,0x05,
0x12,0x06,0x07,0x13,0x08,0x09,0x14,0x0a), 0x12,0x06,0x07,0x13,0x08,0x09,0x14,0x0a},
perm_rgb_1 = AVV(0x0b,0x15,0x0c,0x0d,0x16,0x0e,0x0f,0x17, perm_rgb_1 = {0x0b,0x15,0x0c,0x0d,0x16,0x0e,0x0f,0x17,
0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f), 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f},
perm_rgb_2 = AVV(0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, perm_rgb_2 = {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
0x00,0x01,0x18,0x02,0x03,0x19,0x04,0x05), 0x00,0x01,0x18,0x02,0x03,0x19,0x04,0x05},
perm_rgb_3 = AVV(0x1a,0x06,0x07,0x1b,0x08,0x09,0x1c,0x0a, perm_rgb_3 = {0x1a,0x06,0x07,0x1b,0x08,0x09,0x1c,0x0a,
0x0b,0x1d,0x0c,0x0d,0x1e,0x0e,0x0f,0x1f); 0x0b,0x1d,0x0c,0x0d,0x1e,0x0e,0x0f,0x1f};
#define vec_merge3(x2,x1,x0,y0,y1,y2) \ #define vec_merge3(x2,x1,x0,y0,y1,y2) \
do { \ do { \
@ -222,25 +222,25 @@ do { \
#define vec_unh(x) \ #define vec_unh(x) \
(vector signed short) \ (vector signed short) \
vec_perm(x,(typeof(x))AVV(0),\ vec_perm(x,(typeof(x)){0}, \
(vector unsigned char)AVV(0x10,0x00,0x10,0x01,0x10,0x02,0x10,0x03,\ (vector unsigned char){0x10,0x00,0x10,0x01,0x10,0x02,0x10,0x03,\
0x10,0x04,0x10,0x05,0x10,0x06,0x10,0x07)) 0x10,0x04,0x10,0x05,0x10,0x06,0x10,0x07})
#define vec_unl(x) \ #define vec_unl(x) \
(vector signed short) \ (vector signed short) \
vec_perm(x,(typeof(x))AVV(0),\ vec_perm(x,(typeof(x)){0}, \
(vector unsigned char)AVV(0x10,0x08,0x10,0x09,0x10,0x0A,0x10,0x0B,\ (vector unsigned char){0x10,0x08,0x10,0x09,0x10,0x0A,0x10,0x0B,\
0x10,0x0C,0x10,0x0D,0x10,0x0E,0x10,0x0F)) 0x10,0x0C,0x10,0x0D,0x10,0x0E,0x10,0x0F})
#define vec_clip_s16(x) \ #define vec_clip_s16(x) \
vec_max (vec_min (x, (vector signed short)AVV(235,235,235,235,235,235,235,235)),\ vec_max (vec_min (x, (vector signed short){235,235,235,235,235,235,235,235}), \
(vector signed short)AVV( 16, 16, 16, 16, 16, 16, 16, 16)) (vector signed short){ 16, 16, 16, 16, 16, 16, 16, 16 })
#define vec_packclp(x,y) \ #define vec_packclp(x,y) \
(vector unsigned char)vec_packs \ (vector unsigned char)vec_packs \
((vector unsigned short)vec_max (x,(vector signed short) AVV(0)), \ ((vector unsigned short)vec_max (x,(vector signed short) {0}), \
(vector unsigned short)vec_max (y,(vector signed short) AVV(0))) (vector unsigned short)vec_max (y,(vector signed short) {0}))
//#define out_pixels(a,b,c,ptr) vec_mstrgb32(typeof(a),((typeof (a))AVV(0)),a,a,a,ptr) //#define out_pixels(a,b,c,ptr) vec_mstrgb32(typeof(a),((typeof (a)){0}),a,a,a,ptr)
static inline void cvtyuvtoRGB (SwsContext *c, static inline void cvtyuvtoRGB (SwsContext *c,
@ -251,9 +251,9 @@ static inline void cvtyuvtoRGB (SwsContext *c,
Y = vec_mradds (Y, c->CY, c->OY); Y = vec_mradds (Y, c->CY, c->OY);
U = vec_sub (U,(vector signed short) U = vec_sub (U,(vector signed short)
vec_splat((vector signed short)AVV(128),0)); vec_splat((vector signed short){128},0));
V = vec_sub (V,(vector signed short) V = vec_sub (V,(vector signed short)
vec_splat((vector signed short)AVV(128),0)); vec_splat((vector signed short){128},0));
// ux = (CBU*(u<<c->CSHIFT)+0x4000)>>15; // ux = (CBU*(u<<c->CSHIFT)+0x4000)>>15;
ux = vec_sl (U, c->CSHIFT); ux = vec_sl (U, c->CSHIFT);
@ -359,10 +359,10 @@ static int altivec_##name (SwsContext *c, \
\ \
u = (vector signed char) \ u = (vector signed char) \
vec_sub (u,(vector signed char) \ vec_sub (u,(vector signed char) \
vec_splat((vector signed char)AVV(128),0)); \ vec_splat((vector signed char){128},0)); \
v = (vector signed char) \ v = (vector signed char) \
vec_sub (v,(vector signed char) \ vec_sub (v,(vector signed char) \
vec_splat((vector signed char)AVV(128),0)); \ vec_splat((vector signed char){128},0)); \
\ \
U = vec_unpackh (u); \ U = vec_unpackh (u); \
V = vec_unpackh (v); \ V = vec_unpackh (v); \
@ -380,18 +380,18 @@ static int altivec_##name (SwsContext *c, \
\ \
/* ux = (CBU*(u<<CSHIFT)+0x4000)>>15 */ \ /* ux = (CBU*(u<<CSHIFT)+0x4000)>>15 */ \
ux = vec_sl (U, lCSHIFT); \ ux = vec_sl (U, lCSHIFT); \
ux = vec_mradds (ux, lCBU, (vector signed short)AVV(0)); \ ux = vec_mradds (ux, lCBU, (vector signed short){0}); \
ux0 = vec_mergeh (ux,ux); \ ux0 = vec_mergeh (ux,ux); \
ux1 = vec_mergel (ux,ux); \ ux1 = vec_mergel (ux,ux); \
\ \
/* vx = (CRV*(v<<CSHIFT)+0x4000)>>15; */ \ /* vx = (CRV*(v<<CSHIFT)+0x4000)>>15; */ \
vx = vec_sl (V, lCSHIFT); \ vx = vec_sl (V, lCSHIFT); \
vx = vec_mradds (vx, lCRV, (vector signed short)AVV(0)); \ vx = vec_mradds (vx, lCRV, (vector signed short){0}); \
vx0 = vec_mergeh (vx,vx); \ vx0 = vec_mergeh (vx,vx); \
vx1 = vec_mergel (vx,vx); \ vx1 = vec_mergel (vx,vx); \
\ \
/* uvx = ((CGU*u) + (CGV*v))>>15 */ \ /* uvx = ((CGU*u) + (CGV*v))>>15 */ \
uvx = vec_mradds (U, lCGU, (vector signed short)AVV(0)); \ uvx = vec_mradds (U, lCGU, (vector signed short){0}); \
uvx = vec_mradds (V, lCGV, uvx); \ uvx = vec_mradds (V, lCGV, uvx); \
uvx0 = vec_mergeh (uvx,uvx); \ uvx0 = vec_mergeh (uvx,uvx); \
uvx1 = vec_mergel (uvx,uvx); \ uvx1 = vec_mergel (uvx,uvx); \
@ -441,10 +441,10 @@ static int altivec_##name (SwsContext *c, \
} }
#define out_abgr(a,b,c,ptr) vec_mstrgb32(typeof(a),((typeof (a))AVV(0)),c,b,a,ptr) #define out_abgr(a,b,c,ptr) vec_mstrgb32(typeof(a),((typeof (a)){0}),c,b,a,ptr)
#define out_bgra(a,b,c,ptr) vec_mstrgb32(typeof(a),c,b,a,((typeof (a))AVV(0)),ptr) #define out_bgra(a,b,c,ptr) vec_mstrgb32(typeof(a),c,b,a,((typeof (a)){0}),ptr)
#define out_rgba(a,b,c,ptr) vec_mstrgb32(typeof(a),a,b,c,((typeof (a))AVV(0)),ptr) #define out_rgba(a,b,c,ptr) vec_mstrgb32(typeof(a),a,b,c,((typeof (a)){0}),ptr)
#define out_argb(a,b,c,ptr) vec_mstrgb32(typeof(a),((typeof (a))AVV(0)),a,b,c,ptr) #define out_argb(a,b,c,ptr) vec_mstrgb32(typeof(a),((typeof (a)){0}),a,b,c,ptr)
#define out_rgb24(a,b,c,ptr) vec_mstrgb24(a,b,c,ptr) #define out_rgb24(a,b,c,ptr) vec_mstrgb24(a,b,c,ptr)
#define out_bgr24(a,b,c,ptr) vec_mstbgr24(a,b,c,ptr) #define out_bgr24(a,b,c,ptr) vec_mstbgr24(a,b,c,ptr)
@ -523,11 +523,11 @@ static int altivec_yuv2_bgra32 (SwsContext *c,
v = (vector signed char)vec_perm (vivP[0], vivP[1], align_perm); v = (vector signed char)vec_perm (vivP[0], vivP[1], align_perm);
u = (vector signed char) u = (vector signed char)
vec_sub (u,(vector signed char) vec_sub (u,(vector signed char)
vec_splat((vector signed char)AVV(128),0)); vec_splat((vector signed char){128},0));
v = (vector signed char) v = (vector signed char)
vec_sub (v, (vector signed char) vec_sub (v, (vector signed char)
vec_splat((vector signed char)AVV(128),0)); vec_splat((vector signed char){128},0));
U = vec_unpackh (u); U = vec_unpackh (u);
V = vec_unpackh (v); V = vec_unpackh (v);
@ -545,17 +545,17 @@ static int altivec_yuv2_bgra32 (SwsContext *c,
/* ux = (CBU*(u<<CSHIFT)+0x4000)>>15 */ /* ux = (CBU*(u<<CSHIFT)+0x4000)>>15 */
ux = vec_sl (U, lCSHIFT); ux = vec_sl (U, lCSHIFT);
ux = vec_mradds (ux, lCBU, (vector signed short)AVV(0)); ux = vec_mradds (ux, lCBU, (vector signed short){0});
ux0 = vec_mergeh (ux,ux); ux0 = vec_mergeh (ux,ux);
ux1 = vec_mergel (ux,ux); ux1 = vec_mergel (ux,ux);
/* vx = (CRV*(v<<CSHIFT)+0x4000)>>15; */ /* vx = (CRV*(v<<CSHIFT)+0x4000)>>15; */
vx = vec_sl (V, lCSHIFT); vx = vec_sl (V, lCSHIFT);
vx = vec_mradds (vx, lCRV, (vector signed short)AVV(0)); vx = vec_mradds (vx, lCRV, (vector signed short){0});
vx0 = vec_mergeh (vx,vx); vx0 = vec_mergeh (vx,vx);
vx1 = vec_mergel (vx,vx); vx1 = vec_mergel (vx,vx);
/* uvx = ((CGU*u) + (CGV*v))>>15 */ /* uvx = ((CGU*u) + (CGV*v))>>15 */
uvx = vec_mradds (U, lCGU, (vector signed short)AVV(0)); uvx = vec_mradds (U, lCGU, (vector signed short){0});
uvx = vec_mradds (V, lCGV, uvx); uvx = vec_mradds (V, lCGV, uvx);
uvx0 = vec_mergeh (uvx,uvx); uvx0 = vec_mergeh (uvx,uvx);
uvx1 = vec_mergel (uvx,uvx); uvx1 = vec_mergel (uvx,uvx);
@ -612,18 +612,18 @@ DEFCSP420_CVT (yuv2_bgr24, out_bgr24)
// 0123 4567 89ab cdef // 0123 4567 89ab cdef
static static
const vector unsigned char const vector unsigned char
demux_u = AVV(0x10,0x00,0x10,0x00, demux_u = {0x10,0x00,0x10,0x00,
0x10,0x04,0x10,0x04, 0x10,0x04,0x10,0x04,
0x10,0x08,0x10,0x08, 0x10,0x08,0x10,0x08,
0x10,0x0c,0x10,0x0c), 0x10,0x0c,0x10,0x0c},
demux_v = AVV(0x10,0x02,0x10,0x02, demux_v = {0x10,0x02,0x10,0x02,
0x10,0x06,0x10,0x06, 0x10,0x06,0x10,0x06,
0x10,0x0A,0x10,0x0A, 0x10,0x0A,0x10,0x0A,
0x10,0x0E,0x10,0x0E), 0x10,0x0E,0x10,0x0E},
demux_y = AVV(0x10,0x01,0x10,0x03, demux_y = {0x10,0x01,0x10,0x03,
0x10,0x05,0x10,0x07, 0x10,0x05,0x10,0x07,
0x10,0x09,0x10,0x0B, 0x10,0x09,0x10,0x0B,
0x10,0x0D,0x10,0x0F); 0x10,0x0D,0x10,0x0F};
/* /*
this is so I can play live CCIR raw video this is so I can play live CCIR raw video
@ -650,25 +650,25 @@ static int altivec_uyvy_rgb32 (SwsContext *c,
for (j=0;j<w/16;j++) { for (j=0;j<w/16;j++) {
uyvy = vec_ld (0, img); uyvy = vec_ld (0, img);
U = (vector signed short) U = (vector signed short)
vec_perm (uyvy, (vector unsigned char)AVV(0), demux_u); vec_perm (uyvy, (vector unsigned char){0}, demux_u);
V = (vector signed short) V = (vector signed short)
vec_perm (uyvy, (vector unsigned char)AVV(0), demux_v); vec_perm (uyvy, (vector unsigned char){0}, demux_v);
Y = (vector signed short) Y = (vector signed short)
vec_perm (uyvy, (vector unsigned char)AVV(0), demux_y); vec_perm (uyvy, (vector unsigned char){0}, demux_y);
cvtyuvtoRGB (c, Y,U,V,&R0,&G0,&B0); cvtyuvtoRGB (c, Y,U,V,&R0,&G0,&B0);
uyvy = vec_ld (16, img); uyvy = vec_ld (16, img);
U = (vector signed short) U = (vector signed short)
vec_perm (uyvy, (vector unsigned char)AVV(0), demux_u); vec_perm (uyvy, (vector unsigned char){0}, demux_u);
V = (vector signed short) V = (vector signed short)
vec_perm (uyvy, (vector unsigned char)AVV(0), demux_v); vec_perm (uyvy, (vector unsigned char){0}, demux_v);
Y = (vector signed short) Y = (vector signed short)
vec_perm (uyvy, (vector unsigned char)AVV(0), demux_y); vec_perm (uyvy, (vector unsigned char){0}, demux_y);
cvtyuvtoRGB (c, Y,U,V,&R1,&G1,&B1); cvtyuvtoRGB (c, Y,U,V,&R1,&G1,&B1);

View File

@ -293,6 +293,7 @@ void glDisableYUVConversion(GLenum target, int type);
/** \} */ /** \} */
#ifdef GL_WIN32 #ifdef GL_WIN32
#define vo_gl_border(vo) vo_w32_border()
#define vo_check_events() vo_w32_check_events() #define vo_check_events() vo_w32_check_events()
#define vo_fullscreen() vo_w32_fullscreen() #define vo_fullscreen() vo_w32_fullscreen()
#define vo_gl_ontop() vo_w32_ontop() #define vo_gl_ontop() vo_w32_ontop()
@ -300,6 +301,7 @@ void glDisableYUVConversion(GLenum target, int type);
int setGlWindow(int *vinfo, HGLRC *context, HWND win); int setGlWindow(int *vinfo, HGLRC *context, HWND win);
void releaseGlContext(int *vinfo, HGLRC *context); void releaseGlContext(int *vinfo, HGLRC *context);
#else #else
#define vo_gl_border(vo) vo_x11_border(vo)
#define vo_check_events() vo_x11_check_events(mDisplay) #define vo_check_events() vo_x11_check_events(mDisplay)
#define vo_fullscreen() vo_x11_fullscreen() #define vo_fullscreen() vo_x11_fullscreen()
#define vo_gl_ontop() vo_x11_ontop() #define vo_gl_ontop() vo_x11_ontop()

View File

@ -999,12 +999,10 @@ static int control(uint32_t request, void *data)
vo_fullscreen(); vo_fullscreen();
resize(vo_dwidth, vo_dheight); resize(vo_dwidth, vo_dheight);
return VO_TRUE; return VO_TRUE;
#ifdef GL_WIN32
case VOCTRL_BORDER: case VOCTRL_BORDER:
vo_w32_border(); vo_gl_border(global_vo);
resize(vo_dwidth, vo_dheight); resize(vo_dwidth, vo_dheight);
return VO_TRUE; return VO_TRUE;
#endif
case VOCTRL_GET_PANSCAN: case VOCTRL_GET_PANSCAN:
if (!use_aspect) return VO_NOTIMPL; if (!use_aspect) return VO_NOTIMPL;
return VO_TRUE; return VO_TRUE;

View File

@ -889,11 +889,9 @@ static int control(uint32_t request, void *data)
initGl(vo_dwidth, vo_dheight); initGl(vo_dwidth, vo_dheight);
resize(&vo_dwidth, &vo_dheight); resize(&vo_dwidth, &vo_dheight);
return VO_TRUE; return VO_TRUE;
#ifdef GL_WIN32
case VOCTRL_BORDER: case VOCTRL_BORDER:
vo_w32_border(); vo_gl_border(global_vo);
return VO_TRUE; return VO_TRUE;
#endif
case VOCTRL_GET_PANSCAN: case VOCTRL_GET_PANSCAN:
return VO_TRUE; return VO_TRUE;
case VOCTRL_SET_PANSCAN: case VOCTRL_SET_PANSCAN:

View File

@ -1289,6 +1289,7 @@ void vo_x11_create_vo_window(struct vo *vo, XVisualInfo *vis, int x, int y,
hint.flags = PPosition | PSize; hint.flags = PPosition | PSize;
XSetStandardProperties(mDisplay, x11->window, title, title, None, NULL, 0, &hint); XSetStandardProperties(mDisplay, x11->window, title, title, None, NULL, 0, &hint);
vo_x11_sizehint(vo, x, y, width, height, 0); vo_x11_sizehint(vo, x, y, width, height, 0);
if (!vo_border) vo_x11_decoration(vo, 0);
// map window // map window
XMapWindow(mDisplay, x11->window); XMapWindow(mDisplay, x11->window);
XClearWindow(mDisplay, x11->window); XClearWindow(mDisplay, x11->window);
@ -1546,7 +1547,7 @@ void vo_x11_fullscreen(struct vo *vo)
if ( ! (x11->fs_type & vo_wm_FULLSCREEN) ) // not needed with EWMH fs if ( ! (x11->fs_type & vo_wm_FULLSCREEN) ) // not needed with EWMH fs
{ {
vo_x11_decoration(vo, (vo_fs) ? 0 : 1); vo_x11_decoration(vo, vo_border && !vo_fs);
vo_x11_sizehint(vo, x, y, w, h, 0); vo_x11_sizehint(vo, x, y, w, h, 0);
vo_x11_setlayer(vo, x11->window, vo_fs); vo_x11_setlayer(vo, x11->window, vo_fs);
@ -1572,6 +1573,12 @@ void vo_x11_ontop(struct vo *vo)
vo_x11_setlayer(vo, vo->x11->window, opts->vo_ontop); vo_x11_setlayer(vo, vo->x11->window, opts->vo_ontop);
} }
void vo_x11_border(struct vo *vo)
{
vo_border = !vo_border;
vo_x11_decoration(vo, vo_border && !vo_fs);
}
/* /*
* XScreensaver stuff * XScreensaver stuff
*/ */

View File

@ -108,6 +108,7 @@ void vo_x11_clearwindow_part(struct vo *vo, Window vo_window,
int img_width, int img_height, int use_fs); int img_width, int img_height, int use_fs);
void vo_x11_clearwindow(struct vo *vo, Window vo_window); void vo_x11_clearwindow(struct vo *vo, Window vo_window);
void vo_x11_ontop(struct vo *vo); void vo_x11_ontop(struct vo *vo);
extern void vo_x11_border(struct vo *vo);
void vo_x11_ewmh_fullscreen(struct vo_x11_state *x11, int action); void vo_x11_ewmh_fullscreen(struct vo_x11_state *x11, int action);
#endif #endif