diff --git a/Changelog b/Changelog index 7ced40d04e..59293eb0f6 100644 --- a/Changelog +++ b/Changelog @@ -1,5 +1,17 @@ MPlayer (1.0) + rc4: "Yes We Can" + Decoders: + * YUY2 Lossless Codec (YLC0) via binary DLL + * Truemotion RT codec (TR20) via binary DLL + * Nogantech Codec (NTN1 and NTN2) via binary DLL + * add new FourCCs (m1v1,HDMV), TwoCCs (0xA106,0x6c75), and formats (0x11005354) + to existing codecs. + * AMR now handled via opencore decoder + + Demuxers: + * support for TrueHD in BluRay streams in libmpdemux + rc3: "BikeshedCounter" March 27, 2009 Decoders: * support for X8 frames (fixes "J-type picture is not supported" for WMV2) diff --git a/DOCS/man/en/mplayer.1 b/DOCS/man/en/mplayer.1 index 0d8ac1a73a..dc7a65febd 100644 --- a/DOCS/man/en/mplayer.1 +++ b/DOCS/man/en/mplayer.1 @@ -7809,10 +7809,6 @@ Adaptive PCM formats \- see the HTML documentation for details. 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) \- using FAAC .IPs libmp3lame diff --git a/DOCS/man/zh_CN/mplayer.1 b/DOCS/man/zh_CN/mplayer.1 index 874548068e..7e2685146a 100644 --- a/DOCS/man/zh_CN/mplayer.1 +++ b/DOCS/man/zh_CN/mplayer.1 @@ -1,4 +1,4 @@ -.\" sync with en/mplayer.1 r29413 +.\" sync with en/mplayer.1 r29461 .\" Encoding: UTF-8 .\" Reminder of hard terms which need better/final solution later: .\" /capture; playtree in parent list; colorkey; retrace; desync; downmix; @@ -7360,10 +7360,6 @@ Dolby Digital(AC-3) Free Lossless Audio Codec(FLAC,免费无损音频编解码器) .IPs "g726\ " G.726 ADPCM -.IPs libamr_nb -3GPP的自适应多码率(AMR)窄频段格式 -.IPs libamr_wb -3GPP的自适应多码率(AMR)宽频段格式 .IPs libfaac Advanced Audio Coding(AAC,高级音频编码)——使用FAAC .IPs libmp3lame diff --git a/DOCS/tech/codecs.conf.txt b/DOCS/tech/codecs.conf.txt index 4a949d0fd5..bc24c73030 100644 --- a/DOCS/tech/codecs.conf.txt +++ b/DOCS/tech/codecs.conf.txt @@ -133,6 +133,8 @@ static, query. The flags are defined as follows: Used for some very old DLLs like Indeo 3 and for some XAnim codecs like cinepak. See dr-methods.txt for details on buffer types. +The "in" keyword -- UNDOCUMENTED + Audio Codecs ------------ Here is an example of a rather full-featured audio codec block: diff --git a/DOCS/xml/en/encoding-guide.xml b/DOCS/xml/en/encoding-guide.xml index 706b34dbf5..1c7c5909c5 100644 --- a/DOCS/xml/en/encoding-guide.xml +++ b/DOCS/xml/en/encoding-guide.xml @@ -2621,14 +2621,6 @@ mencoder dvd://2 -o title2.avi -ovc lavc -lavcopts vc g726 G.726 ADPCM - - libamr_nb - 3GPP Adaptive Multi-Rate (AMR) narrow-band - - - libamr_wb - 3GPP Adaptive Multi-Rate (AMR) wide-band - libfaac Advanced Audio Coding (AAC) - using FAAC diff --git a/DOCS/xml/en/install.xml b/DOCS/xml/en/install.xml index 86afaaf65d..dd03e00377 100644 --- a/DOCS/xml/en/install.xml +++ b/DOCS/xml/en/install.xml @@ -448,14 +448,10 @@ make install AMR -Adaptive Multi-Rate speech codec is used in third generation (3G) mobile -phones. -Reference implementation is available from -The 3rd Generation Partnership Project -(free for private use). -To enable support, download and install support libraries for -AMR-NB and AMR-WB -following the instructions on that page. Recompile MPlayer afterwards. +MPlayer can use the OpenCORE AMR libraries through FFmpeg. +Download the libraries for AMR-NB and AMR-WB from the +opencore-amr +project and install them according to the instructions on that page. diff --git a/cfg-common-opts.h b/cfg-common-opts.h index a96ff40798..053a24b372 100644 --- a/cfg-common-opts.h +++ b/cfg-common-opts.h @@ -84,7 +84,7 @@ #ifdef CONFIG_LIBNEMESI {"rtsp-stream-over-sctp", &rtsp_transport_sctp, CONF_TYPE_FLAG, 0, 0, 1, NULL}, #else - {"rtsp-stream-over-sctp", "-rtsp-stream-over-sctp requires the", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL}, + {"rtsp-stream-over-sctp", "-rtsp-stream-over-sctp requires the \"libnemesi\" library\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL}, #endif /* CONFIG_LIBNEMESI */ #ifdef CONFIG_NETWORK {"rtsp-port", &rtsp_port, CONF_TYPE_INT, CONF_RANGE, -1, 65535, NULL}, diff --git a/codec-cfg.c b/codec-cfg.c index db26866fbe..6e90c06fa8 100644 --- a/codec-cfg.c +++ b/codec-cfg.c @@ -141,10 +141,13 @@ static int add_to_format(char *s, char *alias,unsigned int *fourcc, unsigned int return 1; } - static struct { + static const struct { const char *name; const unsigned int num; } fmt_table[] = { + // note: due to parser deficiencies/simplicity, if one format + // name matches the beginning of another, the longer one _must_ + // come first in this list. {"YV12", IMGFMT_YV12}, {"I420", IMGFMT_I420}, {"IYUV", IMGFMT_IYUV}, @@ -162,20 +165,22 @@ static int add_to_format(char *s, char *alias,unsigned int *fourcc, unsigned int {"UYVY", IMGFMT_UYVY}, {"YVYU", IMGFMT_YVYU}, - {"RGB4", IMGFMT_RGB|4}, - {"RGB8", IMGFMT_RGB|8}, - {"RGB15", IMGFMT_RGB|15}, - {"RGB16", IMGFMT_RGB|16}, - {"RGB24", IMGFMT_RGB|24}, - {"RGB32", IMGFMT_RGB|32}, - {"BGR4", IMGFMT_BGR|4}, - {"BGR8", IMGFMT_BGR|8}, - {"BGR15", IMGFMT_BGR|15}, - {"BGR16", IMGFMT_BGR|16}, - {"BGR24", IMGFMT_BGR|24}, - {"BGR32", IMGFMT_BGR|32}, - {"RGB1", IMGFMT_RGB|1}, - {"BGR1", IMGFMT_BGR|1}, + {"RGB48LE", IMGFMT_RGB48LE}, + {"RGB48BE", IMGFMT_RGB48BE}, + {"RGB4", IMGFMT_RGB4}, + {"RGB8", IMGFMT_RGB8}, + {"RGB15", IMGFMT_RGB15}, + {"RGB16", IMGFMT_RGB16}, + {"RGB24", IMGFMT_RGB24}, + {"RGB32", IMGFMT_RGB32}, + {"BGR4", IMGFMT_BGR4}, + {"BGR8", IMGFMT_BGR8}, + {"BGR15", IMGFMT_BGR15}, + {"BGR16", IMGFMT_BGR16}, + {"BGR24", IMGFMT_BGR24}, + {"BGR32", IMGFMT_BGR32}, + {"RGB1", IMGFMT_RGB1}, + {"BGR1", IMGFMT_BGR1}, {"MPES", IMGFMT_MPEGPES}, {"ZRMJPEGNI", IMGFMT_ZRMJPEGNI}, diff --git a/command.c b/command.c index bbe9300e5e..67b3ac16f4 100644 --- a/command.c +++ b/command.c @@ -32,28 +32,18 @@ #include "spudec.h" #include "get_path.h" #include "ass_mp.h" -#ifdef CONFIG_TV #include "stream/tv.h" -#endif -#ifdef CONFIG_RADIO #include "stream/stream_radio.h" -#endif -#ifdef CONFIG_PVR #include "stream/pvr.h" -#endif #ifdef CONFIG_DVBIN #include "stream/dvbin.h" #endif #ifdef CONFIG_DVDREAD #include "stream/stream_dvd.h" #endif -#ifdef CONFIG_DVDNAV #include "stream/stream_dvdnav.h" -#endif -#ifdef CONFIG_MENU #include "m_struct.h" #include "libmenu/menu.h" -#endif #include "mp_core.h" #include "mp_fifo.h" diff --git a/configure b/configure index c4ee96feea..424ab36d77 100755 --- a/configure +++ b/configure @@ -2755,8 +2755,9 @@ language_man=$tmp_language_man test -z "$language_man" && language_man=en for lang in $language_msg ; do - test -f "help/help_mp-${lang}.h" && language_msg=$lang && break + test -f "help/help_mp-${lang}.h" && tmp_language_msg=$lang && break done +language_msg=$tmp_language_msg test -z "$language_msg" && language_msg=en _mp_help="help/help_mp-${language_msg}.h" echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc" @@ -7379,7 +7380,7 @@ if test "$_pvr" = auto ; then #include #include #include -int main(void) { struct v4l2_ext_controls ext; return 0; } +int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; } EOF cc_check && _pvr=yes fi @@ -7940,6 +7941,7 @@ CONFIG_XVMC=$_xvmc CONFIG_ZLIB=$_zlib HAVE_PTHREADS = $_pthreads +HAVE_SHM = $_shm HAVE_W32THREADS = $_w32threads HAVE_YASM = $_have_yasm diff --git a/debian/rules b/debian/rules index c486af5dff..17c06b0621 100755 --- a/debian/rules +++ b/debian/rules @@ -10,6 +10,9 @@ prefix := $(shell pwd)/debian/$(package) arch := $(shell dpkg --print-architecture) +# See http://wiki.debian.org/Teams/Dpkg/DebianRules; #465282 and +# https://wiki.ubuntu.com/DistCompilerFlags +CLEAN_ENV=env -u CFLAGS -u CPPFLAGS -u LDFLAGS -u FFLAGS -u CXXFLAGS configure: configure-stamp configure-stamp: @@ -19,6 +22,7 @@ configure-stamp: # If you plan to install the target .deb on a wide variety of machines, # you may want to add the "--enable-runtime-cpudetection" option to # the line below, but beware: the resulting binary will run slower + $(CLEAN_ENV) \ ./configure --prefix=/usr --confdir=/etc/mplayer $(DEB_BUILD_OPTIONS) touch configure-stamp @@ -28,6 +32,7 @@ build-stamp: dh_testdir # commands to compile the package. + $(CLEAN_ENV) \ ${MAKE} touch build-stamp diff --git a/etc/codecs.conf b/etc/codecs.conf index 103955c322..530630beff 100644 --- a/etc/codecs.conf +++ b/etc/codecs.conf @@ -338,6 +338,14 @@ videocodec ffbmp dll bmp out BGR32,BGR24,BGR8,Y800,RGB32,RGB24,RGB8 +videocodec ffdpx + info "FFmpeg DPX" + status working + fourcc "dpx " ; "dpx " is an internal MPlayer FOURCC + driver ffmpeg + dll dpx + out RGB48BE,RGB48LE + videocodec ffgif info "FFmpeg GIF" status working @@ -369,7 +377,7 @@ videocodec ffpng fourcc "png " ; for PNG-encoded QuickTime files driver ffmpeg dll png - out BGR32,BGR24,BGR8,Y800,RGB32,RGB24,RGB8 + out BGR32,BGR24,BGR8,Y800,RGB48BE,RGB32,RGB24,RGB8 videocodec mpng info "PNG image" @@ -3548,6 +3556,13 @@ audiocodec ffmlp driver ffmpeg dll "mlp" +audiocodec fftruehd + info "FFmpeg TrueHD" + status working + fourcc TRHD ; internal MPlayer FourCC + driver ffmpeg + dll "truehd" + audiocodec ffnellymoser info "FFmpeg Nellymoser Audio" status working diff --git a/fmt-conversion.c b/fmt-conversion.c index bcfb56a415..05179d1b29 100644 --- a/fmt-conversion.c +++ b/fmt-conversion.c @@ -35,6 +35,8 @@ static const struct { {IMGFMT_RGB1, PIX_FMT_MONOBLACK}, {IMGFMT_RG4B, PIX_FMT_BGR4_BYTE}, {IMGFMT_BG4B, PIX_FMT_RGB4_BYTE}, + {IMGFMT_RGB48LE, PIX_FMT_RGB48LE}, + {IMGFMT_RGB48BE, PIX_FMT_RGB48BE}, {IMGFMT_RGB32, PIX_FMT_BGR32}, {IMGFMT_RGB24, PIX_FMT_RGB24}, {IMGFMT_RGB16, PIX_FMT_BGR565}, diff --git a/help/help_mp-zh_CN.h b/help/help_mp-zh_CN.h index 263f3668aa..8fc43fd1e9 100644 --- a/help/help_mp-zh_CN.h +++ b/help/help_mp-zh_CN.h @@ -1,4 +1,4 @@ -// Synced with help_mp-en.h r29209 (MSGTR_SaveSlotTooOld) +// Synced with help_mp-en.h r29209 (MSGTR_LIBVO_VESA_YouShouldSee5OemRelatedLines) // Reminder of hard terms which need better/final solution later: // (file links to be updated later if available!); // NAV; section/subsection; XScreenSaver; keycolor; @@ -500,26 +500,26 @@ static const char help_text[]= #define MSGTR_NoFileGiven "没有给出文件\n" // m_config.c -#define MSGTR_SaveSlotTooOld "保存从 lvl %d 里找到的 slot 太旧: %d !!!\n" +#define MSGTR_SaveSlotTooOld "第 %d 级里找到的保存位置太旧:%d!!!\n" #define MSGTR_InvalidCfgfileOption "选项 %s 不能在配置文件里使用。\n" #define MSGTR_InvalidCmdlineOption "选项 %s 不能在命令行里使用。\n" -#define MSGTR_InvalidSuboption "错误: 选项 '%s' 没有子选项 '%s'。\n" -#define MSGTR_MissingSuboptionParameter "错误: 子选项 '%s' (属于选项 '%s') 必须要有一个参数!\n" -#define MSGTR_MissingOptionParameter "错误: 选项 '%s' 必须要有一个参数!\n" +#define MSGTR_InvalidSuboption "错误:选项‘%s’没有子选项‘%s’。\n" +#define MSGTR_MissingSuboptionParameter "错误:子选项‘%s’(属于选项‘%s’)必须要有一个参数!\n" +#define MSGTR_MissingOptionParameter "错误:选项‘%s’必须要有一个参数!\n" #define MSGTR_OptionListHeader "\n 名字 类型 最小 最大 全局 命令行 配置文件\n\n" -#define MSGTR_TotalOptions "\n总共: %d 个选项\n" -#define MSGTR_ProfileInclusionTooDeep "警告: 配置轮廓(Profile)引用太深。\n" -#define MSGTR_NoProfileDefined "没有定义配置轮廓(Profile)。\n" -#define MSGTR_AvailableProfiles "可用的配置轮廓(Profile):\n" -#define MSGTR_UnknownProfile "未知的配置轮廓(Profile) '%s'。\n" -#define MSGTR_Profile "配置轮廓(Profile) %s: %s\n" +#define MSGTR_TotalOptions "\n总共:%d 个选项\n" +#define MSGTR_ProfileInclusionTooDeep "警告:配置集相互套用的层次太深。\n" +#define MSGTR_NoProfileDefined "未定义配置集。\n" +#define MSGTR_AvailableProfiles "可用的配置集:\n" +#define MSGTR_UnknownProfile "未知配置集‘%s’。\n" +#define MSGTR_Profile "配置集 %s:%s\n" // m_property.c #define MSGTR_PropertyListHeader "\n 名称 类型 最小 最大\n\n" -#define MSGTR_TotalProperties "\n总计: %d 条属性\n" +#define MSGTR_TotalProperties "\n总计:%d 个属性\n" // loader/ldt_keeper.c -#define MSGTR_LOADER_DYLD_Warning "警告: 尝试使用 DLL 编解码器, 但是环境变量\n DYLD_BIND_AT_LAUNCH 未设定。 这很可能造成程序崩溃。\n" +#define MSGTR_LOADER_DYLD_Warning "警告:尝试使用 DLL 编解码器,但是环境变量\n DYLD_BIND_AT_LAUNCH 未设定。 这很可能造成程序崩溃。\n" // ====================== GUI messages/buttons ======================== @@ -534,16 +534,16 @@ static const char help_text[]= #define MSGTR_PlayList "播放列表" #define MSGTR_Equalizer "均衡器" #define MSGTR_ConfigureEqualizer "配置均衡器" -#define MSGTR_SkinBrowser "皮肤浏览器" -#define MSGTR_Network "网络流媒体..." +#define MSGTR_SkinBrowser "界面外观配置浏览器" +#define MSGTR_Network "正传送网络媒体流..." // Note: If you change MSGTR_Preferences please see if it still fits MSGTR_MENU_Preferences #define MSGTR_Preferences "首选项" #define MSGTR_AudioPreferences "音频驱动配置" -#define MSGTR_NoMediaOpened "没有打开媒体" -#define MSGTR_VCDTrack "VCD 轨迹 %d" -#define MSGTR_NoChapter "没有章节" +#define MSGTR_NoMediaOpened "未打开媒体内容" +#define MSGTR_VCDTrack "VCD 数据轨道 %d" +#define MSGTR_NoChapter "无章节" #define MSGTR_Chapter "章节 %d" -#define MSGTR_NoFileLoaded "没有载入文件" +#define MSGTR_NoFileLoaded "未载入文件" // --- buttons --- #define MSGTR_Ok "确定" @@ -552,41 +552,41 @@ static const char help_text[]= #define MSGTR_Remove "删除" #define MSGTR_Clear "清空" #define MSGTR_Config "配置" -#define MSGTR_ConfigDriver "配置驱动" +#define MSGTR_ConfigDriver "配置驱动程序" #define MSGTR_Browse "浏览" // --- error messages --- -#define MSGTR_NEMDB "抱歉, 没有足够的内存用于绘制缓冲。" -#define MSGTR_NEMFMR "抱歉, 没有足够的内存用于菜单渲染。" -#define MSGTR_IDFGCVD "抱歉, 未找到 GUI-兼容的视频输出驱动。" -#define MSGTR_NEEDLAVC "抱歉, 不能用没有重编码的 DXR3/H+ 设备播放 non-MPEG 文件\n请启用 DXR3/H+ 配置盒中的 lavc。" -#define MSGTR_UNKNOWNWINDOWTYPE "发现未知窗口类型 ..." +#define MSGTR_NEMDB "抱歉,没有足够的内存用作绘图缓冲。" +#define MSGTR_NEMFMR "抱歉,没有足够的内存用于菜单渲染。" +#define MSGTR_IDFGCVD "抱歉,未找到与 GUI 兼容的视频输出驱动。" +#define MSGTR_NEEDLAVC "抱歉,未重新编码前不能用你的 DXR3/H+ 设备播放非 MPEG 文件。\n请启用 DXR3/H+ 配置盒中的 lavc 编解码器。" +#define MSGTR_UNKNOWNWINDOWTYPE "发现未知窗口类型..." // --- skin loader error messages -#define MSGTR_SKIN_ERRORMESSAGE "[skin] 皮肤配置文件的 %d: %s行出错" -#define MSGTR_SKIN_WARNING1 "[skin] 警告: 在配置文件的 %d行:\n找到组件 (%s) 但在这之前没有找到 \"section\"" -#define MSGTR_SKIN_WARNING2 "[skin] 警告: 在配置文件的 %d行:\n找到组件 (%s) 但在这之前没有找到 \"subsection\"" -#define MSGTR_SKIN_WARNING3 "[skin] 警告: 在配置文件的 %d行:\n组件 (%s) 不支持此 subsection" -#define MSGTR_SKIN_SkinFileNotFound "[skin] 文件 (%s) 没找到。\n" -#define MSGTR_SKIN_SkinFileNotReadable "[skin] 文件 (%s) 不可读。\n" -#define MSGTR_SKIN_BITMAP_16bit "不支持少于 16 比特色深的位图 (%s)。\n" -#define MSGTR_SKIN_BITMAP_FileNotFound "找不到文件 (%s)\n" -#define MSGTR_SKIN_BITMAP_BMPReadError "BMP 读取错误 (%s)\n" -#define MSGTR_SKIN_BITMAP_TGAReadError "TGA 读取错误 (%s)\n" -#define MSGTR_SKIN_BITMAP_PNGReadError "PNG 读取错误 (%s)\n" -#define MSGTR_SKIN_BITMAP_RLENotSupported "不支持 RLE 格式压缩的 TGA (%s)\n" -#define MSGTR_SKIN_BITMAP_UnknownFileType "未知的文件格式 (%s)\n" -#define MSGTR_SKIN_BITMAP_ConversionError "24 比特到 32 比特的转换发生错误 (%s)\n" -#define MSGTR_SKIN_BITMAP_UnknownMessage "未知信息: %s\n" +#define MSGTR_SKIN_ERRORMESSAGE "[界面外观] 界面外观配置文件错误,行 %d:%s" +#define MSGTR_SKIN_WARNING1 "[界面外观] 警告:配置文件行 %d:\n找到组件(%s),但在其之前没有找到“section”的内容" +#define MSGTR_SKIN_WARNING2 "[界面外观] 警告: 配置文件行 %d:\n找到组件(%s),但在其之前没有找到“subsection”的内容" +#define MSGTR_SKIN_WARNING3 "[界面外观] 警告: 配置文件行 %d:\n组件(%s)不支持该 subsection" +#define MSGTR_SKIN_SkinFileNotFound "[界面外观] 未找到文件(%s)。\n" +#define MSGTR_SKIN_SkinFileNotReadable "[界面外观] 无法读取文件(%s)。\n" +#define MSGTR_SKIN_BITMAP_16bit "不支持少于或等于 16 比特颜色精度的位图(%s)。\n" +#define MSGTR_SKIN_BITMAP_FileNotFound "未找到文件(%s)\n" +#define MSGTR_SKIN_BITMAP_BMPReadError "BMP 读取错误(%s)\n" +#define MSGTR_SKIN_BITMAP_TGAReadError "TGA 读取错误(%s)\n" +#define MSGTR_SKIN_BITMAP_PNGReadError "PNG 读取错误(%s)\n" +#define MSGTR_SKIN_BITMAP_RLENotSupported "不支持 RLE 方式压缩的 TGA(%s)\n" +#define MSGTR_SKIN_BITMAP_UnknownFileType "未知文件类型(%s)\n" +#define MSGTR_SKIN_BITMAP_ConversionError "24 比特至 32 比特转换出错(%s)\n" +#define MSGTR_SKIN_BITMAP_UnknownMessage "未知信息:%s\n" #define MSGTR_SKIN_FONT_NotEnoughtMemory "内存不够\n" -#define MSGTR_SKIN_FONT_TooManyFontsDeclared "声明字体太多。\n" +#define MSGTR_SKIN_FONT_TooManyFontsDeclared "声明了太多的字体。\n" #define MSGTR_SKIN_FONT_FontFileNotFound "找不到字体文件。\n" #define MSGTR_SKIN_FONT_FontImageNotFound "找不到字体图像文件。\n" -#define MSGTR_SKIN_FONT_NonExistentFontID "不存在的字体标签 (%s)\n" -#define MSGTR_SKIN_UnknownParameter "未知参数 (%s)\n" -#define MSGTR_SKIN_SKINCFG_SkinNotFound "找不到皮肤 (%s)。\n" -#define MSGTR_SKIN_SKINCFG_SelectedSkinNotFound "没找到选定的皮肤 (%s), 试着使用默认的...\n" -#define MSGTR_SKIN_SKINCFG_SkinCfgReadError "皮肤配置文件 (%s) 读取错误。\n" +#define MSGTR_SKIN_FONT_NonExistentFontID "不存在的字体标识符(%s)\n" +#define MSGTR_SKIN_UnknownParameter "未知参数(%s)\n" +#define MSGTR_SKIN_SKINCFG_SkinNotFound "找不到界面外观(%s)。\n" +#define MSGTR_SKIN_SKINCFG_SelectedSkinNotFound "未找到选定的界面外观(%s),尝试使用‘default’参数...\n" +#define MSGTR_SKIN_SKINCFG_SkinCfgReadError "界面外观配置文件(%s)读取错误。\n" #define MSGTR_SKIN_LABEL "Skins:" // --- GTK menus @@ -595,7 +595,7 @@ static const char help_text[]= #define MSGTR_MENU_PlayFile "播放文件..." #define MSGTR_MENU_PlayVCD "播放 VCD..." #define MSGTR_MENU_PlayDVD "播放 DVD..." -#define MSGTR_MENU_PlayURL "播放 URL..." +#define MSGTR_MENU_PlayURL "播放网络链接..." #define MSGTR_MENU_LoadSubtitle "加载字幕..." #define MSGTR_MENU_DropSubtitle "丢弃字幕..." #define MSGTR_MENU_LoadExternAudioFile "加载外部音频文件..." @@ -612,17 +612,17 @@ static const char help_text[]= #define MSGTR_MENU_FullScreen "全屏" #define MSGTR_MENU_DVD "DVD" #define MSGTR_MENU_VCD "VCD" -#define MSGTR_MENU_PlayDisc "打开盘..." +#define MSGTR_MENU_PlayDisc "打开光盘..." #define MSGTR_MENU_ShowDVDMenu "显示 DVD 菜单" -#define MSGTR_MENU_Titles "标题" +#define MSGTR_MENU_Titles "所有标题" #define MSGTR_MENU_Title "标题 %2d" -#define MSGTR_MENU_None "(none)" -#define MSGTR_MENU_Chapters "章节" +#define MSGTR_MENU_None "(无)" +#define MSGTR_MENU_Chapters "所有章节" #define MSGTR_MENU_Chapter "章节 %2d" #define MSGTR_MENU_AudioLanguages "音频语言" #define MSGTR_MENU_SubtitleLanguages "字幕语言" #define MSGTR_MENU_PlayList MSGTR_PlayList -#define MSGTR_MENU_SkinBrowser "皮肤浏览器" +#define MSGTR_MENU_SkinBrowser "界面外观配置浏览器" #define MSGTR_MENU_Preferences MSGTR_Preferences #define MSGTR_MENU_Exit "退出..." #define MSGTR_MENU_Mute "静音" @@ -638,23 +638,23 @@ static const char help_text[]= #define MSGTR_EQU_Audio "音频" // Note: If you change MSGTR_EQU_Video please see if it still fits MSGTR_PREFERENCES_Video #define MSGTR_EQU_Video "视频" -#define MSGTR_EQU_Contrast "对比度: " -#define MSGTR_EQU_Brightness "亮度: " -#define MSGTR_EQU_Hue "色调: " -#define MSGTR_EQU_Saturation "饱和度: " +#define MSGTR_EQU_Contrast "对比度:" +#define MSGTR_EQU_Brightness "亮度:" +#define MSGTR_EQU_Hue "色调:" +#define MSGTR_EQU_Saturation "饱和度:" #define MSGTR_EQU_Front_Left "前左" #define MSGTR_EQU_Front_Right "前右" #define MSGTR_EQU_Back_Left "后左" #define MSGTR_EQU_Back_Right "后右" -#define MSGTR_EQU_Center "中间" -#define MSGTR_EQU_Bass "低音" +#define MSGTR_EQU_Center "中置" +#define MSGTR_EQU_Bass "低音炮" #define MSGTR_EQU_All "所有" -#define MSGTR_EQU_Channel1 "声道 1:" -#define MSGTR_EQU_Channel2 "声道 2:" -#define MSGTR_EQU_Channel3 "声道 3:" -#define MSGTR_EQU_Channel4 "声道 4:" -#define MSGTR_EQU_Channel5 "声道 5:" -#define MSGTR_EQU_Channel6 "声道 6:" +#define MSGTR_EQU_Channel1 "声道 1:" +#define MSGTR_EQU_Channel2 "声道 2:" +#define MSGTR_EQU_Channel3 "声道 3:" +#define MSGTR_EQU_Channel4 "声道 4:" +#define MSGTR_EQU_Channel5 "声道 5:" +#define MSGTR_EQU_Channel6 "声道 6:" // --- playlist #define MSGTR_PLAYLIST_Path "路径" @@ -665,63 +665,63 @@ static const char help_text[]= // --- preferences #define MSGTR_PREFERENCES_Audio MSGTR_EQU_Audio #define MSGTR_PREFERENCES_Video MSGTR_EQU_Video -#define MSGTR_PREFERENCES_SubtitleOSD "字幕和 OSD " -#define MSGTR_PREFERENCES_Codecs "编解码器和分路器" +#define MSGTR_PREFERENCES_SubtitleOSD "字幕和 OSD 菜单" +#define MSGTR_PREFERENCES_Codecs "编解码器和流分离器" // Note: If you change MSGTR_PREFERENCES_Misc see if it still fits MSGTR_PREFERENCES_FRAME_Misc -#define MSGTR_PREFERENCES_Misc "其他" -#define MSGTR_PREFERENCES_None "None" -#define MSGTR_PREFERENCES_DriverDefault "默认驱动" -#define MSGTR_PREFERENCES_AvailableDrivers "可用驱动:" +#define MSGTR_PREFERENCES_Misc "杂项" +#define MSGTR_PREFERENCES_None "无" +#define MSGTR_PREFERENCES_DriverDefault "驱动程序默认配置" +#define MSGTR_PREFERENCES_AvailableDrivers "可用驱动:" #define MSGTR_PREFERENCES_DoNotPlaySound "不播放声音" -#define MSGTR_PREFERENCES_NormalizeSound "声音标准化" +#define MSGTR_PREFERENCES_NormalizeSound "音量规格化" #define MSGTR_PREFERENCES_EnableEqualizer "启用均衡器" #define MSGTR_PREFERENCES_SoftwareMixer "启用软件混音器" #define MSGTR_PREFERENCES_ExtraStereo "启用立体声加强" -#define MSGTR_PREFERENCES_Coefficient "参数:" +#define MSGTR_PREFERENCES_Coefficient "参数:" #define MSGTR_PREFERENCES_AudioDelay "音频延迟" #define MSGTR_PREFERENCES_DoubleBuffer "启用双重缓冲" #define MSGTR_PREFERENCES_DirectRender "启用直接渲染" #define MSGTR_PREFERENCES_FrameDrop "启用丢帧" -#define MSGTR_PREFERENCES_HFrameDrop "启用强制丢帧(危险)" +#define MSGTR_PREFERENCES_HFrameDrop "启用强制丢帧(危险)" #define MSGTR_PREFERENCES_Flip "上下翻转图像" -#define MSGTR_PREFERENCES_Panscan "摇移: " -#define MSGTR_PREFERENCES_OSDTimer "显示计时器和指示器" +#define MSGTR_PREFERENCES_Panscan "全景模式:" +#define MSGTR_PREFERENCES_OSDTimer "计时器和指示器" #define MSGTR_PREFERENCES_OSDProgress "只显示进度条" -#define MSGTR_PREFERENCES_OSDTimerPercentageTotalTime "计时器, 百分比和总时间" -#define MSGTR_PREFERENCES_Subtitle "字幕:" -#define MSGTR_PREFERENCES_SUB_Delay "延迟: " -#define MSGTR_PREFERENCES_SUB_FPS "帧率:" -#define MSGTR_PREFERENCES_SUB_POS "位置: " -#define MSGTR_PREFERENCES_SUB_AutoLoad "停用字幕自动装载" +#define MSGTR_PREFERENCES_OSDTimerPercentageTotalTime "计时器,已播放百分比和总时间" +#define MSGTR_PREFERENCES_Subtitle "字幕:" +#define MSGTR_PREFERENCES_SUB_Delay "延迟:" +#define MSGTR_PREFERENCES_SUB_FPS "帧率:" +#define MSGTR_PREFERENCES_SUB_POS "位置:" +#define MSGTR_PREFERENCES_SUB_AutoLoad "禁止自动装载字幕" #define MSGTR_PREFERENCES_SUB_Unicode "Unicode 字幕" -#define MSGTR_PREFERENCES_SUB_MPSUB "转换给定的字幕成为 MPlayer 的字幕文件" -#define MSGTR_PREFERENCES_SUB_SRT "转换给定的字幕成为基于时间的 SubViewer (SRT) 格式" -#define MSGTR_PREFERENCES_SUB_Overlap "启/停用字幕重叠" -#define MSGTR_PREFERENCES_SUB_USE_ASS "SSA/ASS 字幕提供中" -#define MSGTR_PREFERENCES_SUB_ASS_USE_MARGINS "使用边空白" -#define MSGTR_PREFERENCES_SUB_ASS_TOP_MARGIN "上: " -#define MSGTR_PREFERENCES_SUB_ASS_BOTTOM_MARGIN "下: " -#define MSGTR_PREFERENCES_Font "字体:" -#define MSGTR_PREFERENCES_FontFactor "字体效果:" +#define MSGTR_PREFERENCES_SUB_MPSUB "转换给定的字幕为 MPlayer 字幕格式" +#define MSGTR_PREFERENCES_SUB_SRT "转换给定的字幕为基于时间戳的 SubViewer (SRT) 格式" +#define MSGTR_PREFERENCES_SUB_Overlap "开关字幕重叠模式" +#define MSGTR_PREFERENCES_SUB_USE_ASS "渲染 SSA/ASS 字幕" +#define MSGTR_PREFERENCES_SUB_ASS_USE_MARGINS "使用留边" +#define MSGTR_PREFERENCES_SUB_ASS_TOP_MARGIN "底部:" +#define MSGTR_PREFERENCES_SUB_ASS_BOTTOM_MARGIN "底部:" +#define MSGTR_PREFERENCES_Font "字体:" +#define MSGTR_PREFERENCES_FontFactor "字体参数:" #define MSGTR_PREFERENCES_PostProcess "启用后期处理" -#define MSGTR_PREFERENCES_AutoQuality "自动品质控制: " +#define MSGTR_PREFERENCES_AutoQuality "自动控制质量:" #define MSGTR_PREFERENCES_NI "使用非交错的 AVI 解析器" -#define MSGTR_PREFERENCES_IDX "如果需要的话, 重建索引表" -#define MSGTR_PREFERENCES_VideoCodecFamily "视频解码器族:" -#define MSGTR_PREFERENCES_AudioCodecFamily "音频解码器族:" +#define MSGTR_PREFERENCES_IDX "如果需要的话,重建索引表" +#define MSGTR_PREFERENCES_VideoCodecFamily "视频编解码器族:" +#define MSGTR_PREFERENCES_AudioCodecFamily "音频编解码器族:" #define MSGTR_PREFERENCES_FRAME_OSD_Level "OSD 级别" #define MSGTR_PREFERENCES_FRAME_Subtitle "字幕" #define MSGTR_PREFERENCES_FRAME_Font "字体" #define MSGTR_PREFERENCES_FRAME_PostProcess "后期处理" -#define MSGTR_PREFERENCES_FRAME_CodecDemuxer "编解码器和分路器" -#define MSGTR_PREFERENCES_FRAME_Cache "缓存" +#define MSGTR_PREFERENCES_FRAME_CodecDemuxer "编解码器和流分离器" +#define MSGTR_PREFERENCES_FRAME_Cache "缓冲" #define MSGTR_PREFERENCES_FRAME_Misc MSGTR_PREFERENCES_Misc -#define MSGTR_PREFERENCES_Audio_Device "设备:" -#define MSGTR_PREFERENCES_Audio_Mixer "混音器:" -#define MSGTR_PREFERENCES_Audio_MixerChannel "混音通道:" -#define MSGTR_PREFERENCES_Message "请注意, 有些功能只有重新播放后能生效。" -#define MSGTR_PREFERENCES_DXR3_VENC "视频编码器:" -#define MSGTR_PREFERENCES_DXR3_LAVC "使用 LAVC (FFmpeg)" +#define MSGTR_PREFERENCES_Audio_Device "设备:" +#define MSGTR_PREFERENCES_Audio_Mixer "混音器:" +#define MSGTR_PREFERENCES_Audio_MixerChannel "混音器声道:" +#define MSGTR_PREFERENCES_Message "请注意有些功能只有重启播放后才能生效!" +#define MSGTR_PREFERENCES_DXR3_VENC "视频编解码器:" +#define MSGTR_PREFERENCES_DXR3_LAVC "使用 LAVC(FFmpeg)" #define MSGTR_PREFERENCES_FontEncoding1 "Unicode" #define MSGTR_PREFERENCES_FontEncoding2 "西欧(ISO-8859-1)" #define MSGTR_PREFERENCES_FontEncoding3 "西欧(ISO-8859-15)" @@ -746,83 +746,83 @@ static const char help_text[]= #define MSGTR_PREFERENCES_FontEncoding22 "Windows 的西里尔/中欧语(CP1250)" #define MSGTR_PREFERENCES_FontEncoding23 "Windows 的阿拉伯语(CP1256)" #define MSGTR_PREFERENCES_FontNoAutoScale "不自动缩放" -#define MSGTR_PREFERENCES_FontPropWidth "宽度成比例" -#define MSGTR_PREFERENCES_FontPropHeight "高度成比例" -#define MSGTR_PREFERENCES_FontPropDiagonal "对角线成比例" -#define MSGTR_PREFERENCES_FontEncoding "编码:" -#define MSGTR_PREFERENCES_FontBlur "模糊:" -#define MSGTR_PREFERENCES_FontOutLine "轮廓:" -#define MSGTR_PREFERENCES_FontTextScale "文字缩放:" -#define MSGTR_PREFERENCES_FontOSDScale "OSD 缩放:" -#define MSGTR_PREFERENCES_Cache "打开/关闭缓存" -#define MSGTR_PREFERENCES_CacheSize "缓存大小: " +#define MSGTR_PREFERENCES_FontPropWidth "与影片宽度相称" +#define MSGTR_PREFERENCES_FontPropHeight "与影片高度相称" +#define MSGTR_PREFERENCES_FontPropDiagonal "与影片对角线相称" +#define MSGTR_PREFERENCES_FontEncoding "编码:" +#define MSGTR_PREFERENCES_FontBlur "模糊:" +#define MSGTR_PREFERENCES_FontOutLine "轮廓:" +#define MSGTR_PREFERENCES_FontTextScale "文字缩放:" +#define MSGTR_PREFERENCES_FontOSDScale "OSD 缩放:" +#define MSGTR_PREFERENCES_Cache "启用/禁用缓存" +#define MSGTR_PREFERENCES_CacheSize "缓存大小:" #define MSGTR_PREFERENCES_LoadFullscreen "以全屏方式启动" #define MSGTR_PREFERENCES_SaveWinPos "保存窗口位置" -#define MSGTR_PREFERENCES_XSCREENSAVER "停用屏保(XScreenSaver)" -#define MSGTR_PREFERENCES_PlayBar "使用播放条" -#define MSGTR_PREFERENCES_AutoSync "自同步 打开/关闭" -#define MSGTR_PREFERENCES_AutoSyncValue "自同步: " -#define MSGTR_PREFERENCES_CDROMDevice "CD-ROM 设备:" -#define MSGTR_PREFERENCES_DVDDevice "DVD 设备:" -#define MSGTR_PREFERENCES_FPS "电影的帧率:" -#define MSGTR_PREFERENCES_ShowVideoWindow "在非激活状态下显示视频窗口" -#define MSGTR_PREFERENCES_ArtsBroken "新版 aRts 与 GTK 1.x 不兼容, "\ - "会使 GMPlayer 崩溃!" +#define MSGTR_PREFERENCES_XSCREENSAVER "停用 XScreenSaver 屏保" +#define MSGTR_PREFERENCES_PlayBar "启用播放条" +#define MSGTR_PREFERENCES_AutoSync "启用/禁用自动同步" +#define MSGTR_PREFERENCES_AutoSyncValue "自动同步:" +#define MSGTR_PREFERENCES_CDROMDevice "CD-ROM 设备:" +#define MSGTR_PREFERENCES_DVDDevice "DVD 设备:" +#define MSGTR_PREFERENCES_FPS "电影帧率:" +#define MSGTR_PREFERENCES_ShowVideoWindow "当程序窗动未激活时显示视频窗口" +#define MSGTR_PREFERENCES_ArtsBroken "新版 aRts 与 GTK 1.x 不兼容,"\ + "并会使 GMPlayer 崩溃!" // -- aboutbox -#define MSGTR_ABOUT_UHU "GUI 开发由 UHU Linux 赞助\n" +#define MSGTR_ABOUT_UHU "GUI 的开发由 UHU Linux 赞助\n" #define MSGTR_ABOUT_Contributors "代码和文档贡献者\n" -#define MSGTR_ABOUT_Codecs_libs_contributions "编解码器和第三方库\n" +#define MSGTR_ABOUT_Codecs_libs_contributions "编解码器和第三方程序库\n" #define MSGTR_ABOUT_Translations "翻译\n" -#define MSGTR_ABOUT_Skins "皮肤\n" +#define MSGTR_ABOUT_Skins "界面外观\n" // --- messagebox -#define MSGTR_MSGBOX_LABEL_FatalError "致命错误!" -#define MSGTR_MSGBOX_LABEL_Error "错误!" -#define MSGTR_MSGBOX_LABEL_Warning "警告!" +#define MSGTR_MSGBOX_LABEL_FatalError "致命错误!" +#define MSGTR_MSGBOX_LABEL_Error "错误!" +#define MSGTR_MSGBOX_LABEL_Warning "警告!" // bitmap.c -#define MSGTR_NotEnoughMemoryC32To1 "[c32to1] 内存不够, 容不下图片\n" -#define MSGTR_NotEnoughMemoryC1To32 "[c1to32] 内存不够, 容不下图片\n" +#define MSGTR_NotEnoughMemoryC32To1 "[c32to1] 用于图像的内存不足\n" +#define MSGTR_NotEnoughMemoryC1To32 "[c1to32] 用于图像的内存不足\n" // cfg.c #define MSGTR_ConfigFileReadError "[cfg] 配置文件读取错误...\n" -#define MSGTR_UnableToSaveOption "[cfg] 无法保存 '%s' 选项。\n" +#define MSGTR_UnableToSaveOption "[cfg] 无法保存‘%s’选项。\n" // interface.c #define MSGTR_DeletingSubtitles "[GUI] 删除字幕。\n" -#define MSGTR_LoadingSubtitles "[GUI] 导入字幕: %s\n" -#define MSGTR_AddingVideoFilter "[GUI] 添加视频过滤器: %s\n" -#define MSGTR_RemovingVideoFilter "[GUI] 删除视频过滤器: %s\n" +#define MSGTR_LoadingSubtitles "[GUI] 加载字幕:%s\n" +#define MSGTR_AddingVideoFilter "[GUI] 添加视频滤镜:%s\n" +#define MSGTR_RemovingVideoFilter "[GUI] 删除视频滤锐:%s\n" // mw.c -#define MSGTR_NotAFile "这好像不是文件: %s !\n" +#define MSGTR_NotAFile "这好像不是文件:%s!\n" // ws.c -#define MSGTR_WS_CouldNotOpenDisplay "[ws] 打不开显示。\n" -#define MSGTR_WS_RemoteDisplay "[ws] 远程显示, 停用 XMITSHM。\n" -#define MSGTR_WS_NoXshm "[ws] 抱歉, 你的系统不支持 X 共享内存扩展。\n" -#define MSGTR_WS_NoXshape "[ws] 抱歉, 你的系统不支持 XShape 扩展。\n" -#define MSGTR_WS_ColorDepthTooLow "[ws] 抱歉, 色彩深度太低。\n" +#define MSGTR_WS_CouldNotOpenDisplay "[ws] 无法打开显示界面。\n" +#define MSGTR_WS_RemoteDisplay "[ws] 远程显示界面,禁用 XMITSHM。\n" +#define MSGTR_WS_NoXshm "[ws] 抱歉,你的系统不支持 X 共享内存扩展组件。\n" +#define MSGTR_WS_NoXshape "[ws] 抱歉,你的系统不支持 XShape 扩展组件。\n" +#define MSGTR_WS_ColorDepthTooLow "[ws] 抱歉,色彩深度太低。\n" #define MSGTR_WS_TooManyOpenWindows "[ws] 打开窗口太多。\n" -#define MSGTR_WS_ShmError "[ws] 共享内存扩展错误\n" -#define MSGTR_WS_NotEnoughMemoryDrawBuffer "[ws] 抱歉, 内存不够绘制缓冲。\n" -#define MSGTR_WS_DpmsUnavailable "DPMS 不可用?\n" -#define MSGTR_WS_DpmsNotEnabled "不能启用 DPMS。\n" +#define MSGTR_WS_ShmError "[ws] 共享内存扩展组件错误\n" +#define MSGTR_WS_NotEnoughMemoryDrawBuffer "[ws] 抱歉,内存不足以用于绘制缓冲。\n" +#define MSGTR_WS_DpmsUnavailable "DPMS 不可用?\n" +#define MSGTR_WS_DpmsNotEnabled "无法启用 DPMS。\n" // wsxdnd.c #define MSGTR_WS_NotAFile "这好像不是一个文件...\n" -#define MSGTR_WS_DDNothing "D&D: 没有任何东西返回!\n" +#define MSGTR_WS_DDNothing "D&D:未返回任何东西!\n" // ======================= video output drivers ======================== -#define MSGTR_VOincompCodec "选定的视频输出设备和这个编解码器不兼容。\n"\ +#define MSGTR_VOincompCodec "所选的视频输出设备与该编解码器不兼容。\n"\ "请尝试在滤镜列表尾部添加缩放滤镜,\n"\ - "例如用 -vf spp,scale 代替 -vf spp。\n" -#define MSGTR_VO_GenericError "这个错误已经发生" + "例如,用 -vf spp,scale 代替 -vf spp。\n" +#define MSGTR_VO_GenericError "该错误已经发生" #define MSGTR_VO_UnableToAccess "无法访问" -#define MSGTR_VO_ExistsButNoDirectory "已经存在, 但不是一个目录。" -#define MSGTR_VO_DirExistsButNotWritable "输出目录已经存在, 但是不可写。" +#define MSGTR_VO_ExistsButNoDirectory "已经存在,但不是一个目录。" +#define MSGTR_VO_DirExistsButNotWritable "输出目录已经存在,但是不可写。" #define MSGTR_VO_DirExistsAndIsWritable "输出目录已经存在并且可写。" #define MSGTR_VO_CantCreateDirectory "无法创建输出目录。" #define MSGTR_VO_CantCreateFile "无法创建输出文件。" @@ -830,20 +830,20 @@ static const char help_text[]= #define MSGTR_VO_ParsingSuboptions "解析子选项。" #define MSGTR_VO_SuboptionsParsedOK "子选项解析成功。" #define MSGTR_VO_ValueOutOfRange "值超出范围" -#define MSGTR_VO_NoValueSpecified "没有指定值。" +#define MSGTR_VO_NoValueSpecified "未指定值。" #define MSGTR_VO_UnknownSuboptions "未知子选项" // aspect.c -#define MSGTR_LIBVO_ASPECT_NoSuitableNewResFound "[ASPECT] 警告: 无法找到新的合适的分辨率!\n" -#define MSGTR_LIBVO_ASPECT_NoNewSizeFoundThatFitsIntoRes "[ASPECT] 错误: 无法找到适合分辨率的新尺寸!\n" +#define MSGTR_LIBVO_ASPECT_NoSuitableNewResFound "[ASPECT] 警告:无法找到新的合适的分辨率!\n" +#define MSGTR_LIBVO_ASPECT_NoNewSizeFoundThatFitsIntoRes "[ASPECT] 错误:无法找到适合分辨率的新尺寸!\n" // font_load_ft.c #define MSGTR_LIBVO_FONT_LOAD_FT_NewFaceFailed "调用 New_Face 失败。可能字体文件的路径不对。\n请提供文本字体文件(~/.mplayer/subfont.tt)。\n" #define MSGTR_LIBVO_FONT_LOAD_FT_NewMemoryFaceFailed "调用 New_Memory_Face 失败。\n" #define MSGTR_LIBVO_FONT_LOAD_FT_SubFaceFailed "字幕字体:调用 load_sub_face 失败。\n" #define MSGTR_LIBVO_FONT_LOAD_FT_SubFontCharsetFailed "字幕字体:调用 prepare_charset 失败。\n" -#define MSGTR_LIBVO_FONT_LOAD_FT_CannotPrepareSubtitleFont "无法准备好字幕字体。\n" -#define MSGTR_LIBVO_FONT_LOAD_FT_CannotPrepareOSDFont "无法准备好 OSD 字体。\n" +#define MSGTR_LIBVO_FONT_LOAD_FT_CannotPrepareSubtitleFont "无法设置字幕字体。\n" +#define MSGTR_LIBVO_FONT_LOAD_FT_CannotPrepareOSDFont "无法设置 OSD 字体。\n" #define MSGTR_LIBVO_FONT_LOAD_FT_CannotGenerateTables "无法生成映射表。\n" #define MSGTR_LIBVO_FONT_LOAD_FT_DoneFreeTypeFailed "调用 FT_Done_FreeType 失败。\n" @@ -852,7 +852,7 @@ static const char help_text[]= #define MSGTR_VO_SUB_Play "播放" #define MSGTR_VO_SUB_Pause "暂停" #define MSGTR_VO_SUB_Stop "停止" -#define MSGTR_VO_SUB_Rewind "后退" +#define MSGTR_VO_SUB_Rewind "倒回" #define MSGTR_VO_SUB_Forward "快进" #define MSGTR_VO_SUB_Clock "计时" #define MSGTR_VO_SUB_Contrast "对比度" @@ -863,187 +863,187 @@ static const char help_text[]= #define MSGTR_VO_SUB_Balance "均衡" // vo_3dfx.c -#define MSGTR_LIBVO_3DFX_Only16BppSupported "[VO_3DFX] 只支持 16bpp!" -#define MSGTR_LIBVO_3DFX_VisualIdIs "[VO_3DFX] 可视 ID 是 %lx。\n" +#define MSGTR_LIBVO_3DFX_Only16BppSupported "[VO_3DFX] 只支持 16bpp!" +#define MSGTR_LIBVO_3DFX_VisualIdIs "[VO_3DFX] 可视化 ID 是 %lx。\n" #define MSGTR_LIBVO_3DFX_UnableToOpenDevice "[VO_3DFX] 无法打开 /dev/3dfx。\n" -#define MSGTR_LIBVO_3DFX_Error "[VO_3DFX] 错误: %d。\n" -#define MSGTR_LIBVO_3DFX_CouldntMapMemoryArea "[VO_3DFX] 没能映射 3dfx 内存区域: %p,%p,%d。\n" -#define MSGTR_LIBVO_3DFX_DisplayInitialized "[VO_3DFX] 初始化: %p。\n" -#define MSGTR_LIBVO_3DFX_UnknownSubdevice "[VO_3DFX] 未知子设备: %s。\n" +#define MSGTR_LIBVO_3DFX_Error "[VO_3DFX] 错误:%d。\n" +#define MSGTR_LIBVO_3DFX_CouldntMapMemoryArea "[VO_3DFX] 未能映射 3dfx 内存区域:%p,%p,%d。\n" +#define MSGTR_LIBVO_3DFX_DisplayInitialized "[VO_3DFX] 初始化完毕:%p。\n" +#define MSGTR_LIBVO_3DFX_UnknownSubdevice "[VO_3DFX] 未知子设备:%s。\n" // vo_aa.c -#define MSGTR_VO_AA_HelpHeader "\n\n这是 aalib vo_aa 子选项:\n" -#define MSGTR_VO_AA_AdditionalOptions "vo_aa 提供的附加选项:\n" \ +#define MSGTR_VO_AA_HelpHeader "\n\n以下是 aalib vo_aa 的子选项:\n" +#define MSGTR_VO_AA_AdditionalOptions "vo_aa 提供的附加选项:\n" \ " help 显示此帮助信息\n" \ " osdcolor 设定 OSD 颜色\n subcolor 设定字幕颜色\n" \ -" 颜色参数有:\n 0 : 一般\n" \ -" 1 : 模糊\n 2 : 粗\n 3 : 粗字体\n" \ -" 4 : 反色\n 5 : 特殊\n\n\n" +" 颜色参数有:\n 0 :标准\n" \ +" 1 :模糊\n 2 :加粗\n 3 :字体加粗\n" \ +" 4 :反色\n 5 :特殊\n\n\n" // vo_dxr3.c -#define MSGTR_LIBVO_DXR3_UnableToLoadNewSPUPalette "[VO_DXR3] 无法载入新的 SPU 调色板!\n" -#define MSGTR_LIBVO_DXR3_UnableToSetPlaymode "[VO_DXR3] 无法设置播放模式!\n" -#define MSGTR_LIBVO_DXR3_UnableToSetSubpictureMode "[VO_DXR3] 无法设置 subpicture 模式!\n" -#define MSGTR_LIBVO_DXR3_UnableToGetTVNorm "[VO_DXR3] 无法获取电视制式!\n" -#define MSGTR_LIBVO_DXR3_AutoSelectedTVNormByFrameRate "[VO_DXR3] 利用帧速率自动选择电视制式: " -#define MSGTR_LIBVO_DXR3_UnableToSetTVNorm "[VO_DXR3] 无法设置电视制式!\n" -#define MSGTR_LIBVO_DXR3_SettingUpForNTSC "[VO_DXR3] 设置 NTSC。\n" -#define MSGTR_LIBVO_DXR3_SettingUpForPALSECAM "[VO_DXR3] 设置 PAL/SECAM。\n" +#define MSGTR_LIBVO_DXR3_UnableToLoadNewSPUPalette "[VO_DXR3] 无法载入新的 SPU 调色板!\n" +#define MSGTR_LIBVO_DXR3_UnableToSetPlaymode "[VO_DXR3] 无法设置播放模式!\n" +#define MSGTR_LIBVO_DXR3_UnableToSetSubpictureMode "[VO_DXR3] 无法设置字幕模式!\n" +#define MSGTR_LIBVO_DXR3_UnableToGetTVNorm "[VO_DXR3] 无法获取电视制式!\n" +#define MSGTR_LIBVO_DXR3_AutoSelectedTVNormByFrameRate "[VO_DXR3] 根据帧速率自动选择电视制式:" +#define MSGTR_LIBVO_DXR3_UnableToSetTVNorm "[VO_DXR3] 无法设置电视制式!\n" +#define MSGTR_LIBVO_DXR3_SettingUpForNTSC "[VO_DXR3] 设置为 NTSC 模式。\n" +#define MSGTR_LIBVO_DXR3_SettingUpForPALSECAM "[VO_DXR3] 设置为 PAL/SECAM 模式。\n" #define MSGTR_LIBVO_DXR3_SettingAspectRatioTo43 "[VO_DXR3] 宽高比设为 4:3。\n" #define MSGTR_LIBVO_DXR3_SettingAspectRatioTo169 "[VO_DXR3] 宽高比设为 16:9。\n" #define MSGTR_LIBVO_DXR3_OutOfMemory "[VO_DXR3] 内存耗尽\n" -#define MSGTR_LIBVO_DXR3_UnableToAllocateKeycolor "[VO_DXR3] 无法分配 keycolor!\n" -#define MSGTR_LIBVO_DXR3_UnableToAllocateExactKeycolor "[VO_DXR3] 无法精确分配 keycolor, 使用最接近的匹配 (0x%lx)。\n" -#define MSGTR_LIBVO_DXR3_Uninitializing "[VO_DXR3] 反初始化(释放资源)。\n" -#define MSGTR_LIBVO_DXR3_FailedRestoringTVNorm "[VO_DXR3] 恢复电视制式失败!\n" -#define MSGTR_LIBVO_DXR3_EnablingPrebuffering "[VO_DXR3] 启用预缓冲。\n" +#define MSGTR_LIBVO_DXR3_UnableToAllocateKeycolor "[VO_DXR3] 无法分配关键色!\n" +#define MSGTR_LIBVO_DXR3_UnableToAllocateExactKeycolor "[VO_DXR3] 无法精确分配关键色,使用最接近的匹配(0x%lx)。\n" +#define MSGTR_LIBVO_DXR3_Uninitializing "[VO_DXR3] 正在逆初始化。\n" +#define MSGTR_LIBVO_DXR3_FailedRestoringTVNorm "[VO_DXR3] 恢复电视制式失败!\n" +#define MSGTR_LIBVO_DXR3_EnablingPrebuffering "[VO_DXR3] 启用预缓冲模式。\n" #define MSGTR_LIBVO_DXR3_UsingNewSyncEngine "[VO_DXR3] 使用新的同步引擎。\n" -#define MSGTR_LIBVO_DXR3_UsingOverlay "[VO_DXR3] 使用覆盖。\n" -#define MSGTR_LIBVO_DXR3_ErrorYouNeedToCompileMplayerWithX11 "[VO_DXR3] 错误: 覆盖需要安装 X11 的库和头文件后编译。\n" -#define MSGTR_LIBVO_DXR3_WillSetTVNormTo "[VO_DXR3] 将电视制式设置为: " -#define MSGTR_LIBVO_DXR3_AutoAdjustToMovieFrameRatePALPAL60 "自动调节电影的帧速率 (PAL/PAL-60)" -#define MSGTR_LIBVO_DXR3_AutoAdjustToMovieFrameRatePALNTSC "自动调节电影的帧速率 (PAL/NTSC)" +#define MSGTR_LIBVO_DXR3_UsingOverlay "[VO_DXR3] 使用覆盖模式。\n" +#define MSGTR_LIBVO_DXR3_ErrorYouNeedToCompileMplayerWithX11 "[VO_DXR3] 错误:覆盖需要在安装 X11 库和头文件的条件下编译。\n" +#define MSGTR_LIBVO_DXR3_WillSetTVNormTo "[VO_DXR3] 将电视制式设置为:" +#define MSGTR_LIBVO_DXR3_AutoAdjustToMovieFrameRatePALPAL60 "自动调节画面的帧率(PAL/PAL-60)" +#define MSGTR_LIBVO_DXR3_AutoAdjustToMovieFrameRatePALNTSC "自动调节画面的帧率(PAL/NTSC)" #define MSGTR_LIBVO_DXR3_UseCurrentNorm "使用当前制式。" #define MSGTR_LIBVO_DXR3_UseUnknownNormSuppliedCurrentNorm "未知制式,使用当前制式。" -#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTrying "[VO_DXR3] 打开 %s 写入错误, 尝试 /dev/em8300。\n" -#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTryingMV "[VO_DXR3] 打开 %s 写入错误, 尝试 /dev/em8300_mv。\n" -#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWell "[VO_DXR3] 打开 /dev/em8300 写入错误!\n跳出。\n" -#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWellMV "[VO_DXR3] 打开 /dev/em8300_mv 写入错误!\n跳出。\n" -#define MSGTR_LIBVO_DXR3_Opened "[VO_DXR3] 打开: %s。\n" -#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTryingSP "[VO_DXR3] 打开 %s 写入错误, 尝试 /dev/em8300_sp。\n" -#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWellSP "[VO_DXR3] 打开 /dev/em8300_sp 写入错误!\n跳出。\n" -#define MSGTR_LIBVO_DXR3_UnableToOpenDisplayDuringHackSetup "[VO_DXR3] 在 overlay hack 设置中无法打开显示设备!\n" -#define MSGTR_LIBVO_DXR3_UnableToInitX11 "[VO_DXR3] 无法初始化 X11!\n" -#define MSGTR_LIBVO_DXR3_FailedSettingOverlayAttribute "[VO_DXR3] 设置覆盖属性失败。\n" -#define MSGTR_LIBVO_DXR3_FailedSettingOverlayScreen "[VO_DXR3] 设置覆盖屏幕失败!\n退出。\n" -#define MSGTR_LIBVO_DXR3_FailedEnablingOverlay "[VO_DXR3] 启用覆盖失败!\n退出。\n" -#define MSGTR_LIBVO_DXR3_FailedSettingOverlayBcs "[VO_DXR3] 设置 overlay bcs 失败!\n" -#define MSGTR_LIBVO_DXR3_FailedGettingOverlayYOffsetValues "[VO_DXR3] 获取覆盖的 Y-偏移量失败!\n退出。\n" -#define MSGTR_LIBVO_DXR3_FailedGettingOverlayXOffsetValues "[VO_DXR3] 获取覆盖的 X-偏移量失败!\n退出。\n" -#define MSGTR_LIBVO_DXR3_FailedGettingOverlayXScaleCorrection "[VO_DXR3] 获取覆盖的 X-比例校正失败!\n退出。\n" -#define MSGTR_LIBVO_DXR3_YOffset "[VO_DXR3] Y-偏移量: %d。\n" -#define MSGTR_LIBVO_DXR3_XOffset "[VO_DXR3] X-偏移量: %d。\n" -#define MSGTR_LIBVO_DXR3_XCorrection "[VO_DXR3] X-比例校正: %d。\n" -#define MSGTR_LIBVO_DXR3_FailedResizingOverlayWindow "[VO_DXR3] 设置覆盖窗口大小失败!\n" -#define MSGTR_LIBVO_DXR3_FailedSetSignalMix "[VO_DXR3] 设置信号混合失败!\n" +#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTrying "[VO_DXR3] 打开 %s 以写入错误,尝试 /dev/em8300。\n" +#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTryingMV "[VO_DXR3] 打开 %s 以写入错误,尝试 /dev/em8300_mv。\n" +#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWell "[VO_DXR3] 打开 /dev/em8300 以写入同样错误!\n跳出。\n" +#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWellMV "[VO_DXR3] 打开 /dev/em8300_mv 以写入同样错误!\n跳出。\n" +#define MSGTR_LIBVO_DXR3_Opened "[VO_DXR3] 打开:%s。\n" +#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTryingSP "[VO_DXR3] 打开 %s 写入错误,尝试 /dev/em8300_sp。\n" +#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWellSP "[VO_DXR3] 打开 /dev/em8300_sp 以写入同样错误!\n跳出。\n" +#define MSGTR_LIBVO_DXR3_UnableToOpenDisplayDuringHackSetup "[VO_DXR3] 设置覆盖模式破解方式时无法打开显示设备!\n" +#define MSGTR_LIBVO_DXR3_UnableToInitX11 "[VO_DXR3] 无法初始化 X11!\n" +#define MSGTR_LIBVO_DXR3_FailedSettingOverlayAttribute "[VO_DXR3] 设置覆盖模式属性失败。\n" +#define MSGTR_LIBVO_DXR3_FailedSettingOverlayScreen "[VO_DXR3] 设置覆盖屏幕失败!\n退出。\n" +#define MSGTR_LIBVO_DXR3_FailedEnablingOverlay "[VO_DXR3] 启用覆盖模式失败!\n退出。\n" +#define MSGTR_LIBVO_DXR3_FailedSettingOverlayBcs "[VO_DXR3] 设置覆盖模式 bcs 失败!\n" +#define MSGTR_LIBVO_DXR3_FailedGettingOverlayYOffsetValues "[VO_DXR3] 获取覆盖模式的 Y-偏移量失败!\n退出。\n" +#define MSGTR_LIBVO_DXR3_FailedGettingOverlayXOffsetValues "[VO_DXR3] 获取覆盖模式的 X-偏移量失败!\n退出。\n" +#define MSGTR_LIBVO_DXR3_FailedGettingOverlayXScaleCorrection "[VO_DXR3] 获取覆盖模式的 X-比例校正失败!\n退出。\n" +#define MSGTR_LIBVO_DXR3_YOffset "[VO_DXR3] Y-偏移量:%d。\n" +#define MSGTR_LIBVO_DXR3_XOffset "[VO_DXR3] X-偏移量:%d。\n" +#define MSGTR_LIBVO_DXR3_XCorrection "[VO_DXR3] X-比例校正:%d。\n" +#define MSGTR_LIBVO_DXR3_FailedResizingOverlayWindow "[VO_DXR3] 设置覆盖窗口大小失败!\n" +#define MSGTR_LIBVO_DXR3_FailedSetSignalMix "[VO_DXR3] 设置信号混合失败!\n" // vo_jpeg.c #define MSGTR_VO_JPEG_ProgressiveJPEG "启用渐显 JPEG。" #define MSGTR_VO_JPEG_NoProgressiveJPEG "停用渐显 JPEG。" -#define MSGTR_VO_JPEG_BaselineJPEG "启用基线 JPEG。" -#define MSGTR_VO_JPEG_NoBaselineJPEG "停用基线 JPEG。" +#define MSGTR_VO_JPEG_BaselineJPEG "启用基本 JPEG。" +#define MSGTR_VO_JPEG_NoBaselineJPEG "停用基本 JPEG。" // vo_mga.c -#define MSGTR_LIBVO_MGA_AspectResized "[VO_MGA] aspect(): 改变大小为 %dx%d。\n" -#define MSGTR_LIBVO_MGA_Uninit "[VO] 反初始化(释放资源)!\n" +#define MSGTR_LIBVO_MGA_AspectResized "[VO_MGA] aspect():改变大小为 %dx%d。\n" +#define MSGTR_LIBVO_MGA_Uninit "[VO] 反初始化!\n" // mga_common.c -#define MSGTR_LIBVO_MGA_ErrorInConfigIoctl "[MGA] mga_vid_config ioctl 错误 (mga_vid.o 版本错误?)" -#define MSGTR_LIBVO_MGA_CouldNotGetLumaValuesFromTheKernelModule "[MGA] 无法在内核模块中获得 luma 值!\n" -#define MSGTR_LIBVO_MGA_CouldNotSetLumaValuesFromTheKernelModule "[MGA] 无法在内核模块中设置 luma 值!\n" -#define MSGTR_LIBVO_MGA_ScreenWidthHeightUnknown "[MGA] 屏幕宽度/高度未知!\n" +#define MSGTR_LIBVO_MGA_ErrorInConfigIoctl "[MGA] mga_vid_config ioctl 错误(mga_vid.o 版本错误?)" +#define MSGTR_LIBVO_MGA_CouldNotGetLumaValuesFromTheKernelModule "[MGA] 无法在内核模块中获得亮度值!\n" +#define MSGTR_LIBVO_MGA_CouldNotSetLumaValuesFromTheKernelModule "[MGA] 无法在内核模块中设置亮度值!\n" +#define MSGTR_LIBVO_MGA_ScreenWidthHeightUnknown "[MGA] 屏幕宽度/高度未知!\n" #define MSGTR_LIBVO_MGA_InvalidOutputFormat "[MGA] 无效的输出格式 %0X\n" -#define MSGTR_LIBVO_MGA_IncompatibleDriverVersion "[MGA] 你的 mga_vid 驱动版本与 MPlayer 的版本不兼容!\n" -#define MSGTR_LIBVO_MGA_CouldntOpen "[MGA] 打不开: %s\n" -#define MSGTR_LIBVO_MGA_ResolutionTooHigh "[MGA] 原分辨率至少有一维超过了 1023x1023。用软件或用 -lavdopts lowres=1 重新缩放\n" -#define MSGTR_LIBVO_MGA_mgavidVersionMismatch "[MGA] 内核(%u)与 MPlayer(%u)mga_vid 驱动版本号不符。\n" +#define MSGTR_LIBVO_MGA_IncompatibleDriverVersion "[MGA] 你的 mga_vid 驱动版本与该 MPlayer 的版本不兼容!\n" +#define MSGTR_LIBVO_MGA_CouldntOpen "[MGA] 无法打开:%s\n" +#define MSGTR_LIBVO_MGA_ResolutionTooHigh "[MGA] 源分辨率至少有一维超过了 1023x1023。\n[MGA] 需用软件或用 -lavdopts lowres=1 重新缩放。\n" +#define MSGTR_LIBVO_MGA_mgavidVersionMismatch "[MGA] 内核(%u)与 MPlayer(%u)的 mga_vid 驱动版本号不匹配。\n" // vo_null.c -#define MSGTR_LIBVO_NULL_UnknownSubdevice "[VO_NULL] 未知子设备: %s。\n" +#define MSGTR_LIBVO_NULL_UnknownSubdevice "[VO_NULL] 未知子设备:%s。\n" // vo_png.c -#define MSGTR_LIBVO_PNG_Warning1 "[VO_PNG] 警告: 压缩级别设置为 0, 停用压缩!\n" -#define MSGTR_LIBVO_PNG_Warning2 "[VO_PNG] 信息: 使用 -vo png:z= 设置 0 到 9 的压缩级别。\n" -#define MSGTR_LIBVO_PNG_Warning3 "[VO_PNG] 信息: (0 = 不压缩, 1 = 最快,压缩率最低 - 9 最好,最慢的压缩)\n" -#define MSGTR_LIBVO_PNG_ErrorOpeningForWriting "\n[VO_PNG] 打开 '%s' 写入错误!\n" +#define MSGTR_LIBVO_PNG_Warning1 "[VO_PNG] 警告:压缩级别设置为 0,禁用压缩!\n" +#define MSGTR_LIBVO_PNG_Warning2 "[VO_PNG] 信息:使用 -vo png:z= 设置 0 到 9 之间的压缩级别。\n" +#define MSGTR_LIBVO_PNG_Warning3 "[VO_PNG] 信息:(0 = 不压缩,1 = 最快,压缩率最低 - 9 最好,最慢的压缩)\n" +#define MSGTR_LIBVO_PNG_ErrorOpeningForWriting "\n[VO_PNG] 打开‘%s’以写入错误!\n" #define MSGTR_LIBVO_PNG_ErrorInCreatePng "[VO_PNG] create_png 错误。\n" // vo_pnm.c #define MSGTR_VO_PNM_ASCIIMode "启用 ASCII 模式。" -#define MSGTR_VO_PNM_RawMode "启用 Raw 模式。" +#define MSGTR_VO_PNM_RawMode "启用原生模式。" #define MSGTR_VO_PNM_PPMType "将要写入 PPM 文件。" #define MSGTR_VO_PNM_PGMType "将要写入 PGM 文件。" #define MSGTR_VO_PNM_PGMYUVType "将要写入 PGMYUV 文件。" // vo_sdl.c -#define MSGTR_LIBVO_SDL_CouldntGetAnyAcceptableSDLModeForOutput "[VO_SDL] 无法获得可用的 SDL 输出模式。\n" -#define MSGTR_LIBVO_SDL_SetVideoModeFailed "[VO_SDL] set_video_mode: SDL_SetVideoMode 失败: %s。\n" -#define MSGTR_LIBVO_SDL_SetVideoModeFailedFull "[VO_SDL] Set_fullmode: SDL_SetVideoMode 失败: %s。\n" -#define MSGTR_LIBVO_SDL_MappingI420ToIYUV "[VO_SDL] I420 映射到 IYUV。\n" -#define MSGTR_LIBVO_SDL_UnsupportedImageFormat "[VO_SDL] 不支持的图像格式 (0x%X)。\n" +#define MSGTR_LIBVO_SDL_CouldntGetAnyAcceptableSDLModeForOutput "[VO_SDL] 无法获得可接受的 SDL 模式以用于输出。\n" +#define MSGTR_LIBVO_SDL_SetVideoModeFailed "[VO_SDL] set_video_mode:SDL_SetVideoMode 失败:%s。\n" +#define MSGTR_LIBVO_SDL_SetVideoModeFailedFull "[VO_SDL] Set_fullmode:SDL_SetVideoMode 失败:%s。\n" +#define MSGTR_LIBVO_SDL_MappingI420ToIYUV "[VO_SDL] 将 I420 映射到 IYUV。\n" +#define MSGTR_LIBVO_SDL_UnsupportedImageFormat "[VO_SDL] 不支持的图像格式(0x%X)。\n" #define MSGTR_LIBVO_SDL_InfoPleaseUseVmOrZoom "[VO_SDL] 信息 - 请使用 -vm 或 -zoom 切换到最佳分辨率。\n" -#define MSGTR_LIBVO_SDL_FailedToSetVideoMode "[VO_SDL] 设置视频模式失败: %s。\n" -#define MSGTR_LIBVO_SDL_CouldntCreateAYUVOverlay "[VO_SDL] 没能创建 YUV 覆盖: %s。\n" -#define MSGTR_LIBVO_SDL_CouldntCreateARGBSurface "[VO_SDL] 没能创建 RGB 表面: %s。\n" -#define MSGTR_LIBVO_SDL_UsingDepthColorspaceConversion "[VO_SDL] 使用深度/颜色空间转换, 这会减慢速度 (%ibpp -> %ibpp)。\n" -#define MSGTR_LIBVO_SDL_UnsupportedImageFormatInDrawslice "[VO_SDL] draw_slice 不支持的图像格式, 联系 MPlayer 的开发者!\n" -#define MSGTR_LIBVO_SDL_BlitFailed "[VO_SDL] Blit 失败: %s。\n" -#define MSGTR_LIBVO_SDL_InitializationFailed "[VO_SDL] 初始化 SDL 失败: %s。\n" -#define MSGTR_LIBVO_SDL_UsingDriver "[VO_SDL] 使用驱动: %s。\n" +#define MSGTR_LIBVO_SDL_FailedToSetVideoMode "[VO_SDL] 设置视频模式失败:%s。\n" +#define MSGTR_LIBVO_SDL_CouldntCreateAYUVOverlay "[VO_SDL] 未能创建 YUV 覆盖模式:%s。\n" +#define MSGTR_LIBVO_SDL_CouldntCreateARGBSurface "[VO_SDL] 未能创建 RGB 表面图层:%s。\n" +#define MSGTR_LIBVO_SDL_UsingDepthColorspaceConversion "[VO_SDL] 使用深度/颜色空间转换,这会减慢速度(%ibpp -> %ibpp)。\n" +#define MSGTR_LIBVO_SDL_UnsupportedImageFormatInDrawslice "[VO_SDL] draw_slice 不支持的图像格式,请联系 MPlayer 的开发者!\n" +#define MSGTR_LIBVO_SDL_BlitFailed "[VO_SDL] 位块传输失败:%s。\n" +#define MSGTR_LIBVO_SDL_InitializationFailed "[VO_SDL] 初始化 SDL 模式失败: %s。\n" +#define MSGTR_LIBVO_SDL_UsingDriver "[VO_SDL] 使用驱动:%s。\n" // vo_svga.c -#define MSGTR_LIBVO_SVGA_ForcedVidmodeNotAvailable "[VO_SVGA] 锁定的 vid_mode %d (%s) 不可用。\n" -#define MSGTR_LIBVO_SVGA_ForcedVidmodeTooSmall "[VO_SVGA] 锁定的 vid_mode %d (%s) 太小。\n" -#define MSGTR_LIBVO_SVGA_Vidmode "[VO_SVGA] Vid_mode: %d, %dx%d %dbpp。\n" -#define MSGTR_LIBVO_SVGA_VgasetmodeFailed "[VO_SVGA] Vga_setmode(%d) 失败。\n" -#define MSGTR_LIBVO_SVGA_VideoModeIsLinearAndMemcpyCouldBeUsed "[VO_SVGA] 线性的视频模式可以使用 memcpy 操作图像。\n" -#define MSGTR_LIBVO_SVGA_VideoModeHasHardwareAcceleration "[VO_SVGA] 硬件加速的视频模式可以使用 put_image。\n" -#define MSGTR_LIBVO_SVGA_IfItWorksForYouIWouldLikeToKnow "[VO_SVGA] 如果工作正常请告诉我。\n[VO_SVGA] (发送 `mplayer test.avi -v -v -v -v &> svga.log` 生成的日志文件)。谢!\n" -#define MSGTR_LIBVO_SVGA_VideoModeHas "[VO_SVGA] 视频模式有 %d 页。\n" -#define MSGTR_LIBVO_SVGA_CenteringImageStartAt "[VO_SVGA] 图像居中。始于 (%d,%d)\n" -#define MSGTR_LIBVO_SVGA_UsingVidix "[VO_SVGA] 使用 VIDIX. w=%i h=%i mw=%i mh=%i\n" +#define MSGTR_LIBVO_SVGA_ForcedVidmodeNotAvailable "[VO_SVGA] 强制使用的 vid_mode %d(%s)不可用。\n" +#define MSGTR_LIBVO_SVGA_ForcedVidmodeTooSmall "[VO_SVGA] 强制使用的 vid_mode %d(%s)太小。\n" +#define MSGTR_LIBVO_SVGA_Vidmode "[VO_SVGA] Vid_mode:%d,%dx%d %dbpp。\n" +#define MSGTR_LIBVO_SVGA_VgasetmodeFailed "[VO_SVGA] Vga_setmode(%d)失败。\n" +#define MSGTR_LIBVO_SVGA_VideoModeIsLinearAndMemcpyCouldBeUsed "[VO_SVGA] 线性的视频模式,可以使用 memcpy 传输图像。\n" +#define MSGTR_LIBVO_SVGA_VideoModeHasHardwareAcceleration "[VO_SVGA] 硬件加速的视频模式,可以使用 put_image。\n" +#define MSGTR_LIBVO_SVGA_IfItWorksForYouIWouldLikeToKnow "[VO_SVGA] 如果工作正常请告诉我。\n[VO_SVGA](使用 `mplayer test.avi -v -v -v -v &> svga.log` 生成日志文件并发送)。谢谢!\n" +#define MSGTR_LIBVO_SVGA_VideoModeHas "[VO_SVGA] 视频模式占用 %d 内存页。\n" +#define MSGTR_LIBVO_SVGA_CenteringImageStartAt "[VO_SVGA] 居中图像。超始位置(%d,%d)\n" +#define MSGTR_LIBVO_SVGA_UsingVidix "[VO_SVGA] 使用 VIDIX。w=%i h=%i mw=%i mh=%i\n" // vo_tdfx_vid.c -#define MSGTR_LIBVO_TDFXVID_Move "[VO_TDXVID] Move %d(%d) x %d => %d。\n" -#define MSGTR_LIBVO_TDFXVID_AGPMoveFailedToClearTheScreen "[VO_TDFXVID] AGP move 清除屏幕失败。\n" -#define MSGTR_LIBVO_TDFXVID_BlitFailed "[VO_TDFXVID] Blit 失败。\n" -#define MSGTR_LIBVO_TDFXVID_NonNativeOverlayFormatNeedConversion "[VO_TDFXVID] 非本地支持的覆盖格式需要转换。\n" +#define MSGTR_LIBVO_TDFXVID_Move "[VO_TDXVID] 移动 %d(%d) x %d => %d。\n" +#define MSGTR_LIBVO_TDFXVID_AGPMoveFailedToClearTheScreen "[VO_TDFXVID] AGP 移动操作清除屏幕失败。\n" +#define MSGTR_LIBVO_TDFXVID_BlitFailed "[VO_TDFXVID] 位块传输失败。\n" +#define MSGTR_LIBVO_TDFXVID_NonNativeOverlayFormatNeedConversion "[VO_TDFXVID] 非原生支持的覆盖格式需要转换。\n" #define MSGTR_LIBVO_TDFXVID_UnsupportedInputFormat "[VO_TDFXVID] 不支持的输入格式 0x%x。\n" -#define MSGTR_LIBVO_TDFXVID_OverlaySetupFailed "[VO_TDFXVID] 覆盖设置失败。\n" -#define MSGTR_LIBVO_TDFXVID_OverlayOnFailed "[VO_TDFXVID] 覆盖打开失败。\n" -#define MSGTR_LIBVO_TDFXVID_OverlayReady "[VO_TDFXVID] 覆盖准备完成: %d(%d) x %d @ %d => %d(%d) x %d @ %d。\n" -#define MSGTR_LIBVO_TDFXVID_TextureBlitReady "[VO_TDFXVID] 纹理 blit 准备完成: %d(%d) x %d @ %d => %d(%d) x %d @ %d。\n" -#define MSGTR_LIBVO_TDFXVID_OverlayOffFailed "[VO_TDFXVID] 覆盖关闭失败\n" -#define MSGTR_LIBVO_TDFXVID_CantOpen "[VO_TDFXVID] 打不开 %s: %s。\n" -#define MSGTR_LIBVO_TDFXVID_CantGetCurrentCfg "[VO_TDFXVID] 没能获得当前配置: %s。\n" -#define MSGTR_LIBVO_TDFXVID_MemmapFailed "[VO_TDFXVID] Memmap 失败 !!!!!\n" -#define MSGTR_LIBVO_TDFXVID_GetImageTodo "获得图像格式 todo。\n" -#define MSGTR_LIBVO_TDFXVID_AgpMoveFailed "[VO_TDFXVID] AGP move 失败。\n" +#define MSGTR_LIBVO_TDFXVID_OverlaySetupFailed "[VO_TDFXVID] 覆盖模式设置失败。\n" +#define MSGTR_LIBVO_TDFXVID_OverlayOnFailed "[VO_TDFXVID] 覆盖模式打开失败。\n" +#define MSGTR_LIBVO_TDFXVID_OverlayReady "[VO_TDFXVID] 覆盖模式准备完成:%d(%d) x %d @ %d => %d(%d) x %d @ %d。\n" +#define MSGTR_LIBVO_TDFXVID_TextureBlitReady "[VO_TDFXVID] 纹理位块传输准备完毕:%d(%d) x %d @ %d => %d(%d) x %d @ %d。\n" +#define MSGTR_LIBVO_TDFXVID_OverlayOffFailed "[VO_TDFXVID] 覆盖模式关闭失败\n" +#define MSGTR_LIBVO_TDFXVID_CantOpen "[VO_TDFXVID] 无法打开 %s:%s。\n" +#define MSGTR_LIBVO_TDFXVID_CantGetCurrentCfg "[VO_TDFXVID] 无法获得当前配置:%s。\n" +#define MSGTR_LIBVO_TDFXVID_MemmapFailed "[VO_TDFXVID] Memmap 失败!!!\n" +#define MSGTR_LIBVO_TDFXVID_GetImageTodo "获得图像 todo。\n" +#define MSGTR_LIBVO_TDFXVID_AgpMoveFailed "[VO_TDFXVID] AGP 移动操作失败。\n" #define MSGTR_LIBVO_TDFXVID_SetYuvFailed "[VO_TDFXVID] 设置 YUV 失败。\n" -#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnYPlane "[VO_TDFXVID] AGP move 操作 Y plane 失败。\n" -#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnUPlane "[VO_TDFXVID] AGP move 操作 U plane 失败。\n" -#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnVPlane "[VO_TDFXVID] AGP move 操作 V plane 失败。\n" -#define MSGTR_LIBVO_TDFXVID_UnknownFormat "[VO_TDFXVID] 未知格式 0x%x。\n" +#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnYPlane "[VO_TDFXVID] Y 平面的 AGP 移动操作失败。\n" +#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnUPlane "[VO_TDFXVID] U 平面的 AGP 移动操作失败。\n" +#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnVPlane "[VO_TDFXVID] V 平面的 AGP 移动操作失败。\n" +#define MSGTR_LIBVO_TDFXVID_UnknownFormat "[VO_TDFXVID] 未知格式:0x%x。\n" // vo_tdfxfb.c -#define MSGTR_LIBVO_TDFXFB_CantOpen "[VO_TDFXFB] 打不开 %s: %s。\n" -#define MSGTR_LIBVO_TDFXFB_ProblemWithFbitgetFscreenInfo "[VO_TDFXFB] FBITGET_FSCREENINFO ioctl 出错: %s。\n" -#define MSGTR_LIBVO_TDFXFB_ProblemWithFbitgetVscreenInfo "[VO_TDFXFB] FBITGET_VSCREENINFO ioctl 出错: %s。\n" -#define MSGTR_LIBVO_TDFXFB_ThisDriverOnlySupports "[VO_TDFXFB] 此驱动仅支持 3Dfx Banshee, Voodoo3 和 Voodoo 5。\n" -#define MSGTR_LIBVO_TDFXFB_OutputIsNotSupported "[VO_TDFXFB] %d bpp 输出不支持。\n" -#define MSGTR_LIBVO_TDFXFB_CouldntMapMemoryAreas "[VO_TDFXFB] 无法映射内存区域: %s。\n" -#define MSGTR_LIBVO_TDFXFB_BppOutputIsNotSupported "[VO_TDFXFB] %d bpp 输出不支持 (应该永远不会发生)。\n" -#define MSGTR_LIBVO_TDFXFB_SomethingIsWrongWithControl "[VO_TDFXFB] Eik! control() 出错。\n" +#define MSGTR_LIBVO_TDFXFB_CantOpen "[VO_TDFXFB] 无法打开 %s:%s。\n" +#define MSGTR_LIBVO_TDFXFB_ProblemWithFbitgetFscreenInfo "[VO_TDFXFB] FBITGET_FSCREENINFO ioctl 故障:%s。\n" +#define MSGTR_LIBVO_TDFXFB_ProblemWithFbitgetVscreenInfo "[VO_TDFXFB] FBITGET_VSCREENINFO ioctl 故障:%s。\n" +#define MSGTR_LIBVO_TDFXFB_ThisDriverOnlySupports "[VO_TDFXFB] 该驱动仅支持 3Dfx Banshee、Voodoo3 和 Voodoo 5。\n" +#define MSGTR_LIBVO_TDFXFB_OutputIsNotSupported "[VO_TDFXFB] 不支持 %d bpp 输出。\n" +#define MSGTR_LIBVO_TDFXFB_CouldntMapMemoryAreas "[VO_TDFXFB] 无法映射内存区域:%s。\n" +#define MSGTR_LIBVO_TDFXFB_BppOutputIsNotSupported "[VO_TDFXFB] 不支持 %d bpp 输出(这不应该出现)。\n" +#define MSGTR_LIBVO_TDFXFB_SomethingIsWrongWithControl "[VO_TDFXFB] 呃!control() 有点问题。\n" #define MSGTR_LIBVO_TDFXFB_NotEnoughVideoMemoryToPlay "[VO_TDFXFB] 没有足够的显存播放此片,尝试较低的分辨率。\n" -#define MSGTR_LIBVO_TDFXFB_ScreenIs "[VO_TDFXFB] 屏幕 %dx%d 色深 %d bpp, 输入 %dx%d 色深 %d bpp, 输出 %dx%d。\n" +#define MSGTR_LIBVO_TDFXFB_ScreenIs "[VO_TDFXFB] 屏幕 %dx%d 色深 %d bpp,输入 %dx%d 色深 %d bpp,输出 %dx%d。\n" // vo_tga.c -#define MSGTR_LIBVO_TGA_UnknownSubdevice "[VO_TGA] 未知子设备: %s。\n" +#define MSGTR_LIBVO_TGA_UnknownSubdevice "[VO_TGA] 未知子设备:%s。\n" // vo_vesa.c -#define MSGTR_LIBVO_VESA_FatalErrorOccurred "[VO_VESA] 发生致命错误! 不能继续。\n" +#define MSGTR_LIBVO_VESA_FatalErrorOccurred "[VO_VESA] 发生致命错误!无法继续。\n" #define MSGTR_LIBVO_VESA_UnknownSubdevice "[VO_VESA] 未知子设备:‘%s’。\n" -#define MSGTR_LIBVO_VESA_YouHaveTooLittleVideoMemory "[VO_VESA] 显存太小不能支持这个模式:\n[VO_VESA] 需要: %08lX 可用: %08lX。\n" -#define MSGTR_LIBVO_VESA_YouHaveToSpecifyTheCapabilitiesOfTheMonitor "[VO_VESA] 你需要设置显示器的兼容性。不要改变刷新率。\n" -#define MSGTR_LIBVO_VESA_UnableToFitTheMode "[VO_VESA] 模式超出显示器的限制。不要改变刷新率。\n" -#define MSGTR_LIBVO_VESA_DetectedInternalFatalError "[VO_VESA] 检测到内部致命错误: 初始化在预初始化前被调用。\n" +#define MSGTR_LIBVO_VESA_YouHaveTooLittleVideoMemory "[VO_VESA] 显存太小无法支持该模式:\n[VO_VESA] 需要:%08lX 可用:%08lX。\n" +#define MSGTR_LIBVO_VESA_YouHaveToSpecifyTheCapabilitiesOfTheMonitor "[VO_VESA] 需要指定显示器的性能。未改变刷新率。\n" +#define MSGTR_LIBVO_VESA_UnableToFitTheMode "[VO_VESA] 模式超出显示器的限制。未改变刷新率。\n" +#define MSGTR_LIBVO_VESA_DetectedInternalFatalError "[VO_VESA] 检测到内部致命错误:init 在 preinit 前被调用。\n" #define MSGTR_LIBVO_VESA_SwitchFlipIsNotSupported "[VO_VESA] -flip 命令不支持。\n" -#define MSGTR_LIBVO_VESA_PossibleReasonNoVbe2BiosFound "[VO_VESA] 可能的原因: 找不到 VBE2 BIOS。\n" -#define MSGTR_LIBVO_VESA_FoundVesaVbeBiosVersion "[VO_VESA] 找到 VESA VBE BIOS 版本 %x.%x 修订版本: %x。\n" -#define MSGTR_LIBVO_VESA_VideoMemory "[VO_VESA] 显存: %u Kb。\n" -#define MSGTR_LIBVO_VESA_Capabilites "[VO_VESA] VESA 兼容性: %s %s %s %s %s。\n" -#define MSGTR_LIBVO_VESA_BelowWillBePrintedOemInfo "[VO_VESA] !!! 下面显示 OEM 信息 !!!\n" -#define MSGTR_LIBVO_VESA_YouShouldSee5OemRelatedLines "[VO_VESA] 你应该看到 5 行 OEM 相关内容; 否则, 你的 vm86 有问题。\n" +#define MSGTR_LIBVO_VESA_PossibleReasonNoVbe2BiosFound "[VO_VESA] 可能的原因:未找到 VBE2 BIOS。\n" +#define MSGTR_LIBVO_VESA_FoundVesaVbeBiosVersion "[VO_VESA] 找到 VESA VBE BIOS 版本 %x.%x 修订版本:%x。\n" +#define MSGTR_LIBVO_VESA_VideoMemory "[VO_VESA] 显存:%u Kb。\n" +#define MSGTR_LIBVO_VESA_Capabilites "[VO_VESA] VESA 性能:%s %s %s %s %s。\n" +#define MSGTR_LIBVO_VESA_BelowWillBePrintedOemInfo "[VO_VESA] !!!下面将显示 OEM 信息!!!\n" +#define MSGTR_LIBVO_VESA_YouShouldSee5OemRelatedLines "[VO_VESA] 应该看到 5 行 OEM 的相关内容;否则说明 vm86 有问题。\n" #define MSGTR_LIBVO_VESA_OemInfo "[VO_VESA] OEM 信息: %s。\n" #define MSGTR_LIBVO_VESA_OemRevision "[VO_VESA] OEM 版本: %x。\n" #define MSGTR_LIBVO_VESA_OemVendor "[VO_VESA] OEM 发行商: %s。\n" @@ -1145,7 +1145,7 @@ static const char help_text[]= #define MSGTR_AO_TryingPreferredAudioDriver "尝试使用偏好的音频驱动‘%.*s’,选项设为‘%s’\n" #define MSGTR_AO_NoSuchDriver "无此音频驱动‘%.*s’\n" #define MSGTR_AO_FailedInit "初始化音频驱动失败‘%s’\n" -#define MSGTR_AO_TryingEveryKnown "尝试每个已知的音频驱动……\n" +#define MSGTR_AO_TryingEveryKnown "尝试每个已知的音频驱动...\n" // ao_oss.c #define MSGTR_AO_OSS_CantOpenMixer "[AO OSS] 音频设置: 无法打开混音器设备 %s: %s\n" @@ -1519,7 +1519,7 @@ static const char help_text[]= // demux_xmms.c #define MSGTR_MPDEMUX_XMMS_FoundPlugin "找到插件: %s (%s)。\n" #define MSGTR_MPDEMUX_XMMS_ClosingPlugin "关闭插件: %s。\n" -#define MSGTR_MPDEMUX_XMMS_WaitForStart "等待XMMS插件开始播放‘%s’……\n" +#define MSGTR_MPDEMUX_XMMS_WaitForStart "等待XMMS插件开始播放‘%s’...\n" // ========================== LIBMENU =================================== diff --git a/libao2/ao_alsa.c b/libao2/ao_alsa.c index d71600e183..92e827ea7e 100644 --- a/libao2/ao_alsa.c +++ b/libao2/ao_alsa.c @@ -210,6 +210,7 @@ static int control(int cmd, void *arg) if ((err = snd_mixer_selem_set_playback_volume(elem, SND_MIXER_SCHN_FRONT_LEFT, set_vol)) < 0) { mp_tmsg(MSGT_AO,MSGL_ERR,"[AO_ALSA] Error setting left channel, %s\n", snd_strerror(err)); + snd_mixer_close(handle); return CONTROL_ERROR; } mp_msg(MSGT_AO,MSGL_DBG2,"left=%li, ", set_vol); @@ -219,6 +220,7 @@ static int control(int cmd, void *arg) if ((err = snd_mixer_selem_set_playback_volume(elem, SND_MIXER_SCHN_FRONT_RIGHT, set_vol)) < 0) { mp_tmsg(MSGT_AO,MSGL_ERR,"[AO_ALSA] Error setting right channel, %s\n", snd_strerror(err)); + snd_mixer_close(handle); return CONTROL_ERROR; } mp_msg(MSGT_AO,MSGL_DBG2,"right=%li, pmin=%li, pmax=%li, mult=%f\n", diff --git a/libao2/ao_coreaudio.c b/libao2/ao_coreaudio.c index ad17773fbd..130eee8f97 100644 --- a/libao2/ao_coreaudio.c +++ b/libao2/ao_coreaudio.c @@ -115,7 +115,8 @@ static int write_buffer(unsigned char* data, int len){ static int read_buffer(unsigned char* data,int len){ int buffered = av_fifo_size(ao->buffer); if (len > buffered) len = buffered; - return av_fifo_generic_read(ao->buffer, data, len, NULL); + av_fifo_generic_read(ao->buffer, data, len, NULL); + return len; } OSStatus theRenderProc(void *inRefCon, AudioUnitRenderActionFlags *inActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, UInt32 inNumFrames, AudioBufferList *ioData) diff --git a/libao2/ao_sdl.c b/libao2/ao_sdl.c index b5c56d9f33..47a05ef2fa 100644 --- a/libao2/ao_sdl.c +++ b/libao2/ao_sdl.c @@ -82,10 +82,11 @@ static int read_buffer(unsigned char* data,int len){ int buffered = av_fifo_size(buffer); if (len > buffered) len = buffered; #ifdef USE_SDL_INTERNAL_MIXER - return av_fifo_generic_read(buffer, data, len, mix_audio); + av_fifo_generic_read(buffer, data, len, mix_audio); #else - return av_fifo_generic_read(buffer, data, len, NULL); + av_fifo_generic_read(buffer, data, len, NULL); #endif + return len; } // end ring buffer stuff diff --git a/libmpcodecs/img_format.c b/libmpcodecs/img_format.c index 789e473f84..4704cf2f6a 100644 --- a/libmpcodecs/img_format.c +++ b/libmpcodecs/img_format.c @@ -15,6 +15,8 @@ const char *vo_format_name(int format) case IMGFMT_RGB16: return "RGB 16-bit"; case IMGFMT_RGB24: return "RGB 24-bit"; // case IMGFMT_RGB32: return "RGB 32-bit"; + case IMGFMT_RGB48LE: return "RGB 48-bit LE"; + case IMGFMT_RGB48BE: return "RGB 48-bit BE"; case IMGFMT_BGR1: return "BGR 1-bit"; case IMGFMT_BGR4: return "BGR 4-bit"; case IMGFMT_BG4B: return "BGR 4-bit per byte"; diff --git a/libmpcodecs/img_format.h b/libmpcodecs/img_format.h index 559501fb89..89efb1d6cb 100644 --- a/libmpcodecs/img_format.h +++ b/libmpcodecs/img_format.h @@ -13,6 +13,8 @@ #define IMGFMT_RGB16 (IMGFMT_RGB|16) #define IMGFMT_RGB24 (IMGFMT_RGB|24) #define IMGFMT_RGB32 (IMGFMT_RGB|32) +#define IMGFMT_RGB48LE (IMGFMT_RGB|48) +#define IMGFMT_RGB48BE (IMGFMT_RGB|48|128) #define IMGFMT_BGR_MASK 0xFFFFFF00 #define IMGFMT_BGR (('B'<<24)|('G'<<16)|('R'<<8)) diff --git a/libmpcodecs/ve_x264.c b/libmpcodecs/ve_x264.c index 51da237169..3a909cdfb7 100644 --- a/libmpcodecs/ve_x264.c +++ b/libmpcodecs/ve_x264.c @@ -218,9 +218,11 @@ static int config(struct vf_instance* vf, int width, int height, int d_width, in static int control(struct vf_instance* vf, int request, void *data) { h264_module_t *mod=(h264_module_t*)vf->priv; + int count = 256; // giant HACK, x264_encoder_encode may incorrectly return 0 + // when threads > 1 and delayed frames pending switch(request){ case VFCTRL_FLUSH_FRAMES: - if(param.i_bframe) + while(encode_frame(vf, NULL) == 0 && --count); while(encode_frame(vf, NULL) > 0); return CONTROL_TRUE; default: diff --git a/libmpcodecs/vf_expand.c b/libmpcodecs/vf_expand.c index dc3928b0da..7d91e3a236 100644 --- a/libmpcodecs/vf_expand.c +++ b/libmpcodecs/vf_expand.c @@ -15,6 +15,7 @@ #include "vf.h" #include "libvo/fastmemcpy.h" +#include "libavutil/avutil.h" #ifdef OSD_SUPPORT #include "libvo/sub.h" @@ -24,8 +25,6 @@ #include "m_option.h" #include "m_struct.h" -#define MAX(a,b) ((a) > (b) ? (a) : (b)) - static struct vf_priv_s { int exp_w,exp_h; int exp_x,exp_y; @@ -255,8 +254,8 @@ static void get_image(struct vf_instance* vf, mp_image_t *mpi){ // try full DR ! mpi->priv=vf->dmpi=vf_get_image(vf->next,mpi->imgfmt, mpi->type, mpi->flags, - MAX(vf->priv->exp_w, mpi->width +vf->priv->exp_x), - MAX(vf->priv->exp_h, mpi->height+vf->priv->exp_y)); + FFMAX(vf->priv->exp_w, mpi->width +vf->priv->exp_x), + FFMAX(vf->priv->exp_h, mpi->height+vf->priv->exp_y)); #if 1 if((vf->dmpi->flags & MP_IMGFLAG_DRAW_CALLBACK) && !(vf->dmpi->flags & MP_IMGFLAG_DIRECT)){ @@ -298,8 +297,8 @@ static void start_slice(struct vf_instance* vf, mp_image_t *mpi){ mpi->priv=vf->dmpi=vf_get_image(vf->next,mpi->imgfmt, // MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE | MP_IMGFLAG_PREFER_ALIGNED_STRIDE, MP_IMGTYPE_TEMP, mpi->flags, - MAX(vf->priv->exp_w, mpi->width +vf->priv->exp_x), - MAX(vf->priv->exp_h, mpi->height+vf->priv->exp_y)); + FFMAX(vf->priv->exp_w, mpi->width +vf->priv->exp_x), + FFMAX(vf->priv->exp_h, mpi->height+vf->priv->exp_y)); if(!(vf->dmpi->flags&MP_IMGFLAG_DRAW_CALLBACK)) mp_tmsg(MSGT_VFILTER, MSGL_WARN, "WARNING! Next filter doesn't support SLICES, get ready for sig11...\n"); // shouldn't happen. vf->priv->first_slice = 1; diff --git a/libmpcodecs/vf_scale.c b/libmpcodecs/vf_scale.c index 2590481eee..ab931c8080 100644 --- a/libmpcodecs/vf_scale.c +++ b/libmpcodecs/vf_scale.c @@ -473,6 +473,8 @@ static int query_format(struct vf_instance* vf, unsigned int fmt){ case IMGFMT_RGB8: case IMGFMT_BG4B: case IMGFMT_RG4B: + case IMGFMT_RGB48LE: + case IMGFMT_RGB48BE: { unsigned int best=find_best_out(vf); int flags; diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index 1c25edf160..344a71d615 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -422,6 +422,7 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){ AVFormatContext *avfc; AVFormatParameters ap; const AVOption *opt; + AVMetadataTag *t = NULL; lavf_priv_t *priv= demuxer->priv; int i; char mp_filename[256]="mp:"; @@ -477,20 +478,17 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){ return NULL; } - if(avfc->title [0]) demux_info_add(demuxer, "title" , avfc->title ); - if(avfc->author [0]) demux_info_add(demuxer, "author" , avfc->author ); - if(avfc->copyright[0]) demux_info_add(demuxer, "copyright", avfc->copyright); - if(avfc->comment [0]) demux_info_add(demuxer, "comments" , avfc->comment ); - if(avfc->album [0]) demux_info_add(demuxer, "album" , avfc->album ); -// if(avfc->year ) demux_info_add(demuxer, "year" , avfc->year ); -// if(avfc->track ) demux_info_add(demuxer, "track" , avfc->track ); - if(avfc->genre [0]) demux_info_add(demuxer, "genre" , avfc->genre ); + /* Add metadata. */ + av_metadata_conv(avfc, NULL, avfc->iformat->metadata_conv); + while((t = av_metadata_get(avfc->metadata, "", t, AV_METADATA_IGNORE_SUFFIX))) + demux_info_add(demuxer, t->key, t->value); for(i=0; i < avfc->nb_chapters; i++) { AVChapter *c = avfc->chapters[i]; uint64_t start = av_rescale_q(c->start, c->time_base, (AVRational){1,1000}); uint64_t end = av_rescale_q(c->end, c->time_base, (AVRational){1,1000}); - demuxer_add_chapter(demuxer, c->title, start, end); + t = av_metadata_get(c->metadata, "title", NULL, 0); + demuxer_add_chapter(demuxer, t ? t->value : NULL, start, end); } if(avfc->nb_programs) { @@ -512,7 +510,8 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){ p = start; do { AVProgram *program = avfc->programs[p]; - mp_msg(MSGT_HEADER,MSGL_INFO,"LAVF: Program %d %s\n", program->id, (program->name ? program->name : "")); + 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; inb_stream_indexes; i++) handle_stream(demuxer, avfc, program->stream_index[i]); if(!priv->cur_program && (demuxer->video->sh || demuxer->audio->sh)) diff --git a/libmpdemux/demux_mf.c b/libmpdemux/demux_mf.c index c7ac81d56f..9320c544ff 100644 --- a/libmpdemux/demux_mf.c +++ b/libmpdemux/demux_mf.c @@ -41,7 +41,7 @@ static void demux_seek_mf(demuxer_t *demuxer,float rel_seek_secs,float audio_del else newpos+=rel_seek_secs * sh_video->fps; if ( newpos < 0 ) newpos=0; if( newpos >= mf->nr_of_files) newpos=mf->nr_of_files - 1; - mf->curr_frame=newpos; + demuxer->filepos=mf->curr_frame=newpos; } // return value: @@ -71,7 +71,7 @@ static int demux_mf_fill_buffer(demuxer_t *demuxer, demux_stream_t *ds){ } fclose( f ); - mf->curr_frame++; + demuxer->filepos=mf->curr_frame++; return 1; } @@ -82,6 +82,7 @@ static const struct { uint32_t format; } type2format[] = { { "bmp", mmioFOURCC('b', 'm', 'p', ' ') }, + { "dpx", mmioFOURCC('d', 'p', 'x', ' ') }, { "jpeg", mmioFOURCC('I', 'J', 'P', 'G') }, { "jpg", mmioFOURCC('I', 'J', 'P', 'G') }, { "jls", mmioFOURCC('I', 'J', 'P', 'G') }, @@ -125,7 +126,7 @@ static demuxer_t* demux_open_mf(demuxer_t* demuxer){ mp_msg(MSGT_DEMUX, MSGL_INFO, "[demux_mf] file type was not set! trying 'type=%s'...\n", mf_type); } - mf->curr_frame=0; + demuxer->filepos=mf->curr_frame=0; demuxer->movi_start = 0; demuxer->movi_end = mf->nr_of_files - 1; diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c index 9c984a11a9..27e564578e 100644 --- a/libmpdemux/demux_mkv.c +++ b/libmpdemux/demux_mkv.c @@ -1798,6 +1798,8 @@ demux_mkv_open_audio (demuxer_t *demuxer, mkv_track_t *track, int aid) track->a_formattag = mmioFOURCC('Q', 'D', 'M', '2'); else if (!strcmp(track->codec_id, MKV_A_WAVPACK)) track->a_formattag = mmioFOURCC('W', 'V', 'P', 'K'); + else if (!strcmp(track->codec_id, MKV_A_TRUEHD)) + track->a_formattag = mmioFOURCC('T', 'R', 'H', 'D'); else if (!strcmp(track->codec_id, MKV_A_FLAC)) { if (track->private_data == NULL || track->private_size == 0) @@ -2037,7 +2039,8 @@ demux_mkv_open_audio (demuxer_t *demuxer, mkv_track_t *track, int aid) dp->flags = 0; ds_add_packet (demuxer->audio, dp); } - else if (track->a_formattag == mmioFOURCC('W', 'V', 'P', 'K')) + else if (track->a_formattag == mmioFOURCC('W', 'V', 'P', 'K') || + track->a_formattag == mmioFOURCC('T', 'R', 'H', 'D')) { /* do nothing, still works */ } else if (!track->ms_compat || (track->private_size < sizeof(WAVEFORMATEX))) { diff --git a/libmpdemux/demux_pva.c b/libmpdemux/demux_pva.c index ee9b4158bd..39fad12184 100644 --- a/libmpdemux/demux_pva.c +++ b/libmpdemux/demux_pva.c @@ -439,7 +439,7 @@ int pva_get_payload(demuxer_t * d,pva_payload_t * payload) buffer[255]=stream_read_char(d->stream); pes_head_len=stream_read_char(d->stream); stream_read(d->stream,buffer,pes_head_len); - if(!buffer[255]&0x80) //PES header does not contain PTS. + if(!(buffer[255]&0x80)) //PES header does not contain PTS. { mp_msg(MSGT_DEMUX,MSGL_V,"Audio PES packet does not contain PTS. (pes_head_len=%d)\n",pes_head_len); payload->pts=priv->last_audio_pts; diff --git a/libmpdemux/demux_rawaudio.c b/libmpdemux/demux_rawaudio.c index 769f9be519..0f78e0a6df 100644 --- a/libmpdemux/demux_rawaudio.c +++ b/libmpdemux/demux_rawaudio.c @@ -112,7 +112,6 @@ static void demux_rawaudio_seek(demuxer_t *demuxer,float rel_seek_secs,float aud // printf("demux_rawaudio: streamtell=%d\n",(int)stream_tell(demuxer->stream)); } - const demuxer_desc_t demuxer_desc_rawaudio = { "Raw audio demuxer", "rawaudio", @@ -126,5 +125,4 @@ const demuxer_desc_t demuxer_desc_rawaudio = { demux_rawaudio_open, NULL, demux_rawaudio_seek, - NULL }; diff --git a/libmpdemux/demux_rtp.cpp b/libmpdemux/demux_rtp.cpp index afe550b284..652be80a2b 100644 --- a/libmpdemux/demux_rtp.cpp +++ b/libmpdemux/demux_rtp.cpp @@ -118,6 +118,9 @@ int rtsp_transport_tcp = 0; #endif extern int rtsp_port; +#ifdef CONFIG_LIBAVCODEC +extern AVCodecContext *avcctx; +#endif extern "C" demuxer_t* demux_open_rtp(demuxer_t* demuxer) { struct MPOpts *opts = demuxer->opts; @@ -390,6 +393,9 @@ extern "C" void demux_close_rtp(demuxer_t* demuxer) { delete rtpState->videoBufferQueue; delete rtpState->sdpDescription; delete rtpState; +#ifdef CONFIG_LIBAVCODEC + av_freep(&avcctx); +#endif env->reclaim(); delete scheduler; } @@ -563,7 +569,7 @@ static demux_packet_t* getBuffer(demuxer_t* demuxer, demux_stream_t* ds, } if (headersize == 3 && h264parserctx) { // h264 consumed = h264parserctx->parser->parser_parse(h264parserctx, - NULL, + avcctx, &poutbuf, &poutbuf_size, dp->buffer, dp->len); diff --git a/libmpdemux/demux_rtp_codec.cpp b/libmpdemux/demux_rtp_codec.cpp index 839da403ca..32bfc43647 100644 --- a/libmpdemux/demux_rtp_codec.cpp +++ b/libmpdemux/demux_rtp_codec.cpp @@ -29,6 +29,7 @@ extern "C" { #ifdef CONFIG_LIBAVCODEC AVCodecParserContext * h264parserctx; +AVCodecContext *avcctx; #endif // Copied from vlc @@ -137,6 +138,7 @@ void rtpCodecInitialize_video(demuxer_t* demuxer, #ifdef CONFIG_LIBAVCODEC avcodec_register_all(); h264parserctx = av_parser_init(CODEC_ID_H264); + avcctx = avcodec_alloc_context(); #endif needVideoFrameRate(demuxer, subsession); } else if (strcmp(subsession->codecName(), "H261") == 0) { @@ -181,6 +183,8 @@ void rtpCodecInitialize_video(demuxer_t* demuxer, bih->biCompression = sh_video->format = fourcc; bih->biWidth = qtRTPSource->qtState.width; bih->biHeight = qtRTPSource->qtState.height; + if (qtRTPSource->qtState.sdAtomSize > 83) + bih->biBitCount = qtRTPSource->qtState.sdAtom[83]; uint8_t *pos = (uint8_t*)qtRTPSource->qtState.sdAtom + 86; uint8_t *endpos = (uint8_t*)qtRTPSource->qtState.sdAtom + qtRTPSource->qtState.sdAtomSize; @@ -315,6 +319,10 @@ void rtpCodecInitialize_audio(demuxer_t* demuxer, wf->wFormatTag = sh_audio->format = fourcc; wf->nChannels = numChannels; + if (qtRTPSource->qtState.sdAtomSize > 33) { + wf->wBitsPerSample = qtRTPSource->qtState.sdAtom[27]; + wf->nSamplesPerSec = qtRTPSource->qtState.sdAtom[32]<<8|qtRTPSource->qtState.sdAtom[33]; + } uint8_t *pos = (uint8_t*)qtRTPSource->qtState.sdAtom + 52; uint8_t *endpos = (uint8_t*)qtRTPSource->qtState.sdAtom + qtRTPSource->qtState.sdAtomSize; diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c index c213c34a35..938793bdc4 100644 --- a/libmpdemux/demux_ts.c +++ b/libmpdemux/demux_ts.c @@ -77,6 +77,7 @@ typedef enum AUDIO_DTS = 0x2001, AUDIO_LPCM_BE = 0x10001, AUDIO_AAC = mmioFOURCC('M', 'P', '4', 'A'), + AUDIO_TRUEHD = mmioFOURCC('T', 'R', 'H', 'D'), SPU_DVD = 0x3000000, SPU_DVB = 0x3000001, PES_PRIVATE1 = 0xBD00000, @@ -244,7 +245,7 @@ typedef struct { } TS_pids_t; -#define IS_AUDIO(x) (((x) == AUDIO_MP2) || ((x) == AUDIO_A52) || ((x) == AUDIO_LPCM_BE) || ((x) == AUDIO_AAC) || ((x) == AUDIO_DTS)) +#define IS_AUDIO(x) (((x) == AUDIO_MP2) || ((x) == AUDIO_A52) || ((x) == AUDIO_LPCM_BE) || ((x) == AUDIO_AAC) || ((x) == AUDIO_DTS) || ((x) == AUDIO_TRUEHD)) #define IS_VIDEO(x) (((x) == VIDEO_MPEG1) || ((x) == VIDEO_MPEG2) || ((x) == VIDEO_MPEG4) || ((x) == VIDEO_H264) || ((x) == VIDEO_AVC) || ((x) == VIDEO_VC1)) static int ts_parse(demuxer_t *demuxer, ES_stream_t *es, unsigned char *packet, int probe); @@ -871,6 +872,8 @@ static off_t ts_detect_streams(demuxer_t *demuxer, tsdemux_init_t *param) mp_msg(MSGT_DEMUXER, MSGL_INFO, "AUDIO LPCM(pid=%d)", param->apid); else if(param->atype == AUDIO_AAC) mp_msg(MSGT_DEMUXER, MSGL_INFO, "AUDIO AAC(pid=%d)", param->apid); + else if(param->atype == AUDIO_TRUEHD) + mp_msg(MSGT_DEMUXER, MSGL_INFO, "AUDIO TRUEHD(pid=%d)", param->apid); else { audio_found = 0; @@ -1412,6 +1415,8 @@ static int pes_parse2(unsigned char *buf, uint16_t packet_len, ES_stream_t *es, int ssid = parse_pes_extension_fields(p, pkt_len); if((audio_substream_id!=-1) && (ssid != audio_substream_id)) return 0; + if(ssid == 0x72) + es->type = type_from_pmt = AUDIO_TRUEHD; } p += header_len + 9; diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index 349131f12b..f4e5351290 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -240,7 +240,7 @@ demuxer_t *new_demuxer(struct MPOpts *opts, stream_t *stream, int type, d->movi_end = stream->end_pos; d->seekable = 1; d->synced = 0; - d->filepos = 0; + d->filepos = -1; d->audio = new_demuxer_stream(d, a_id); d->video = new_demuxer_stream(d, v_id); d->sub = new_demuxer_stream(d, s_id); @@ -1276,8 +1276,9 @@ int demuxer_get_percent_pos(demuxer_t *demuxer) int res = demux_control(demuxer, DEMUXER_CTRL_GET_PERCENT_POS, &ans); int len = (demuxer->movi_end - demuxer->movi_start) / 100; if (res <= 0) { + off_t pos = demuxer->filepos > 0 ? demuxer->filepos : stream_tell(demuxer->stream); if (len > 0) - ans = (demuxer->filepos - demuxer->movi_start) / len; + ans = (pos - demuxer->movi_start) / len; else ans = 0; } diff --git a/libmpdemux/matroska.h b/libmpdemux/matroska.h index 3e4a404f38..3e569453c2 100644 --- a/libmpdemux/matroska.h +++ b/libmpdemux/matroska.h @@ -50,6 +50,7 @@ #define MKV_A_QDMC2 "A_QUICKTIME/QDM2" #define MKV_A_FLAC "A_FLAC" #define MKV_A_WAVPACK "A_WAVPACK4" +#define MKV_A_TRUEHD "A_TRUEHD" #define MKV_V_MSCOMP "V_MS/VFW/FOURCC" #define MKV_V_REALV10 "V_REAL/RV10" diff --git a/libmpdemux/mp_taglists.c b/libmpdemux/mp_taglists.c index e1b6e90454..7874721987 100644 --- a/libmpdemux/mp_taglists.c +++ b/libmpdemux/mp_taglists.c @@ -48,6 +48,7 @@ static const struct mp_AVCodecTag mp_wav_tags[] = { { CODEC_ID_ROQ_DPCM, MKTAG('R', 'o', 'Q', 'A')}, { CODEC_ID_SHORTEN, MKTAG('s', 'h', 'r', 'n')}, { 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_WAVPACK, MKTAG('W', 'V', 'P', 'K')}, { CODEC_ID_WESTWOOD_SND1, MKTAG('S', 'N', 'D', '1')}, diff --git a/libmpdemux/mpeg_hdr.c b/libmpdemux/mpeg_hdr.c index bb1e416875..c07cd6bf16 100644 --- a/libmpdemux/mpeg_hdr.c +++ b/libmpdemux/mpeg_hdr.c @@ -303,6 +303,11 @@ static unsigned int read_golomb(unsigned char *buffer, unsigned int *init) return v2; } +inline static int read_golomb_s(unsigned char *buffer, unsigned int *init) +{ + unsigned int v = read_golomb(buffer, init); + return (v & 1) ? ((v + 1) >> 1) : -(v >> 1); +} static int h264_parse_vui(mp_mpeg_header_t * picture, unsigned char * buf, unsigned int n) { @@ -361,7 +366,7 @@ static int mp_unescape03(unsigned char *buf, int len); int h264_parse_sps(mp_mpeg_header_t * picture, unsigned char * buf, int len) { - unsigned int n = 0, v, i, mbh; + unsigned int n = 0, v, i, k, mbh; int frame_mbs_only; len = mp_unescape03(buf, len); @@ -376,7 +381,15 @@ int h264_parse_sps(mp_mpeg_header_t * picture, unsigned char * buf, int len) read_golomb(buf, &n); n++; if(getbits(buf, n++, 1)){ - //FIXME scaling matrix + for(i = 0; i < 8; i++) + { // scaling list is skipped for now + if(getbits(buf, n++, 1)) + { + v = 8; + for(k = (i < 6 ? 16 : 64); k && v; k--) + v = (v + read_golomb_s(buf, &n)) & 255; + } + } } } read_golomb(buf, &n); diff --git a/mencoder.c b/mencoder.c index 47b0efb8a1..de862fac48 100644 --- a/mencoder.c +++ b/mencoder.c @@ -77,13 +77,8 @@ #include "stream/stream_dvd.h" #endif -#ifdef CONFIG_DVDNAV #include "stream/stream_dvdnav.h" -#endif - -#ifdef CONFIG_LIBAVCODEC #include "libavcodec/avcodec.h" -#endif #include "libmpcodecs/ae.h" #include "options.h" @@ -1419,7 +1414,8 @@ if(sh_audio && !demuxer2){ { float t=(GetTimerMS()-timer_start)*0.001f; float len=(demuxer->movi_end-demuxer->movi_start); - float p=len>1000 ? (float)(demuxer->filepos-demuxer->movi_start) / len : + off_t pos = demuxer->filepos >= 0 ? demuxer->filepos : stream_tell(demuxer->stream); + float p=len>1000 ? (float)(pos-demuxer->movi_start) / len : (demuxer_get_percent_pos(demuxer) / 100.0); #if 0 if(!len && sh_audio && sh_audio->audio.dwLength>100){ diff --git a/mp3lib/decode_mmx.c b/mp3lib/decode_mmx.c index 67a7cdb510..7afcbd83c1 100644 --- a/mp3lib/decode_mmx.c +++ b/mp3lib/decode_mmx.c @@ -219,7 +219,7 @@ int synth_1to1_MMX(real *bandPtr, int channel, short *samples) //printf("DEBUG: channel %d, bo %d, off %d\n", channel, bo, 16 - bo1); __asm__ volatile( ASMALIGN(4) -".L03:\n\t" +"0:\n\t" "movq (%1),%%mm0\n\t" "movq 64(%1),%%mm4\n\t" "pmaddwd (%2),%%mm0\n\t" @@ -265,7 +265,7 @@ ASMALIGN(4) "add $8,%3\n\t" "decl %0\n\t" - "jnz .L03\n\t" + "jnz 0b\n\t" "movq (%1),%%mm0\n\t" "pmaddwd (%2),%%mm0\n\t" @@ -291,7 +291,7 @@ ASMALIGN(4) "movl $7,%0\n\t" ASMALIGN(4) -".L04:\n\t" +"1:\n\t" "movq (%1),%%mm0\n\t" "movq 64(%1),%%mm4\n\t" "pmaddwd (%2),%%mm0\n\t" @@ -340,7 +340,7 @@ ASMALIGN(4) "add $128,%1\n\t" "add $8,%3\n\t" "decl %0\n\t" - "jnz .L04\n\t" + "jnz 1b\n\t" "movq (%1),%%mm0\n\t" "pmaddwd (%2),%%mm0\n\t" diff --git a/mpcommon.c b/mpcommon.c index 4a68fe9f25..245383c803 100644 --- a/mpcommon.c +++ b/mpcommon.c @@ -13,9 +13,7 @@ #include "spudec.h" #include "version.h" #include "vobsub.h" -#ifdef CONFIG_TV_TELETEXT #include "stream/tv.h" -#endif #include "ffmpeg_files/intreadwrite.h" #include "m_option.h" diff --git a/mplayer.c b/mplayer.c index 8c46d0edcf..7553621f9a 100644 --- a/mplayer.c +++ b/mplayer.c @@ -103,17 +103,12 @@ char *heartbeat_cmd; #endif /* __linux__ */ #endif /* HAVE_RTC */ -#ifdef CONFIG_TV #include "stream/tv.h" -#endif -#ifdef CONFIG_RADIO #include "stream/stream_radio.h" -#endif - #ifdef CONFIG_DVBIN #include "stream/dvbin.h" -#include "stream/cache2.h" #endif +#include "stream/cache2.h" //**************************************************************************// // Playtree @@ -149,10 +144,7 @@ static int max_framesize=0; #ifdef CONFIG_DVDREAD #include "stream/stream_dvd.h" #endif - -#ifdef CONFIG_DVDNAV #include "stream/stream_dvdnav.h" -#endif #include "libmpcodecs/dec_audio.h" #include "libmpcodecs/dec_video.h" diff --git a/stream/tv.h b/stream/tv.h index 5a38df690d..d177628e85 100644 --- a/stream/tv.h +++ b/stream/tv.h @@ -1,10 +1,30 @@ +/* + * TV interface + * + * Copyright (C) 2001 Alex Beregszászi + * Copyright (C) 2007 Attila Ötvös + * Copyright (C) 2007 Vladimir Voroshilov + * + * 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_TV_H #define MPLAYER_TV_H -//#include "libao2/afmt.h" -//#include "libmpcodecs/img_format.h" -//#include "mp_msg.h" - typedef struct tv_param_s { char *freq; char *channel; @@ -202,7 +222,7 @@ typedef struct { #define TVI_CONTROL_VBI_INIT 0x501 ///< vbi init /* - TELETEXT controls (through tv_teletext_control() ) + TELETEXT controls (through teletext_control() ) NOTE: _SET_ should be _GET_ +1 _STEP_ should be _GET_ +2 @@ -217,7 +237,7 @@ typedef struct { #define TV_VBI_CONTROL_GET_SUBPAGE 0x516 ///< get grabbed teletext page #define TV_VBI_CONTROL_SET_SUBPAGE 0x517 ///< set grab teletext page number -#define TV_VBI_CONTROL_GET_FORMAT 0x519 ///< get eletext format +#define TV_VBI_CONTROL_GET_FORMAT 0x519 ///< get teletext format #define TV_VBI_CONTROL_SET_FORMAT 0x51a ///< set teletext format #define TV_VBI_CONTROL_GET_HALF_PAGE 0x51c ///< get current half page @@ -273,7 +293,7 @@ void tv_start_scan(tvi_handle_t *tvh, int start); #define TV_NORM_NTSCJP 7 #define VBI_TFORMAT_TEXT 0 ///< text mode -#define VBI_TFORMAT_BW 1 ///< back&white mode +#define VBI_TFORMAT_BW 1 ///< black&white mode #define VBI_TFORMAT_GRAY 2 ///< grayscale mode #define VBI_TFORMAT_COLOR 3 ///< color mode (require color_spu patch!) @@ -287,9 +307,9 @@ void tv_start_scan(tvi_handle_t *tvh, int start); typedef enum{ TT_FORMAT_OPAQUE=0, ///< opaque - TT_FORMAT_TRANSPARENT, ///< translarent + TT_FORMAT_TRANSPARENT, ///< transparent TT_FORMAT_OPAQUE_INV, ///< opaque with inverted colors - TT_FORMAT_TRANSPARENT_INV ///< translarent with inverted colors + TT_FORMAT_TRANSPARENT_INV ///< transparent with inverted colors } teletext_format; typedef diff --git a/stream/tvi_vbi.c b/stream/tvi_vbi.c index 15524d8ccd..8677fa1d69 100644 --- a/stream/tvi_vbi.c +++ b/stream/tvi_vbi.c @@ -880,7 +880,7 @@ static void prepare_visible_page(priv_vbi_t* priv){ * \param pt page to render * \param f opened file descriptor * \param pagenum which page to render - * \param colored use colors not implementede yet) + * \param colored use colors not implemented yet) * * Text will be UTF8 encoded */ diff --git a/vobsub.c b/vobsub.c index 09fa8bd5e6..5b8f90e39e 100644 --- a/vobsub.c +++ b/vobsub.c @@ -20,9 +20,7 @@ #include "vobsub.h" #include "spudec.h" #include "mp_msg.h" -#ifdef CONFIG_UNRAR_EXEC #include "unrar_exec.h" -#endif #include "libavutil/common.h" extern int vobsub_id;