From 5f76d2416b181f2b423f9d02c8029edd45545b3e Mon Sep 17 00:00:00 2001 From: reimar Date: Fri, 4 Sep 2009 18:21:28 +0000 Subject: [PATCH 01/40] Subopt parser subopts should now be const. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29645 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/vo_corevideo.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libvo/vo_corevideo.m b/libvo/vo_corevideo.m index 099963c167..3adfa5d856 100644 --- a/libvo/vo_corevideo.m +++ b/libvo/vo_corevideo.m @@ -337,7 +337,7 @@ static void uninit(void) buffer_name = NULL; } -static opt_t subopts[] = { +static const opt_t subopts[] = { {"device_id", OPT_ARG_INT, &screen_id, NULL}, {"shared_buffer", OPT_ARG_BOOL, &shared_buffer, NULL}, {"buffer_name", OPT_ARG_MSTRZ,&buffer_name, NULL}, From 76d4cd713f35c199ad9685c799ed604aa1237d8f Mon Sep 17 00:00:00 2001 From: reimar Date: Fri, 4 Sep 2009 18:43:28 +0000 Subject: [PATCH 02/40] Factor out duplicated code to set play video scaled by a certain factor. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29646 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/vo_corevideo.m | 60 ++++++++++++++++---------------------------- 1 file changed, 21 insertions(+), 39 deletions(-) diff --git a/libvo/vo_corevideo.m b/libvo/vo_corevideo.m index 3adfa5d856..18a2820360 100644 --- a/libvo/vo_corevideo.m +++ b/libvo/vo_corevideo.m @@ -594,58 +594,40 @@ static int control(uint32_t request, void *data, ...) [menuItem release]; } +- (void)set_winSizeMult:(float)mult +{ + NSRect frame; + int d_width, d_height; + aspect(&d_width, &d_height, A_NOZOOM); + + if (isFullscreen) { + vo_fs = !vo_fs; + [self fullscreen:NO]; + } + + winSizeMult = mult; + frame.size.width = d_width * mult; + frame.size.height = d_height * mult; + [window setContentSize: frame.size]; + [self reshape]; +} + /* Menu Action */ - (void)menuAction:(id)sender { - uint32_t d_width; - uint32_t d_height; - NSRect frame; - - aspect((int *)&d_width, (int *)&d_height,A_NOZOOM); - if(sender == kQuitCmd) { mplayer_put_key(KEY_ESC); } if(sender == kHalfScreenCmd) - { - if(isFullscreen) { - vo_fs = (!(vo_fs)); [self fullscreen:NO]; - } - - winSizeMult = 0.5; - frame.size.width = d_width*winSizeMult; - frame.size.height = d_height*winSizeMult; - [window setContentSize: frame.size]; - [self reshape]; - } + [self set_winSizeMult: 0.5]; if(sender == kNormalScreenCmd) - { - if(isFullscreen) { - vo_fs = (!(vo_fs)); [self fullscreen:NO]; - } - - winSizeMult = 1; - frame.size.width = d_width; - frame.size.height = d_height; - [window setContentSize: frame.size]; - [self reshape]; - } + [self set_winSizeMult: 1]; if(sender == kDoubleScreenCmd) - { - if(isFullscreen) { - vo_fs = (!(vo_fs)); [self fullscreen:NO]; - } - - winSizeMult = 2; - frame.size.width = d_width*winSizeMult; - frame.size.height = d_height*winSizeMult; - [window setContentSize: frame.size]; - [self reshape]; - } + [self set_winSizeMult: 2]; if(sender == kFullScreenCmd) { vo_fs = (!(vo_fs)); From bd3ae0c9e6bc268478370e823eef5d6ca8fc6e05 Mon Sep 17 00:00:00 2001 From: diego Date: Fri, 4 Sep 2009 19:02:12 +0000 Subject: [PATCH 03/40] Fix grammar mistake noticed by Alexander Strasser. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29647 b3059339-0415-0410-9bf9-f77b7e298cf2 --- etc/codecs.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/codecs.conf b/etc/codecs.conf index fd9a484c09..0530bef1b0 100644 --- a/etc/codecs.conf +++ b/etc/codecs.conf @@ -3991,7 +3991,7 @@ audiocodec vorbis audiocodec tremor info "OggVorbis audio" status working - comment "fixed-point decoder useful systems without floating-point unit" + comment "fixed-point decoder useful for systems without floating-point unit" fourcc vrbs format 0x566F driver tremor From 5e54e3554e27cad24bf0d02d861303253d7132e1 Mon Sep 17 00:00:00 2001 From: jrash Date: Sat, 5 Sep 2009 00:56:58 +0000 Subject: [PATCH 04/40] sync with en/mplayer.1 r29638 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29648 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/man/zh_CN/mplayer.1 | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/DOCS/man/zh_CN/mplayer.1 b/DOCS/man/zh_CN/mplayer.1 index a81e1ee77c..d0055f51f3 100644 --- a/DOCS/man/zh_CN/mplayer.1 +++ b/DOCS/man/zh_CN/mplayer.1 @@ -1,4 +1,4 @@ -.\" sync with en/mplayer.1 r29555 +.\" sync with en/mplayer.1 r29638 .\" Encoding: UTF-8 .\" Reminder of hard terms which need better/final solution later: .\" /capture; playtree in parent list; colorkey; retrace; desync; downmix; @@ -511,11 +511,16 @@ MEncoder 的配置文件是 "mencoder.conf" 位于你的配置目录 而如果要停用就把它们设置为 "no" 或者 "0" 或者 "false"。 甚至子选项也可以如此设定选项。 .PP -你也可以为特定文件写配置文件。 -如果你希望一个特定文件 "movie.avi" 有个配置文件, 就新建文件, -名为 "movie.avi.conf", 写上该特定文件的选项并放在目录 ~/.mplayer/ 下。 -你也可以把配置文件放在与播放该特定文件时该特定文件相同的目录之下, -只要你(要么在命令行或者在全局配置文件中)给出 \-use\-filedir\-conf 选项。 +你也可以编写每个媒体文件专用的配置文件。 +如果要给名叫‘movie.avi’的一个文件设置一个配置文件,则创建一个名为‘movie.avi.conf’的文件, +其中存放了该媒体文件专用的选项,并将其放到 ~/.mplayer/。 +只要给出了 \-use\-filedir\-conf 选项(或是通行命令行,或是在全局配置文件中),你也可以把配置文 +件放到与所播放的媒体文件相同的目录下。 +如果在媒体文件所在目录下找到其专用的配置文件,则不会从 ~/.maplyer 目录下加载任何媒体文件专用的 +配置。 +另外,\-use\-filedir\-conf 选项启用了目录专用的配置文件。 +对于该选项,MPlayer 首先尝试所播放文件的目录下加载 mplayer.conf,然后尝试加载任何存在的媒体文件 +专用的配置。 .PP .I MPLAYER 配置文件示例: .sp 1 From b3a789863e49848c9aeaf6a7fb53dd5bc2e0661e Mon Sep 17 00:00:00 2001 From: reimar Date: Sat, 5 Sep 2009 08:48:48 +0000 Subject: [PATCH 05/40] Add standard license header and move a misplaced comment. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29649 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/osx_common.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/libvo/osx_common.c b/libvo/osx_common.c index 642fa9e4da..97651f9f04 100644 --- a/libvo/osx_common.c +++ b/libvo/osx_common.c @@ -1,6 +1,23 @@ -// only to get keycode definitions from HIToolbox/Events.h +/* + * This file is part of MPlayer. + * + * MPlayer is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * MPlayer is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with MPlayer; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ #include "config.h" +// only to get keycode definitions from HIToolbox/Events.h #include #include "osx_common.h" #include "video_out.h" From 6d1176f071e3e338ad48086ee866882c5d78f7c2 Mon Sep 17 00:00:00 2001 From: ramiro Date: Sat, 5 Sep 2009 23:33:11 +0000 Subject: [PATCH 06/40] =?UTF-8?q?Make=2016bit=20YUV=20formats=20compatible?= =?UTF-8?q?=20with=20NE=20avcodec=5Fget=5Fpix=5Ffmt().=20Patch=20by=20Lars?= =?UTF-8?q?=20T=C3=A4uber=20=20taeuber=20=20gmx=20?= =?UTF-8?q?=20net>.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29650 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libswscale/swscale.c | 60 +++++++++++++++++------------------ libswscale/swscale_internal.h | 24 +++++++------- libswscale/swscale_template.c | 24 +++++++------- 3 files changed, 54 insertions(+), 54 deletions(-) diff --git a/libswscale/swscale.c b/libswscale/swscale.c index 92b4b8007d..b8e80475b4 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -136,12 +136,12 @@ unsigned swscale_version(void) || (x)==PIX_FMT_YUV440P \ || (x)==PIX_FMT_MONOWHITE \ || (x)==PIX_FMT_MONOBLACK \ - || (x)==PIX_FMT_YUV420PLE \ - || (x)==PIX_FMT_YUV422PLE \ - || (x)==PIX_FMT_YUV444PLE \ - || (x)==PIX_FMT_YUV420PBE \ - || (x)==PIX_FMT_YUV422PBE \ - || (x)==PIX_FMT_YUV444PBE \ + || (x)==PIX_FMT_YUV420P16LE \ + || (x)==PIX_FMT_YUV422P16LE \ + || (x)==PIX_FMT_YUV444P16LE \ + || (x)==PIX_FMT_YUV420P16BE \ + || (x)==PIX_FMT_YUV422P16BE \ + || (x)==PIX_FMT_YUV444P16BE \ ) #define isSupportedOut(x) ( \ (x)==PIX_FMT_YUV420P \ @@ -160,12 +160,12 @@ unsigned swscale_version(void) || (x)==PIX_FMT_GRAY8 \ || (x)==PIX_FMT_YUV410P \ || (x)==PIX_FMT_YUV440P \ - || (x)==PIX_FMT_YUV420PLE \ - || (x)==PIX_FMT_YUV422PLE \ - || (x)==PIX_FMT_YUV444PLE \ - || (x)==PIX_FMT_YUV420PBE \ - || (x)==PIX_FMT_YUV422PBE \ - || (x)==PIX_FMT_YUV444PBE \ + || (x)==PIX_FMT_YUV420P16LE \ + || (x)==PIX_FMT_YUV422P16LE \ + || (x)==PIX_FMT_YUV444P16LE \ + || (x)==PIX_FMT_YUV420P16BE \ + || (x)==PIX_FMT_YUV422P16BE \ + || (x)==PIX_FMT_YUV444P16BE \ ) #define isPacked(x) ( \ (x)==PIX_FMT_PAL8 \ @@ -459,18 +459,18 @@ const char *sws_format_name(enum PixelFormat format) return "vdpau_wmv3"; case PIX_FMT_VDPAU_VC1: return "vdpau_vc1"; - case PIX_FMT_YUV420PLE: - return "yuv420ple"; - case PIX_FMT_YUV422PLE: - return "yuv422ple"; - case PIX_FMT_YUV444PLE: - return "yuv444ple"; - case PIX_FMT_YUV420PBE: - return "yuv420pbe"; - case PIX_FMT_YUV422PBE: - return "yuv422pbe"; - case PIX_FMT_YUV444PBE: - return "yuv444pbe"; + case PIX_FMT_YUV420P16LE: + return "yuv420p16le"; + case PIX_FMT_YUV422P16LE: + return "yuv422p16le"; + case PIX_FMT_YUV444P16LE: + return "yuv444p16le"; + case PIX_FMT_YUV420P16BE: + return "yuv420p16be"; + case PIX_FMT_YUV422P16BE: + return "yuv422p16be"; + case PIX_FMT_YUV444P16BE: + return "yuv444p16be"; default: return "Unknown format"; } @@ -2371,8 +2371,8 @@ static void getSubSampleFactors(int *h, int *v, int format) *v=0; break; case PIX_FMT_YUV420P: - case PIX_FMT_YUV420PLE: - case PIX_FMT_YUV420PBE: + case PIX_FMT_YUV420P16LE: + case PIX_FMT_YUV420P16BE: case PIX_FMT_YUVA420P: case PIX_FMT_GRAY16BE: case PIX_FMT_GRAY16LE: @@ -2391,14 +2391,14 @@ static void getSubSampleFactors(int *h, int *v, int format) *v=2; break; case PIX_FMT_YUV444P: - case PIX_FMT_YUV444PLE: - case PIX_FMT_YUV444PBE: + case PIX_FMT_YUV444P16LE: + case PIX_FMT_YUV444P16BE: *h=0; *v=0; break; case PIX_FMT_YUV422P: - case PIX_FMT_YUV422PLE: - case PIX_FMT_YUV422PBE: + case PIX_FMT_YUV422P16LE: + case PIX_FMT_YUV422P16BE: *h=1; *v=0; break; diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h index 48843ec274..ec696e932d 100644 --- a/libswscale/swscale_internal.h +++ b/libswscale/swscale_internal.h @@ -302,12 +302,12 @@ const char *sws_format_name(enum PixelFormat format); || (x)==PIX_FMT_GRAY16LE \ || (x)==PIX_FMT_RGB48BE \ || (x)==PIX_FMT_RGB48LE \ - || (x)==PIX_FMT_YUV420PLE \ - || (x)==PIX_FMT_YUV422PLE \ - || (x)==PIX_FMT_YUV444PLE \ - || (x)==PIX_FMT_YUV420PBE \ - || (x)==PIX_FMT_YUV422PBE \ - || (x)==PIX_FMT_YUV444PBE \ + || (x)==PIX_FMT_YUV420P16LE \ + || (x)==PIX_FMT_YUV422P16LE \ + || (x)==PIX_FMT_YUV444P16LE \ + || (x)==PIX_FMT_YUV420P16BE \ + || (x)==PIX_FMT_YUV422P16BE \ + || (x)==PIX_FMT_YUV444P16BE \ ) #define isBE(x) ((x)&1) #define isPlanar8YUV(x) ( \ @@ -323,12 +323,12 @@ const char *sws_format_name(enum PixelFormat format); ) #define isPlanarYUV(x) ( \ isPlanar8YUV(x) \ - || (x)==PIX_FMT_YUV420PLE \ - || (x)==PIX_FMT_YUV422PLE \ - || (x)==PIX_FMT_YUV444PLE \ - || (x)==PIX_FMT_YUV420PBE \ - || (x)==PIX_FMT_YUV422PBE \ - || (x)==PIX_FMT_YUV444PBE \ + || (x)==PIX_FMT_YUV420P16LE \ + || (x)==PIX_FMT_YUV422P16LE \ + || (x)==PIX_FMT_YUV444P16LE \ + || (x)==PIX_FMT_YUV420P16BE \ + || (x)==PIX_FMT_YUV422P16BE \ + || (x)==PIX_FMT_YUV444P16BE \ ) #define isYUV(x) ( \ (x)==PIX_FMT_UYVY422 \ diff --git a/libswscale/swscale_template.c b/libswscale/swscale_template.c index c985dfb3ea..48eda805cc 100644 --- a/libswscale/swscale_template.c +++ b/libswscale/swscale_template.c @@ -2914,12 +2914,12 @@ static void RENAME(sws_init_swScale)(SwsContext *c) case PIX_FMT_PAL8 : case PIX_FMT_BGR4_BYTE: case PIX_FMT_RGB4_BYTE: c->hcscale_internal = palToUV; break; - case PIX_FMT_YUV420PBE: - case PIX_FMT_YUV422PBE: - case PIX_FMT_YUV444PBE: c->hcscale_internal = RENAME(BEToUV); break; - case PIX_FMT_YUV420PLE: - case PIX_FMT_YUV422PLE: - case PIX_FMT_YUV444PLE: c->hcscale_internal = RENAME(LEToUV); break; + case PIX_FMT_YUV420P16BE: + case PIX_FMT_YUV422P16BE: + case PIX_FMT_YUV444P16BE: c->hcscale_internal = RENAME(BEToUV); break; + case PIX_FMT_YUV420P16LE: + case PIX_FMT_YUV422P16LE: + case PIX_FMT_YUV444P16LE: c->hcscale_internal = RENAME(LEToUV); break; } if (c->chrSrcHSubSample) { switch(srcFormat) { @@ -2957,14 +2957,14 @@ static void RENAME(sws_init_swScale)(SwsContext *c) c->hascale_internal = NULL; switch (srcFormat) { case PIX_FMT_YUYV422 : - case PIX_FMT_YUV420PBE: - case PIX_FMT_YUV422PBE: - case PIX_FMT_YUV444PBE: + case PIX_FMT_YUV420P16BE: + case PIX_FMT_YUV422P16BE: + case PIX_FMT_YUV444P16BE: case PIX_FMT_GRAY16BE : c->hyscale_internal = RENAME(yuy2ToY); break; case PIX_FMT_UYVY422 : - case PIX_FMT_YUV420PLE: - case PIX_FMT_YUV422PLE: - case PIX_FMT_YUV444PLE: + case PIX_FMT_YUV420P16LE: + case PIX_FMT_YUV422P16LE: + case PIX_FMT_YUV444P16LE: case PIX_FMT_GRAY16LE : c->hyscale_internal = RENAME(uyvyToY); break; case PIX_FMT_BGR24 : c->hyscale_internal = RENAME(bgr24ToY); break; case PIX_FMT_BGR565 : c->hyscale_internal = bgr16ToY; break; From 8e6405bb8224454ca36812288191b533e2b7704e Mon Sep 17 00:00:00 2001 From: ramiro Date: Sat, 5 Sep 2009 23:35:59 +0000 Subject: [PATCH 07/40] Indent. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29651 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libswscale/swscale.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libswscale/swscale.c b/libswscale/swscale.c index b8e80475b4..4f050fc7c4 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -2813,14 +2813,14 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d 1; if (initFilter(&c->hLumFilter, &c->hLumFilterPos, &c->hLumFilterSize, c->lumXInc, - srcW , dstW, filterAlign, 1<<14, - (flags&SWS_BICUBLIN) ? (flags|SWS_BICUBIC) : flags, - srcFilter->lumH, dstFilter->lumH, c->param) < 0) + srcW , dstW, filterAlign, 1<<14, + (flags&SWS_BICUBLIN) ? (flags|SWS_BICUBIC) : flags, + srcFilter->lumH, dstFilter->lumH, c->param) < 0) goto fail; if (initFilter(&c->hChrFilter, &c->hChrFilterPos, &c->hChrFilterSize, c->chrXInc, - c->chrSrcW, c->chrDstW, filterAlign, 1<<14, - (flags&SWS_BICUBLIN) ? (flags|SWS_BILINEAR) : flags, - srcFilter->chrH, dstFilter->chrH, c->param) < 0) + c->chrSrcW, c->chrDstW, filterAlign, 1<<14, + (flags&SWS_BICUBLIN) ? (flags|SWS_BILINEAR) : flags, + srcFilter->chrH, dstFilter->chrH, c->param) < 0) goto fail; #if defined(COMPILE_MMX2) From eb4187bb17ddd943e1727f76b61e6fdd45f80610 Mon Sep 17 00:00:00 2001 From: ramiro Date: Sun, 6 Sep 2009 00:07:35 +0000 Subject: [PATCH 08/40] Rename CHECKED_ALLOC(Z) to FF_ALLOC(Z)_OR_GOTO and add context and label parameters. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29652 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libswscale/swscale.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/libswscale/swscale.c b/libswscale/swscale.c index 4f050fc7c4..170baf9b7c 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -1451,12 +1451,12 @@ static inline int initFilter(int16_t **outFilter, int16_t **filterPos, int *outF #endif // NOTE: the +1 is for the MMX scaler which reads over the end - CHECKED_ALLOC(*filterPos, (dstW+1)*sizeof(int16_t)); + FF_ALLOC_OR_GOTO(NULL, *filterPos, (dstW+1)*sizeof(int16_t), fail); if (FFABS(xInc - 0x10000) <10) { // unscaled int i; filterSize= 1; - CHECKED_ALLOCZ(filter, dstW*sizeof(*filter)*filterSize); + FF_ALLOCZ_OR_GOTO(NULL, filter, dstW*sizeof(*filter)*filterSize, fail); for (i=0; i srcW-2) filterSize=srcW-2; - CHECKED_ALLOC(filter, dstW*sizeof(*filter)*filterSize); + FF_ALLOC_OR_GOTO(NULL, filter, dstW*sizeof(*filter)*filterSize, fail); xDstInSrc= xInc - 0x10000; for (i=0; ilength - 1; if (dstFilter) filter2Size+= dstFilter->length - 1; assert(filter2Size>0); - CHECKED_ALLOCZ(filter2, filter2Size*dstW*sizeof(*filter2)); + FF_ALLOCZ_OR_GOTO(NULL, filter2, filter2Size*dstW*sizeof(*filter2), fail); for (i=0; iav_class = &sws_context_class; c->srcW= srcW; @@ -2840,10 +2840,10 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d c->chrMmx2FilterCode = av_malloc(c->chrMmx2FilterCodeSize); #endif - CHECKED_ALLOCZ(c->lumMmx2Filter , (dstW /8+8)*sizeof(int16_t)); - CHECKED_ALLOCZ(c->chrMmx2Filter , (c->chrDstW /4+8)*sizeof(int16_t)); - CHECKED_ALLOCZ(c->lumMmx2FilterPos, (dstW /2/8+8)*sizeof(int32_t)); - CHECKED_ALLOCZ(c->chrMmx2FilterPos, (c->chrDstW/2/4+8)*sizeof(int32_t)); + FF_ALLOCZ_OR_GOTO(c, c->lumMmx2Filter , (dstW /8+8)*sizeof(int16_t), fail); + FF_ALLOCZ_OR_GOTO(c, c->chrMmx2Filter , (c->chrDstW /4+8)*sizeof(int16_t), fail); + FF_ALLOCZ_OR_GOTO(c, c->lumMmx2FilterPos, (dstW /2/8+8)*sizeof(int32_t), fail); + FF_ALLOCZ_OR_GOTO(c, c->chrMmx2FilterPos, (c->chrDstW/2/4+8)*sizeof(int32_t), fail); initMMX2HScaler( dstW, c->lumXInc, c->lumMmx2FilterCode, c->lumMmx2Filter, c->lumMmx2FilterPos, 8); initMMX2HScaler(c->chrDstW, c->chrXInc, c->chrMmx2FilterCode, c->chrMmx2Filter, c->chrMmx2FilterPos, 4); @@ -2877,8 +2877,8 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d goto fail; #ifdef COMPILE_ALTIVEC - CHECKED_ALLOC(c->vYCoeffsBank, sizeof (vector signed short)*c->vLumFilterSize*c->dstH); - CHECKED_ALLOC(c->vCCoeffsBank, sizeof (vector signed short)*c->vChrFilterSize*c->chrDstH); + FF_ALLOC_OR_GOTO(c, c->vYCoeffsBank, sizeof (vector signed short)*c->vLumFilterSize*c->dstH, fail); + FF_ALLOC_OR_GOTO(c, c->vCCoeffsBank, sizeof (vector signed short)*c->vChrFilterSize*c->chrDstH, fail); for (i=0;ivLumFilterSize*c->dstH;i++) { int j; @@ -2914,23 +2914,23 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d // allocate pixbufs (we use dynamic allocation because otherwise we would need to // allocate several megabytes to handle all possible cases) - CHECKED_ALLOC(c->lumPixBuf, c->vLumBufSize*2*sizeof(int16_t*)); - CHECKED_ALLOC(c->chrPixBuf, c->vChrBufSize*2*sizeof(int16_t*)); + FF_ALLOC_OR_GOTO(c, c->lumPixBuf, c->vLumBufSize*2*sizeof(int16_t*), fail); + FF_ALLOC_OR_GOTO(c, c->chrPixBuf, c->vChrBufSize*2*sizeof(int16_t*), fail); if (CONFIG_SWSCALE_ALPHA && isALPHA(c->srcFormat) && isALPHA(c->dstFormat)) - CHECKED_ALLOCZ(c->alpPixBuf, c->vLumBufSize*2*sizeof(int16_t*)); + FF_ALLOCZ_OR_GOTO(c, c->alpPixBuf, c->vLumBufSize*2*sizeof(int16_t*), fail); //Note we need at least one pixel more at the end because of the MMX code (just in case someone wanna replace the 4000/8000) /* align at 16 bytes for AltiVec */ for (i=0; ivLumBufSize; i++) { - CHECKED_ALLOCZ(c->lumPixBuf[i+c->vLumBufSize], VOF+1); + FF_ALLOCZ_OR_GOTO(c, c->lumPixBuf[i+c->vLumBufSize], VOF+1, fail); c->lumPixBuf[i] = c->lumPixBuf[i+c->vLumBufSize]; } for (i=0; ivChrBufSize; i++) { - CHECKED_ALLOC(c->chrPixBuf[i+c->vChrBufSize], (VOF+1)*2); + FF_ALLOC_OR_GOTO(c, c->chrPixBuf[i+c->vChrBufSize], (VOF+1)*2, fail); c->chrPixBuf[i] = c->chrPixBuf[i+c->vChrBufSize]; } if (CONFIG_SWSCALE_ALPHA && c->alpPixBuf) for (i=0; ivLumBufSize; i++) { - CHECKED_ALLOCZ(c->alpPixBuf[i+c->vLumBufSize], VOF+1); + FF_ALLOCZ_OR_GOTO(c, c->alpPixBuf[i+c->vLumBufSize], VOF+1, fail); c->alpPixBuf[i] = c->alpPixBuf[i+c->vLumBufSize]; } From b70a91d505fdcbe4f86d386e373f1e2bd16f69c4 Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 7 Sep 2009 10:37:16 +0000 Subject: [PATCH 09/40] Avoid bash-specific 'let' syntax in shell scripts. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29653 b3059339-0415-0410-9bf9-f77b7e298cf2 --- TOOLS/mplmult.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TOOLS/mplmult.sh b/TOOLS/mplmult.sh index e0d262f23e..8621c010c0 100755 --- a/TOOLS/mplmult.sh +++ b/TOOLS/mplmult.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh # example how to output video on multiple windows in sync. # might be even more useful in combination with vo ggi # to distribute the video arbitrarily @@ -29,7 +29,7 @@ i=1 fifo_list="" while test $i -le $count; do fifo_list="$dir/mp$i $fifo_list" - let i=$i+1 + i=$(($i+1)) done mkfifo $fifo_list From af8ff1be74077b6a7a2d426923cd312d0ec6d4c0 Mon Sep 17 00:00:00 2001 From: ramiro Date: Mon, 7 Sep 2009 16:29:32 +0000 Subject: [PATCH 10/40] Indent. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29654 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libswscale/rgb2rgb.c | 88 +++++++++++++++++------------------ libswscale/rgb2rgb_template.c | 18 +++---- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/libswscale/rgb2rgb.c b/libswscale/rgb2rgb.c index 903fcaa86f..d3c3f43bde 100644 --- a/libswscale/rgb2rgb.c +++ b/libswscale/rgb2rgb.c @@ -274,16 +274,16 @@ void rgb32to24(const uint8_t *src, uint8_t *dst, long src_size) long i; long num_pixels = src_size >> 2; for (i=0; i BGR24 (= B,G,R) */ - dst[3*i + 0] = src[4*i + 1]; - dst[3*i + 1] = src[4*i + 2]; - dst[3*i + 2] = src[4*i + 3]; - #else - dst[3*i + 0] = src[4*i + 2]; - dst[3*i + 1] = src[4*i + 1]; - dst[3*i + 2] = src[4*i + 0]; - #endif +#if HAVE_BIGENDIAN + /* RGB32 (= A,B,G,R) -> BGR24 (= B,G,R) */ + dst[3*i + 0] = src[4*i + 1]; + dst[3*i + 1] = src[4*i + 2]; + dst[3*i + 2] = src[4*i + 3]; +#else + dst[3*i + 0] = src[4*i + 2]; + dst[3*i + 1] = src[4*i + 1]; + dst[3*i + 2] = src[4*i + 0]; +#endif } } @@ -291,18 +291,18 @@ void rgb24to32(const uint8_t *src, uint8_t *dst, long src_size) { long i; for (i=0; 3*i BGR32 (= A,R,G,B) */ - dst[4*i + 0] = 255; - dst[4*i + 1] = src[3*i + 0]; - dst[4*i + 2] = src[3*i + 1]; - dst[4*i + 3] = src[3*i + 2]; - #else - dst[4*i + 0] = src[3*i + 2]; - dst[4*i + 1] = src[3*i + 1]; - dst[4*i + 2] = src[3*i + 0]; - dst[4*i + 3] = 255; - #endif +#if HAVE_BIGENDIAN + /* RGB24 (= R,G,B) -> BGR32 (= A,R,G,B) */ + dst[4*i + 0] = 255; + dst[4*i + 1] = src[3*i + 0]; + dst[4*i + 2] = src[3*i + 1]; + dst[4*i + 3] = src[3*i + 2]; +#else + dst[4*i + 0] = src[3*i + 2]; + dst[4*i + 1] = src[3*i + 1]; + dst[4*i + 2] = src[3*i + 0]; + dst[4*i + 3] = 255; +#endif } } @@ -315,17 +315,17 @@ void rgb16tobgr32(const uint8_t *src, uint8_t *dst, long src_size) while (s < end) { register uint16_t bgr; bgr = *s++; - #if HAVE_BIGENDIAN - *d++ = 255; - *d++ = (bgr&0x1F)<<3; - *d++ = (bgr&0x7E0)>>3; - *d++ = (bgr&0xF800)>>8; - #else - *d++ = (bgr&0xF800)>>8; - *d++ = (bgr&0x7E0)>>3; - *d++ = (bgr&0x1F)<<3; - *d++ = 255; - #endif +#if HAVE_BIGENDIAN + *d++ = 255; + *d++ = (bgr&0x1F)<<3; + *d++ = (bgr&0x7E0)>>3; + *d++ = (bgr&0xF800)>>8; +#else + *d++ = (bgr&0xF800)>>8; + *d++ = (bgr&0x7E0)>>3; + *d++ = (bgr&0x1F)<<3; + *d++ = 255; +#endif } } @@ -375,17 +375,17 @@ void rgb15tobgr32(const uint8_t *src, uint8_t *dst, long src_size) while (s < end) { register uint16_t bgr; bgr = *s++; - #if HAVE_BIGENDIAN - *d++ = 255; - *d++ = (bgr&0x1F)<<3; - *d++ = (bgr&0x3E0)>>2; - *d++ = (bgr&0x7C00)>>7; - #else - *d++ = (bgr&0x7C00)>>7; - *d++ = (bgr&0x3E0)>>2; - *d++ = (bgr&0x1F)<<3; - *d++ = 255; - #endif +#if HAVE_BIGENDIAN + *d++ = 255; + *d++ = (bgr&0x1F)<<3; + *d++ = (bgr&0x3E0)>>2; + *d++ = (bgr&0x7C00)>>7; +#else + *d++ = (bgr&0x7C00)>>7; + *d++ = (bgr&0x3E0)>>2; + *d++ = (bgr&0x1F)<<3; + *d++ = 255; +#endif } } diff --git a/libswscale/rgb2rgb_template.c b/libswscale/rgb2rgb_template.c index 8b5a504da6..1a5464a8c9 100644 --- a/libswscale/rgb2rgb_template.c +++ b/libswscale/rgb2rgb_template.c @@ -76,11 +76,11 @@ static inline void RENAME(rgb24tobgr32)(const uint8_t *src, uint8_t *dst, long s uint8_t *dest = dst; const uint8_t *s = src; const uint8_t *end; - #if HAVE_MMX +#if HAVE_MMX const uint8_t *mm_end; - #endif +#endif end = s + src_size; - #if HAVE_MMX +#if HAVE_MMX __asm__ volatile(PREFETCH" %0"::"m"(*s):"memory"); mm_end = end - 23; __asm__ volatile("movq %0, %%mm7"::"m"(mask32a):"memory"); @@ -111,21 +111,21 @@ static inline void RENAME(rgb24tobgr32)(const uint8_t *src, uint8_t *dst, long s } __asm__ volatile(SFENCE:::"memory"); __asm__ volatile(EMMS:::"memory"); - #endif +#endif while (s < end) { - #if HAVE_BIGENDIAN +#if HAVE_BIGENDIAN /* RGB24 (= R,G,B) -> RGB32 (= A,B,G,R) */ *dest++ = 255; *dest++ = s[2]; *dest++ = s[1]; *dest++ = s[0]; s+=3; - #else +#else *dest++ = *s++; *dest++ = *s++; *dest++ = *s++; *dest++ = 255; - #endif +#endif } } @@ -1436,7 +1436,7 @@ static inline void RENAME(yuvPlanartoyuy2)(const uint8_t *ysrc, const uint8_t *u const x86_reg chromWidth= width>>1; for (y=0; y>1; for (y=0; y Date: Mon, 7 Sep 2009 17:20:44 +0000 Subject: [PATCH 11/40] Add support for lavf vqf demuxer and lavc TwinVQ decoder. Also make lavf the default demuxer for vqf. Ok'ed by Compn on IRC. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29655 b3059339-0415-0410-9bf9-f77b7e298cf2 --- etc/codecs.conf | 8 ++++++++ libmpdemux/demux_lavf.c | 1 + libmpdemux/extension.c | 2 +- libmpdemux/mp_taglists.c | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/etc/codecs.conf b/etc/codecs.conf index 0530bef1b0..2aade33cf3 100644 --- a/etc/codecs.conf +++ b/etc/codecs.conf @@ -4105,6 +4105,14 @@ audiocodec pscelp driver acm dll "smcelp32.acm" +audiocodec fftwinvq + info "FFmpeg TwinVQ" + status working + fourcc TWI2 ; internal MPlayer FourCC, different from mplayer's TwinVQ decoder + ; since lavf demuxer is incompatible with it + driver ffmpeg + dll twinvq + audiocodec TwinVQ info "VQF codec by NTTLabs" status working diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index e89b3914f0..a4f84eda71 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -183,6 +183,7 @@ static const char * const preferred_list[] = { "mov,mp4,m4a,3gp,3g2,mj2", "mpc", "mpc8", + "vqf", NULL }; diff --git a/libmpdemux/extension.c b/libmpdemux/extension.c index dc20214b87..e81c09e156 100644 --- a/libmpdemux/extension.c +++ b/libmpdemux/extension.c @@ -65,7 +65,7 @@ static struct { { "it", DEMUXER_TYPE_XMMS }, { "mid", DEMUXER_TYPE_XMMS }, { "midi", DEMUXER_TYPE_XMMS }, - { "vqf", DEMUXER_TYPE_XMMS }, + { "vqf", DEMUXER_TYPE_LAVF }, { "nsv", DEMUXER_TYPE_NSV }, { "nsa", DEMUXER_TYPE_NSV }, { "mpc", DEMUXER_TYPE_MPC }, diff --git a/libmpdemux/mp_taglists.c b/libmpdemux/mp_taglists.c index 99f506fbdf..5cea53c2ec 100644 --- a/libmpdemux/mp_taglists.c +++ b/libmpdemux/mp_taglists.c @@ -46,6 +46,7 @@ static const AVCodecTag mp_wav_tags[] = { { CODEC_ID_SPEEX, MKTAG('s', 'p', 'x', ' ')}, { CODEC_ID_TRUEHD, MKTAG('T', 'R', 'H', 'D')}, { CODEC_ID_TTA, MKTAG('T', 'T', 'A', '1')}, + { CODEC_ID_TWINVQ, MKTAG('T', 'W', 'I', '2')}, { CODEC_ID_WAVPACK, MKTAG('W', 'V', 'P', 'K')}, { CODEC_ID_WESTWOOD_SND1, MKTAG('S', 'N', 'D', '1')}, { CODEC_ID_XAN_DPCM, MKTAG('A', 'x', 'a', 'n')}, From f49f43015930892642f467eeeefe9788dcb11204 Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 8 Sep 2009 08:50:03 +0000 Subject: [PATCH 12/40] 100l, forgot to use "test" for checking the value of the quicktime variable git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29656 b3059339-0415-0410-9bf9-f77b7e298cf2 --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 96c9b86108..44e419121a 100755 --- a/configure +++ b/configure @@ -6814,7 +6814,7 @@ echocheck "QuickTime codecs" _qtx_emulation=no def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32' if test "$_qtx" = auto ; then - test "$_win32dll" = yes || quicktime && _qtx=yes + test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes fi if test "$_qtx" = yes ; then def_qtx='#define CONFIG_QTX_CODECS 1' From b05f2d0bdf86bc9eab7af9e752e481f7392aed4c Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 8 Sep 2009 08:55:05 +0000 Subject: [PATCH 13/40] Always register all streams from libavformat, not just those belonging to a program. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29657 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_lavf.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index a4f84eda71..392cd591e1 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -491,6 +491,8 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){ demuxer_add_chapter(demuxer, t ? t->value : NULL, start, end); } + for(i=0; inb_streams; i++) + handle_stream(demuxer, avfc, i); if(avfc->nb_programs) { int p, start=0, found=0; @@ -512,15 +514,11 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){ AVProgram *program = avfc->programs[p]; t = av_metadata_get(program->metadata, "title", NULL, 0); mp_msg(MSGT_HEADER,MSGL_INFO,"LAVF: Program %d %s\n", program->id, t ? t->value : ""); - for(i=0; inb_stream_indexes; i++) - handle_stream(demuxer, avfc, program->stream_index[i]); if(!priv->cur_program && (demuxer->video->sh || demuxer->audio->sh)) priv->cur_program = program->id; p = (p + 1) % avfc->nb_programs; } while(p!=start); - } else - for(i=0; inb_streams; i++) - handle_stream(demuxer, avfc, i); + } mp_msg(MSGT_HEADER,MSGL_V,"LAVF: %d audio and %d video streams found\n",priv->audio_streams,priv->video_streams); mp_msg(MSGT_HEADER,MSGL_V,"LAVF: build %d\n", LIBAVFORMAT_BUILD); From 055b0cc5d8bf69f8fa12a84f24a3efca95c02a60 Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 8 Sep 2009 09:06:43 +0000 Subject: [PATCH 14/40] Never switch to a program with no audio and no video. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29658 b3059339-0415-0410-9bf9-f77b7e298cf2 --- command.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/command.c b/command.c index 29d3cf2e94..0700158753 100644 --- a/command.c +++ b/command.c @@ -945,6 +945,10 @@ static int mp_property_program(m_option_t * prop, int action, void *arg, &prog) == DEMUXER_CTRL_NOTIMPL) return M_PROPERTY_ERROR; + if (prog.aid < 0 && prog.vid < 0) { + mp_msg(MSGT_CPLAYER, MSGL_ERR, "Selected program contains no audio or video streams!\n"); + return M_PROPERTY_ERROR; + } mp_property_do("switch_audio", M_PROPERTY_SET, &prog.aid, mpctx); mp_property_do("switch_video", M_PROPERTY_SET, &prog.vid, mpctx); return M_PROPERTY_OK; From 03f08ab010ecc58a7f57e25718c7a3d2547f9fd1 Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 8 Sep 2009 09:07:23 +0000 Subject: [PATCH 15/40] Make indentation consistent with the rest of the file git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29659 b3059339-0415-0410-9bf9-f77b7e298cf2 --- command.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/command.c b/command.c index 0700158753..5aee6ae383 100644 --- a/command.c +++ b/command.c @@ -948,7 +948,7 @@ static int mp_property_program(m_option_t * prop, int action, void *arg, if (prog.aid < 0 && prog.vid < 0) { mp_msg(MSGT_CPLAYER, MSGL_ERR, "Selected program contains no audio or video streams!\n"); return M_PROPERTY_ERROR; - } + } mp_property_do("switch_audio", M_PROPERTY_SET, &prog.aid, mpctx); mp_property_do("switch_video", M_PROPERTY_SET, &prog.vid, mpctx); return M_PROPERTY_OK; From 64c5127103089cc063aa6284e36e8b143ed31b50 Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 8 Sep 2009 09:08:05 +0000 Subject: [PATCH 16/40] Fix an endless loop if all programs are empty. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29660 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_lavf.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index 392cd591e1..cf38ab41d7 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -707,6 +707,7 @@ static int demux_lavf_control(demuxer_t *demuxer, int cmd, void *arg) demux_program_t *prog = arg; AVProgram *program; int p, i; + int start; if(priv->avfc->nb_programs < 2) return DEMUXER_CTRL_NOTIMPL; @@ -728,6 +729,7 @@ static int demux_lavf_control(demuxer_t *demuxer, int cmd, void *arg) p = i; } prog->vid = prog->aid = prog->sid = -2; //no audio and no video by default + start = p; redo: program = priv->avfc->programs[p]; for(i=0; inb_stream_indexes; i++) @@ -751,6 +753,8 @@ redo: if(prog->progid == -1 && prog->vid == -2 && prog->aid == -2) { p = (p + 1) % priv->avfc->nb_programs; + if (p == start) + return DEMUXER_CTRL_DONTKNOW; goto redo; } priv->cur_program = prog->progid = program->id; From 08ea2ad8fe9446334b69c7045cc12af44f31ce81 Mon Sep 17 00:00:00 2001 From: diego Date: Tue, 8 Sep 2009 09:27:48 +0000 Subject: [PATCH 17/40] Make (no)t23 suboption description more consistent. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29661 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/man/en/mplayer.1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DOCS/man/en/mplayer.1 b/DOCS/man/en/mplayer.1 index 3ae966bbec..fee7c53f50 100644 --- a/DOCS/man/en/mplayer.1 +++ b/DOCS/man/en/mplayer.1 @@ -3620,7 +3620,7 @@ Force WarpOverlay! mode. .IPs dive Force DIVE mode. .IPs (no)t23 -Enable/disable workaround for T23 laptop (default: \-not23). +Enable/disable workaround for T23 laptop (default: disabled). Try to enable this option if your video card supports upscaling only. .RE .PD 1 From f443f004c9e547f7b4ca24b3fd1cb7bb669b533a Mon Sep 17 00:00:00 2001 From: cehoyos Date: Tue, 8 Sep 2009 16:32:21 +0000 Subject: [PATCH 18/40] Allow disabling and enabling lower-case codecs. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29662 b3059339-0415-0410-9bf9-f77b7e298cf2 --- configure | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/configure b/configure index 44e419121a..a68defd6bd 100755 --- a/configure +++ b/configure @@ -1150,16 +1150,16 @@ for ac_option do --disable-libopencore_amrnb) _libopencore_amrnb=no ;; --enable-libopencore_amrwb) _libopencore_amrwb=yes ;; --disable-libopencore_amrwb) _libopencore_amrwb=no ;; - --enable-decoder=*) _libavdecoders="$_libavdecoders $(echo $ac_option | cut -d '=' -f 2)" ;; - --disable-decoder=*) _libavdecoders=$(echo $_libavdecoders | sed "s/$(echo $ac_option | cut -d '=' -f 2)//g") ;; - --enable-encoder=*) _libavencoders="$_libavencoders $(echo $ac_option | cut -d '=' -f 2)" ;; - --disable-encoder=*) _libavencoders=$(echo $_libavencoders | sed "s/$(echo $ac_option | cut -d '=' -f 2)//g") ;; - --enable-parser=*) _libavparsers="$_libavparsers $(echo $ac_option | cut -d '=' -f 2)" ;; - --disable-parser=*) _libavparsers=$(echo $_libavparsers | sed "s/$(echo $ac_option | cut -d '=' -f 2)//g") ;; - --enable-demuxer=*) _libavdemuxers="$_libavdemuxers $(echo $ac_option | cut -d '=' -f 2)" ;; - --disable-demuxer=*) _libavdemuxers=$(echo $_libavdemuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2)//g") ;; - --enable-muxer=*) _libavmuxers="$_libavmuxers $(echo $ac_option | cut -d '=' -f 2)" ;; - --disable-muxer=*) _libavmuxers=$(echo $_libavmuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2)//g") ;; + --enable-decoder=*) _libavdecoders="$_libavdecoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;; + --disable-decoder=*) _libavdecoders=$(echo $_libavdecoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;; + --enable-encoder=*) _libavencoders="$_libavencoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;; + --disable-encoder=*) _libavencoders=$(echo $_libavencoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;; + --enable-parser=*) _libavparsers="$_libavparsers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;; + --disable-parser=*) _libavparsers=$(echo $_libavparsers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;; + --enable-demuxer=*) _libavdemuxers="$_libavdemuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;; + --disable-demuxer=*) _libavdemuxers=$(echo $_libavdemuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;; + --enable-muxer=*) _libavmuxers="$_libavmuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;; + --disable-muxer=*) _libavmuxers=$(echo $_libavmuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;; --enable-libavformat_a) _libavformat_a=yes ;; --disable-libavformat_a) _libavformat_a=no ;; --enable-libavformat_so) _libavformat_so=yes ;; From 1ea5135f6fa36b9b25438787ac5d3d1f92dccc2d Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 8 Sep 2009 21:42:51 +0000 Subject: [PATCH 19/40] Make all mp_*_taglists const. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29663 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/mp_taglists.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libmpdemux/mp_taglists.c b/libmpdemux/mp_taglists.c index 5cea53c2ec..ca0635cf64 100644 --- a/libmpdemux/mp_taglists.c +++ b/libmpdemux/mp_taglists.c @@ -53,7 +53,7 @@ static const AVCodecTag mp_wav_tags[] = { { 0, 0 }, }; -const struct AVCodecTag *mp_wav_taglists[] = {ff_codec_wav_tags, mp_wav_tags, 0}; +const struct AVCodecTag * const mp_wav_taglists[] = {ff_codec_wav_tags, mp_wav_tags, 0}; static const AVCodecTag mp_codecid_override_tags[] = { { CODEC_ID_AAC, MKTAG('M', 'P', '4', 'A')}, @@ -76,7 +76,7 @@ static const AVCodecTag mp_codecid_override_tags[] = { { 0, 0 }, }; -const struct AVCodecTag *mp_codecid_override_taglists[] = +const struct AVCodecTag * const mp_codecid_override_taglists[] = {mp_codecid_override_tags, 0}; static const AVCodecTag mp_bmp_tags[] = { @@ -108,5 +108,5 @@ static const AVCodecTag mp_bmp_tags[] = { { 0, 0 }, }; -const struct AVCodecTag *mp_bmp_taglists[] = {ff_codec_bmp_tags, mp_bmp_tags, 0}; +const struct AVCodecTag * const mp_bmp_taglists[] = {ff_codec_bmp_tags, mp_bmp_tags, 0}; From 873d1203474a9bc917df324e404b87d8b4266330 Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 8 Sep 2009 21:45:36 +0000 Subject: [PATCH 20/40] Add CODEC_ID_ADPCM_IMA_AMV to lavf codec_tag override list instead of reimplementing that functionality. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29664 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_lavf.c | 2 -- libmpdemux/mp_taglists.c | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index cf38ab41d7..5d4444a774 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -242,8 +242,6 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { // mp4a tag is used for all mp4 files no matter what they actually contain if(codec->codec_tag == MKTAG('m', 'p', '4', 'a')) codec->codec_tag= 0; - if(codec->codec_id == CODEC_ID_ADPCM_IMA_AMV) - codec->codec_tag= MKTAG('A','M','V','A'); if(!codec->codec_tag) codec->codec_tag= av_codec_get_tag(mp_wav_taglists, codec->codec_id); wf->wFormatTag= codec->codec_tag; diff --git a/libmpdemux/mp_taglists.c b/libmpdemux/mp_taglists.c index ca0635cf64..74aba653c4 100644 --- a/libmpdemux/mp_taglists.c +++ b/libmpdemux/mp_taglists.c @@ -58,6 +58,7 @@ const struct AVCodecTag * const mp_wav_taglists[] = {ff_codec_wav_tags, mp_wav_t static const AVCodecTag mp_codecid_override_tags[] = { { CODEC_ID_AAC, MKTAG('M', 'P', '4', 'A')}, { CODEC_ID_AC3, 0x2000}, + { CODEC_ID_ADPCM_IMA_AMV, MKTAG('A', 'M', 'V', 'A')}, { CODEC_ID_DTS, 0x2001}, { CODEC_ID_EAC3, MKTAG('E', 'A', 'C', '3')}, { CODEC_ID_H264, MKTAG('H', '2', '6', '4')}, From 927afdcf6d4c193950f6ca0ece0ed742cd78738a Mon Sep 17 00:00:00 2001 From: ramiro Date: Wed, 9 Sep 2009 21:43:25 +0000 Subject: [PATCH 21/40] Document that slices can be bottom to top or top to bottom. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29665 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libswscale/swscale.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libswscale/swscale.h b/libswscale/swscale.h index 43ff7e20f5..87e64e2885 100644 --- a/libswscale/swscale.h +++ b/libswscale/swscale.h @@ -135,7 +135,7 @@ struct SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat /** * Scales the image slice in srcSlice and puts the resulting scaled * slice in the image in dst. A slice is a sequence of consecutive - * rows in an image. + * rows in an image. Slices can be bottom to top or top to bottom. * * @param context the scaling context previously created with * sws_getContext() From d5d5bbbb3547431319ba712d058c96a702cdf065 Mon Sep 17 00:00:00 2001 From: reimar Date: Thu, 10 Sep 2009 16:49:20 +0000 Subject: [PATCH 22/40] Always keep a backup of the expand values from the command-line, so values will be recalculated correctly e.g. after aspect change and -vf expand=aspect=4/3 command line. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29666 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpcodecs/vf_expand.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/libmpcodecs/vf_expand.c b/libmpcodecs/vf_expand.c index f545990e9a..0480f10342 100644 --- a/libmpcodecs/vf_expand.c +++ b/libmpcodecs/vf_expand.c @@ -24,6 +24,13 @@ #include "m_struct.h" static struct vf_priv_s { + // These four values are a backup of the values parsed from the command line. + // This is necessary so that we do not get a mess upon filter reinit due to + // e.g. aspect changes and with only aspect specified on the command line, + // where we would otherwise use the values calculated for a different aspect + // instead of recalculating them again. + int cfg_exp_w, cfg_exp_h; + int cfg_exp_x, cfg_exp_y; int exp_w,exp_h; int exp_x,exp_y; int osd; @@ -194,6 +201,10 @@ static int config(struct vf_instance_s* vf, return vf_next_config(vf,width,height,d_width,d_height,flags,outfmt); } if (outfmt == IMGFMT_IF09) return 0; + vf->priv->exp_x = vf->priv->cfg_exp_x; + vf->priv->exp_y = vf->priv->cfg_exp_y; + vf->priv->exp_w = vf->priv->cfg_exp_w; + vf->priv->exp_h = vf->priv->cfg_exp_h; // calculate the missing parameters: #if 0 if(vf->priv->exp_wpriv->exp_w=width; @@ -432,10 +443,10 @@ static int open(vf_instance_t *vf, char* args){ vf->get_image=get_image; vf->put_image=put_image; mp_msg(MSGT_VFILTER, MSGL_INFO, "Expand: %d x %d, %d ; %d, osd: %d, aspect: %lf, round: %d\n", - vf->priv->exp_w, - vf->priv->exp_h, - vf->priv->exp_x, - vf->priv->exp_y, + vf->priv->cfg_exp_w, + vf->priv->cfg_exp_h, + vf->priv->cfg_exp_x, + vf->priv->cfg_exp_y, vf->priv->osd, vf->priv->aspect, vf->priv->round); @@ -444,10 +455,10 @@ static int open(vf_instance_t *vf, char* args){ #define ST_OFF(f) M_ST_OFF(struct vf_priv_s,f) static m_option_t vf_opts_fields[] = { - {"w", ST_OFF(exp_w), CONF_TYPE_INT, 0, 0 ,0, NULL}, - {"h", ST_OFF(exp_h), CONF_TYPE_INT, 0, 0 ,0, NULL}, - {"x", ST_OFF(exp_x), CONF_TYPE_INT, M_OPT_MIN, -1, 0, NULL}, - {"y", ST_OFF(exp_y), CONF_TYPE_INT, M_OPT_MIN, -1, 0, NULL}, + {"w", ST_OFF(cfg_exp_w), CONF_TYPE_INT, 0, 0 ,0, NULL}, + {"h", ST_OFF(cfg_exp_h), CONF_TYPE_INT, 0, 0 ,0, NULL}, + {"x", ST_OFF(cfg_exp_x), CONF_TYPE_INT, M_OPT_MIN, -1, 0, NULL}, + {"y", ST_OFF(cfg_exp_y), CONF_TYPE_INT, M_OPT_MIN, -1, 0, NULL}, {"osd", ST_OFF(osd), CONF_TYPE_FLAG, 0 , 0, 1, NULL}, {"aspect", ST_OFF(aspect), CONF_TYPE_DOUBLE, M_OPT_MIN, 0, 0, NULL}, {"round", ST_OFF(round), CONF_TYPE_INT, M_OPT_MIN, 1, 0, NULL}, From cd5fa275504dec8d9e7e497c8d6db1451aa71c74 Mon Sep 17 00:00:00 2001 From: reimar Date: Thu, 10 Sep 2009 17:28:35 +0000 Subject: [PATCH 23/40] Sort preferred_list alphabetically since the order does not matter otherwise. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29667 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_lavf.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index 5d4444a774..f99263c99a 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -173,17 +173,17 @@ static int lavf_check_file(demuxer_t *demuxer){ static const char * const preferred_list[] = { "dxa", - "wv", - "nuv", - "nut", - "gxf", - "mxf", "flv", - "swf", + "gxf", + "nut", + "nuv", "mov,mp4,m4a,3gp,3g2,mj2", "mpc", "mpc8", + "mxf", + "swf", "vqf", + "wv", NULL }; From 86ff541253b1e825dfc82fe7286f82969717080c Mon Sep 17 00:00:00 2001 From: reimar Date: Thu, 10 Sep 2009 17:30:02 +0000 Subject: [PATCH 24/40] Add w64 to list of preferred lavf formats (otherwise demux_audio incorrectly claims the Wave64 files but can not handle them). Patch by Daniel Verkamp [daniel drv nu]. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29668 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_lavf.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index f99263c99a..3ac0b6d489 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -183,6 +183,7 @@ static const char * const preferred_list[] = { "mxf", "swf", "vqf", + "w64", "wv", NULL }; From 37677802e5e1e5ad7d97e29b28bf5da32bca950a Mon Sep 17 00:00:00 2001 From: diego Date: Thu, 10 Sep 2009 18:29:34 +0000 Subject: [PATCH 25/40] Fix bashism: Use '$(( ))' syntax instead of '(( ))' for arithmetic expressions. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29669 b3059339-0415-0410-9bf9-f77b7e298cf2 --- TOOLS/mencvcd.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TOOLS/mencvcd.sh b/TOOLS/mencvcd.sh index c03f3486a6..b75acb2f15 100755 --- a/TOOLS/mencvcd.sh +++ b/TOOLS/mencvcd.sh @@ -345,8 +345,8 @@ fi [ $mp3 -eq 1 -a $abrset -eq 0 ] && abr=128 # audio sample rate in kHz -((a=$asr / 1000)) -((b=$asr % 1000)) +a=$(($a=$asr / 1000)) +b=$(($b=$asr % 1000)) [ $b -le 9 ] && b="00$b00" [ $b -le 99 ] && b="0$b00" kasr="$a.$b" From 2acf75aeedcd5a5552f3c15a58a3d30838b51e12 Mon Sep 17 00:00:00 2001 From: diego Date: Thu, 10 Sep 2009 18:35:10 +0000 Subject: [PATCH 26/40] Convert to UTF-8. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29670 b3059339-0415-0410-9bf9-f77b7e298cf2 --- TOOLS/mencvcd.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TOOLS/mencvcd.sh b/TOOLS/mencvcd.sh index b75acb2f15..6e2650f85a 100755 --- a/TOOLS/mencvcd.sh +++ b/TOOLS/mencvcd.sh @@ -4,7 +4,7 @@ # # Licence: GPL # -# 2002/09/21 Jrgen Hammelmann +# 2002/09/21 Jürgen Hammelmann # # Script: MPlayer Sources (DVD) to (S)VCD ripping and burning # From 8768c518282e623ef87d28207d14c1d9b66f9302 Mon Sep 17 00:00:00 2001 From: Gabrov Date: Fri, 11 Sep 2009 15:47:43 +0000 Subject: [PATCH 27/40] synced with r29670 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29671 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/man/hu/mplayer.1 | 18 +++++++++++------- DOCS/xml/hu/encoding-guide.xml | 10 +--------- DOCS/xml/hu/install.xml | 14 +++++--------- help/help_mp-hu.h | 7 ++----- 4 files changed, 19 insertions(+), 30 deletions(-) diff --git a/DOCS/man/hu/mplayer.1 b/DOCS/man/hu/mplayer.1 index a63c5af287..262036a988 100644 --- a/DOCS/man/hu/mplayer.1 +++ b/DOCS/man/hu/mplayer.1 @@ -1,4 +1,4 @@ -.\" Synced with r29413 +.\" Synced with r29661 .\" MPlayer (C) 2000-2009 MPlayer Team .\" Ezt a man oldalt Gabucino, Diego Biurrun s Jonas Jermann kszti/ksztette .\" Karbantart: Gabrov @@ -33,7 +33,7 @@ .\" Nv .\" -------------------------------------------------------------------------- . -.TH MPlayer 1 "2009. 07. 13." "MPlayer Project" "A film lejtsz" +.TH MPlayer 1 "2009. 09. 11." "MPlayer Project" "A film lejtsz" . .SH NV mplayer \- film lejtsz @@ -525,6 +525,12 @@ a ~/.mplayer/ k A konfigurcis fjlt teheted ugyanabba a knyvtrba is, mint ahol a lejtszand fjl van, feltve hogy megadod a \-use\-filedir\-conf kapcsolt (vagy a parancssorban vagy a globlis konfigurcis fjlban). +Ha egy fjl specifikus konfigurcis fjl tallhat ugyan abban a knyvtrban, nem +tlt be egy fjl specifikus konfigurcit sem a ~/.mplayer knyvtrbl. +Radsul a \-use\-filedir\-conf opci engedlyezi a knyvtr specifikus konfigurcis +fjlokat. Ezrt az MPlayer elszr megprblja betlteni az mplayer.conf-ot az +lejtszand fjlt tartalmaz knyvtrbl, majd megprbl betlteni brmilyen fjl +specifikus konfigurcit. .PP .I PLDA AZ MPLAYER KONFIGURCIS FJLJRA: .sp 1 @@ -3295,6 +3301,8 @@ VBI bekapcsol Ez megadja az MPlayernek hogy egy mr ltez X11 ablakban jtsszon le, hasznos ha bngszbe akarod integrlni az MPlayert (pl.\& a plugger kiterjesztssel). +Ez az opci a megadott ablakot teljesen kitlti, ezrt a mretezst, panscan-t, +stb. mr nem az MPlayer kezeli, hanem az alkalmazs, amelyik az ablakot ltrehozta. . .TP .B \-xineramascreen <\-2\-...> @@ -3629,7 +3637,7 @@ K .IPs dive Knyszerti a DIVE mdot. .IPs (no)t23 -Engedlyezi/letiltja a T23 laptopokra vonatkoz kdot (alaprtelmezett: \-not23). +Engedlyezi/letiltja a T23 laptopokra vonatkoz kdot (alaprtelmezett: letiltott). Prbld meg engedlyezni ezt az opcit, ha a vide krtyd csak a felmretezst tmogatja. .RE .PD 1 @@ -7884,10 +7892,6 @@ Adapt Free Lossless Audio Codec (FLAC) .IPs "g726\ " G.726 ADPCM -.IPs libamr_nb -3GPP Adaptive Multi-Rate (AMR) narrow-band -.IPs libamr_wb -3GPP Adaptive Multi-Rate (AMR) wide-band .IPs libfaac Advanced Audio Coding (AAC) \- FAAC hasznlatval .IPs libmp3lame diff --git a/DOCS/xml/hu/encoding-guide.xml b/DOCS/xml/hu/encoding-guide.xml index 434c7a48be..f783423790 100644 --- a/DOCS/xml/hu/encoding-guide.xml +++ b/DOCS/xml/hu/encoding-guide.xml @@ -1,5 +1,5 @@ - + Kódolás a <application>MEncoder</application>rel @@ -2593,14 +2593,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) - FAAC használatával diff --git a/DOCS/xml/hu/install.xml b/DOCS/xml/hu/install.xml index e92d75f5d7..45b9f5aa8c 100644 --- a/DOCS/xml/hu/install.xml +++ b/DOCS/xml/hu/install.xml @@ -1,5 +1,5 @@ - + Telepítés @@ -470,14 +470,10 @@ make install AMR -Az Adaptive Multi-Rate beszéd codec-et harmadik generációs (3G) mobiltelefonokban -használják. -A referencia implementáció elérhető -A 3. Generációs Együttműködés Projekt -oldalán (személyes felhasználásra ingyenes). -A támogatás bekapcsolásához töltsd le és telepítsd a függvénykönyvtárakat az -AMR-NB és AMR-WB-hez -az oldal utasításait követve. Utána forgasd újra az MPlayert! +Az MPlayer használni tudja az OpenCORE AMR függvénykönyvtárakat a FFmpeg-en keresztül. +Töltsd le a könyvtárakat az AMR-NB-hez és az AMR-WB-hez az +opencore-amr +projectből és telepítsd őket az oldalon lévő utasítások szerint. diff --git a/help/help_mp-hu.h b/help/help_mp-hu.h index b437f9c218..98ec030a1f 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 -// Sync'ed with help_mp-en.h r29209 (2009. 05. 24.) +// Sync'ed with help_mp-en.h r29549 (2009. 09. 11.) // ========================= MPlayer help =========================== @@ -1277,10 +1277,7 @@ static const char help_text[]= #define MSGTR_AO_ALSA_UnableToDisableResampling "[AO_ALSA] A resampling letiltása sikertelen: %s\n" #define MSGTR_AO_ALSA_UnableToSetSamplerate2 "[AO_ALSA] Sikerteln a samplerate-2 beállítása: %s\n" #define MSGTR_AO_ALSA_UnableToSetBufferTimeNear "[AO_ALSA] Sikertelen a buffer idő beállítása: %s\n" -#define MSGTR_AO_ALSA_UnableToSetPeriodTime "[AO_ALSA] Sikertelen a periódusidő beállítása: %s\n" -#define MSGTR_AO_ALSA_BufferTimePeriodTime "[AO_ALSA] buffer_time: %d, period_time :%d\n" -#define MSGTR_AO_ALSA_UnableToGetPeriodSize "[AO ALSA] Sikertelen a periódus idő lekérdezése: %s\n" -#define MSGTR_AO_ALSA_UnableToSetPeriodSize "[AO ALSA] Sikertelen a periódus méret beállítása (%ld): %s\n" +#define MSGTR_AO_ALSA_UnableToGetPeriodSize "[AO ALSA] Sikertelen a periódus méret lekérdezése: %s\n" #define MSGTR_AO_ALSA_UnableToSetPeriods "[AO_ALSA] Sikertelen a periódusok beállítása: %s\n" #define MSGTR_AO_ALSA_UnableToSetHwParameters "[AO_ALSA] Sikerteln a hw-paraméter-ek beállítása: %s\n" #define MSGTR_AO_ALSA_UnableToGetBufferSize "[AO_ALSA] Sikerteln a buffer méret lekérdezése: %s\n" From 7352779ed88010d88914868d0421c6caec3c8578 Mon Sep 17 00:00:00 2001 From: jrash Date: Sat, 12 Sep 2009 06:10:42 +0000 Subject: [PATCH 28/40] sync with en/mplayer.1 r29661 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29672 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/man/zh_CN/mplayer.1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DOCS/man/zh_CN/mplayer.1 b/DOCS/man/zh_CN/mplayer.1 index d0055f51f3..6d30e6a112 100644 --- a/DOCS/man/zh_CN/mplayer.1 +++ b/DOCS/man/zh_CN/mplayer.1 @@ -1,4 +1,4 @@ -.\" sync with en/mplayer.1 r29638 +.\" sync with en/mplayer.1 r29661 .\" Encoding: UTF-8 .\" Reminder of hard terms which need better/final solution later: .\" /capture; playtree in parent list; colorkey; retrace; desync; downmix; @@ -3385,7 +3385,7 @@ VIDIX 的 Windows 前台 .IPs dive 强制使用 DIVE 模式。 .IPs (no)t23 -启用/禁用解决 T23 笔记本问题的变通模式(默认值:\-not23)。 +启用/禁用解决 T23 笔记本问题的变通模式(默认值:禁用)。 如果你的显卡仅支持画面放大输出,尝试开启这个选项。 .RE .PD 1 From 77cb01d34f0341c3e3cdcdb946739e7fb6e3dc7f Mon Sep 17 00:00:00 2001 From: compn Date: Sat, 12 Sep 2009 16:49:11 +0000 Subject: [PATCH 29/40] add kega video binary codec for fourcc kgv1 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29673 b3059339-0415-0410-9bf9-f77b7e298cf2 --- etc/codecs.conf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/etc/codecs.conf b/etc/codecs.conf index 2aade33cf3..e9b1593cb1 100644 --- a/etc/codecs.conf +++ b/etc/codecs.conf @@ -2209,6 +2209,14 @@ videocodec webtrain dll "wtvc.dll" out BGR16 flip +videocodec kegavideo + info "Kega Video" + status working + fourcc KGV1 + driver vfw + dll "KGV1-VFW.dll" + out BGR15,BGR16 flip + videocodec xfire info "xfire video" status working From 03343659cad057b5297fe73cfe2bc419a598b00c Mon Sep 17 00:00:00 2001 From: ramiro Date: Sat, 12 Sep 2009 20:10:22 +0000 Subject: [PATCH 30/40] Remove ; after while(0) in macros. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29674 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libswscale/ppc/yuv2rgb_altivec.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c index ff5fab713e..b549a450a5 100644 --- a/libswscale/ppc/yuv2rgb_altivec.c +++ b/libswscale/ppc/yuv2rgb_altivec.c @@ -167,7 +167,7 @@ do { \ vec_st (_0, 0, ptr++); \ vec_st (_1, 0, ptr++); \ vec_st (_2, 0, ptr++); \ -} while (0); +} while (0) #define vec_mstrgb24(x0,x1,x2,ptr) \ do { \ @@ -176,7 +176,7 @@ do { \ vec_st (_0, 0, ptr++); \ vec_st (_1, 0, ptr++); \ vec_st (_2, 0, ptr++); \ -} while (0); +} while (0) /* pack the pixels in rgb0 format msb R @@ -198,7 +198,7 @@ do { \ vec_st (_2, 2*16, (T *)ptr); \ vec_st (_3, 3*16, (T *)ptr); \ ptr += 4; \ -} while (0); +} while (0) /* From b2b8779831d4255e708180d1fb9cba4db706bebb Mon Sep 17 00:00:00 2001 From: ramiro Date: Sun, 13 Sep 2009 01:49:40 +0000 Subject: [PATCH 31/40] Reset slice direction at end of each frame. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29675 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libswscale/swscale.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libswscale/swscale.c b/libswscale/swscale.c index 170baf9b7c..8a9521fc0e 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -3167,6 +3167,10 @@ int sws_scale(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, reset_ptr(src2, c->srcFormat); reset_ptr(dst2, c->dstFormat); + /* reset slice direction at end of frame */ + if (srcSliceY + srcSliceH == c->srcH) + c->sliceDir = 0; + return c->swScale(c, src2, srcStride2, srcSliceY, srcSliceH, dst2, dstStride2); } else { // slices go from bottom to top => we flip the image internally @@ -3186,6 +3190,10 @@ int sws_scale(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, reset_ptr(src2, c->srcFormat); reset_ptr(dst2, c->dstFormat); + /* reset slice direction at end of frame */ + if (!srcSliceY) + c->sliceDir = 0; + return c->swScale(c, src2, srcStride2, c->srcH-srcSliceY-srcSliceH, srcSliceH, dst2, dstStride2); } } From 22986e51c14b89dd19ebcca5fdb9bc19ef6e5a40 Mon Sep 17 00:00:00 2001 From: reimar Date: Mon, 14 Sep 2009 08:29:18 +0000 Subject: [PATCH 32/40] Reduce verbosity if demuxer sets an info value to the same as the current value. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29676 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demuxer.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index bb7c3568f1..bb40596dd5 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -1144,6 +1144,10 @@ int demux_info_add(demuxer_t *demuxer, const char *opt, const char *param) for (n = 0; info && info[2 * n] != NULL; n++) { if (!strcasecmp(opt, info[2 * n])) { + if (!strcmp(param, info[2 * n + 1])) { + mp_msg(MSGT_DEMUX, MSGL_V, "Demuxer info %s set to unchanged value %s\n", opt, param); + return 0; + } mp_msg(MSGT_DEMUX, MSGL_INFO, MSGTR_DemuxerInfoChanged, opt, param); free(info[2 * n + 1]); From bd44692ac728ac5f47321b0745e0c67b16c9f695 Mon Sep 17 00:00:00 2001 From: reimar Date: Mon, 14 Sep 2009 08:51:00 +0000 Subject: [PATCH 33/40] Get rid of useless indirection and use the demuxer argument directly instead of ds->demuxer. This makes it also work again with -audiofile without having to add more hacks to demux_demuxers. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29677 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_audio.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libmpdemux/demux_audio.c b/libmpdemux/demux_audio.c index f99517e476..726f42bf8b 100644 --- a/libmpdemux/demux_audio.c +++ b/libmpdemux/demux_audio.c @@ -528,11 +528,10 @@ static int demux_audio_open(demuxer_t* demuxer) { } -static int demux_audio_fill_buffer(demuxer_t *demuxer, demux_stream_t *ds) { +static int demux_audio_fill_buffer(demuxer_t *demux, demux_stream_t *ds) { int l; demux_packet_t* dp; sh_audio_t* sh_audio = ds->sh; - demuxer_t* demux = ds->demuxer; da_priv_t* priv = demux->priv; double this_pts = priv->next_pts; stream_t* s = demux->stream; From 426bd1b1e1968a9b8756eb74fa48925051a3f3f5 Mon Sep 17 00:00:00 2001 From: reimar Date: Mon, 14 Sep 2009 09:47:08 +0000 Subject: [PATCH 34/40] Add support for decoding sgi files via FFmpeg's sgi decoder. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29678 b3059339-0415-0410-9bf9-f77b7e298cf2 --- etc/codecs.conf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/etc/codecs.conf b/etc/codecs.conf index e9b1593cb1..89c5037246 100644 --- a/etc/codecs.conf +++ b/etc/codecs.conf @@ -414,6 +414,14 @@ videocodec mtga driver mtga out BGR32,BGR24 +videocodec ffsgi + info "FFmpeg SGI image" + status working + fourcc SGI1 ; SGI1 is an internal MPlayer FOURCC + driver ffmpeg + dll sgi + out RGB24,Y800,RGB48BE + videocodec sgi info "SGI image" status working From 60287b1acb53099fe902031bf53f686750edf631 Mon Sep 17 00:00:00 2001 From: compn Date: Mon, 14 Sep 2009 10:26:53 +0000 Subject: [PATCH 35/40] kegavideo codec requires msvcr80 on windows remove incorrect out colorspace git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29679 b3059339-0415-0410-9bf9-f77b7e298cf2 --- etc/codecs.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/etc/codecs.conf b/etc/codecs.conf index 89c5037246..782ff61809 100644 --- a/etc/codecs.conf +++ b/etc/codecs.conf @@ -2219,11 +2219,12 @@ videocodec webtrain videocodec kegavideo info "Kega Video" + comment "requires MSVCR80.DLL on windows" status working fourcc KGV1 driver vfw dll "KGV1-VFW.dll" - out BGR15,BGR16 flip + out BGR16 flip videocodec xfire info "xfire video" From 061da8b24be806b5cb645873b300c8f8fe8f4ddd Mon Sep 17 00:00:00 2001 From: reimar Date: Mon, 14 Sep 2009 13:16:35 +0000 Subject: [PATCH 36/40] %lf is not a valid printf format specifier, use just %f instead. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29680 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpcodecs/vf_expand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libmpcodecs/vf_expand.c b/libmpcodecs/vf_expand.c index 0480f10342..bc3fb9c57d 100644 --- a/libmpcodecs/vf_expand.c +++ b/libmpcodecs/vf_expand.c @@ -442,7 +442,7 @@ static int open(vf_instance_t *vf, char* args){ vf->draw_slice=draw_slice; vf->get_image=get_image; vf->put_image=put_image; - mp_msg(MSGT_VFILTER, MSGL_INFO, "Expand: %d x %d, %d ; %d, osd: %d, aspect: %lf, round: %d\n", + mp_msg(MSGT_VFILTER, MSGL_INFO, "Expand: %d x %d, %d ; %d, osd: %d, aspect: %f, round: %d\n", vf->priv->cfg_exp_w, vf->priv->cfg_exp_h, vf->priv->cfg_exp_x, From ae72cfc729117406c2680a487d19bf5385a57c15 Mon Sep 17 00:00:00 2001 From: reimar Date: Mon, 14 Sep 2009 14:47:56 +0000 Subject: [PATCH 37/40] Add several HAVE_EBX_AVAILABLE conditions where necessary git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29681 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpcodecs/vf_ilpack.c | 4 ++++ libmpcodecs/vf_ivtc.c | 4 ++-- libmpcodecs/vf_tfields.c | 4 ++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/libmpcodecs/vf_ilpack.c b/libmpcodecs/vf_ilpack.c index b0a3f55300..b2005dcb57 100644 --- a/libmpcodecs/vf_ilpack.c +++ b/libmpcodecs/vf_ilpack.c @@ -88,6 +88,7 @@ static void pack_nn_MMX(unsigned char *dst, unsigned char *y, pack_nn_C(dst, y, u, v, (w&7)); } +#if HAVE_EBX_AVAILABLE static void pack_li_0_MMX(unsigned char *dst, unsigned char *y, unsigned char *u, unsigned char *v, int w, int us, int vs) { @@ -307,6 +308,7 @@ static void pack_li_1_MMX(unsigned char *dst, unsigned char *y, ); pack_li_1_C(dst, y, u, v, (w&15), us, vs); } +#endif /* HAVE_EBX_AVAILABLE */ #endif static pack_func_t *pack_nn; @@ -399,8 +401,10 @@ static int open(vf_instance_t *vf, char* args) #if HAVE_MMX if(gCpuCaps.hasMMX) { pack_nn = (pack_func_t *)pack_nn_MMX; +#if HAVE_EBX_AVAILABLE pack_li_0 = pack_li_0_MMX; pack_li_1 = pack_li_1_MMX; +#endif } #endif diff --git a/libmpcodecs/vf_ivtc.c b/libmpcodecs/vf_ivtc.c index c29a797f69..4d55d4446f 100644 --- a/libmpcodecs/vf_ivtc.c +++ b/libmpcodecs/vf_ivtc.c @@ -40,7 +40,7 @@ enum { F_SHOW }; -#if HAVE_MMX +#if HAVE_MMX && HAVE_EBX_AVAILABLE static void block_diffs_MMX(struct metrics *m, unsigned char *old, unsigned char *new, int os, int ns) { int i; @@ -516,7 +516,7 @@ static int open(vf_instance_t *vf, char* args) p->first = 1; if (args) sscanf(args, "%d", &p->drop); block_diffs = block_diffs_C; -#if HAVE_MMX +#if HAVE_MMX && HAVE_EBX_AVAILABLE if(gCpuCaps.hasMMX) block_diffs = block_diffs_MMX; #endif return 1; diff --git a/libmpcodecs/vf_tfields.c b/libmpcodecs/vf_tfields.c index dd754256d5..481e96148e 100644 --- a/libmpcodecs/vf_tfields.c +++ b/libmpcodecs/vf_tfields.c @@ -168,6 +168,7 @@ static void qpel_li_MMX(unsigned char *d, unsigned char *s, int w, int h, int ds __asm__ volatile("emms \n\t" : : : "memory"); } +#if HAVE_EBX_AVAILABLE static void qpel_4tap_MMX(unsigned char *d, unsigned char *s, int w, int h, int ds, int ss, int up) { int i, j, ssd=ss; @@ -247,6 +248,7 @@ static void qpel_4tap_MMX(unsigned char *d, unsigned char *s, int w, int h, int if (!up) fast_memcpy(d, s, w); __asm__ volatile("emms \n\t" : : : "memory"); } +#endif /* HAVE_EBX_AVAILABLE */ #endif static inline int clamp(int a) @@ -480,8 +482,10 @@ static int open(vf_instance_t *vf, char* args) qpel_4tap = qpel_4tap_C; #if HAVE_MMX if(gCpuCaps.hasMMX) qpel_li = qpel_li_MMX; +#if HAVE_EBX_AVAILABLE if(gCpuCaps.hasMMX) qpel_4tap = qpel_4tap_MMX; #endif +#endif #if HAVE_MMX2 if(gCpuCaps.hasMMX2) qpel_li = qpel_li_MMX2; #endif From 11ce51e3f08d01fbe6339c8c06b8e44965903ed7 Mon Sep 17 00:00:00 2001 From: compn Date: Wed, 16 Sep 2009 12:14:17 +0000 Subject: [PATCH 38/40] add YAXPAX and YAPAXI exports to msvcr80 fixes kegavideo binary codec patch by Roberto Togni git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29682 b3059339-0415-0410-9bf9-f77b7e298cf2 --- loader/win32.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/loader/win32.c b/loader/win32.c index 299a3636d5..81e65f2a0b 100644 --- a/loader/win32.c +++ b/loader/win32.c @@ -5273,6 +5273,9 @@ struct exports exp_msvcr80[]={ FF(_initterm_e, -1) FF(_initterm, -1) FF(_decode_pointer, -1) +/* needed by KGV1-VFW.dll */ + {"??2@YAPAXI@Z", -1, expnew}, + {"??3@YAXPAX@Z", -1, expdelete} }; struct exports exp_msvcp60[]={ From 1782e34b55f8f0fdb3504ee05a2ec94b7aae73e1 Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 16 Sep 2009 18:07:19 +0000 Subject: [PATCH 39/40] Hack: set DEP/NX on Windows via SetProcessDEPPolicy. This should really be done via the NXCOMPAT PE flag, but looks like binutils will not get support for it any time soon and not having this security feature enabled is just ridiculous. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29683 b3059339-0415-0410-9bf9-f77b7e298cf2 --- mplayer.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mplayer.c b/mplayer.c index fb81ffd2f1..d6d73c2bfa 100644 --- a/mplayer.c +++ b/mplayer.c @@ -2606,6 +2606,13 @@ int gui_no_filename=0; #endif #if defined(__MINGW32__) || defined(__CYGWIN__) + { + HMODULE kernel32 = GetModuleHandle("Kernel32.dll"); + BOOL WINAPI (*setDEP)(DWORD) = NULL; + if (kernel32) + setDEP = GetProcAddress(kernel32, "SetProcessDEPPolicy"); + if (setDEP) setDEP(3); + } // stop Windows from showing all kinds of annoying error dialogs SetErrorMode(0x8003); // request 1ms timer resolution From 4dae2a980c4313deed6ddb69556d2ead4417119c Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 16 Sep 2009 18:09:48 +0000 Subject: [PATCH 40/40] Merge two Windows-specific #if sections to simplify the condition. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29684 b3059339-0415-0410-9bf9-f77b7e298cf2 --- mplayer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mplayer.c b/mplayer.c index d6d73c2bfa..59a0b48a7f 100644 --- a/mplayer.c +++ b/mplayer.c @@ -2590,7 +2590,8 @@ int gui_no_filename=0; print_version("MPlayer"); -#if (defined(__MINGW32__) || defined(__CYGWIN__)) && defined(CONFIG_GUI) +#if defined(__MINGW32__) || defined(__CYGWIN__) +#ifdef CONFIG_GUI void *runningmplayer = FindWindow("MPlayer GUI for Windows", "MPlayer for Windows"); if(runningmplayer && filename && use_gui){ COPYDATASTRUCT csData; @@ -2605,7 +2606,6 @@ int gui_no_filename=0; } #endif -#if defined(__MINGW32__) || defined(__CYGWIN__) { HMODULE kernel32 = GetModuleHandle("Kernel32.dll"); BOOL WINAPI (*setDEP)(DWORD) = NULL;