diff options
-rw-r--r-- | DOCS/man/hu/mplayer.1 | 44 | ||||
-rw-r--r-- | DOCS/man/zh_CN/mplayer.1 | 41 | ||||
-rw-r--r-- | DOCS/xml/hu/usage.xml | 6 | ||||
-rw-r--r-- | Makefile | 12 | ||||
-rw-r--r-- | etc/codecs.conf | 8 | ||||
-rw-r--r-- | help/help_mp-hu.h | 2 | ||||
-rw-r--r-- | loader/dshow/DS_Filter.c | 1 | ||||
-rw-r--r-- | loader/ldt_keeper.c | 16 | ||||
-rw-r--r-- | loader/win32.h | 9 | ||||
-rw-r--r-- | spudec.c | 33 | ||||
-rw-r--r-- | stream/network.c | 9 |
11 files changed, 114 insertions, 67 deletions
diff --git a/DOCS/man/hu/mplayer.1 b/DOCS/man/hu/mplayer.1 index 86ddc2d752..e81f276a82 100644 --- a/DOCS/man/hu/mplayer.1 +++ b/DOCS/man/hu/mplayer.1 @@ -1,4 +1,4 @@ -.\" Synced with r30414 +.\" Synced with r30503 .\" MPlayer (C) 2000-2010 MPlayer Team .\" Ezt a man oldalt Gabucino, Diego Biurrun s Jonas Jermann kszti/ksztette .\" Karbantart: Gabrov @@ -33,7 +33,7 @@ .\" Nv .\" -------------------------------------------------------------------------- . -.TH MPlayer 1 "2010. 01. 24." "MPlayer Project" "A film lejtsz" +.TH MPlayer 1 "2010. 02. 06." "MPlayer Project" "A film lejtsz" . .SH NV mplayer \- film lejtsz @@ -443,8 +443,6 @@ Teletext ki/\:bekapcsolsa. Ugrs a kvetkez/\:elz teletext oldalra. .RE .PD 1 -.PP -.RS . .TP .B irnyts egrrel @@ -2875,6 +2873,22 @@ Egy fjl \-v kapcsolval trtn lejtszsval kilistzza az elrhet eszkzket .PD 1 . .TP +.B kai (csak OS/2) +OS/2 KAI audi kimeneti vezrl +.PD 0 +.RSs +.IPs uniaud +UNIAUD md knyszertse +.IPs dart +DART md knyszertse +.IPs (no)share +Audi megosztott vagy kizrlagos mdban trtn megnyitsa. +.IPs bufsize=<mret> +Belltja a buffer mrett <mret> nagysgra mintkban (alaprtelmezett: 2048). +.RE +.PD 1 +. +.TP .B dart (csak OS/2) OS/2 DART audi kimeneti vezrl .PD 0 @@ -3531,7 +3545,9 @@ Hasznld a nochroma\-deint kapcsolt, ha csak a fnyerssget akarod vltoztatni szeretnl a fejlett deinterlacing-en. Hasznos lass vide memrinl. .IPs pullup -Inverz telecine-t prbl alkalmazni, mozgs adaptv idbeli deinterlace kell hozz. +Megprblja kihagyni a deinterlacing-et a progresszv kockknl, hasznos, +ha telecine-s tartalmat nzel, de gyors vide hardver kell hozz a nagy felbontsokhoz. +Csak mozgs adaptv idbeli deinterlace mellett mkdik. .IPs colorspace Kivlasztja a sznteret a YUV-RGB konverzihoz. ltalban a BT.601 hasznlatos a szabvny felbonts (SD) tartalomhoz s @@ -3866,8 +3882,9 @@ Hasznlja a GL_MESA_ycbcr_texture bvtmnyt a YUV-RGB konverziknl. A legtbb esetben ez valsznleg lassabb, mint az RGB-be trtn szoftveres konverzi. .IPs yuv=<n> Kivlasztja a YUV s az RGB konverzi tpust. +Az alaprtelmezett az automatikus dnts a 0 s a 2 kztt. .RSss -0: Szoftveres konverzi hasznlata (alaprtelmezett). +0: Szoftveres konverzi hasznlata. Kompatibilis minden OpenGL verzival. Fnyerssg, kontraszt s teltettsg belltst teszi lehetv. .br @@ -4531,7 +4548,7 @@ Audi szr opciinak halad szint megadsa: .IPs force=<0\-7> Az audi szr beillesztsnek mdjt rja el a kvetkezkppen: .RSss -0: Teljesen automatikus szr beilleszts. +0: Teljesen automatikus szr beilleszts (jelenleg azonos az 1-gyel). .br 1: Pontossgra optimalizlva (alaprtelmezett). .br @@ -5813,7 +5830,7 @@ A vgott kp pozcija, alaprtelmezettknt kzpen. .PD 1 . .TP -.B cropdetect[=hatr:kerekts] +.B cropdetect[=hatr:kerekts[:reset]] Kiszmtja a szksges vgsi paramtereket s kirja a javasolt paramtereket az stdout-ra. .PD 0 @@ -5826,6 +5843,13 @@ Kszb, mely opcionlisan megadhat a semmitl (0) a mindenig (255) (alaprtelme Az offset automatikusan belltdik a vide kzepre. Hasznlj 2-t csak a pros dimenzikhoz (4:2:2 videnl szksges). 16 a legjobb a legtbb vide codec-nl. +.br +.IPs <reset> +Szmll, mely megadja, hogy hny kpkocka utn fogja trlni a cropdetect +az elzleg detektlt legnagyobb vide mretet s vgzi el jra az optimlis +vgsi terlet megllaptst. Ez hasznos lehet, ha csatorna logk zavarjk +a vide terlett. A 0 azt jelenti, hogy soha nem resetel s a lejtszs +sorn tallt legnagyobb terletet hasznlja. (alaprtelmezett: 0). .RE .PD 1 . @@ -7103,8 +7127,8 @@ Vltozatlan magassg mellett a framerta felezdik. .B tfields[=md[:mez_dominancia]] Ideiglenes mez sztvlaszts \- a mezket kockkra vgja, megduplzva a kimeneti framertt. -Csakgy mint a telecine szr, a tfields is csak a MEncoder-rel -mkdik s csak ha az \-fps s \-ofps be van lltva a +Csakgy mint a telecine szr, a tfields sem biztos, hogy helyesen mkdik, +csak ha MEncoder-rel hasznlod s az \-fps s \-ofps be van lltva a kvnt (dupla) framertra! .PD 0 .RSs diff --git a/DOCS/man/zh_CN/mplayer.1 b/DOCS/man/zh_CN/mplayer.1 index 83bcde4f7e..7fae694b8d 100644 --- a/DOCS/man/zh_CN/mplayer.1 +++ b/DOCS/man/zh_CN/mplayer.1 @@ -2668,6 +2668,22 @@ DirectX DirectSound 音频输出驱动 .PD 1 . .TP +.B kai(仅适用于 OS/2) +OS/2 KAI 音频输出驱动 +.PD 0 +.RSs +.IPs uniaud +强制使用 UNIAUD 模式 +.IPs dart +强制使用 DART 模式 +.IPs (no)share +以共享或独占模式打开音频 +.IPs bufsize=<size> +设置缓冲大小为 <size>,以采样数为单位(默认值:2048)。 +.RE +.PD 1 +. +.TP .B dart(仅适用于 OS/2) OS/2 DART 音频输出驱动 .PD 0 @@ -3285,7 +3301,9 @@ ffodivxvdpau 一同使用) 使用 nochroma\-deint 以使其仅作用于亮度通道,从而加速高级反隔行扫描算法。 对于低速显存很有用。 .IPs pullup -尝试应用反电视电影模式,需要使用运动自适应的瞬间反隔行扫描算法。 +尝试跳过逐行扫描帧的解除隔行扫描操作,适用于观看电视图像化的内容,高分辨率 +的情况下需要高速的视频硬件。 +仅适用于运动自适应瞬时解除隔行扫描操作。 .IPs colorspace 选择 YUV 至 RGB 转换时使用的色彩空间 通常标清(SD)内容应使用 BT.601,而高清(HD)内容用 BT.709。 @@ -3586,37 +3604,38 @@ OSD 颜色(默认值是:0x00ffffff,对应不透明的白色)。 在大多数情况下,该方法很可能比使用软件转换成 RGB 慢。 .IPs yuv=<n> 选择 YUV 到 RGB 转换的类型。 +默认方式是自动侦测,选取 0 到 2 之间的一个值。 .RSss -0: 使用软件转换 (默认)。 +0:使用软件转换 。 兼容于所有的 OpenGL 版本。 提供亮度, 对比度和饱和度控制。 .br -1: 使用寄存器组合。 +1:使用寄存器组合。 这里使用 nVidia 专用的扩展 (GL_NV_register_combiners)。 至少需要三个纹理单位。提供饱和度和色调的控制。 此方法快速但不精确。 .br -2: 使用片断程序。 +2:使用片断程序。 需要 GL_ARB_fragment_program 扩展和至少三个纹理单位。 提供亮度, 对比度, 饱和度和色调控制。 .br -3: 使用片断程序, 用到 POW 指令。 +3:使用片断程序, 用到 POW 指令。 需要 GL_ARB_fragment_program 扩展和至少三个纹理单位。 提供亮度, 对比度, 饱和度, 色调和 gamma 控制。 对红, 绿和蓝色, Gamma 也能被独立设置。 方法 4 通常更快。 .br -4: 使用片断程序及附加的查询。 +4:使用片断程序及附加的查询。 需要 GL_ARB_fragment_program 扩展和至少四个纹理单位。 提供亮度, 对比度, 饱和度, 色调和 gamma 控制。 对红, 绿和蓝色, Gamma 也能被独立设置。 .br -5: 使用 ATI 专用的方式(用于较老的显卡)。 +5:使用 ATI 专用的方式(用于较老的显卡)。 这里使用 ATI 专用的扩展(GL_ATI_fragment_shader——不是 GL_ARB_fragment_shader!)。至少需要三个纹理单位。提供饱和度和色调的控制。 此方法快速但不精确。 .br -6: 使用 3D 纹理通过查询做转换。 +6:使用 3D 纹理通过查询做转换。 需要 GL_ARB_fragment_program 扩展和至少四个纹理单位。 既然使用一个纹理和边框像素, 在某些(所有?) ATI 卡上 (软件模拟) 极其慢。 提供亮度, 对比度, 饱和度, 色调和 gamma 控制。 @@ -4197,7 +4216,7 @@ mplayer video.nut \-vf format=bgr15 \-vo tga .IPs force=<0\-7> 锁定音频过滤器的插入为下面其中之一: .RSss -0: 使用完全自动的过滤器插入。 +0: 使用完全自动的过滤器插入(目前与选项 1 相同)。 .br 1: 精度优化 (默认)。 .br @@ -6596,8 +6615,8 @@ CPU的运算能力。 .TP .B tfields[=mode[:field_dominance]] 瞬时扫描场分离——将扫描场分离成帧,输出帧率加倍。 -就像telecine滤镜,tfields只在MEncoder中能正常工作,并且只在\-fps -和\-ofps设置成所需的(加倍的)帧率的情况下! +就像 telecine 滤镜,tfields 可能无法正常工作,除非用于 MEncoder,并且 \-fps +和 \-ofps 设置成所需的(加倍的)帧率的情况下! .PD 0 .RSs .IPs <mode> diff --git a/DOCS/xml/hu/usage.xml b/DOCS/xml/hu/usage.xml index b3463c93bd..9df776c7ec 100644 --- a/DOCS/xml/hu/usage.xml +++ b/DOCS/xml/hu/usage.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- synced with r29001 --> +<!-- synced with r30449 --> <chapter id="usage"> <title>Használat</title> @@ -934,8 +934,8 @@ szűrővel, és még többet is. Sajnos az alopciók még komplikáltabbak. <listitem><para> A fennmaradó alopciók megadják, hogy melyik csatornát milyen mértékben kell bekeverni mindegyik másik csatornába. Ez az igazán bonyolult dolog. Könnyítésként - válaszd szét az alopciókat különböző részekre, egy rész minden egyes kimeneti - csatornához. Minden egy részen belül található alopció egy bemeneti csatornának + válaszd szét az alopciókat különböző részekre, egy rész minden egyes bemeneti + csatornához. Minden egy részen belül található alopció egy kimeneti csatornának felel meg. A szám, amit megadsz, a bemeneti csatorna kimeneti csatornába történő bekeverésének százalékos aránya lesz. </para> @@ -107,7 +107,7 @@ SRCS_COMMON-$(HAVE_SYS_MMAN_H) += libaf/af_export.c osdep/mmap_anon.c SRCS_COMMON-$(JPEG) += libmpcodecs/vd_ijpg.c SRCS_COMMON-$(LADSPA) += libaf/af_ladspa.c SRCS_COMMON-$(LIBA52) += libmpcodecs/ad_liba52.c -SRCS_COMMON-$(LIBA52_INTERNAL) += liba52/crc.c \ +SRCS_LIBA52_INTERNAL += liba52/crc.c \ liba52/resample.c \ liba52/bit_allocate.c \ liba52/bitstream.c \ @@ -115,6 +115,8 @@ SRCS_COMMON-$(LIBA52_INTERNAL) += liba52/crc.c \ liba52/imdct.c \ liba52/parse.c \ +SRCS_COMMON-$(LIBA52_INTERNAL) += $(SRCS_LIBA52_INTERNAL) + SRCS_COMMON-$(LIBASS) += ass_mp.c \ libmpcodecs/vf_ass.c \ @@ -196,8 +198,10 @@ SRCS_MP3LIB-$(ARCH_X86_32) += mp3lib/decode_i586.c \ SRCS_MP3LIB-$(HAVE_ALTIVEC) += mp3lib/dct64_altivec.c SRCS_MP3LIB-$(HAVE_MMX) += mp3lib/decode_mmx.c SRCS_MP3LIB-$(HAVE_SSE) += mp3lib/dct64_sse.c -SRCS_COMMON-$(MP3LIB) += libmpcodecs/ad_mp3lib.c mp3lib/sr1.c \ +SRCS_MP3LIB += mp3lib/sr1.c \ $(SRCS_MP3LIB-yes) +SRCS_COMMON-$(MP3LIB) += libmpcodecs/ad_mp3lib.c \ + $(SRCS_MP3LIB) SRCS_COMMON-$(MUSEPACK) += libmpcodecs/ad_mpc.c \ libmpdemux/demux_mpc.c @@ -908,7 +912,7 @@ codec-cfg-test$(EXESUF): codec-cfg.c codecs.conf.h help_mp.h $(TEST_OBJS) codecs2html$(EXESUF): codec-cfg.c help_mp.h $(TEST_OBJS) $(CC) -I. -DCODECS2HTML -o $@ $^ -liba52/test$(EXESUF): cpudetect.o $(filter liba52/%,$(SRCS_COMMON:.c=.o)) -lm +liba52/test$(EXESUF): cpudetect.o $(SRCS_LIBA52_INTERNAL:.c=.o) -lm libvo/aspecttest$(EXESUF): libvo/aspect.o libvo/geometry.o $(TEST_OBJS) @@ -917,7 +921,7 @@ LOADER_TEST_OBJS = $(filter loader/%,$(SRCS_COMMON:.c=.o)) libmpdemux/aviprint.o loader/qtx/list$(EXESUF) loader/qtx/qtxload$(EXESUF): CFLAGS += -g loader/qtx/list$(EXESUF) loader/qtx/qtxload$(EXESUF): $(LOADER_TEST_OBJS) -mp3lib/test$(EXESUF) mp3lib/test2$(EXESUF): $(filter mp3lib/%,$(SRCS_COMMON:.c=.o)) libvo/aclib.o cpudetect.o $(TEST_OBJS) +mp3lib/test$(EXESUF) mp3lib/test2$(EXESUF): $(SRCS_MP3LIB:.c=.o) libvo/aclib.o cpudetect.o $(TEST_OBJS) TESTS = codecs2html codec-cfg-test liba52/test libvo/aspecttest \ mp3lib/test mp3lib/test2 diff --git a/etc/codecs.conf b/etc/codecs.conf index fffb1e0c2f..df379171da 100644 --- a/etc/codecs.conf +++ b/etc/codecs.conf @@ -1674,6 +1674,14 @@ videocodec indeo3xa dll "vid_iv32.xa" out YVU9 +videocodec ffindeo5 + info "FFmpeg Indeo 5" + status working + fourcc IV50 + driver ffmpeg + dll indeo5 + out YVU9 + ; DV: qdv is more stable... libdv is slow, mcdv is unstable videocodec ffdv diff --git a/help/help_mp-hu.h b/help/help_mp-hu.h index 5a3735d188..673ae214bd 100644 --- a/help/help_mp-hu.h +++ b/help/help_mp-hu.h @@ -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 r30044 (2010. 01. 16.) +// Sync'ed with help_mp-en.h r30515 (2010. 02. 06.) // ========================= MPlayer help =========================== diff --git a/loader/dshow/DS_Filter.c b/loader/dshow/DS_Filter.c index 42b47b8626..e3102cf264 100644 --- a/loader/dshow/DS_Filter.c +++ b/loader/dshow/DS_Filter.c @@ -209,6 +209,7 @@ DS_Filter* DS_FilterCreate(const char* dllname, const GUID* id, enum_pins->vt->Reset(enum_pins); result = enum_pins->vt->Next(enum_pins, (ULONG)256, (IPin**)array, &fetched); + enum_pins->vt->Release(enum_pins); Debug printf("Pins enumeration returned %ld pins, error is %x\n", fetched, (int)result); for (i = 0; i < fetched; i++) diff --git a/loader/ldt_keeper.c b/loader/ldt_keeper.c index adbe9900c9..35025888ca 100644 --- a/loader/ldt_keeper.c +++ b/loader/ldt_keeper.c @@ -60,14 +60,10 @@ int modify_ldt(int func, void *ptr, unsigned long bytecount); #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) #include <machine/segments.h> #include <machine/sysarch.h> -#endif - -#if defined(__APPLE__) +#elif defined(__APPLE__) #include <architecture/i386/table.h> #include <i386/user_ldt.h> -#endif - -#ifdef __svr4__ +#elif defined(__svr4__) #include <sys/segment.h> #include <sys/sysi86.h> @@ -238,9 +234,7 @@ ldt_fs_t* Setup_LDT_Keeper(void) perror("install_fs"); printf("Couldn't install fs segment, expect segfault\n"); } -#endif /*linux*/ - -#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__) +#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__) { unsigned long d[2]; @@ -262,9 +256,7 @@ ldt_fs_t* Setup_LDT_Keeper(void) #endif } } -#endif /* __NetBSD__ || __FreeBSD__ || __OpenBSD__ || __DragonFly__ || __APPLE__ */ - -#if defined(__svr4__) +#elif defined(__svr4__) { struct ssd ssd; ssd.sel = LDT_SEL(TEB_SEL_IDX); diff --git a/loader/win32.h b/loader/win32.h index 1e90827da0..bc2a28aeb8 100644 --- a/loader/win32.h +++ b/loader/win32.h @@ -12,15 +12,6 @@ #include "wine/winbase.h" #include "com.h" -#ifdef AVIFILE -#ifdef __GNUC__ -#include "avm_output.h" -#ifndef __cplusplus -#define printf(a, ...) avm_printf("Win32 plugin", a, ## __VA_ARGS__) -#endif -#endif -#endif - void my_garbagecollection(void); typedef struct { @@ -175,14 +175,9 @@ static inline int mkalpha(int i) { /* In mplayer's alpha planes, 0 is transparent, then 1 is nearly opaque upto 255 which is transparent */ - switch (i) { - case 0xf: - return 1; - case 0: - return 0; - default: - return (0xf - i) << 4; - } + // extend 4 -> 8 bit + i |= i << 4; + return (uint8_t)(-i); } /* Cut the sub to visible part */ @@ -359,7 +354,7 @@ static void compute_palette(spudec_handle_t *this, packet_t *packet) static void spudec_process_control(spudec_handle_t *this, int pts100) { - int a,b; /* Temporary vars */ + int a,b,c,d; /* Temporary vars */ unsigned int date, type; unsigned int off; unsigned int start_off = 0; @@ -422,10 +417,22 @@ static void spudec_process_control(spudec_handle_t *this, int pts100) break; case 0x04: /* Alpha */ - this->alpha[0] = this->packet[off] >> 4; - this->alpha[1] = this->packet[off] & 0xf; - this->alpha[2] = this->packet[off + 1] >> 4; - this->alpha[3] = this->packet[off + 1] & 0xf; + a = this->packet[off] >> 4; + b = this->packet[off] & 0xf; + c = this->packet[off + 1] >> 4; + d = this->packet[off + 1] & 0xf; + // Note: some DVDs change these values to create a fade-in/fade-out effect + // We can not handle this, so just keep the highest value during the display time. + if (display) { + a = FFMAX(a, this->alpha[0]); + b = FFMAX(b, this->alpha[1]); + c = FFMAX(c, this->alpha[2]); + d = FFMAX(d, this->alpha[3]); + } + this->alpha[0] = a; + this->alpha[1] = b; + this->alpha[2] = c; + this->alpha[3] = d; mp_msg(MSGT_SPUDEC,MSGL_DBG2,"Alpha %d, %d, %d, %d\n", this->alpha[0], this->alpha[1], this->alpha[2], this->alpha[3]); off+=2; diff --git a/stream/network.c b/stream/network.c index 0e1771113f..5802b85c67 100644 --- a/stream/network.c +++ b/stream/network.c @@ -68,6 +68,11 @@ int network_ipv4_only_proxy = 0; const mime_struct_t mime_type_table[] = { +#ifdef CONFIG_LIBAVFORMAT + // Flash Video + { "video/x-flv", DEMUXER_TYPE_LAVF_PREFERRED}, + { "video/quicktime", DEMUXER_TYPE_LAVF_PREFERRED }, +#endif // MP3 streaming, some MP3 streaming server answer with audio/mpeg { "audio/mpeg", DEMUXER_TYPE_AUDIO }, // MPEG streaming @@ -101,10 +106,6 @@ const mime_struct_t mime_type_table[] = { // NullSoft Streaming Video { "video/nsv", DEMUXER_TYPE_NSV}, { "misc/ultravox", DEMUXER_TYPE_NSV}, -#ifdef CONFIG_LIBAVFORMAT - // Flash Video - { "video/x-flv", DEMUXER_TYPE_LAVF}, -#endif { NULL, DEMUXER_TYPE_UNKNOWN}, }; |