mirror of https://github.com/mpv-player/mpv
Merge svn changes up to r29684
This commit is contained in:
commit
e1ecc43152
|
@ -3571,7 +3571,7 @@ Force WarpOverlay! mode.
|
|||
.IPs dive
|
||||
Force DIVE mode.
|
||||
.IPs (no)t23
|
||||
Enable/disable workaround for T23 laptop (default: \-not23).
|
||||
Enable/disable workaround for T23 laptop (default: disabled).
|
||||
Try to enable this option if your video card supports upscaling only.
|
||||
.RE
|
||||
.PD 1
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" Synced with r29413
|
||||
.\" Synced with r29661
|
||||
.\" MPlayer (C) 2000-2009 MPlayer Team
|
||||
.\" Ezt a man oldalt Gabucino, Diego Biurrun és Jonas Jermann készíti/készítette
|
||||
.\" Karbantartó: Gabrov
|
||||
|
@ -33,7 +33,7 @@
|
|||
.\" Név
|
||||
.\" --------------------------------------------------------------------------
|
||||
.
|
||||
.TH MPlayer 1 "2009. 07. 13." "MPlayer Project" "A film lejátszó"
|
||||
.TH MPlayer 1 "2009. 09. 11." "MPlayer Project" "A film lejátszó"
|
||||
.
|
||||
.SH NÉV
|
||||
mplayer \- film lejátszó
|
||||
|
@ -525,6 +525,12 @@ a ~/.mplayer/ k
|
|||
A konfigurációs fájlt teheted ugyanabba a könyvtárba is, mint ahol a
|
||||
lejátszandó fájl van, feltéve hogy megadod a \-use\-filedir\-conf kapcsolót (vagy
|
||||
a parancssorban vagy a globális konfigurációs fájlban).
|
||||
Ha egy fájl specifikus konfigurációs fájl található ugyan abban a könyvtárban, nem
|
||||
tölt be egy fájl specifikus konfigurációt sem a ~/.mplayer könyvtárból.
|
||||
Ráadásul a \-use\-filedir\-conf opció engedélyezi a könyvtár specifikus konfigurációs
|
||||
fájlokat. Ezért az MPlayer először megpróbálja betölteni az mplayer.conf-ot az
|
||||
lejátszandó fájlt tartalmazó könyvtárból, majd megpróbál betölteni bármilyen fájl
|
||||
specifikus konfigurációt.
|
||||
.PP
|
||||
.I PÉLDA AZ MPLAYER KONFIGURÁCIÓS FÁJLJÁRA:
|
||||
.sp 1
|
||||
|
@ -3295,6 +3301,8 @@ VBI bekapcsol
|
|||
Ez megadja az MPlayernek hogy egy már létező X11 ablakban játsszon le,
|
||||
hasznos ha böngészőbe akarod integrálni az MPlayert (pl.\& a plugger
|
||||
kiterjesztéssel).
|
||||
Ez az opció a megadott ablakot teljesen kitölti, ezért a méretezést, panscan-t,
|
||||
stb. már nem az MPlayer kezeli, hanem az alkalmazás, amelyik az ablakot létrehozta.
|
||||
.
|
||||
.TP
|
||||
.B \-xineramascreen <\-2\-...>
|
||||
|
@ -3629,7 +3637,7 @@ K
|
|||
.IPs dive
|
||||
Kényszeríti a DIVE módot.
|
||||
.IPs (no)t23
|
||||
Engedélyezi/letiltja a T23 laptopokra vonatkozó kódot (alapértelmezett: \-not23).
|
||||
Engedélyezi/letiltja a T23 laptopokra vonatkozó kódot (alapértelmezett: letiltott).
|
||||
Próbáld meg engedélyezni ezt az opciót, ha a videó kártyád csak a felméretezést támogatja.
|
||||
.RE
|
||||
.PD 1
|
||||
|
@ -7884,10 +7892,6 @@ Adapt
|
|||
Free Lossless Audio Codec (FLAC)
|
||||
.IPs "g726\ "
|
||||
G.726 ADPCM
|
||||
.IPs libamr_nb
|
||||
3GPP Adaptive Multi-Rate (AMR) narrow-band
|
||||
.IPs libamr_wb
|
||||
3GPP Adaptive Multi-Rate (AMR) wide-band
|
||||
.IPs libfaac
|
||||
Advanced Audio Coding (AAC) \- FAAC használatával
|
||||
.IPs libmp3lame
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" sync with en/mplayer.1 r29555
|
||||
.\" sync with en/mplayer.1 r29661
|
||||
.\" Encoding: UTF-8
|
||||
.\" Reminder of hard terms which need better/final solution later:
|
||||
.\" /capture; playtree in parent list; colorkey; retrace; desync; downmix;
|
||||
|
@ -511,11 +511,16 @@ MEncoder 的配置文件是 "mencoder.conf" 位于你的配置目录
|
|||
而如果要停用就把它们设置为 "no" 或者 "0" 或者 "false"。
|
||||
甚至子选项也可以如此设定选项。
|
||||
.PP
|
||||
你也可以为特定文件写配置文件。
|
||||
如果你希望一个特定文件 "movie.avi" 有个配置文件, 就新建文件,
|
||||
名为 "movie.avi.conf", 写上该特定文件的选项并放在目录 ~/.mplayer/ 下。
|
||||
你也可以把配置文件放在与播放该特定文件时该特定文件相同的目录之下,
|
||||
只要你(要么在命令行或者在全局配置文件中)给出 \-use\-filedir\-conf 选项。
|
||||
你也可以编写每个媒体文件专用的配置文件。
|
||||
如果要给名叫‘movie.avi’的一个文件设置一个配置文件,则创建一个名为‘movie.avi.conf’的文件,
|
||||
其中存放了该媒体文件专用的选项,并将其放到 ~/.mplayer/。
|
||||
只要给出了 \-use\-filedir\-conf 选项(或是通行命令行,或是在全局配置文件中),你也可以把配置文
|
||||
件放到与所播放的媒体文件相同的目录下。
|
||||
如果在媒体文件所在目录下找到其专用的配置文件,则不会从 ~/.maplyer 目录下加载任何媒体文件专用的
|
||||
配置。
|
||||
另外,\-use\-filedir\-conf 选项启用了目录专用的配置文件。
|
||||
对于该选项,MPlayer 首先尝试所播放文件的目录下加载 mplayer.conf,然后尝试加载任何存在的媒体文件
|
||||
专用的配置。
|
||||
.PP
|
||||
.I MPLAYER 配置文件示例:
|
||||
.sp 1
|
||||
|
@ -3380,7 +3385,7 @@ VIDIX 的 Windows 前台
|
|||
.IPs dive
|
||||
强制使用 DIVE 模式。
|
||||
.IPs (no)t23
|
||||
启用/禁用解决 T23 笔记本问题的变通模式(默认值:\-not23)。
|
||||
启用/禁用解决 T23 笔记本问题的变通模式(默认值:禁用)。
|
||||
如果你的显卡仅支持画面放大输出,尝试开启这个选项。
|
||||
.RE
|
||||
.PD 1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- synced with r28984 -->
|
||||
<!-- synced with r29461 -->
|
||||
<chapter id="encoding-guide">
|
||||
<title>Kódolás a <application>MEncoder</application>rel</title>
|
||||
|
||||
|
@ -2593,14 +2593,6 @@ mencoder dvd://2 -o <replaceable>title2.avi</replaceable> -ovc lavc -lavcopts vc
|
|||
<entry>g726</entry>
|
||||
<entry>G.726 ADPCM</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>libamr_nb</entry>
|
||||
<entry>3GPP Adaptive Multi-Rate (AMR) narrow-band</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>libamr_wb</entry>
|
||||
<entry>3GPP Adaptive Multi-Rate (AMR) wide-band</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>libfaac</entry>
|
||||
<entry>Advanced Audio Coding (AAC) - FAAC használatával</entry>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- synced with r28510 -->
|
||||
<!-- synced with r29461 -->
|
||||
<chapter id="install">
|
||||
<title>Telepítés</title>
|
||||
|
||||
|
@ -470,14 +470,10 @@ make install
|
|||
<title>AMR</title>
|
||||
|
||||
<para>
|
||||
Az Adaptive Multi-Rate beszéd codec-et harmadik generációs (3G) mobiltelefonokban
|
||||
használják.
|
||||
A referencia implementáció elérhető
|
||||
<ulink url="http://www.3gpp.org">A 3. Generációs Együttműködés Projekt</ulink>
|
||||
oldalán (személyes felhasználásra ingyenes).
|
||||
A támogatás bekapcsolásához töltsd le és telepítsd a függvénykönyvtárakat az
|
||||
<ulink url="http://www.penguin.cz/~utx/amr">AMR-NB és AMR-WB</ulink>-hez
|
||||
az oldal utasításait követve. Utána forgasd újra az MPlayert!
|
||||
Az MPlayer használni tudja az OpenCORE AMR függvénykönyvtárakat a FFmpeg-en keresztül.
|
||||
Töltsd le a könyvtárakat az AMR-NB-hez és az AMR-WB-hez az
|
||||
<ulink url="http://sourceforge.net/projects/opencore-amr/">opencore-amr</ulink>
|
||||
projectből és telepítsd őket az oldalon lévő utasítások szerint.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#
|
||||
# Licence: GPL
|
||||
#
|
||||
# 2002/09/21 Jürgen Hammelmann <juergen.hammelmann@gmx.de>
|
||||
# 2002/09/21 Jürgen Hammelmann <juergen.hammelmann@gmx.de>
|
||||
#
|
||||
# Script: MPlayer Sources (DVD) to (S)VCD ripping and burning
|
||||
#
|
||||
|
@ -345,8 +345,8 @@ fi
|
|||
[ $mp3 -eq 1 -a $abrset -eq 0 ] && abr=128
|
||||
|
||||
# audio sample rate in kHz
|
||||
((a=$asr / 1000))
|
||||
((b=$asr % 1000))
|
||||
a=$(($a=$asr / 1000))
|
||||
b=$(($b=$asr % 1000))
|
||||
[ $b -le 9 ] && b="00$b00"
|
||||
[ $b -le 99 ] && b="0$b00"
|
||||
kasr="$a.$b"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
# example how to output video on multiple windows in sync.
|
||||
# might be even more useful in combination with vo ggi
|
||||
# to distribute the video arbitrarily
|
||||
|
@ -29,7 +29,7 @@ i=1
|
|||
fifo_list=""
|
||||
while test $i -le $count; do
|
||||
fifo_list="$dir/mp$i $fifo_list"
|
||||
let i=$i+1
|
||||
i=$(($i+1))
|
||||
done
|
||||
|
||||
mkfifo $fifo_list
|
||||
|
|
|
@ -974,6 +974,10 @@ static int mp_property_program(m_option_t *prop, int action, void *arg,
|
|||
&prog) == DEMUXER_CTRL_NOTIMPL)
|
||||
return M_PROPERTY_ERROR;
|
||||
|
||||
if (prog.aid < 0 && prog.vid < 0) {
|
||||
mp_msg(MSGT_CPLAYER, MSGL_ERR, "Selected program contains no audio or video streams!\n");
|
||||
return M_PROPERTY_ERROR;
|
||||
}
|
||||
mp_property_do("switch_audio", M_PROPERTY_SET, &prog.aid, mpctx);
|
||||
mp_property_do("switch_video", M_PROPERTY_SET, &prog.vid, mpctx);
|
||||
return M_PROPERTY_OK;
|
||||
|
|
|
@ -6687,7 +6687,7 @@ echocheck "QuickTime codecs"
|
|||
_qtx_emulation=no
|
||||
def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
|
||||
if test "$_qtx" = auto ; then
|
||||
test "$_win32dll" = yes || quicktime && _qtx=yes
|
||||
test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
|
||||
fi
|
||||
if test "$_qtx" = yes ; then
|
||||
def_qtx='#define CONFIG_QTX_CODECS 1'
|
||||
|
|
|
@ -414,6 +414,14 @@ videocodec mtga
|
|||
driver mtga
|
||||
out BGR32,BGR24
|
||||
|
||||
videocodec ffsgi
|
||||
info "FFmpeg SGI image"
|
||||
status working
|
||||
fourcc SGI1 ; SGI1 is an internal MPlayer FOURCC
|
||||
driver ffmpeg
|
||||
dll sgi
|
||||
out RGB24,Y800,RGB48BE
|
||||
|
||||
videocodec sgi
|
||||
info "SGI image"
|
||||
status working
|
||||
|
@ -2209,6 +2217,15 @@ videocodec webtrain
|
|||
dll "wtvc.dll"
|
||||
out BGR16 flip
|
||||
|
||||
videocodec kegavideo
|
||||
info "Kega Video"
|
||||
comment "requires MSVCR80.DLL on windows"
|
||||
status working
|
||||
fourcc KGV1
|
||||
driver vfw
|
||||
dll "KGV1-VFW.dll"
|
||||
out BGR16 flip
|
||||
|
||||
videocodec xfire
|
||||
info "xfire video"
|
||||
status working
|
||||
|
@ -3991,7 +4008,7 @@ audiocodec vorbis
|
|||
audiocodec tremor
|
||||
info "OggVorbis audio"
|
||||
status working
|
||||
comment "fixed-point decoder useful systems without floating-point unit"
|
||||
comment "fixed-point decoder useful for systems without floating-point unit"
|
||||
fourcc vrbs
|
||||
format 0x566F
|
||||
driver tremor
|
||||
|
@ -4105,6 +4122,14 @@ audiocodec pscelp
|
|||
driver acm
|
||||
dll "smcelp32.acm"
|
||||
|
||||
audiocodec fftwinvq
|
||||
info "FFmpeg TwinVQ"
|
||||
status working
|
||||
fourcc TWI2 ; internal MPlayer FourCC, different from mplayer's TwinVQ decoder
|
||||
; since lavf demuxer is incompatible with it
|
||||
driver ffmpeg
|
||||
dll twinvq
|
||||
|
||||
audiocodec TwinVQ
|
||||
info "VQF codec by NTTLabs"
|
||||
status working
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
//... Okay enough of the hw, now send the other two!
|
||||
//
|
||||
// Updated by: Gabrov <gabrov@freemail.hu>
|
||||
// Sync'ed with help_mp-en.h r29209 (2009. 05. 24.)
|
||||
// Sync'ed with help_mp-en.h r29549 (2009. 09. 11.)
|
||||
|
||||
|
||||
// ========================= MPlayer help ===========================
|
||||
|
@ -1277,10 +1277,7 @@ static const char help_text[]=
|
|||
#define MSGTR_AO_ALSA_UnableToDisableResampling "[AO_ALSA] A resampling letiltása sikertelen: %s\n"
|
||||
#define MSGTR_AO_ALSA_UnableToSetSamplerate2 "[AO_ALSA] Sikerteln a samplerate-2 beállítása: %s\n"
|
||||
#define MSGTR_AO_ALSA_UnableToSetBufferTimeNear "[AO_ALSA] Sikertelen a buffer idő beállítása: %s\n"
|
||||
#define MSGTR_AO_ALSA_UnableToSetPeriodTime "[AO_ALSA] Sikertelen a periódusidő beállítása: %s\n"
|
||||
#define MSGTR_AO_ALSA_BufferTimePeriodTime "[AO_ALSA] buffer_time: %d, period_time :%d\n"
|
||||
#define MSGTR_AO_ALSA_UnableToGetPeriodSize "[AO ALSA] Sikertelen a periódus idő lekérdezése: %s\n"
|
||||
#define MSGTR_AO_ALSA_UnableToSetPeriodSize "[AO ALSA] Sikertelen a periódus méret beállítása (%ld): %s\n"
|
||||
#define MSGTR_AO_ALSA_UnableToGetPeriodSize "[AO ALSA] Sikertelen a periódus méret lekérdezése: %s\n"
|
||||
#define MSGTR_AO_ALSA_UnableToSetPeriods "[AO_ALSA] Sikertelen a periódusok beállítása: %s\n"
|
||||
#define MSGTR_AO_ALSA_UnableToSetHwParameters "[AO_ALSA] Sikerteln a hw-paraméter-ek beállítása: %s\n"
|
||||
#define MSGTR_AO_ALSA_UnableToGetBufferSize "[AO_ALSA] Sikerteln a buffer méret lekérdezése: %s\n"
|
||||
|
|
|
@ -26,6 +26,13 @@
|
|||
#include "m_struct.h"
|
||||
|
||||
static struct vf_priv_s {
|
||||
// These four values are a backup of the values parsed from the command line.
|
||||
// This is necessary so that we do not get a mess upon filter reinit due to
|
||||
// e.g. aspect changes and with only aspect specified on the command line,
|
||||
// where we would otherwise use the values calculated for a different aspect
|
||||
// instead of recalculating them again.
|
||||
int cfg_exp_w, cfg_exp_h;
|
||||
int cfg_exp_x, cfg_exp_y;
|
||||
int exp_w,exp_h;
|
||||
int exp_x,exp_y;
|
||||
int osd_enabled;
|
||||
|
@ -196,6 +203,10 @@ static int config(struct vf_instance* vf,
|
|||
return vf_next_config(vf,width,height,d_width,d_height,flags,outfmt);
|
||||
}
|
||||
if (outfmt == IMGFMT_IF09) return 0;
|
||||
vf->priv->exp_x = vf->priv->cfg_exp_x;
|
||||
vf->priv->exp_y = vf->priv->cfg_exp_y;
|
||||
vf->priv->exp_w = vf->priv->cfg_exp_w;
|
||||
vf->priv->exp_h = vf->priv->cfg_exp_h;
|
||||
// calculate the missing parameters:
|
||||
#if 0
|
||||
if(vf->priv->exp_w<width) vf->priv->exp_w=width;
|
||||
|
@ -441,11 +452,11 @@ static int open(vf_instance_t *vf, char* args){
|
|||
vf->draw_slice=draw_slice;
|
||||
vf->get_image=get_image;
|
||||
vf->put_image=put_image;
|
||||
mp_msg(MSGT_VFILTER, MSGL_INFO, "Expand: %d x %d, %d ; %d, osd: %d, aspect: %lf, round: %d\n",
|
||||
vf->priv->exp_w,
|
||||
vf->priv->exp_h,
|
||||
vf->priv->exp_x,
|
||||
vf->priv->exp_y,
|
||||
mp_msg(MSGT_VFILTER, MSGL_INFO, "Expand: %d x %d, %d ; %d, osd: %d, aspect: %f, round: %d\n",
|
||||
vf->priv->cfg_exp_w,
|
||||
vf->priv->cfg_exp_h,
|
||||
vf->priv->cfg_exp_x,
|
||||
vf->priv->cfg_exp_y,
|
||||
vf->priv->osd_enabled,
|
||||
vf->priv->aspect,
|
||||
vf->priv->round);
|
||||
|
@ -453,11 +464,11 @@ static int open(vf_instance_t *vf, char* args){
|
|||
}
|
||||
|
||||
#define ST_OFF(f) M_ST_OFF(struct vf_priv_s,f)
|
||||
static const m_option_t vf_opts_fields[] = {
|
||||
{"w", ST_OFF(exp_w), CONF_TYPE_INT, 0, 0 ,0, NULL},
|
||||
{"h", ST_OFF(exp_h), CONF_TYPE_INT, 0, 0 ,0, NULL},
|
||||
{"x", ST_OFF(exp_x), CONF_TYPE_INT, M_OPT_MIN, -1, 0, NULL},
|
||||
{"y", ST_OFF(exp_y), CONF_TYPE_INT, M_OPT_MIN, -1, 0, NULL},
|
||||
static m_option_t vf_opts_fields[] = {
|
||||
{"w", ST_OFF(cfg_exp_w), CONF_TYPE_INT, 0, 0 ,0, NULL},
|
||||
{"h", ST_OFF(cfg_exp_h), CONF_TYPE_INT, 0, 0 ,0, NULL},
|
||||
{"x", ST_OFF(cfg_exp_x), CONF_TYPE_INT, M_OPT_MIN, -1, 0, NULL},
|
||||
{"y", ST_OFF(cfg_exp_y), CONF_TYPE_INT, M_OPT_MIN, -1, 0, NULL},
|
||||
{"osd", ST_OFF(osd_enabled), CONF_TYPE_FLAG, 0 , 0, 1, NULL},
|
||||
{"aspect", ST_OFF(aspect), CONF_TYPE_DOUBLE, M_OPT_MIN, 0, 0, NULL},
|
||||
{"round", ST_OFF(round), CONF_TYPE_INT, M_OPT_MIN, 1, 0, NULL},
|
||||
|
|
|
@ -88,6 +88,7 @@ static void pack_nn_MMX(unsigned char *dst, unsigned char *y,
|
|||
pack_nn_C(dst, y, u, v, (w&7));
|
||||
}
|
||||
|
||||
#if HAVE_EBX_AVAILABLE
|
||||
static void pack_li_0_MMX(unsigned char *dst, unsigned char *y,
|
||||
unsigned char *u, unsigned char *v, int w, int us, int vs)
|
||||
{
|
||||
|
@ -307,6 +308,7 @@ static void pack_li_1_MMX(unsigned char *dst, unsigned char *y,
|
|||
);
|
||||
pack_li_1_C(dst, y, u, v, (w&15), us, vs);
|
||||
}
|
||||
#endif /* HAVE_EBX_AVAILABLE */
|
||||
#endif
|
||||
|
||||
static pack_func_t *pack_nn;
|
||||
|
@ -399,8 +401,10 @@ static int open(vf_instance_t *vf, char* args)
|
|||
#if HAVE_MMX
|
||||
if(gCpuCaps.hasMMX) {
|
||||
pack_nn = (pack_func_t *)pack_nn_MMX;
|
||||
#if HAVE_EBX_AVAILABLE
|
||||
pack_li_0 = pack_li_0_MMX;
|
||||
pack_li_1 = pack_li_1_MMX;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ enum {
|
|||
F_SHOW
|
||||
};
|
||||
|
||||
#if HAVE_MMX
|
||||
#if HAVE_MMX && HAVE_EBX_AVAILABLE
|
||||
static void block_diffs_MMX(struct metrics *m, unsigned char *old, unsigned char *new, int os, int ns)
|
||||
{
|
||||
int i;
|
||||
|
@ -516,7 +516,7 @@ static int open(vf_instance_t *vf, char* args)
|
|||
p->first = 1;
|
||||
if (args) sscanf(args, "%d", &p->drop);
|
||||
block_diffs = block_diffs_C;
|
||||
#if HAVE_MMX
|
||||
#if HAVE_MMX && HAVE_EBX_AVAILABLE
|
||||
if(gCpuCaps.hasMMX) block_diffs = block_diffs_MMX;
|
||||
#endif
|
||||
return 1;
|
||||
|
|
|
@ -169,6 +169,7 @@ static void qpel_li_MMX(unsigned char *d, unsigned char *s, int w, int h, int ds
|
|||
__asm__ volatile("emms \n\t" : : : "memory");
|
||||
}
|
||||
|
||||
#if HAVE_EBX_AVAILABLE
|
||||
static void qpel_4tap_MMX(unsigned char *d, unsigned char *s, int w, int h, int ds, int ss, int up)
|
||||
{
|
||||
int i, j, ssd=ss;
|
||||
|
@ -248,6 +249,7 @@ static void qpel_4tap_MMX(unsigned char *d, unsigned char *s, int w, int h, int
|
|||
if (!up) fast_memcpy(d, s, w);
|
||||
__asm__ volatile("emms \n\t" : : : "memory");
|
||||
}
|
||||
#endif /* HAVE_EBX_AVAILABLE */
|
||||
#endif
|
||||
|
||||
static inline int clamp(int a)
|
||||
|
@ -482,8 +484,10 @@ static int open(vf_instance_t *vf, char* args)
|
|||
qpel_4tap = qpel_4tap_C;
|
||||
#if HAVE_MMX
|
||||
if(gCpuCaps.hasMMX) qpel_li = qpel_li_MMX;
|
||||
#if HAVE_EBX_AVAILABLE
|
||||
if(gCpuCaps.hasMMX) qpel_4tap = qpel_4tap_MMX;
|
||||
#endif
|
||||
#endif
|
||||
#if HAVE_MMX2
|
||||
if(gCpuCaps.hasMMX2) qpel_li = qpel_li_MMX2;
|
||||
#endif
|
||||
|
|
|
@ -528,11 +528,10 @@ static int demux_audio_open(demuxer_t* demuxer) {
|
|||
}
|
||||
|
||||
|
||||
static int demux_audio_fill_buffer(demuxer_t *demuxer, demux_stream_t *ds) {
|
||||
static int demux_audio_fill_buffer(demuxer_t *demux, demux_stream_t *ds) {
|
||||
int l;
|
||||
demux_packet_t* dp;
|
||||
sh_audio_t* sh_audio = ds->sh;
|
||||
demuxer_t* demux = ds->demuxer;
|
||||
da_priv_t* priv = demux->priv;
|
||||
double this_pts = priv->next_pts;
|
||||
stream_t* s = demux->stream;
|
||||
|
|
|
@ -172,16 +172,18 @@ static int lavf_check_file(demuxer_t *demuxer){
|
|||
|
||||
static const char * const preferred_list[] = {
|
||||
"dxa",
|
||||
"wv",
|
||||
"nuv",
|
||||
"nut",
|
||||
"gxf",
|
||||
"mxf",
|
||||
"flv",
|
||||
"swf",
|
||||
"gxf",
|
||||
"nut",
|
||||
"nuv",
|
||||
"mov,mp4,m4a,3gp,3g2,mj2",
|
||||
"mpc",
|
||||
"mpc8",
|
||||
"mxf",
|
||||
"swf",
|
||||
"vqf",
|
||||
"w64",
|
||||
"wv",
|
||||
NULL
|
||||
};
|
||||
|
||||
|
@ -240,8 +242,6 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) {
|
|||
// mp4a tag is used for all mp4 files no matter what they actually contain
|
||||
if(codec->codec_tag == MKTAG('m', 'p', '4', 'a'))
|
||||
codec->codec_tag= 0;
|
||||
if(codec->codec_id == CODEC_ID_ADPCM_IMA_AMV)
|
||||
codec->codec_tag= MKTAG('A','M','V','A');
|
||||
if(!codec->codec_tag)
|
||||
codec->codec_tag= mp_av_codec_get_tag(mp_wav_taglists, codec->codec_id);
|
||||
wf->wFormatTag= codec->codec_tag;
|
||||
|
@ -490,6 +490,8 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){
|
|||
demuxer_add_chapter(demuxer, t ? t->value : NULL, start, end);
|
||||
}
|
||||
|
||||
for(i=0; i<avfc->nb_streams; i++)
|
||||
handle_stream(demuxer, avfc, i);
|
||||
if(avfc->nb_programs) {
|
||||
int p, start=0, found=0;
|
||||
|
||||
|
@ -511,15 +513,11 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){
|
|||
AVProgram *program = avfc->programs[p];
|
||||
t = av_metadata_get(program->metadata, "title", NULL, 0);
|
||||
mp_msg(MSGT_HEADER,MSGL_INFO,"LAVF: Program %d %s\n", program->id, t ? t->value : "");
|
||||
for(i=0; i<program->nb_stream_indexes; i++)
|
||||
handle_stream(demuxer, avfc, program->stream_index[i]);
|
||||
if(!priv->cur_program && (demuxer->video->sh || demuxer->audio->sh))
|
||||
priv->cur_program = program->id;
|
||||
p = (p + 1) % avfc->nb_programs;
|
||||
} while(p!=start);
|
||||
} else
|
||||
for(i=0; i<avfc->nb_streams; i++)
|
||||
handle_stream(demuxer, avfc, i);
|
||||
}
|
||||
|
||||
mp_msg(MSGT_HEADER,MSGL_V,"LAVF: %d audio and %d video streams found\n",priv->audio_streams,priv->video_streams);
|
||||
mp_msg(MSGT_HEADER,MSGL_V,"LAVF: build %d\n", LIBAVFORMAT_BUILD);
|
||||
|
@ -714,6 +712,7 @@ static int demux_lavf_control(demuxer_t *demuxer, int cmd, void *arg)
|
|||
demux_program_t *prog = arg;
|
||||
AVProgram *program;
|
||||
int p, i;
|
||||
int start;
|
||||
|
||||
if(priv->avfc->nb_programs < 2)
|
||||
return DEMUXER_CTRL_NOTIMPL;
|
||||
|
@ -735,6 +734,7 @@ static int demux_lavf_control(demuxer_t *demuxer, int cmd, void *arg)
|
|||
p = i;
|
||||
}
|
||||
prog->vid = prog->aid = prog->sid = -2; //no audio and no video by default
|
||||
start = p;
|
||||
redo:
|
||||
program = priv->avfc->programs[p];
|
||||
for(i=0; i<program->nb_stream_indexes; i++)
|
||||
|
@ -758,6 +758,8 @@ redo:
|
|||
if(prog->progid == -1 && prog->vid == -2 && prog->aid == -2)
|
||||
{
|
||||
p = (p + 1) % priv->avfc->nb_programs;
|
||||
if (p == start)
|
||||
return DEMUXER_CTRL_DONTKNOW;
|
||||
goto redo;
|
||||
}
|
||||
priv->cur_program = prog->progid = program->id;
|
||||
|
|
|
@ -1158,6 +1158,10 @@ int demux_info_add(demuxer_t *demuxer, const char *opt, const char *param)
|
|||
|
||||
for (n = 0; info && info[2 * n] != NULL; n++) {
|
||||
if (!strcasecmp(opt, info[2 * n])) {
|
||||
if (!strcmp(param, info[2 * n + 1])) {
|
||||
mp_msg(MSGT_DEMUX, MSGL_V, "Demuxer info %s set to unchanged value %s\n", opt, param);
|
||||
return 0;
|
||||
}
|
||||
mp_tmsg(MSGT_DEMUX, MSGL_INFO, "Demuxer info %s changed to %s\n", opt,
|
||||
param);
|
||||
free(info[2 * n + 1]);
|
||||
|
|
|
@ -65,7 +65,7 @@ static struct {
|
|||
{ "it", DEMUXER_TYPE_XMMS },
|
||||
{ "mid", DEMUXER_TYPE_XMMS },
|
||||
{ "midi", DEMUXER_TYPE_XMMS },
|
||||
{ "vqf", DEMUXER_TYPE_XMMS },
|
||||
{ "vqf", DEMUXER_TYPE_LAVF },
|
||||
{ "nsv", DEMUXER_TYPE_NSV },
|
||||
{ "nsa", DEMUXER_TYPE_NSV },
|
||||
{ "mpc", DEMUXER_TYPE_MPC },
|
||||
|
|
|
@ -50,17 +50,19 @@ static const struct mp_AVCodecTag mp_wav_tags[] = {
|
|||
{ CODEC_ID_SPEEX, MKTAG('s', 'p', 'x', ' ')},
|
||||
{ CODEC_ID_TRUEHD, MKTAG('T', 'R', 'H', 'D')},
|
||||
{ CODEC_ID_TTA, MKTAG('T', 'T', 'A', '1')},
|
||||
{ CODEC_ID_TWINVQ, MKTAG('T', 'W', 'I', '2')},
|
||||
{ CODEC_ID_WAVPACK, MKTAG('W', 'V', 'P', 'K')},
|
||||
{ CODEC_ID_WESTWOOD_SND1, MKTAG('S', 'N', 'D', '1')},
|
||||
{ CODEC_ID_XAN_DPCM, MKTAG('A', 'x', 'a', 'n')},
|
||||
{ 0, 0 },
|
||||
};
|
||||
|
||||
const struct mp_AVCodecTag *mp_wav_taglists[] = {mp_ff_codec_wav_tags, mp_wav_tags, 0};
|
||||
const struct mp_AVCodecTag * const mp_wav_taglists[] = {mp_ff_codec_wav_tags, mp_wav_tags, 0};
|
||||
|
||||
static const struct mp_AVCodecTag mp_codecid_override_tags[] = {
|
||||
{ CODEC_ID_AAC, MKTAG('M', 'P', '4', 'A')},
|
||||
{ CODEC_ID_AC3, 0x2000},
|
||||
{ CODEC_ID_ADPCM_IMA_AMV, MKTAG('A', 'M', 'V', 'A')},
|
||||
{ CODEC_ID_DTS, 0x2001},
|
||||
{ CODEC_ID_EAC3, MKTAG('E', 'A', 'C', '3')},
|
||||
{ CODEC_ID_H264, MKTAG('H', '2', '6', '4')},
|
||||
|
@ -79,7 +81,7 @@ static const struct mp_AVCodecTag mp_codecid_override_tags[] = {
|
|||
{ 0, 0 },
|
||||
};
|
||||
|
||||
const struct mp_AVCodecTag *mp_codecid_override_taglists[] = {mp_codecid_override_tags, 0};
|
||||
const struct mp_AVCodecTag * const mp_codecid_override_taglists[] = {mp_codecid_override_tags, 0};
|
||||
|
||||
static const struct mp_AVCodecTag mp_bmp_tags[] = {
|
||||
{ CODEC_ID_AMV, MKTAG('A', 'M', 'V', 'V')},
|
||||
|
@ -110,4 +112,4 @@ static const struct mp_AVCodecTag mp_bmp_tags[] = {
|
|||
{ 0, 0 },
|
||||
};
|
||||
|
||||
const struct mp_AVCodecTag *mp_bmp_taglists[] = {mp_ff_codec_bmp_tags, mp_bmp_tags, 0};
|
||||
const struct mp_AVCodecTag * const mp_bmp_taglists[] = {mp_ff_codec_bmp_tags, mp_bmp_tags, 0};
|
||||
|
|
|
@ -23,10 +23,10 @@
|
|||
|
||||
#include "ffmpeg_files/taglists.h"
|
||||
|
||||
extern const struct mp_AVCodecTag *mp_wav_taglists[];
|
||||
extern const struct mp_AVCodecTag * const mp_wav_taglists[];
|
||||
|
||||
extern const struct mp_AVCodecTag *mp_codecid_override_taglists[];
|
||||
extern const struct mp_AVCodecTag * const mp_codecid_override_taglists[];
|
||||
|
||||
extern const struct mp_AVCodecTag *mp_bmp_taglists[];
|
||||
extern const struct mp_AVCodecTag * const mp_bmp_taglists[];
|
||||
|
||||
#endif /* MPLAYER_MP_TAGLISTS_H */
|
||||
|
|
|
@ -1,6 +1,23 @@
|
|||
// only to get keycode definitions from HIToolbox/Events.h
|
||||
/*
|
||||
* 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"
|
||||
|
||||
// only to get keycode definitions from HIToolbox/Events.h
|
||||
#include <Carbon/Carbon.h>
|
||||
#include "osx_common.h"
|
||||
#include "video_out.h"
|
||||
|
|
|
@ -337,7 +337,7 @@ static void uninit(void)
|
|||
buffer_name = NULL;
|
||||
}
|
||||
|
||||
static opt_t subopts[] = {
|
||||
static const opt_t subopts[] = {
|
||||
{"device_id", OPT_ARG_INT, &screen_id, NULL},
|
||||
{"shared_buffer", OPT_ARG_BOOL, &shared_buffer, NULL},
|
||||
{"buffer_name", OPT_ARG_MSTRZ,&buffer_name, NULL},
|
||||
|
@ -594,58 +594,40 @@ static int control(uint32_t request, void *data)
|
|||
[menuItem release];
|
||||
}
|
||||
|
||||
- (void)set_winSizeMult:(float)mult
|
||||
{
|
||||
NSRect frame;
|
||||
int d_width, d_height;
|
||||
aspect(&d_width, &d_height, A_NOZOOM);
|
||||
|
||||
if (isFullscreen) {
|
||||
vo_fs = !vo_fs;
|
||||
[self fullscreen:NO];
|
||||
}
|
||||
|
||||
winSizeMult = mult;
|
||||
frame.size.width = d_width * mult;
|
||||
frame.size.height = d_height * mult;
|
||||
[window setContentSize: frame.size];
|
||||
[self reshape];
|
||||
}
|
||||
|
||||
/*
|
||||
Menu Action
|
||||
*/
|
||||
- (void)menuAction:(id)sender
|
||||
{
|
||||
uint32_t d_width;
|
||||
uint32_t d_height;
|
||||
NSRect frame;
|
||||
|
||||
aspect((int *)&d_width, (int *)&d_height,A_NOZOOM);
|
||||
|
||||
if(sender == kQuitCmd)
|
||||
{
|
||||
mplayer_put_key(KEY_ESC);
|
||||
}
|
||||
|
||||
if(sender == kHalfScreenCmd)
|
||||
{
|
||||
if(isFullscreen) {
|
||||
vo_fs = (!(vo_fs)); [self fullscreen:NO];
|
||||
}
|
||||
|
||||
winSizeMult = 0.5;
|
||||
frame.size.width = d_width*winSizeMult;
|
||||
frame.size.height = d_height*winSizeMult;
|
||||
[window setContentSize: frame.size];
|
||||
[self reshape];
|
||||
}
|
||||
[self set_winSizeMult: 0.5];
|
||||
if(sender == kNormalScreenCmd)
|
||||
{
|
||||
if(isFullscreen) {
|
||||
vo_fs = (!(vo_fs)); [self fullscreen:NO];
|
||||
}
|
||||
|
||||
winSizeMult = 1;
|
||||
frame.size.width = d_width;
|
||||
frame.size.height = d_height;
|
||||
[window setContentSize: frame.size];
|
||||
[self reshape];
|
||||
}
|
||||
[self set_winSizeMult: 1];
|
||||
if(sender == kDoubleScreenCmd)
|
||||
{
|
||||
if(isFullscreen) {
|
||||
vo_fs = (!(vo_fs)); [self fullscreen:NO];
|
||||
}
|
||||
|
||||
winSizeMult = 2;
|
||||
frame.size.width = d_width*winSizeMult;
|
||||
frame.size.height = d_height*winSizeMult;
|
||||
[window setContentSize: frame.size];
|
||||
[self reshape];
|
||||
}
|
||||
[self set_winSizeMult: 2];
|
||||
if(sender == kFullScreenCmd)
|
||||
{
|
||||
vo_fs = (!(vo_fs));
|
||||
|
|
|
@ -5273,6 +5273,9 @@ struct exports exp_msvcr80[]={
|
|||
FF(_initterm_e, -1)
|
||||
FF(_initterm, -1)
|
||||
FF(_decode_pointer, -1)
|
||||
/* needed by KGV1-VFW.dll */
|
||||
{"??2@YAPAXI@Z", -1, expnew},
|
||||
{"??3@YAXPAX@Z", -1, expdelete}
|
||||
};
|
||||
|
||||
struct exports exp_msvcp60[]={
|
||||
|
|
|
@ -2914,6 +2914,13 @@ int i;
|
|||
print_version("MPlayer");
|
||||
|
||||
#if defined(__MINGW32__) || defined(__CYGWIN__)
|
||||
{
|
||||
HMODULE kernel32 = GetModuleHandle("Kernel32.dll");
|
||||
BOOL WINAPI (*setDEP)(DWORD) = NULL;
|
||||
if (kernel32)
|
||||
setDEP = GetProcAddress(kernel32, "SetProcessDEPPolicy");
|
||||
if (setDEP) setDEP(3);
|
||||
}
|
||||
// stop Windows from showing all kinds of annoying error dialogs
|
||||
SetErrorMode(0x8003);
|
||||
// request 1ms timer resolution
|
||||
|
|
Loading…
Reference in New Issue