From 9c846b3df6ff206f59364b2d5ae511c293d8e44a Mon Sep 17 00:00:00 2001 From: lorenm Date: Sun, 29 Nov 2009 05:18:40 +0000 Subject: [PATCH 01/84] sync to x264-r1327. (only needed for x264-in-libavcodec) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29972 b3059339-0415-0410-9bf9-f77b7e298cf2 --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index c2b3de83da..8092e75d61 100755 --- a/configure +++ b/configure @@ -7237,7 +7237,7 @@ if test "$_x264" = auto ; then cat > $TMPC << EOF #include #include -#if X264_BUILD < 78 +#if X264_BUILD < 79 #error We do not support old versions of x264. Get the latest from git. #endif int main(void) { x264_encoder_open((void*)0); return 0; } From cb8ae3fe63a2d58cf29d23dfb733781563186b08 Mon Sep 17 00:00:00 2001 From: compn Date: Tue, 1 Dec 2009 05:02:26 +0000 Subject: [PATCH 02/84] add slif fourcc (modified mpeg2 codec) to ffmpeg sw decoders git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29973 b3059339-0415-0410-9bf9-f77b7e298cf2 --- etc/codecs.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/etc/codecs.conf b/etc/codecs.conf index 49faf25322..2a16832ab8 100644 --- a/etc/codecs.conf +++ b/etc/codecs.conf @@ -162,6 +162,7 @@ videocodec ffmpeg2 fourcc m2v1 fourcc PIM2 fourcc LMP2 ; Lead mpeg2 in avi + fourcc slif ; SoftLab MPEG-2 I-frames Codec driver ffmpeg dll "mpeg2video" out YV12,I420,IYUV @@ -200,6 +201,7 @@ videocodec ffmpeg12 fourcc mp2v,mpgv fourcc m2v1,m1v1 fourcc LMP2 ; Lead mpeg2 in avi + fourcc slif ; SoftLab MPEG-2 I-frames Codec driver ffmpeg dll "mpegvideo" out YV12,I420,IYUV From bf29785d5a617072a72deb43579d4017dffe8e4d Mon Sep 17 00:00:00 2001 From: ramiro Date: Thu, 3 Dec 2009 18:18:13 +0000 Subject: [PATCH 03/84] Add support for nv12/nv21 input. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29974 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libswscale/swscale.c | 2 ++ libswscale/swscale_template.c | 50 +++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/libswscale/swscale.c b/libswscale/swscale.c index fb50c8bbe7..222c0c0136 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -135,6 +135,8 @@ const char * swscale_license(void) || (x)==PIX_FMT_GRAY8 \ || (x)==PIX_FMT_YUV410P \ || (x)==PIX_FMT_YUV440P \ + || (x)==PIX_FMT_NV12 \ + || (x)==PIX_FMT_NV21 \ || (x)==PIX_FMT_GRAY16BE \ || (x)==PIX_FMT_GRAY16LE \ || (x)==PIX_FMT_YUV444P \ diff --git a/libswscale/swscale_template.c b/libswscale/swscale_template.c index 036766afef..9ad7d45bad 100644 --- a/libswscale/swscale_template.c +++ b/libswscale/swscale_template.c @@ -1784,6 +1784,54 @@ static inline void RENAME(BEToUV)(uint8_t *dstU, uint8_t *dstV, const uint8_t *s #endif } +static inline void RENAME(nvXXtoUV)(uint8_t *dst1, uint8_t *dst2, + const uint8_t *src, long width) +{ +#if COMPILE_TEMPLATE_MMX + __asm__ volatile( + "movq "MANGLE(bm01010101)", %%mm4 \n\t" + "mov %0, %%"REG_a" \n\t" + "1: \n\t" + "movq (%1, %%"REG_a",2), %%mm0 \n\t" + "movq 8(%1, %%"REG_a",2), %%mm1 \n\t" + "movq %%mm0, %%mm2 \n\t" + "movq %%mm1, %%mm3 \n\t" + "pand %%mm4, %%mm0 \n\t" + "pand %%mm4, %%mm1 \n\t" + "psrlw $8, %%mm2 \n\t" + "psrlw $8, %%mm3 \n\t" + "packuswb %%mm1, %%mm0 \n\t" + "packuswb %%mm3, %%mm2 \n\t" + "movq %%mm0, (%2, %%"REG_a") \n\t" + "movq %%mm2, (%3, %%"REG_a") \n\t" + "add $8, %%"REG_a" \n\t" + " js 1b \n\t" + : : "g" ((x86_reg)-width), "r" (src+width*2), "r" (dst1+width), "r" (dst2+width) + : "%"REG_a + ); +#else + int i; + for (i = 0; i < width; i++) { + dst1[i] = src[2*i+0]; + dst2[i] = src[2*i+1]; + } +#endif +} + +static inline void nv12ToUV(uint8_t *dstU, uint8_t *dstV, + const uint8_t *src1, const uint8_t *src2, + long width, uint32_t *unused) +{ + RENAME(nvXXtoUV)(dstU, dstV, src1, width); +} + +static inline void nv21ToUV(uint8_t *dstU, uint8_t *dstV, + const uint8_t *src1, const uint8_t *src2, + long width, uint32_t *unused) +{ + RENAME(nvXXtoUV)(dstV, dstU, src1, width); +} + #if COMPILE_TEMPLATE_MMX static inline void RENAME(bgr24ToY_mmx)(uint8_t *dst, const uint8_t *src, long width, enum PixelFormat srcFormat) { @@ -2914,6 +2962,8 @@ static void RENAME(sws_init_swScale)(SwsContext *c) switch(srcFormat) { case PIX_FMT_YUYV422 : c->hcscale_internal = RENAME(yuy2ToUV); break; case PIX_FMT_UYVY422 : c->hcscale_internal = RENAME(uyvyToUV); break; + case PIX_FMT_NV12 : c->hcscale_internal = nv12ToUV; break; + case PIX_FMT_NV21 : c->hcscale_internal = nv21ToUV; break; case PIX_FMT_RGB8 : case PIX_FMT_BGR8 : case PIX_FMT_PAL8 : From c145024193f869a660826edabe3fb49287fda9aa Mon Sep 17 00:00:00 2001 From: compn Date: Thu, 3 Dec 2009 21:04:53 +0000 Subject: [PATCH 04/84] fix apple.com trailer example, via carl git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29975 b3059339-0415-0410-9bf9-f77b7e298cf2 --- etc/example.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/example.conf b/etc/example.conf index a0fec86eb0..0868820e56 100644 --- a/etc/example.conf +++ b/etc/example.conf @@ -93,7 +93,7 @@ # Pretend to be Quicktime # Fixes playback for apple.com/trailers redirects -#user-agent="QuickTime/7.1.3 (qtver=7.1.3;cpu=PPC;os=Mac 10.4.8)" +#user-agent="QuickTime" # Drop frames to preserve audio/video sync. #framedrop = yes From 63e520efbfd5bea0f6e613cce21467d844ba7179 Mon Sep 17 00:00:00 2001 From: ramiro Date: Sat, 5 Dec 2009 09:44:19 +0000 Subject: [PATCH 05/84] Fix compilation with runtime cpu detection. All functions in swscale_template.c should be declared with the RENAME macro. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29976 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libswscale/swscale_template.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libswscale/swscale_template.c b/libswscale/swscale_template.c index 9ad7d45bad..935b8c5016 100644 --- a/libswscale/swscale_template.c +++ b/libswscale/swscale_template.c @@ -1818,16 +1818,16 @@ static inline void RENAME(nvXXtoUV)(uint8_t *dst1, uint8_t *dst2, #endif } -static inline void nv12ToUV(uint8_t *dstU, uint8_t *dstV, - const uint8_t *src1, const uint8_t *src2, - long width, uint32_t *unused) +static inline void RENAME(nv12ToUV)(uint8_t *dstU, uint8_t *dstV, + const uint8_t *src1, const uint8_t *src2, + long width, uint32_t *unused) { RENAME(nvXXtoUV)(dstU, dstV, src1, width); } -static inline void nv21ToUV(uint8_t *dstU, uint8_t *dstV, - const uint8_t *src1, const uint8_t *src2, - long width, uint32_t *unused) +static inline void RENAME(nv21ToUV)(uint8_t *dstU, uint8_t *dstV, + const uint8_t *src1, const uint8_t *src2, + long width, uint32_t *unused) { RENAME(nvXXtoUV)(dstV, dstU, src1, width); } @@ -2962,8 +2962,8 @@ static void RENAME(sws_init_swScale)(SwsContext *c) switch(srcFormat) { case PIX_FMT_YUYV422 : c->hcscale_internal = RENAME(yuy2ToUV); break; case PIX_FMT_UYVY422 : c->hcscale_internal = RENAME(uyvyToUV); break; - case PIX_FMT_NV12 : c->hcscale_internal = nv12ToUV; break; - case PIX_FMT_NV21 : c->hcscale_internal = nv21ToUV; break; + case PIX_FMT_NV12 : c->hcscale_internal = RENAME(nv12ToUV); break; + case PIX_FMT_NV21 : c->hcscale_internal = RENAME(nv21ToUV); break; case PIX_FMT_RGB8 : case PIX_FMT_BGR8 : case PIX_FMT_PAL8 : From 71f9e96fc7470f5ca692698067898c8ce3d6cfec Mon Sep 17 00:00:00 2001 From: ramiro Date: Sun, 6 Dec 2009 22:01:25 +0000 Subject: [PATCH 06/84] Start using intermediate buffers at index 0. These index variables are incremented before each use, so they should be initialized to -1. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29977 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libswscale/swscale_template.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libswscale/swscale_template.c b/libswscale/swscale_template.c index 935b8c5016..675db6aa3f 100644 --- a/libswscale/swscale_template.c +++ b/libswscale/swscale_template.c @@ -2661,8 +2661,8 @@ static int RENAME(swScale)(SwsContext *c, uint8_t* src[], int srcStride[], int s will not get executed. This is not really intended but works currently, so people might do it. */ if (srcSliceY ==0) { - lumBufIndex=0; - chrBufIndex=0; + lumBufIndex=-1; + chrBufIndex=-1; dstY=0; lastInLumBuf= -1; lastInChrBuf= -1; From b5b701c544338af167932a0cd803e3a11d1ab0d7 Mon Sep 17 00:00:00 2001 From: ramiro Date: Mon, 7 Dec 2009 03:52:55 +0000 Subject: [PATCH 07/84] Document the differences between the two asm fragments in initMMX2HScaler(). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29978 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libswscale/swscale.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libswscale/swscale.c b/libswscale/swscale.c index 222c0c0136..079ed31cd1 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -1697,6 +1697,12 @@ static int initMMX2HScaler(int dstW, int xInc, uint8_t *filterCode, int16_t *fil int xpos, i; // create an optimized horizontal scaling routine + /* This scaler is made of runtime-generated MMX2 code using specially + * tuned pshufw instructions. For every four output pixels, if four + * input pixels are enough for the fast bilinear scaling, then a chunk + * of fragmentB is used. If five input pixels are needed, then a chunk + * of fragmentA is used. + */ //code fragment From 1057181fd7ef1684ddaefbb081b9e90cb6eee348 Mon Sep 17 00:00:00 2001 From: reimar Date: Mon, 7 Dec 2009 23:11:40 +0000 Subject: [PATCH 08/84] Add braces to avoid ambiguous else. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29979 b3059339-0415-0410-9bf9-f77b7e298cf2 --- mplayer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mplayer.c b/mplayer.c index e7efa93ac9..37f176dc83 100644 --- a/mplayer.c +++ b/mplayer.c @@ -2445,11 +2445,12 @@ static void pause_loop(void) mp_cmd_free(cmd); } mpctx->osd_function=OSD_PLAY; - if (mpctx->audio_out && mpctx->sh_audio) + if (mpctx->audio_out && mpctx->sh_audio) { if (mpctx->eof) // do not play remaining audio if we e.g. switch to the next file mpctx->audio_out->reset(); else mpctx->audio_out->resume(); // resume audio + } if (mpctx->video_out && mpctx->sh_video && vo_config_count) mpctx->video_out->control(VOCTRL_RESUME, NULL); // resume video (void)GetRelativeTime(); // ignore time that passed during pause From 2661039adac72207ee510fc98927a7cdac018254 Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 8 Dec 2009 06:42:46 +0000 Subject: [PATCH 09/84] Very preliminary code to allow selecting the OpenGL backend at runtime. Works in the currently supported cases for only Win32 and only X11, the mixed case is not working yet though. But applied anyway since the code is slightly less messy than the current one. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29980 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/gl_common.c | 78 ++++++++++++++++++++++++++++++++++++++++++----- libvo/gl_common.h | 52 ++++++++++++++++++++----------- libvo/vo_gl.c | 41 ++++++++++++------------- libvo/vo_gl2.c | 55 +++++++++++++++++---------------- 4 files changed, 153 insertions(+), 73 deletions(-) diff --git a/libvo/gl_common.c b/libvo/gl_common.c index c039953771..a4ef197035 100644 --- a/libvo/gl_common.c +++ b/libvo/gl_common.c @@ -1458,8 +1458,11 @@ static void *w32gpa(const GLubyte *procName) { return GetProcAddress(oglmod, procName); } -int setGlWindow(int *vinfo, HGLRC *context, HWND win) +static int setGlWindow_w32(MPGLContext *ctx) { + HWND win = vo_w32_window; + int *vinfo = &ctx->vinfo.w32; + HGLRC *context = &ctx->context.w32; int new_vinfo; HDC windc = vo_w32_get_dc(win); HGLRC new_context = 0; @@ -1518,7 +1521,9 @@ out: return res; } -void releaseGlContext(int *vinfo, HGLRC *context) { +static void releaseGlContext_w32(MPGLContext *ctx) { + int *vinfo = &ctx->vinfo.w32; + HGLRC *context = &ctx->context.w32; *vinfo = 0; if (*context) { wglMakeCurrent(0, 0); @@ -1527,12 +1532,13 @@ void releaseGlContext(int *vinfo, HGLRC *context) { *context = 0; } -void swapGlBuffers(void) { +static void swapGlBuffers_w32(MPGLContext *ctx) { HDC vo_hdc = vo_w32_get_dc(vo_w32_window); SwapBuffers(vo_hdc); vo_w32_release_dc(vo_w32_window, vo_hdc); } -#else +#endif +#ifdef CONFIG_X11 #ifdef HAVE_LIBDL #include #endif @@ -1595,8 +1601,11 @@ static void appendstr(char **dst, const char *str) * and the caller must initialize it correctly. * \ingroup glcontext */ -int setGlWindow(XVisualInfo **vinfo, GLXContext *context, Window win) +static int setGlWindow_x11(MPGLContext *ctx) { + XVisualInfo **vinfo = &ctx->vinfo.x11; + GLXContext *context = &ctx->context.x11; + Window win = vo_window; XVisualInfo *new_vinfo; GLXContext new_context = NULL; int keep_context = 0; @@ -1674,7 +1683,9 @@ int setGlWindow(XVisualInfo **vinfo, GLXContext *context, Window win) * \brief free the VisualInfo and GLXContext of an OpenGL context. * \ingroup glcontext */ -void releaseGlContext(XVisualInfo **vinfo, GLXContext *context) { +static void releaseGlContext_x11(MPGLContext *ctx) { + XVisualInfo **vinfo = &ctx->vinfo.x11; + GLXContext *context = &ctx->context.x11; if (*vinfo) XFree(*vinfo); *vinfo = NULL; @@ -1687,8 +1698,61 @@ void releaseGlContext(XVisualInfo **vinfo, GLXContext *context) { *context = 0; } -void swapGlBuffers(void) { +static void swapGlBuffers_x11(MPGLContext *ctx) { glXSwapBuffers(mDisplay, vo_window); } + +static int x11_check_events(void) { + return vo_x11_check_events(mDisplay); +} #endif +int init_mpglcontext(MPGLContext *ctx, enum MPGLType type) { + memset(ctx, 0, sizeof(*ctx)); + ctx->type = type; + switch (ctx->type) { +#ifdef GL_WIN32 + case GLTYPE_W32: + ctx->setGlWindow = setGlWindow_w32; + ctx->releaseGlContext = releaseGlContext_w32; + ctx->swapGlBuffers = swapGlBuffers_w32; + ctx->update_xinerama_info = w32_update_xinerama_info; + ctx->border = vo_w32_border; + ctx->check_events = vo_w32_check_events; + ctx->fullscreen = vo_w32_fullscreen; + ctx->ontop = vo_w32_ontop; + return vo_w32_init(); +#endif +#ifdef CONFIG_X11 + case GLTYPE_X11: + ctx->setGlWindow = setGlWindow_x11; + ctx->releaseGlContext = releaseGlContext_x11; + ctx->swapGlBuffers = swapGlBuffers_x11; + ctx->update_xinerama_info = update_xinerama_info; + ctx->border = vo_x11_border; + ctx->check_events = x11_check_events; + ctx->fullscreen = vo_x11_fullscreen; + ctx->ontop = vo_x11_ontop; + return vo_init(); +#endif + default: + return 0; + } +} + +void uninit_mpglcontext(MPGLContext *ctx) { + ctx->releaseGlContext(ctx); + switch (ctx->type) { +#ifdef GL_WIN32 + case GLTYPE_W32: + vo_w32_uninit(); + break; +#endif +#ifdef CONFIG_X11 + case GLTYPE_X11: + vo_x11_uninit(); + break; +#endif + } + memset(ctx, 0, sizeof(*ctx)); +} diff --git a/libvo/gl_common.h b/libvo/gl_common.h index 8f9ce55dab..53805f1299 100644 --- a/libvo/gl_common.h +++ b/libvo/gl_common.h @@ -31,7 +31,8 @@ #include #include #include "w32_common.h" -#else +#endif +#ifdef CONFIG_X11 #include #include #include @@ -352,24 +353,39 @@ void glDisableYUVConversion(GLenum target, int type); #define SET_WINDOW_REINIT 1 /** \} */ -#ifdef GL_WIN32 -#define vo_border() vo_w32_border() -#define vo_check_events() vo_w32_check_events() -#define vo_fullscreen() vo_w32_fullscreen() -#define vo_ontop() vo_w32_ontop() -#define vo_uninit() vo_w32_uninit() -int setGlWindow(int *vinfo, HGLRC *context, HWND win); -void releaseGlContext(int *vinfo, HGLRC *context); -#else -#define vo_border() vo_x11_border() -#define vo_check_events() vo_x11_check_events(mDisplay) -#define vo_fullscreen() vo_x11_fullscreen() -#define vo_ontop() vo_x11_ontop() -#define vo_uninit() vo_x11_uninit() -int setGlWindow(XVisualInfo **vinfo, GLXContext *context, Window win); -void releaseGlContext(XVisualInfo **vinfo, GLXContext *context); +enum MPGLType { + GLTYPE_W32, + GLTYPE_X11, +}; + +typedef struct MPGLContext { + enum MPGLType type; + union { + int w32; +#ifdef CONFIG_X11 + XVisualInfo *x11; #endif -void swapGlBuffers(void); + } vinfo; + union { +#ifdef GL_WIN32 + HGLRC w32; +#endif +#ifdef CONFIG_X11 + GLXContext x11; +#endif + } context; + int (*setGlWindow)(struct MPGLContext *); + void (*releaseGlContext)(struct MPGLContext *); + void (*swapGlBuffers)(struct MPGLContext *); + void (*update_xinerama_info)(void); + void (*border)(void); + int (*check_events)(void); + void (*fullscreen)(void); + void (*ontop)(void); +} MPGLContext; + +int init_mpglcontext(MPGLContext *ctx, enum MPGLType type); +void uninit_mpglcontext(MPGLContext *ctx); extern void (APIENTRY *GenBuffers)(GLsizei, GLuint *); extern void (APIENTRY *DeleteBuffers)(GLsizei, const GLuint *); diff --git a/libvo/vo_gl.c b/libvo/vo_gl.c index 2fce305645..b4f4bb862f 100644 --- a/libvo/vo_gl.c +++ b/libvo/vo_gl.c @@ -48,15 +48,7 @@ static const vo_info_t info = const LIBVO_EXTERN(gl) -#ifdef GL_WIN32 -static int gl_vinfo = 0; -static HGLRC gl_context = 0; -#define update_xinerama_info w32_update_xinerama_info -#define vo_init vo_w32_init -#define vo_window vo_w32_window -#else -static XVisualInfo *gl_vinfo = NULL; -static GLXContext gl_context = 0; +#ifdef CONFIG_X11 static int wsGLXAttrib[] = { GLX_RGBA, GLX_RED_SIZE,1, GLX_GREEN_SIZE,1, @@ -64,6 +56,7 @@ static int wsGLXAttrib[] = { GLX_RGBA, GLX_DOUBLEBUFFER, None }; #endif +static MPGLContext glctx; static int use_osd; static int scaled_osd; @@ -549,10 +542,11 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin } #endif #ifdef GL_WIN32 - if (!vo_w32_config(d_width, d_height, flags)) + if (glctx.type == GLTYPE_W32 && !vo_w32_config(d_width, d_height, flags)) return -1; -#else - { +#endif +#ifdef CONFIG_X11 + if (glctx.type == GLTYPE_X11) { XVisualInfo *vinfo=glXChooseVisual( mDisplay,mScreen,wsGLXAttrib ); if (vinfo == NULL) { @@ -570,7 +564,7 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin glconfig: if (vo_config_count) uninitGl(); - if (setGlWindow(&gl_vinfo, &gl_context, vo_window) == SET_WINDOW_FAILED) + if (glctx.setGlWindow(&glctx) == SET_WINDOW_FAILED) return -1; if (mesa_buffer && !AllocateMemoryMESA) { mp_msg(MSGT_VO, MSGL_ERR, "Can not enable mesa-buffer because AllocateMemoryMESA was not found\n"); @@ -583,7 +577,7 @@ glconfig: static void check_events(void) { - int e=vo_check_events(); + int e=glctx.check_events(); if(e&VO_EVENT_RESIZE) resize(vo_dwidth,vo_dheight); if(e&VO_EVENT_EXPOSE && int_pause) redraw(); } @@ -725,7 +719,7 @@ static void do_render_osd(int type) { static void flip_page(void) { if (vo_doublebuffering) { if (use_glFinish) glFinish(); - swapGlBuffers(); + glctx.swapGlBuffers(&glctx); if (aspect_scaling() && use_aspect) glClear(GL_COLOR_BUFFER_BIT); } else { @@ -972,12 +966,11 @@ uninit(void) { if (!vo_config_count) return; uninitGl(); - releaseGlContext(&gl_vinfo, &gl_context); if (custom_prog) free(custom_prog); custom_prog = NULL; if (custom_tex) free(custom_tex); custom_tex = NULL; - vo_uninit(); + uninit_mpglcontext(&glctx); } static const opt_t subopts[] = { @@ -1007,7 +1000,11 @@ static const opt_t subopts[] = { static int preinit(const char *arg) { + enum MPGLType gltype = GLTYPE_X11; // set defaults +#ifdef GL_WIN32 + gltype = GLTYPE_W32; +#endif many_fmts = 1; use_osd = 1; scaled_osd = 0; @@ -1102,7 +1099,7 @@ static int preinit(const char *arg) "Use -vo gl:nomanyfmts if playback fails.\n"); mp_msg(MSGT_VO, MSGL_V, "[gl] Using %d as slice height " "(0 means image height).\n", slice_height); - if (!vo_init()) return -1; // Can't open X11 + if (!init_mpglcontext(&glctx, gltype)) return -1; return 0; } @@ -1161,14 +1158,14 @@ static int control(uint32_t request, void *data, ...) case VOCTRL_GUISUPPORT: return VO_TRUE; case VOCTRL_ONTOP: - vo_ontop(); + glctx.ontop(); return VO_TRUE; case VOCTRL_FULLSCREEN: - vo_fullscreen(); + glctx.fullscreen(); resize(vo_dwidth, vo_dheight); return VO_TRUE; case VOCTRL_BORDER: - vo_border(); + glctx.border(); resize(vo_dwidth, vo_dheight); return VO_TRUE; case VOCTRL_GET_PANSCAN: @@ -1212,7 +1209,7 @@ static int control(uint32_t request, void *data, ...) } break; case VOCTRL_UPDATE_SCREENINFO: - update_xinerama_info(); + glctx.update_xinerama_info(); return VO_TRUE; } return VO_NOTIMPL; diff --git a/libvo/vo_gl2.c b/libvo/vo_gl2.c index ff44be4043..197f7cd1b1 100644 --- a/libvo/vo_gl2.c +++ b/libvo/vo_gl2.c @@ -62,16 +62,7 @@ const LIBVO_EXTERN(gl2) /* local data */ static unsigned char *ImageData=NULL; -#ifdef GL_WIN32 - static int gl_vinfo = 0; - static HGLRC gl_context = 0; -#define update_xinerama_info w32_update_xinerama_info -#define vo_init vo_w32_init -#define vo_window vo_w32_window -#else - static XVisualInfo *gl_vinfo = NULL; - static GLXContext gl_context = 0; -#endif +static MPGLContext glctx; static uint32_t image_width; static uint32_t image_height; @@ -115,7 +106,10 @@ struct TexSquare static GLint getInternalFormat(void) { + switch (glctx.type) { #ifdef GL_WIN32 + case GLTYPE_W32: + { PIXELFORMATDESCRIPTOR pfd; HDC vo_hdc = vo_w32_get_dc(vo_w32_window); int pf = GetPixelFormat(vo_hdc); @@ -128,12 +122,18 @@ static GLint getInternalFormat(void) a_sz = pfd.cAlphaBits; } vo_w32_release_dc(vo_w32_window, vo_hdc); -#else - if (glXGetConfig(mDisplay, gl_vinfo, GLX_RED_SIZE, &r_sz) != 0) r_sz = 0; - if (glXGetConfig(mDisplay, gl_vinfo, GLX_GREEN_SIZE, &g_sz) != 0) g_sz = 0; - if (glXGetConfig(mDisplay, gl_vinfo, GLX_BLUE_SIZE, &b_sz) != 0) b_sz = 0; - if (glXGetConfig(mDisplay, gl_vinfo, GLX_ALPHA_SIZE, &a_sz) != 0) a_sz = 0; + } + break; #endif +#ifdef CONFIG_X11 + case GLTYPE_X11: + if (glXGetConfig(mDisplay, glctx.vinfo.x11, GLX_RED_SIZE, &r_sz) != 0) r_sz = 0; + if (glXGetConfig(mDisplay, glctx.vinfo.x11, GLX_GREEN_SIZE, &g_sz) != 0) g_sz = 0; + if (glXGetConfig(mDisplay, glctx.vinfo.x11, GLX_BLUE_SIZE, &b_sz) != 0) b_sz = 0; + if (glXGetConfig(mDisplay, glctx.vinfo.x11, GLX_ALPHA_SIZE, &a_sz) != 0) a_sz = 0; + break; +#endif + } rgb_sz=r_sz+g_sz+b_sz; if(rgb_sz<=0) rgb_sz=24; @@ -637,7 +637,7 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin #endif return -1; - if (setGlWindow(&gl_vinfo, &gl_context, vo_window) == SET_WINDOW_FAILED) + if (glctx.setGlWindow(&glctx) == SET_WINDOW_FAILED) return -1; glVersion = glGetString(GL_VERSION); @@ -718,7 +718,7 @@ static void check_events(void) } } #endif - e=vo_check_events(); + e=glctx.check_events(); if(e&VO_EVENT_RESIZE) resize(vo_dwidth, vo_dheight); if(e&VO_EVENT_EXPOSE && int_pause) flip_page(); } @@ -737,7 +737,7 @@ flip_page(void) // glFlush(); if (use_glFinish) glFinish(); - swapGlBuffers(); + glctx.swapGlBuffers(&glctx); if (aspect_scaling()) // Avoid flickering borders in fullscreen mode glClear (GL_COLOR_BUFFER_BIT); @@ -834,12 +834,11 @@ static void uninit(void) { if ( !vo_config_count ) return; - releaseGlContext(&gl_vinfo, &gl_context); if (texgrid) { free(texgrid); texgrid = NULL; } - vo_uninit(); + uninit_mpglcontext(&glctx); } static const opt_t subopts[] = { @@ -850,7 +849,11 @@ static const opt_t subopts[] = { static int preinit(const char *arg) { + enum MPGLType gltype = GLTYPE_X11; // set defaults +#ifdef GL_WIN32 + gltype = GLTYPE_W32; +#endif use_yuv = 0; use_glFinish = 1; if (subopt_parse(arg, subopts) != 0) { @@ -870,7 +873,7 @@ static int preinit(const char *arg) "\n" ); return -1; } - if( !vo_init() ) return -1; // Can't open X11 + if(!init_mpglcontext(&glctx, gltype)) return -1; return 0; } @@ -886,16 +889,16 @@ static int control(uint32_t request, void *data, ...) case VOCTRL_GUISUPPORT: return VO_TRUE; case VOCTRL_ONTOP: - vo_ontop(); + glctx.ontop(); return VO_TRUE; case VOCTRL_FULLSCREEN: - vo_fullscreen(); - if (setGlWindow(&gl_vinfo, &gl_context, vo_window) == SET_WINDOW_REINIT) + glctx.fullscreen(); + if (glctx.setGlWindow(&glctx) == SET_WINDOW_REINIT) initGl(vo_dwidth, vo_dheight); resize(vo_dwidth, vo_dheight); return VO_TRUE; case VOCTRL_BORDER: - vo_border(); + glctx.border(); return VO_TRUE; case VOCTRL_GET_PANSCAN: return VO_TRUE; @@ -925,7 +928,7 @@ static int control(uint32_t request, void *data, ...) } #endif case VOCTRL_UPDATE_SCREENINFO: - update_xinerama_info(); + glctx.update_xinerama_info(); return VO_TRUE; } return VO_NOTIMPL; From e64d47925a7100a8a986251265180b1f1a1a8c9c Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 8 Dec 2009 23:32:51 +0000 Subject: [PATCH 10/84] Pass all OpenGL functions through a function pointer indirection. This still needs more work, but should allow supporting e.g. GLX-OpenGL and Win32-OpenGL with a single binary. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29981 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/gl_common.c | 204 ++++++++++++++++++++++++++++++++-------------- libvo/gl_common.h | 41 ++++++++++ libvo/vo_gl.c | 130 ++++++++++++++--------------- 3 files changed, 251 insertions(+), 124 deletions(-) diff --git a/libvo/gl_common.c b/libvo/gl_common.c index a4ef197035..a14c745cfb 100644 --- a/libvo/gl_common.c +++ b/libvo/gl_common.c @@ -35,6 +35,47 @@ #include "gl_common.h" #include "libavutil/common.h" +void (APIENTRY *Begin)(GLenum) = glBegin; +void (APIENTRY *End)(void) = glEnd; +void (APIENTRY *Viewport)(GLint, GLint, GLsizei, GLsizei) = glViewport; +void (APIENTRY *MatrixMode)(GLenum) = glMatrixMode; +void (APIENTRY *LoadIdentity)(void) = glLoadIdentity; +void (APIENTRY *Scaled)(double, double, double) = glScaled; +void (APIENTRY *Ortho)(double, double, double, double, double, double) = glOrtho; +void (APIENTRY *PushMatrix)(void) = glPushMatrix; +void (APIENTRY *PopMatrix)(void) = glPopMatrix; +void (APIENTRY *Clear)(GLbitfield) = glClear; +GLuint (APIENTRY *GenLists)(GLsizei) = glGenLists; +void (APIENTRY *DeleteLists)(GLuint, GLsizei) = glDeleteLists; +void (APIENTRY *NewList)(GLuint, GLenum) = glNewList; +void (APIENTRY *EndList)(void) = glEndList; +void (APIENTRY *CallList)(GLuint) = glCallList; +void (APIENTRY *CallLists)(GLsizei, GLenum, const GLvoid *) = glCallLists; +void (APIENTRY *GenTextures)(GLsizei, GLuint *) = glGenTextures; +void (APIENTRY *DeleteTextures)(GLsizei, const GLuint *) = glDeleteTextures; +void (APIENTRY *TexEnvi)(GLenum, GLenum, GLint) = glTexEnvi; +void (APIENTRY *Color4ub)(GLubyte, GLubyte, GLubyte, GLubyte) = glColor4ub; +void (APIENTRY *Color3f)(GLfloat, GLfloat, GLfloat) = glColor3f; +void (APIENTRY *ClearColor)(GLclampf, GLclampf, GLclampf, GLclampf) = glClearColor; +void (APIENTRY *Enable)(GLenum) = glEnable; +void (APIENTRY *Disable)(GLenum) = glDisable; +const GLubyte *(APIENTRY *GetString)(GLenum) = glGetString; +void (APIENTRY *DrawBuffer)(GLenum) = glDrawBuffer; +void (APIENTRY *DepthMask)(GLboolean) = glDepthMask; +void (APIENTRY *BlendFunc)(GLenum, GLenum) = glBlendFunc; +void (APIENTRY *Flush)(void) = glFlush; +void (APIENTRY *Finish)(void) = glFinish; +void (APIENTRY *PixelStorei)(GLenum, GLint) = glPixelStorei; +void (APIENTRY *TexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = glTexImage1D; +void (APIENTRY *TexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = glTexImage2D; +void (APIENTRY *TexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *) = glTexSubImage2D; +void (APIENTRY *TexParameteri)(GLenum, GLenum, GLint) = glTexParameteri; +void (APIENTRY *TexParameterf)(GLenum, GLenum, GLfloat) = glTexParameterf; +void (APIENTRY *TexParameterfv)(GLenum, GLenum, const GLfloat *) = glTexParameterfv; +void (APIENTRY *TexCoord2f)(GLfloat, GLfloat) = glTexCoord2f; +void (APIENTRY *Vertex2f)(GLfloat, GLfloat) = glVertex2f; +void (APIENTRY *GetIntegerv)(GLenum, GLint *) = glGetIntegerv; + /** * \defgroup glextfunctions OpenGL extension functions * @@ -106,7 +147,7 @@ void glAdjustAlignment(int stride) { gl_alignment=2; else gl_alignment=1; - glPixelStorei (GL_UNPACK_ALIGNMENT, gl_alignment); + PixelStorei(GL_UNPACK_ALIGNMENT, gl_alignment); } struct gl_name_map_struct { @@ -290,7 +331,52 @@ typedef struct { const char *funcnames[7]; } extfunc_desc_t; +#define DEF_FUNC_DESC(name) {&name, NULL, {"gl"#name, NULL}} static const extfunc_desc_t extfuncs[] = { + // these aren't extension functions but we query them anyway to allow + // different "backends" with one binary + DEF_FUNC_DESC(Begin), + DEF_FUNC_DESC(End), + DEF_FUNC_DESC(Viewport), + DEF_FUNC_DESC(MatrixMode), + DEF_FUNC_DESC(LoadIdentity), + DEF_FUNC_DESC(Scaled), + DEF_FUNC_DESC(Ortho), + DEF_FUNC_DESC(PushMatrix), + DEF_FUNC_DESC(PopMatrix), + DEF_FUNC_DESC(Clear), + DEF_FUNC_DESC(GenLists), + DEF_FUNC_DESC(DeleteLists), + DEF_FUNC_DESC(NewList), + DEF_FUNC_DESC(EndList), + DEF_FUNC_DESC(CallList), + DEF_FUNC_DESC(CallLists), + DEF_FUNC_DESC(GenTextures), + DEF_FUNC_DESC(DeleteTextures), + DEF_FUNC_DESC(TexEnvi), + DEF_FUNC_DESC(Color4ub), + DEF_FUNC_DESC(Color3f), + DEF_FUNC_DESC(ClearColor), + DEF_FUNC_DESC(Enable), + DEF_FUNC_DESC(Disable), + DEF_FUNC_DESC(GetString), + DEF_FUNC_DESC(DrawBuffer), + DEF_FUNC_DESC(DepthMask), + DEF_FUNC_DESC(BlendFunc), + DEF_FUNC_DESC(Flush), + DEF_FUNC_DESC(Finish), + DEF_FUNC_DESC(PixelStorei), + DEF_FUNC_DESC(TexImage1D), + DEF_FUNC_DESC(TexImage2D), + DEF_FUNC_DESC(TexSubImage2D), + DEF_FUNC_DESC(TexParameteri), + DEF_FUNC_DESC(TexParameterf), + DEF_FUNC_DESC(TexParameterfv), + DEF_FUNC_DESC(TexCoord2f), + DEF_FUNC_DESC(Vertex2f), + DEF_FUNC_DESC(GetIntegerv), + + // here start the real extensions {&GenBuffers, NULL, {"glGenBuffers", "glGenBuffersARB", NULL}}, {&DeleteBuffers, NULL, {"glDeleteBuffers", "glDeleteBuffersARB", NULL}}, {&BindBuffer, NULL, {"glBindBuffer", "glBindBufferARB", NULL}}, @@ -331,7 +417,7 @@ static const extfunc_desc_t extfuncs[] = { static void getFunctions(void *(*getProcAddress)(const GLubyte *), const char *ext2) { const extfunc_desc_t *dsc; - const char *extensions = (const char *)glGetString(GL_EXTENSIONS); + const char *extensions = (const char *)GetString(GL_EXTENSIONS); char *allexts; if (!extensions) extensions = ""; if (!ext2) ext2 = ""; @@ -382,16 +468,16 @@ void glCreateClearTex(GLenum target, GLenum fmt, GLenum format, GLenum type, GLi init = malloc(stride * h); memset(init, val, stride * h); glAdjustAlignment(stride); - glPixelStorei(GL_UNPACK_ROW_LENGTH, w); - glTexImage2D(target, 0, fmt, w, h, 0, format, type, init); - glTexParameterf(target, GL_TEXTURE_PRIORITY, 1.0); - glTexParameteri(target, GL_TEXTURE_MIN_FILTER, filter); - glTexParameteri(target, GL_TEXTURE_MAG_FILTER, filter); - glTexParameteri(target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + PixelStorei(GL_UNPACK_ROW_LENGTH, w); + TexImage2D(target, 0, fmt, w, h, 0, format, type, init); + TexParameterf(target, GL_TEXTURE_PRIORITY, 1.0); + TexParameteri(target, GL_TEXTURE_MIN_FILTER, filter); + TexParameteri(target, GL_TEXTURE_MAG_FILTER, filter); + TexParameteri(target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + TexParameteri(target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); // Border texels should not be used with CLAMP_TO_EDGE // We set a sane default anyway. - glTexParameterfv(target, GL_TEXTURE_BORDER_COLOR, border); + TexParameterfv(target, GL_TEXTURE_BORDER_COLOR, border); free(init); } @@ -539,13 +625,13 @@ void glUploadTex(GLenum target, GLenum format, GLenum type, } // this is not always correct, but should work for MPlayer glAdjustAlignment(stride); - glPixelStorei(GL_UNPACK_ROW_LENGTH, stride / glFmt2bpp(format, type)); + PixelStorei(GL_UNPACK_ROW_LENGTH, stride / glFmt2bpp(format, type)); for (; y + slice <= y_max; y += slice) { - glTexSubImage2D(target, 0, x, y, w, slice, format, type, data); + TexSubImage2D(target, 0, x, y, w, slice, format, type, data); data += stride * slice; } if (y < y_max) - glTexSubImage2D(target, 0, x, y, w, y_max - y, format, type, data); + TexSubImage2D(target, 0, x, y, w, y_max - y, format, type, data); } static void fillUVcoeff(GLfloat *ucoef, GLfloat *vcoef, @@ -584,11 +670,11 @@ static void glSetupYUVCombiners(float uvcos, float uvsin) { mp_msg(MSGT_VO, MSGL_FATAL, "[gl] Combiner functions missing!\n"); return; } - glGetIntegerv(GL_MAX_GENERAL_COMBINERS_NV, &i); + GetIntegerv(GL_MAX_GENERAL_COMBINERS_NV, &i); if (i < 2) mp_msg(MSGT_VO, MSGL_ERR, "[gl] 2 general combiners needed for YUV combiner support (found %i)\n", i); - glGetIntegerv(GL_MAX_TEXTURE_UNITS, &i); + GetIntegerv(GL_MAX_TEXTURE_UNITS, &i); if (i < 3) mp_msg(MSGT_VO, MSGL_ERR, "[gl] 3 texture units needed for YUV combiner support (found %i)\n", i); @@ -644,11 +730,11 @@ static void glSetupYUVCombinersATI(float uvcos, float uvsin) { mp_msg(MSGT_VO, MSGL_FATAL, "[gl] Combiner (ATI) functions missing!\n"); return; } - glGetIntegerv(GL_NUM_FRAGMENT_REGISTERS_ATI, &i); + GetIntegerv(GL_NUM_FRAGMENT_REGISTERS_ATI, &i); if (i < 3) mp_msg(MSGT_VO, MSGL_ERR, "[gl] 3 registers needed for YUV combiner (ATI) support (found %i)\n", i); - glGetIntegerv (GL_MAX_TEXTURE_UNITS, &i); + GetIntegerv (GL_MAX_TEXTURE_UNITS, &i); if (i < 3) mp_msg(MSGT_VO, MSGL_ERR, "[gl] 3 texture units needed for YUV combiner (ATI) support (found %i)\n", i); @@ -710,11 +796,11 @@ static void gen_spline_lookup_tex(GLenum unit) { store_weights(0, tex); store_weights(1, &tex[4 * (LOOKUP_BSPLINE_RES - 1)]); ActiveTexture(unit); - glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA16, LOOKUP_BSPLINE_RES, 0, GL_RGBA, GL_FLOAT, tex); - glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_PRIORITY, 1.0); - glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_REPEAT); + TexImage1D(GL_TEXTURE_1D, 0, GL_RGBA16, LOOKUP_BSPLINE_RES, 0, GL_RGBA, GL_FLOAT, tex); + TexParameterf(GL_TEXTURE_1D, GL_TEXTURE_PRIORITY, 1.0); + TexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + TexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + TexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_REPEAT); ActiveTexture(GL_TEXTURE0); free(tex); } @@ -1023,15 +1109,15 @@ static void create_conv_textures(gl_conversion_params_t *params, int *texu, char lookup_data = malloc(3 * sz * sz * sz); gen_yuv2rgb_map(params, lookup_data, LOOKUP_3DRES); glAdjustAlignment(sz); - glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); + PixelStorei(GL_UNPACK_ROW_LENGTH, 0); TexImage3D(GL_TEXTURE_3D, 0, 3, sz, sz, sz, 1, GL_RGB, GL_UNSIGNED_BYTE, lookup_data); - glTexParameterf(GL_TEXTURE_3D, GL_TEXTURE_PRIORITY, 1.0); - glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, GL_CLAMP); - glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_T, GL_CLAMP); - glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_R, GL_CLAMP); + TexParameterf(GL_TEXTURE_3D, GL_TEXTURE_PRIORITY, 1.0); + TexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + TexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + TexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, GL_CLAMP); + TexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_T, GL_CLAMP); + TexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_R, GL_CLAMP); ActiveTexture(GL_TEXTURE0); texs[0] += '0'; } @@ -1157,13 +1243,13 @@ int loadGPUProgram(GLenum target, char *prog) { return 0; } ProgramString(target, GL_PROGRAM_FORMAT_ASCII, strlen(prog), prog); - glGetIntegerv(GL_PROGRAM_ERROR_POSITION, &err); + GetIntegerv(GL_PROGRAM_ERROR_POSITION, &err); if (err != -1) { mp_msg(MSGT_VO, MSGL_ERR, "[gl] Error compiling fragment program, make sure your card supports\n" "[gl] GL_ARB_fragment_program (use glxinfo to check).\n" "[gl] Error message:\n %s at %.10s\n", - glGetString(GL_PROGRAM_ERROR_STRING), &prog[err]); + GetString(GL_PROGRAM_ERROR_STRING), &prog[err]); return 0; } if (!GetProgramiv || !mp_msg_test(MSGT_VO, MSGL_DBG2)) @@ -1211,7 +1297,7 @@ static void glSetupYUVFragprog(gl_conversion_params_t *params) { memcpy(chrom_scale_texs, lum_scale_texs, sizeof(chrom_scale_texs)); else create_scaler_textures(YUV_CHROM_SCALER(type), &cur_texu, chrom_scale_texs); - glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &i); + GetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &i); if (i < cur_texu) mp_msg(MSGT_VO, MSGL_ERR, "[gl] %i texture units needed for this type of YUV fragment support (found %i)\n", @@ -1328,25 +1414,25 @@ void glEnableYUVConversion(GLenum target, int type) { switch (YUV_CONVERSION(type)) { case YUV_CONVERSION_COMBINERS: ActiveTexture(GL_TEXTURE1); - glEnable(target); + Enable(target); ActiveTexture(GL_TEXTURE2); - glEnable(target); + Enable(target); ActiveTexture(GL_TEXTURE0); - glEnable(GL_REGISTER_COMBINERS_NV); + Enable(GL_REGISTER_COMBINERS_NV); break; case YUV_CONVERSION_COMBINERS_ATI: ActiveTexture(GL_TEXTURE1); - glEnable(target); + Enable(target); ActiveTexture(GL_TEXTURE2); - glEnable(target); + Enable(target); ActiveTexture(GL_TEXTURE0); - glEnable(GL_FRAGMENT_SHADER_ATI); + Enable(GL_FRAGMENT_SHADER_ATI); break; case YUV_CONVERSION_FRAGMENT_LOOKUP3D: case YUV_CONVERSION_FRAGMENT_LOOKUP: case YUV_CONVERSION_FRAGMENT_POW: case YUV_CONVERSION_FRAGMENT: - glEnable(GL_FRAGMENT_PROGRAM); + Enable(GL_FRAGMENT_PROGRAM); break; } } @@ -1362,25 +1448,25 @@ void glDisableYUVConversion(GLenum target, int type) { switch (YUV_CONVERSION(type)) { case YUV_CONVERSION_COMBINERS: ActiveTexture(GL_TEXTURE1); - glDisable(target); + Disable(target); ActiveTexture(GL_TEXTURE2); - glDisable(target); + Disable(target); ActiveTexture(GL_TEXTURE0); - glDisable(GL_REGISTER_COMBINERS_NV); + Disable(GL_REGISTER_COMBINERS_NV); break; case YUV_CONVERSION_COMBINERS_ATI: ActiveTexture(GL_TEXTURE1); - glDisable(target); + Disable(target); ActiveTexture(GL_TEXTURE2); - glDisable(target); + Disable(target); ActiveTexture(GL_TEXTURE0); - glDisable(GL_FRAGMENT_SHADER_ATI); + Disable(GL_FRAGMENT_SHADER_ATI); break; case YUV_CONVERSION_FRAGMENT_LOOKUP3D: case YUV_CONVERSION_FRAGMENT_LOOKUP: case YUV_CONVERSION_FRAGMENT_POW: case YUV_CONVERSION_FRAGMENT: - glDisable(GL_FRAGMENT_PROGRAM); + Disable(GL_FRAGMENT_PROGRAM); break; } } @@ -1414,32 +1500,32 @@ void glDrawTex(GLfloat x, GLfloat y, GLfloat w, GLfloat h, y += h; h = -h; } - glBegin(GL_QUADS); - glTexCoord2f(tx, ty); + Begin(GL_QUADS); + TexCoord2f(tx, ty); if (is_yv12) { MultiTexCoord2f(GL_TEXTURE1, tx2, ty2); MultiTexCoord2f(GL_TEXTURE2, tx2, ty2); } - glVertex2f(x, y); - glTexCoord2f(tx, ty + th); + Vertex2f(x, y); + TexCoord2f(tx, ty + th); if (is_yv12) { MultiTexCoord2f(GL_TEXTURE1, tx2, ty2 + th2); MultiTexCoord2f(GL_TEXTURE2, tx2, ty2 + th2); } - glVertex2f(x, y + h); - glTexCoord2f(tx + tw, ty + th); + Vertex2f(x, y + h); + TexCoord2f(tx + tw, ty + th); if (is_yv12) { MultiTexCoord2f(GL_TEXTURE1, tx2 + tw2, ty2 + th2); MultiTexCoord2f(GL_TEXTURE2, tx2 + tw2, ty2 + th2); } - glVertex2f(x + w, y + h); - glTexCoord2f(tx + tw, ty); + Vertex2f(x + w, y + h); + TexCoord2f(tx + tw, ty); if (is_yv12) { MultiTexCoord2f(GL_TEXTURE1, tx2 + tw2, ty2); MultiTexCoord2f(GL_TEXTURE2, tx2 + tw2, ty2); } - glVertex2f(x + w, y); - glEnd(); + Vertex2f(x + w, y); + End(); } #ifdef GL_WIN32 @@ -1472,7 +1558,7 @@ static int setGlWindow_w32(MPGLContext *ctx) // should only be needed when keeping context, but not doing glFinish // can cause flickering even when we do not keep it. if (*context) - glFinish(); + Finish(); new_vinfo = GetPixelFormat(windc); if (*context && *vinfo && new_vinfo && *vinfo == new_vinfo) { // we can keep the wglContext @@ -1613,7 +1699,7 @@ static int setGlWindow_x11(MPGLContext *ctx) // should only be needed when keeping context, but not doing glFinish // can cause flickering even when we do not keep it. if (*context) - glFinish(); + Finish(); new_vinfo = getWindowVisualInfo(win); if (*context && *vinfo && new_vinfo && (*vinfo)->visualid == new_vinfo->visualid) { @@ -1691,7 +1777,7 @@ static void releaseGlContext_x11(MPGLContext *ctx) { *vinfo = NULL; if (*context) { - glFinish(); + Finish(); glXMakeCurrent(mDisplay, None, NULL); glXDestroyContext(mDisplay, *context); } diff --git a/libvo/gl_common.h b/libvo/gl_common.h index 53805f1299..e6a0ba1208 100644 --- a/libvo/gl_common.h +++ b/libvo/gl_common.h @@ -387,6 +387,47 @@ typedef struct MPGLContext { int init_mpglcontext(MPGLContext *ctx, enum MPGLType type); void uninit_mpglcontext(MPGLContext *ctx); +extern void (APIENTRY *Begin)(GLenum); +extern void (APIENTRY *End)(void); +extern void (APIENTRY *Viewport)(GLint, GLint, GLsizei, GLsizei); +extern void (APIENTRY *MatrixMode)(GLenum); +extern void (APIENTRY *LoadIdentity)(void); +extern void (APIENTRY *Scaled)(double, double, double); +extern void (APIENTRY *Ortho)(double, double, double, double, double, double); +extern void (APIENTRY *PushMatrix)(void); +extern void (APIENTRY *PopMatrix)(void); +extern void (APIENTRY *Clear)(GLbitfield); +extern GLuint (APIENTRY *GenLists)(GLsizei); +extern void (APIENTRY *DeleteLists)(GLuint, GLsizei); +extern void (APIENTRY *NewList)(GLuint, GLenum); +extern void (APIENTRY *EndList)(void); +extern void (APIENTRY *CallList)(GLuint); +extern void (APIENTRY *CallLists)(GLsizei, GLenum, const GLvoid *); +extern void (APIENTRY *GenTextures)(GLsizei, GLuint *); +extern void (APIENTRY *DeleteTextures)(GLsizei, const GLuint *); +extern void (APIENTRY *TexEnvi)(GLenum, GLenum, GLint); +extern void (APIENTRY *Color4ub)(GLubyte, GLubyte, GLubyte, GLubyte); +extern void (APIENTRY *Color3f)(GLfloat, GLfloat, GLfloat); +extern void (APIENTRY *ClearColor)(GLclampf, GLclampf, GLclampf, GLclampf); +extern void (APIENTRY *Enable)(GLenum); +extern void (APIENTRY *Disable)(GLenum); +extern const GLubyte *(APIENTRY *GetString)(GLenum); +extern void (APIENTRY *DrawBuffer)(GLenum); +extern void (APIENTRY *DepthMask)(GLboolean); +extern void (APIENTRY *BlendFunc)(GLenum, GLenum); +extern void (APIENTRY *Flush)(void); +extern void (APIENTRY *Finish)(void); +extern void (APIENTRY *PixelStorei)(GLenum, GLint); +extern void (APIENTRY *TexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +extern void (APIENTRY *TexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +extern void (APIENTRY *TexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +extern void (APIENTRY *TexParameteri)(GLenum, GLenum, GLint); +extern void (APIENTRY *TexParameterf)(GLenum, GLenum, GLfloat); +extern void (APIENTRY *TexParameterfv)(GLenum, GLenum, const GLfloat *); +extern void (APIENTRY *TexCoord2f)(GLfloat, GLfloat); +extern void (APIENTRY *Vertex2f)(GLfloat, GLfloat); +extern void (APIENTRY *GetIntegerv)(GLenum, GLint *); + extern void (APIENTRY *GenBuffers)(GLsizei, GLuint *); extern void (APIENTRY *DeleteBuffers)(GLsizei, const GLuint *); extern void (APIENTRY *BindBuffer)(GLenum, GLuint); diff --git a/libvo/vo_gl.c b/libvo/vo_gl.c index b4f4bb862f..ccb44e1882 100644 --- a/libvo/vo_gl.c +++ b/libvo/vo_gl.c @@ -149,12 +149,12 @@ static void resize(int x,int y){ if (WinID >= 0) { int top = 0, left = 0, w = x, h = y; geometry(&top, &left, &w, &h, vo_screenwidth, vo_screenheight); - glViewport(top, left, w, h); + Viewport(top, left, w, h); } else - glViewport( 0, 0, x, y ); + Viewport( 0, 0, x, y ); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); + MatrixMode(GL_PROJECTION); + LoadIdentity(); ass_border_x = ass_border_y = 0; if (aspect_scaling() && use_aspect) { int new_w, new_h; @@ -165,14 +165,14 @@ static void resize(int x,int y){ new_h += vo_panscan_y; scale_x = (GLdouble)new_w / (GLdouble)x; scale_y = (GLdouble)new_h / (GLdouble)y; - glScaled(scale_x, scale_y, 1); + Scaled(scale_x, scale_y, 1); ass_border_x = (vo_dwidth - new_w) / 2; ass_border_y = (vo_dheight - new_h) / 2; } - glOrtho(0, image_width, image_height, 0, -1,1); + Ortho(0, image_width, image_height, 0, -1,1); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); + MatrixMode(GL_MODELVIEW); + LoadIdentity(); if (!scaled_osd) { #ifdef CONFIG_FREETYPE @@ -181,7 +181,7 @@ static void resize(int x,int y){ #endif vo_osd_changed(OSDTYPE_OSD); } - glClear(GL_COLOR_BUFFER_BIT); + Clear(GL_COLOR_BUFFER_BIT); redraw(); } @@ -259,14 +259,14 @@ static void clearOSD(void) { int i; if (!osdtexCnt) return; - glDeleteTextures(osdtexCnt, osdtex); + DeleteTextures(osdtexCnt, osdtex); #ifndef FAST_OSD - glDeleteTextures(osdtexCnt, osdatex); + DeleteTextures(osdtexCnt, osdatex); for (i = 0; i < osdtexCnt; i++) - glDeleteLists(osdaDispList[i], 1); + DeleteLists(osdaDispList[i], 1); #endif for (i = 0; i < osdtexCnt; i++) - glDeleteLists(osdDispList[i], 1); + DeleteLists(osdDispList[i], 1); osdtexCnt = 0; } @@ -275,10 +275,10 @@ static void clearOSD(void) { */ static void clearEOSD(void) { if (eosdDispList) - glDeleteLists(eosdDispList, 1); + DeleteLists(eosdDispList, 1); eosdDispList = 0; if (eosdtexCnt) - glDeleteTextures(eosdtexCnt, eosdtex); + DeleteTextures(eosdtexCnt, eosdtex); eosdtexCnt = 0; free(eosdtex); eosdtex = NULL; @@ -373,15 +373,15 @@ static void genEOSD(mp_eosd_images_t *imgs) { glUploadTex(gl_target, GL_ALPHA, GL_UNSIGNED_BYTE, i->bitmap, i->stride, x, y, i->w, i->h, 0); } - eosdDispList = glGenLists(1); + eosdDispList = GenLists(1); skip_upload: - glNewList(eosdDispList, GL_COMPILE); + NewList(eosdDispList, GL_COMPILE); tinytexcur = smalltexcur = 0; for (i = img, curtex = eosdtex; i; i = i->next) { int x = 0, y = 0; if (i->w <= 0 || i->h <= 0 || i->stride < i->w) continue; - glColor4ub(i->color >> 24, (i->color >> 16) & 0xff, (i->color >> 8) & 0xff, 255 - (i->color & 0xff)); + Color4ub(i->color >> 24, (i->color >> 16) & 0xff, (i->color >> 8) & 0xff, 255 - (i->color & 0xff)); if (is_tinytex(i, tinytexcur)) { tinytex_pos(tinytexcur, &x, &y); sx = sy = LARGE_EOSD_TEX_SIZE; @@ -398,7 +398,7 @@ skip_upload: } glDrawTex(i->dst_x, i->dst_y, i->w, i->h, x, y, i->w, i->h, sx, sy, use_rectangle == 1, 0, 0); } - glEndList(); + EndList(); BindTexture(gl_target, 0); } @@ -413,12 +413,12 @@ static void uninitGl(void) { while (default_texs[i] != 0) i++; if (i) - glDeleteTextures(i, default_texs); + DeleteTextures(i, default_texs); default_texs[0] = 0; clearOSD(); clearEOSD(); if (largeeosdtex[0]) - glDeleteTextures(2, largeeosdtex); + DeleteTextures(2, largeeosdtex); largeeosdtex[0] = 0; if (DeleteBuffers && gl_buffer) DeleteBuffers(1, &gl_buffer); @@ -437,9 +437,9 @@ static void uninitGl(void) { } static void autodetectGlExtensions(void) { - const char *extensions = glGetString(GL_EXTENSIONS); - const char *vendor = glGetString(GL_VENDOR); - const char *version = glGetString(GL_VERSION); + const char *extensions = GetString(GL_EXTENSIONS); + const char *vendor = GetString(GL_VENDOR); + const char *version = GetString(GL_VERSION); int is_ati = strstr(vendor, "ATI") != NULL; int ati_broken_pbo = 0; if (is_ati && strncmp(version, "2.1.", 4) == 0) { @@ -465,20 +465,20 @@ static int initGl(uint32_t d_width, uint32_t d_height) { autodetectGlExtensions(); texSize(image_width, image_height, &texture_width, &texture_height); - glDisable(GL_BLEND); - glDisable(GL_DEPTH_TEST); - glDepthMask(GL_FALSE); - glDisable(GL_CULL_FACE); - glEnable(gl_target); - glDrawBuffer(vo_doublebuffering?GL_BACK:GL_FRONT); - glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + Disable(GL_BLEND); + Disable(GL_DEPTH_TEST); + DepthMask(GL_FALSE); + Disable(GL_CULL_FACE); + Enable(gl_target); + DrawBuffer(vo_doublebuffering?GL_BACK:GL_FRONT); + TexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); mp_msg(MSGT_VO, MSGL_V, "[gl] Creating %dx%d texture...\n", texture_width, texture_height); if (image_format == IMGFMT_YV12) { int i; - glGenTextures(21, default_texs); + GenTextures(21, default_texs); default_texs[21] = 0; for (i = 0; i < 7; i++) { ActiveTexture(GL_TEXTURE1 + i); @@ -513,8 +513,8 @@ static int initGl(uint32_t d_width, uint32_t d_height) { resize(d_width, d_height); - glClearColor( 0.0f,0.0f,0.0f,0.0f ); - glClear( GL_COLOR_BUFFER_BIT ); + ClearColor( 0.0f,0.0f,0.0f,0.0f ); + Clear( GL_COLOR_BUFFER_BIT ); if (SwapInterval && swap_interval >= 0) SwapInterval(swap_interval); return 1; @@ -607,14 +607,14 @@ static void create_osd_texture(int x0, int y0, int w, int h, } // create Textures for OSD part - glGenTextures(1, &osdtex[osdtexCnt]); + GenTextures(1, &osdtex[osdtexCnt]); BindTexture(gl_target, osdtex[osdtexCnt]); glCreateClearTex(gl_target, GL_LUMINANCE, GL_LUMINANCE, GL_UNSIGNED_BYTE, scale_type, sx, sy, 0); glUploadTex(gl_target, GL_LUMINANCE, GL_UNSIGNED_BYTE, src, stride, 0, 0, w, h, 0); #ifndef FAST_OSD - glGenTextures(1, &osdatex[osdtexCnt]); + GenTextures(1, &osdatex[osdtexCnt]); BindTexture(gl_target, osdatex[osdtexCnt]); glCreateClearTex(gl_target, GL_ALPHA, GL_ALPHA, GL_UNSIGNED_BYTE, scale_type, sx, sy, 0); { @@ -634,19 +634,19 @@ static void create_osd_texture(int x0, int y0, int w, int h, // Create a list for rendering this OSD part #ifndef FAST_OSD - osdaDispList[osdtexCnt] = glGenLists(1); - glNewList(osdaDispList[osdtexCnt], GL_COMPILE); + osdaDispList[osdtexCnt] = GenLists(1); + NewList(osdaDispList[osdtexCnt], GL_COMPILE); // render alpha BindTexture(gl_target, osdatex[osdtexCnt]); glDrawTex(x0, y0, w, h, 0, 0, w, h, sx, sy, use_rectangle == 1, 0, 0); - glEndList(); + EndList(); #endif - osdDispList[osdtexCnt] = glGenLists(1); - glNewList(osdDispList[osdtexCnt], GL_COMPILE); + osdDispList[osdtexCnt] = GenLists(1); + NewList(osdDispList[osdtexCnt], GL_COMPILE); // render OSD BindTexture(gl_target, osdtex[osdtexCnt]); glDrawTex(x0, y0, w, h, 0, 0, w, h, sx, sy, use_rectangle == 1, 0, 0); - glEndList(); + EndList(); osdtexCnt++; } @@ -666,10 +666,10 @@ static void draw_osd(void) } static void do_render(void) { -// glEnable(GL_TEXTURE_2D); -// glBindTexture(GL_TEXTURE_2D, texture_id); +// Enable(GL_TEXTURE_2D); +// BindTexture(GL_TEXTURE_2D, texture_id); - glColor3f(1,1,1); + Color3f(1,1,1); if (image_format == IMGFMT_YV12) glEnableYUVConversion(gl_target, yuvconvtype); glDrawTex(0, 0, image_width, image_height, @@ -688,45 +688,45 @@ static void do_render_osd(int type) { if (((type & 1) && osdtexCnt > 0) || ((type & 2) && eosdDispList)) { // set special rendering parameters if (!scaled_osd) { - glMatrixMode(GL_PROJECTION); - glPushMatrix(); - glLoadIdentity(); - glOrtho(0, vo_dwidth, vo_dheight, 0, -1, 1); + MatrixMode(GL_PROJECTION); + PushMatrix(); + LoadIdentity(); + Ortho(0, vo_dwidth, vo_dheight, 0, -1, 1); } - glEnable(GL_BLEND); + Enable(GL_BLEND); if ((type & 2) && eosdDispList) { - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glCallList(eosdDispList); + BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + CallList(eosdDispList); } if ((type & 1) && osdtexCnt > 0) { - glColor4ub((osd_color >> 16) & 0xff, (osd_color >> 8) & 0xff, osd_color & 0xff, 0xff - (osd_color >> 24)); + Color4ub((osd_color >> 16) & 0xff, (osd_color >> 8) & 0xff, osd_color & 0xff, 0xff - (osd_color >> 24)); // draw OSD #ifndef FAST_OSD - glBlendFunc(GL_ZERO, GL_ONE_MINUS_SRC_ALPHA); - glCallLists(osdtexCnt, GL_UNSIGNED_INT, osdaDispList); + BlendFunc(GL_ZERO, GL_ONE_MINUS_SRC_ALPHA); + CallLists(osdtexCnt, GL_UNSIGNED_INT, osdaDispList); #endif - glBlendFunc(GL_SRC_ALPHA, GL_ONE); - glCallLists(osdtexCnt, GL_UNSIGNED_INT, osdDispList); + BlendFunc(GL_SRC_ALPHA, GL_ONE); + CallLists(osdtexCnt, GL_UNSIGNED_INT, osdDispList); } // set rendering parameters back to defaults - glDisable(GL_BLEND); + Disable(GL_BLEND); if (!scaled_osd) - glPopMatrix(); + PopMatrix(); BindTexture(gl_target, 0); } } static void flip_page(void) { if (vo_doublebuffering) { - if (use_glFinish) glFinish(); + if (use_glFinish) Finish(); glctx.swapGlBuffers(&glctx); if (aspect_scaling() && use_aspect) - glClear(GL_COLOR_BUFFER_BIT); + Clear(GL_COLOR_BUFFER_BIT); } else { do_render(); do_render_osd(3); - if (use_glFinish) glFinish(); - else glFlush(); + if (use_glFinish) Finish(); + else Flush(); } } @@ -882,7 +882,7 @@ static uint32_t draw_image(mp_image_t *mpi) { mpi_flipped = stride[0] < 0; if (mpi->flags & MP_IMGFLAG_DIRECT) { if (mesa_buffer) { - glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, 1); + PixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, 1); w = texture_width; } else { intptr_t base = (intptr_t)planes[0]; @@ -922,7 +922,7 @@ static uint32_t draw_image(mp_image_t *mpi) { ActiveTexture(GL_TEXTURE0); } if (mpi->flags & MP_IMGFLAG_DIRECT) { - if (mesa_buffer) glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, 0); + if (mesa_buffer) PixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, 0); else BindBuffer(GL_PIXEL_UNPACK_BUFFER, 0); } skip_upload: From 3b1e70e3ee7dd2a1960eec918fb6cfb3e0624143 Mon Sep 17 00:00:00 2001 From: cehoyos Date: Tue, 8 Dec 2009 23:58:42 +0000 Subject: [PATCH 11/84] Support FourCC's AVI1 and AVI2 as MJPEG. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29982 b3059339-0415-0410-9bf9-f77b7e298cf2 --- etc/codecs.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/etc/codecs.conf b/etc/codecs.conf index 2a16832ab8..34ce6fcf2e 100644 --- a/etc/codecs.conf +++ b/etc/codecs.conf @@ -1267,6 +1267,7 @@ videocodec ffmjpeg fourcc SLMJ ; SL M-JPEG fourcc MVJP ; Midvid JPEG Video Codec fourcc IJLV ; Intel JPEG Library Video Codec + fourcc avi1,avi2 driver ffmpeg dll mjpeg out 444P From c13aaf85d16bdcea449823cc56fc6892c8a8b9c4 Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 9 Dec 2009 17:36:55 +0000 Subject: [PATCH 12/84] Prefer GLAPIENTRY over APIENTRY, it is the better name and used more by OpenGL headers. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29983 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/gl_common.c | 138 +++++++++++++++++++++---------------------- libvo/gl_common.h | 146 +++++++++++++++++++++++----------------------- 2 files changed, 142 insertions(+), 142 deletions(-) diff --git a/libvo/gl_common.c b/libvo/gl_common.c index a14c745cfb..3bbca8e133 100644 --- a/libvo/gl_common.c +++ b/libvo/gl_common.c @@ -35,46 +35,46 @@ #include "gl_common.h" #include "libavutil/common.h" -void (APIENTRY *Begin)(GLenum) = glBegin; -void (APIENTRY *End)(void) = glEnd; -void (APIENTRY *Viewport)(GLint, GLint, GLsizei, GLsizei) = glViewport; -void (APIENTRY *MatrixMode)(GLenum) = glMatrixMode; -void (APIENTRY *LoadIdentity)(void) = glLoadIdentity; -void (APIENTRY *Scaled)(double, double, double) = glScaled; -void (APIENTRY *Ortho)(double, double, double, double, double, double) = glOrtho; -void (APIENTRY *PushMatrix)(void) = glPushMatrix; -void (APIENTRY *PopMatrix)(void) = glPopMatrix; -void (APIENTRY *Clear)(GLbitfield) = glClear; -GLuint (APIENTRY *GenLists)(GLsizei) = glGenLists; -void (APIENTRY *DeleteLists)(GLuint, GLsizei) = glDeleteLists; -void (APIENTRY *NewList)(GLuint, GLenum) = glNewList; -void (APIENTRY *EndList)(void) = glEndList; -void (APIENTRY *CallList)(GLuint) = glCallList; -void (APIENTRY *CallLists)(GLsizei, GLenum, const GLvoid *) = glCallLists; -void (APIENTRY *GenTextures)(GLsizei, GLuint *) = glGenTextures; -void (APIENTRY *DeleteTextures)(GLsizei, const GLuint *) = glDeleteTextures; -void (APIENTRY *TexEnvi)(GLenum, GLenum, GLint) = glTexEnvi; -void (APIENTRY *Color4ub)(GLubyte, GLubyte, GLubyte, GLubyte) = glColor4ub; -void (APIENTRY *Color3f)(GLfloat, GLfloat, GLfloat) = glColor3f; -void (APIENTRY *ClearColor)(GLclampf, GLclampf, GLclampf, GLclampf) = glClearColor; -void (APIENTRY *Enable)(GLenum) = glEnable; -void (APIENTRY *Disable)(GLenum) = glDisable; -const GLubyte *(APIENTRY *GetString)(GLenum) = glGetString; -void (APIENTRY *DrawBuffer)(GLenum) = glDrawBuffer; -void (APIENTRY *DepthMask)(GLboolean) = glDepthMask; -void (APIENTRY *BlendFunc)(GLenum, GLenum) = glBlendFunc; -void (APIENTRY *Flush)(void) = glFlush; -void (APIENTRY *Finish)(void) = glFinish; -void (APIENTRY *PixelStorei)(GLenum, GLint) = glPixelStorei; -void (APIENTRY *TexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = glTexImage1D; -void (APIENTRY *TexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = glTexImage2D; -void (APIENTRY *TexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *) = glTexSubImage2D; -void (APIENTRY *TexParameteri)(GLenum, GLenum, GLint) = glTexParameteri; -void (APIENTRY *TexParameterf)(GLenum, GLenum, GLfloat) = glTexParameterf; -void (APIENTRY *TexParameterfv)(GLenum, GLenum, const GLfloat *) = glTexParameterfv; -void (APIENTRY *TexCoord2f)(GLfloat, GLfloat) = glTexCoord2f; -void (APIENTRY *Vertex2f)(GLfloat, GLfloat) = glVertex2f; -void (APIENTRY *GetIntegerv)(GLenum, GLint *) = glGetIntegerv; +void (GLAPIENTRY *Begin)(GLenum) = glBegin; +void (GLAPIENTRY *End)(void) = glEnd; +void (GLAPIENTRY *Viewport)(GLint, GLint, GLsizei, GLsizei) = glViewport; +void (GLAPIENTRY *MatrixMode)(GLenum) = glMatrixMode; +void (GLAPIENTRY *LoadIdentity)(void) = glLoadIdentity; +void (GLAPIENTRY *Scaled)(double, double, double) = glScaled; +void (GLAPIENTRY *Ortho)(double, double, double, double, double, double) = glOrtho; +void (GLAPIENTRY *PushMatrix)(void) = glPushMatrix; +void (GLAPIENTRY *PopMatrix)(void) = glPopMatrix; +void (GLAPIENTRY *Clear)(GLbitfield) = glClear; +GLuint (GLAPIENTRY *GenLists)(GLsizei) = glGenLists; +void (GLAPIENTRY *DeleteLists)(GLuint, GLsizei) = glDeleteLists; +void (GLAPIENTRY *NewList)(GLuint, GLenum) = glNewList; +void (GLAPIENTRY *EndList)(void) = glEndList; +void (GLAPIENTRY *CallList)(GLuint) = glCallList; +void (GLAPIENTRY *CallLists)(GLsizei, GLenum, const GLvoid *) = glCallLists; +void (GLAPIENTRY *GenTextures)(GLsizei, GLuint *) = glGenTextures; +void (GLAPIENTRY *DeleteTextures)(GLsizei, const GLuint *) = glDeleteTextures; +void (GLAPIENTRY *TexEnvi)(GLenum, GLenum, GLint) = glTexEnvi; +void (GLAPIENTRY *Color4ub)(GLubyte, GLubyte, GLubyte, GLubyte) = glColor4ub; +void (GLAPIENTRY *Color3f)(GLfloat, GLfloat, GLfloat) = glColor3f; +void (GLAPIENTRY *ClearColor)(GLclampf, GLclampf, GLclampf, GLclampf) = glClearColor; +void (GLAPIENTRY *Enable)(GLenum) = glEnable; +void (GLAPIENTRY *Disable)(GLenum) = glDisable; +const GLubyte *(GLAPIENTRY *GetString)(GLenum) = glGetString; +void (GLAPIENTRY *DrawBuffer)(GLenum) = glDrawBuffer; +void (GLAPIENTRY *DepthMask)(GLboolean) = glDepthMask; +void (GLAPIENTRY *BlendFunc)(GLenum, GLenum) = glBlendFunc; +void (GLAPIENTRY *Flush)(void) = glFlush; +void (GLAPIENTRY *Finish)(void) = glFinish; +void (GLAPIENTRY *PixelStorei)(GLenum, GLint) = glPixelStorei; +void (GLAPIENTRY *TexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = glTexImage1D; +void (GLAPIENTRY *TexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = glTexImage2D; +void (GLAPIENTRY *TexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *) = glTexSubImage2D; +void (GLAPIENTRY *TexParameteri)(GLenum, GLenum, GLint) = glTexParameteri; +void (GLAPIENTRY *TexParameterf)(GLenum, GLenum, GLfloat) = glTexParameterf; +void (GLAPIENTRY *TexParameterfv)(GLenum, GLenum, const GLfloat *) = glTexParameterfv; +void (GLAPIENTRY *TexCoord2f)(GLfloat, GLfloat) = glTexCoord2f; +void (GLAPIENTRY *Vertex2f)(GLfloat, GLfloat) = glVertex2f; +void (GLAPIENTRY *GetIntegerv)(GLenum, GLint *) = glGetIntegerv; /** * \defgroup glextfunctions OpenGL extension functions @@ -83,43 +83,43 @@ void (APIENTRY *GetIntegerv)(GLenum, GLint *) = glGetIntegerv; * context is created * \{ */ -void (APIENTRY *GenBuffers)(GLsizei, GLuint *); -void (APIENTRY *DeleteBuffers)(GLsizei, const GLuint *); -void (APIENTRY *BindBuffer)(GLenum, GLuint); -GLvoid* (APIENTRY *MapBuffer)(GLenum, GLenum); -GLboolean (APIENTRY *UnmapBuffer)(GLenum); -void (APIENTRY *BufferData)(GLenum, intptr_t, const GLvoid *, GLenum); -void (APIENTRY *CombinerParameterfv)(GLenum, const GLfloat *); -void (APIENTRY *CombinerParameteri)(GLenum, GLint); -void (APIENTRY *CombinerInput)(GLenum, GLenum, GLenum, GLenum, GLenum, +void (GLAPIENTRY *GenBuffers)(GLsizei, GLuint *); +void (GLAPIENTRY *DeleteBuffers)(GLsizei, const GLuint *); +void (GLAPIENTRY *BindBuffer)(GLenum, GLuint); +GLvoid* (GLAPIENTRY *MapBuffer)(GLenum, GLenum); +GLboolean (GLAPIENTRY *UnmapBuffer)(GLenum); +void (GLAPIENTRY *BufferData)(GLenum, intptr_t, const GLvoid *, GLenum); +void (GLAPIENTRY *CombinerParameterfv)(GLenum, const GLfloat *); +void (GLAPIENTRY *CombinerParameteri)(GLenum, GLint); +void (GLAPIENTRY *CombinerInput)(GLenum, GLenum, GLenum, GLenum, GLenum, GLenum); -void (APIENTRY *CombinerOutput)(GLenum, GLenum, GLenum, GLenum, GLenum, +void (GLAPIENTRY *CombinerOutput)(GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean); -void (APIENTRY *BeginFragmentShader)(void); -void (APIENTRY *EndFragmentShader)(void); -void (APIENTRY *SampleMap)(GLuint, GLuint, GLenum); -void (APIENTRY *ColorFragmentOp2)(GLenum, GLuint, GLuint, GLuint, GLuint, +void (GLAPIENTRY *BeginFragmentShader)(void); +void (GLAPIENTRY *EndFragmentShader)(void); +void (GLAPIENTRY *SampleMap)(GLuint, GLuint, GLenum); +void (GLAPIENTRY *ColorFragmentOp2)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -void (APIENTRY *ColorFragmentOp3)(GLenum, GLuint, GLuint, GLuint, GLuint, +void (GLAPIENTRY *ColorFragmentOp3)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -void (APIENTRY *SetFragmentShaderConstant)(GLuint, const GLfloat *); -void (APIENTRY *ActiveTexture)(GLenum); -void (APIENTRY *BindTexture)(GLenum, GLuint); -void (APIENTRY *MultiTexCoord2f)(GLenum, GLfloat, GLfloat); -void (APIENTRY *GenPrograms)(GLsizei, GLuint *); -void (APIENTRY *DeletePrograms)(GLsizei, const GLuint *); -void (APIENTRY *BindProgram)(GLenum, GLuint); -void (APIENTRY *ProgramString)(GLenum, GLenum, GLsizei, const GLvoid *); -void (APIENTRY *GetProgramiv)(GLenum, GLenum, GLint *); -void (APIENTRY *ProgramEnvParameter4f)(GLenum, GLuint, GLfloat, GLfloat, +void (GLAPIENTRY *SetFragmentShaderConstant)(GLuint, const GLfloat *); +void (GLAPIENTRY *ActiveTexture)(GLenum); +void (GLAPIENTRY *BindTexture)(GLenum, GLuint); +void (GLAPIENTRY *MultiTexCoord2f)(GLenum, GLfloat, GLfloat); +void (GLAPIENTRY *GenPrograms)(GLsizei, GLuint *); +void (GLAPIENTRY *DeletePrograms)(GLsizei, const GLuint *); +void (GLAPIENTRY *BindProgram)(GLenum, GLuint); +void (GLAPIENTRY *ProgramString)(GLenum, GLenum, GLsizei, const GLvoid *); +void (GLAPIENTRY *GetProgramiv)(GLenum, GLenum, GLint *); +void (GLAPIENTRY *ProgramEnvParameter4f)(GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -int (APIENTRY *SwapInterval)(int); -void (APIENTRY *TexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, +int (GLAPIENTRY *SwapInterval)(int); +void (GLAPIENTRY *TexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -void* (APIENTRY *AllocateMemoryMESA)(void *, int, size_t, float, float, float); -void (APIENTRY *FreeMemoryMESA)(void *, int, void *); +void* (GLAPIENTRY *AllocateMemoryMESA)(void *, int, size_t, float, float, float); +void (GLAPIENTRY *FreeMemoryMESA)(void *, int, void *); /** \} */ // end of glextfunctions group //! \defgroup glgeneral OpenGL general helper functions diff --git a/libvo/gl_common.h b/libvo/gl_common.h index e6a0ba1208..dc2fe6698f 100644 --- a/libvo/gl_common.h +++ b/libvo/gl_common.h @@ -40,13 +40,13 @@ #endif // workaround for some gl.h headers -#ifndef APIENTRY -#ifdef GLAPIENTRY -#define APIENTRY GLAPIENTRY +#ifndef GLAPIENTRY +#ifdef APIENTRY +#define GLAPIENTRY APIENTRY #elif defined(GL_WIN32) -#define APIENTRY __stdcall +#define GLAPIENTRY __stdcall #else -#define APIENTRY +#define GLAPIENTRY #endif #endif @@ -387,82 +387,82 @@ typedef struct MPGLContext { int init_mpglcontext(MPGLContext *ctx, enum MPGLType type); void uninit_mpglcontext(MPGLContext *ctx); -extern void (APIENTRY *Begin)(GLenum); -extern void (APIENTRY *End)(void); -extern void (APIENTRY *Viewport)(GLint, GLint, GLsizei, GLsizei); -extern void (APIENTRY *MatrixMode)(GLenum); -extern void (APIENTRY *LoadIdentity)(void); -extern void (APIENTRY *Scaled)(double, double, double); -extern void (APIENTRY *Ortho)(double, double, double, double, double, double); -extern void (APIENTRY *PushMatrix)(void); -extern void (APIENTRY *PopMatrix)(void); -extern void (APIENTRY *Clear)(GLbitfield); -extern GLuint (APIENTRY *GenLists)(GLsizei); -extern void (APIENTRY *DeleteLists)(GLuint, GLsizei); -extern void (APIENTRY *NewList)(GLuint, GLenum); -extern void (APIENTRY *EndList)(void); -extern void (APIENTRY *CallList)(GLuint); -extern void (APIENTRY *CallLists)(GLsizei, GLenum, const GLvoid *); -extern void (APIENTRY *GenTextures)(GLsizei, GLuint *); -extern void (APIENTRY *DeleteTextures)(GLsizei, const GLuint *); -extern void (APIENTRY *TexEnvi)(GLenum, GLenum, GLint); -extern void (APIENTRY *Color4ub)(GLubyte, GLubyte, GLubyte, GLubyte); -extern void (APIENTRY *Color3f)(GLfloat, GLfloat, GLfloat); -extern void (APIENTRY *ClearColor)(GLclampf, GLclampf, GLclampf, GLclampf); -extern void (APIENTRY *Enable)(GLenum); -extern void (APIENTRY *Disable)(GLenum); -extern const GLubyte *(APIENTRY *GetString)(GLenum); -extern void (APIENTRY *DrawBuffer)(GLenum); -extern void (APIENTRY *DepthMask)(GLboolean); -extern void (APIENTRY *BlendFunc)(GLenum, GLenum); -extern void (APIENTRY *Flush)(void); -extern void (APIENTRY *Finish)(void); -extern void (APIENTRY *PixelStorei)(GLenum, GLint); -extern void (APIENTRY *TexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -extern void (APIENTRY *TexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -extern void (APIENTRY *TexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -extern void (APIENTRY *TexParameteri)(GLenum, GLenum, GLint); -extern void (APIENTRY *TexParameterf)(GLenum, GLenum, GLfloat); -extern void (APIENTRY *TexParameterfv)(GLenum, GLenum, const GLfloat *); -extern void (APIENTRY *TexCoord2f)(GLfloat, GLfloat); -extern void (APIENTRY *Vertex2f)(GLfloat, GLfloat); -extern void (APIENTRY *GetIntegerv)(GLenum, GLint *); +extern void (GLAPIENTRY *Begin)(GLenum); +extern void (GLAPIENTRY *End)(void); +extern void (GLAPIENTRY *Viewport)(GLint, GLint, GLsizei, GLsizei); +extern void (GLAPIENTRY *MatrixMode)(GLenum); +extern void (GLAPIENTRY *LoadIdentity)(void); +extern void (GLAPIENTRY *Scaled)(double, double, double); +extern void (GLAPIENTRY *Ortho)(double, double, double, double, double, double); +extern void (GLAPIENTRY *PushMatrix)(void); +extern void (GLAPIENTRY *PopMatrix)(void); +extern void (GLAPIENTRY *Clear)(GLbitfield); +extern GLuint (GLAPIENTRY *GenLists)(GLsizei); +extern void (GLAPIENTRY *DeleteLists)(GLuint, GLsizei); +extern void (GLAPIENTRY *NewList)(GLuint, GLenum); +extern void (GLAPIENTRY *EndList)(void); +extern void (GLAPIENTRY *CallList)(GLuint); +extern void (GLAPIENTRY *CallLists)(GLsizei, GLenum, const GLvoid *); +extern void (GLAPIENTRY *GenTextures)(GLsizei, GLuint *); +extern void (GLAPIENTRY *DeleteTextures)(GLsizei, const GLuint *); +extern void (GLAPIENTRY *TexEnvi)(GLenum, GLenum, GLint); +extern void (GLAPIENTRY *Color4ub)(GLubyte, GLubyte, GLubyte, GLubyte); +extern void (GLAPIENTRY *Color3f)(GLfloat, GLfloat, GLfloat); +extern void (GLAPIENTRY *ClearColor)(GLclampf, GLclampf, GLclampf, GLclampf); +extern void (GLAPIENTRY *Enable)(GLenum); +extern void (GLAPIENTRY *Disable)(GLenum); +extern const GLubyte *(GLAPIENTRY *GetString)(GLenum); +extern void (GLAPIENTRY *DrawBuffer)(GLenum); +extern void (GLAPIENTRY *DepthMask)(GLboolean); +extern void (GLAPIENTRY *BlendFunc)(GLenum, GLenum); +extern void (GLAPIENTRY *Flush)(void); +extern void (GLAPIENTRY *Finish)(void); +extern void (GLAPIENTRY *PixelStorei)(GLenum, GLint); +extern void (GLAPIENTRY *TexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +extern void (GLAPIENTRY *TexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +extern void (GLAPIENTRY *TexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +extern void (GLAPIENTRY *TexParameteri)(GLenum, GLenum, GLint); +extern void (GLAPIENTRY *TexParameterf)(GLenum, GLenum, GLfloat); +extern void (GLAPIENTRY *TexParameterfv)(GLenum, GLenum, const GLfloat *); +extern void (GLAPIENTRY *TexCoord2f)(GLfloat, GLfloat); +extern void (GLAPIENTRY *Vertex2f)(GLfloat, GLfloat); +extern void (GLAPIENTRY *GetIntegerv)(GLenum, GLint *); -extern void (APIENTRY *GenBuffers)(GLsizei, GLuint *); -extern void (APIENTRY *DeleteBuffers)(GLsizei, const GLuint *); -extern void (APIENTRY *BindBuffer)(GLenum, GLuint); -extern GLvoid* (APIENTRY *MapBuffer)(GLenum, GLenum); -extern GLboolean (APIENTRY *UnmapBuffer)(GLenum); -extern void (APIENTRY *BufferData)(GLenum, intptr_t, const GLvoid *, GLenum); -extern void (APIENTRY *CombinerParameterfv)(GLenum, const GLfloat *); -extern void (APIENTRY *CombinerParameteri)(GLenum, GLint); -extern void (APIENTRY *CombinerInput)(GLenum, GLenum, GLenum, GLenum, GLenum, +extern void (GLAPIENTRY *GenBuffers)(GLsizei, GLuint *); +extern void (GLAPIENTRY *DeleteBuffers)(GLsizei, const GLuint *); +extern void (GLAPIENTRY *BindBuffer)(GLenum, GLuint); +extern GLvoid* (GLAPIENTRY *MapBuffer)(GLenum, GLenum); +extern GLboolean (GLAPIENTRY *UnmapBuffer)(GLenum); +extern void (GLAPIENTRY *BufferData)(GLenum, intptr_t, const GLvoid *, GLenum); +extern void (GLAPIENTRY *CombinerParameterfv)(GLenum, const GLfloat *); +extern void (GLAPIENTRY *CombinerParameteri)(GLenum, GLint); +extern void (GLAPIENTRY *CombinerInput)(GLenum, GLenum, GLenum, GLenum, GLenum, GLenum); -extern void (APIENTRY *CombinerOutput)(GLenum, GLenum, GLenum, GLenum, GLenum, +extern void (GLAPIENTRY *CombinerOutput)(GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean); -extern void (APIENTRY *BeginFragmentShader)(void); -extern void (APIENTRY *EndFragmentShader)(void); -extern void (APIENTRY *SampleMap)(GLuint, GLuint, GLenum); -extern void (APIENTRY *ColorFragmentOp2)(GLenum, GLuint, GLuint, GLuint, GLuint, +extern void (GLAPIENTRY *BeginFragmentShader)(void); +extern void (GLAPIENTRY *EndFragmentShader)(void); +extern void (GLAPIENTRY *SampleMap)(GLuint, GLuint, GLenum); +extern void (GLAPIENTRY *ColorFragmentOp2)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -extern void (APIENTRY *ColorFragmentOp3)(GLenum, GLuint, GLuint, GLuint, GLuint, +extern void (GLAPIENTRY *ColorFragmentOp3)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -extern void (APIENTRY *SetFragmentShaderConstant)(GLuint, const GLfloat *); -extern void (APIENTRY *ActiveTexture)(GLenum); -extern void (APIENTRY *BindTexture)(GLenum, GLuint); -extern void (APIENTRY *MultiTexCoord2f)(GLenum, GLfloat, GLfloat); -extern void (APIENTRY *GenPrograms)(GLsizei, GLuint *); -extern void (APIENTRY *DeletePrograms)(GLsizei, const GLuint *); -extern void (APIENTRY *BindProgram)(GLenum, GLuint); -extern void (APIENTRY *ProgramString)(GLenum, GLenum, GLsizei, const GLvoid *); -extern void (APIENTRY *ProgramEnvParameter4f)(GLenum, GLuint, GLfloat, GLfloat, +extern void (GLAPIENTRY *SetFragmentShaderConstant)(GLuint, const GLfloat *); +extern void (GLAPIENTRY *ActiveTexture)(GLenum); +extern void (GLAPIENTRY *BindTexture)(GLenum, GLuint); +extern void (GLAPIENTRY *MultiTexCoord2f)(GLenum, GLfloat, GLfloat); +extern void (GLAPIENTRY *GenPrograms)(GLsizei, GLuint *); +extern void (GLAPIENTRY *DeletePrograms)(GLsizei, const GLuint *); +extern void (GLAPIENTRY *BindProgram)(GLenum, GLuint); +extern void (GLAPIENTRY *ProgramString)(GLenum, GLenum, GLsizei, const GLvoid *); +extern void (GLAPIENTRY *ProgramEnvParameter4f)(GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -extern int (APIENTRY *SwapInterval)(int); -extern void (APIENTRY *TexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, +extern int (GLAPIENTRY *SwapInterval)(int); +extern void (GLAPIENTRY *TexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -extern void* (APIENTRY *AllocateMemoryMESA)(void *, int, size_t, float, float, float); -extern void (APIENTRY *FreeMemoryMESA)(void *, int, void *); +extern void* (GLAPIENTRY *AllocateMemoryMESA)(void *, int, size_t, float, float, float); +extern void (GLAPIENTRY *FreeMemoryMESA)(void *, int, void *); #endif /* MPLAYER_GL_COMMON_H */ From 80981cd2d0fa1abe1a5f99d15e503a3653929937 Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 9 Dec 2009 17:50:07 +0000 Subject: [PATCH 13/84] Use a fallback to make sure the basic OpenGL functions are available instead of initializing them which does not work well with reinitializations. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29984 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/gl_common.c | 100 +++++++++++++++++++++++++--------------------- 1 file changed, 55 insertions(+), 45 deletions(-) diff --git a/libvo/gl_common.c b/libvo/gl_common.c index 3bbca8e133..efd569dc5c 100644 --- a/libvo/gl_common.c +++ b/libvo/gl_common.c @@ -35,46 +35,46 @@ #include "gl_common.h" #include "libavutil/common.h" -void (GLAPIENTRY *Begin)(GLenum) = glBegin; -void (GLAPIENTRY *End)(void) = glEnd; -void (GLAPIENTRY *Viewport)(GLint, GLint, GLsizei, GLsizei) = glViewport; -void (GLAPIENTRY *MatrixMode)(GLenum) = glMatrixMode; -void (GLAPIENTRY *LoadIdentity)(void) = glLoadIdentity; -void (GLAPIENTRY *Scaled)(double, double, double) = glScaled; -void (GLAPIENTRY *Ortho)(double, double, double, double, double, double) = glOrtho; -void (GLAPIENTRY *PushMatrix)(void) = glPushMatrix; -void (GLAPIENTRY *PopMatrix)(void) = glPopMatrix; -void (GLAPIENTRY *Clear)(GLbitfield) = glClear; -GLuint (GLAPIENTRY *GenLists)(GLsizei) = glGenLists; -void (GLAPIENTRY *DeleteLists)(GLuint, GLsizei) = glDeleteLists; -void (GLAPIENTRY *NewList)(GLuint, GLenum) = glNewList; -void (GLAPIENTRY *EndList)(void) = glEndList; -void (GLAPIENTRY *CallList)(GLuint) = glCallList; -void (GLAPIENTRY *CallLists)(GLsizei, GLenum, const GLvoid *) = glCallLists; -void (GLAPIENTRY *GenTextures)(GLsizei, GLuint *) = glGenTextures; -void (GLAPIENTRY *DeleteTextures)(GLsizei, const GLuint *) = glDeleteTextures; -void (GLAPIENTRY *TexEnvi)(GLenum, GLenum, GLint) = glTexEnvi; -void (GLAPIENTRY *Color4ub)(GLubyte, GLubyte, GLubyte, GLubyte) = glColor4ub; -void (GLAPIENTRY *Color3f)(GLfloat, GLfloat, GLfloat) = glColor3f; -void (GLAPIENTRY *ClearColor)(GLclampf, GLclampf, GLclampf, GLclampf) = glClearColor; -void (GLAPIENTRY *Enable)(GLenum) = glEnable; -void (GLAPIENTRY *Disable)(GLenum) = glDisable; -const GLubyte *(GLAPIENTRY *GetString)(GLenum) = glGetString; -void (GLAPIENTRY *DrawBuffer)(GLenum) = glDrawBuffer; -void (GLAPIENTRY *DepthMask)(GLboolean) = glDepthMask; -void (GLAPIENTRY *BlendFunc)(GLenum, GLenum) = glBlendFunc; -void (GLAPIENTRY *Flush)(void) = glFlush; -void (GLAPIENTRY *Finish)(void) = glFinish; -void (GLAPIENTRY *PixelStorei)(GLenum, GLint) = glPixelStorei; -void (GLAPIENTRY *TexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = glTexImage1D; -void (GLAPIENTRY *TexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = glTexImage2D; -void (GLAPIENTRY *TexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *) = glTexSubImage2D; -void (GLAPIENTRY *TexParameteri)(GLenum, GLenum, GLint) = glTexParameteri; -void (GLAPIENTRY *TexParameterf)(GLenum, GLenum, GLfloat) = glTexParameterf; -void (GLAPIENTRY *TexParameterfv)(GLenum, GLenum, const GLfloat *) = glTexParameterfv; -void (GLAPIENTRY *TexCoord2f)(GLfloat, GLfloat) = glTexCoord2f; -void (GLAPIENTRY *Vertex2f)(GLfloat, GLfloat) = glVertex2f; -void (GLAPIENTRY *GetIntegerv)(GLenum, GLint *) = glGetIntegerv; +void (GLAPIENTRY *Begin)(GLenum); +void (GLAPIENTRY *End)(void); +void (GLAPIENTRY *Viewport)(GLint, GLint, GLsizei, GLsizei); +void (GLAPIENTRY *MatrixMode)(GLenum); +void (GLAPIENTRY *LoadIdentity)(void); +void (GLAPIENTRY *Scaled)(double, double, double); +void (GLAPIENTRY *Ortho)(double, double, double, double, double, double); +void (GLAPIENTRY *PushMatrix)(void); +void (GLAPIENTRY *PopMatrix)(void); +void (GLAPIENTRY *Clear)(GLbitfield); +GLuint (GLAPIENTRY *GenLists)(GLsizei); +void (GLAPIENTRY *DeleteLists)(GLuint, GLsizei); +void (GLAPIENTRY *NewList)(GLuint, GLenum); +void (GLAPIENTRY *EndList)(void); +void (GLAPIENTRY *CallList)(GLuint); +void (GLAPIENTRY *CallLists)(GLsizei, GLenum, const GLvoid *); +void (GLAPIENTRY *GenTextures)(GLsizei, GLuint *); +void (GLAPIENTRY *DeleteTextures)(GLsizei, const GLuint *); +void (GLAPIENTRY *TexEnvi)(GLenum, GLenum, GLint); +void (GLAPIENTRY *Color4ub)(GLubyte, GLubyte, GLubyte, GLubyte); +void (GLAPIENTRY *Color3f)(GLfloat, GLfloat, GLfloat); +void (GLAPIENTRY *ClearColor)(GLclampf, GLclampf, GLclampf, GLclampf); +void (GLAPIENTRY *Enable)(GLenum); +void (GLAPIENTRY *Disable)(GLenum); +const GLubyte *(GLAPIENTRY *GetString)(GLenum); +void (GLAPIENTRY *DrawBuffer)(GLenum); +void (GLAPIENTRY *DepthMask)(GLboolean); +void (GLAPIENTRY *BlendFunc)(GLenum, GLenum); +void (GLAPIENTRY *Flush)(void); +void (GLAPIENTRY *Finish)(void); +void (GLAPIENTRY *PixelStorei)(GLenum, GLint); +void (GLAPIENTRY *TexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +void (GLAPIENTRY *TexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +void (GLAPIENTRY *TexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +void (GLAPIENTRY *TexParameteri)(GLenum, GLenum, GLint); +void (GLAPIENTRY *TexParameterf)(GLenum, GLenum, GLfloat); +void (GLAPIENTRY *TexParameterfv)(GLenum, GLenum, const GLfloat *); +void (GLAPIENTRY *TexCoord2f)(GLfloat, GLfloat); +void (GLAPIENTRY *Vertex2f)(GLfloat, GLfloat); +void (GLAPIENTRY *GetIntegerv)(GLenum, GLint *); /** * \defgroup glextfunctions OpenGL extension functions @@ -329,9 +329,10 @@ typedef struct { void *funcptr; const char *extstr; const char *funcnames[7]; + void *fallback; } extfunc_desc_t; -#define DEF_FUNC_DESC(name) {&name, NULL, {"gl"#name, NULL}} +#define DEF_FUNC_DESC(name) {&name, NULL, {"gl"#name, NULL}, gl ##name} static const extfunc_desc_t extfuncs[] = { // these aren't extension functions but we query them anyway to allow // different "backends" with one binary @@ -359,7 +360,6 @@ static const extfunc_desc_t extfuncs[] = { DEF_FUNC_DESC(ClearColor), DEF_FUNC_DESC(Enable), DEF_FUNC_DESC(Disable), - DEF_FUNC_DESC(GetString), DEF_FUNC_DESC(DrawBuffer), DEF_FUNC_DESC(DepthMask), DEF_FUNC_DESC(BlendFunc), @@ -417,8 +417,18 @@ static const extfunc_desc_t extfuncs[] = { static void getFunctions(void *(*getProcAddress)(const GLubyte *), const char *ext2) { const extfunc_desc_t *dsc; - const char *extensions = (const char *)GetString(GL_EXTENSIONS); + const char *extensions; char *allexts; + + if (!getProcAddress) + getProcAddress = setNull; + + // special case, we need glGetString before starting to find the other functions + GetString = getProcAddress("glGetString"); + if (!GetString) + GetString = glGetString; + + extensions = (const char *)GetString(GL_EXTENSIONS); if (!extensions) extensions = ""; if (!ext2) ext2 = ""; allexts = malloc(strlen(extensions) + strlen(ext2) + 2); @@ -426,8 +436,6 @@ static void getFunctions(void *(*getProcAddress)(const GLubyte *), strcat(allexts, " "); strcat(allexts, ext2); mp_msg(MSGT_VO, MSGL_DBG2, "OpenGL extensions string:\n%s\n", allexts); - if (!getProcAddress) - getProcAddress = setNull; for (dsc = extfuncs; dsc->funcptr; dsc++) { void *ptr = NULL; int i; @@ -435,6 +443,8 @@ static void getFunctions(void *(*getProcAddress)(const GLubyte *), for (i = 0; !ptr && dsc->funcnames[i]; i++) ptr = getProcAddress((const GLubyte *)dsc->funcnames[i]); } + if (!ptr) + ptr = dsc->fallback; *(void **)dsc->funcptr = ptr; } if (strstr(allexts, "_texture_float")) From 5c5087081fcc119a5579ebac8e81f76cd3cf4a15 Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 9 Dec 2009 17:52:18 +0000 Subject: [PATCH 14/84] DShow TV input needs part of the our DirectShow code, so add the proper dependencies to the Makefile. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29985 b3059339-0415-0410-9bf9-f77b7e298cf2 --- Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 438e0bddec..5b7d4295df 100644 --- a/Makefile +++ b/Makefile @@ -273,7 +273,10 @@ SRCS_COMMON-$(TREMOR_INTERNAL) += tremor/bitwise.c \ SRCS_COMMON-$(TV) += stream/stream_tv.c stream/tv.c \ stream/frequencies.c stream/tvi_dummy.c SRCS_COMMON-$(TV_BSDBT848) += stream/tvi_bsdbt848.c -SRCS_COMMON-$(TV_DSHOW) += stream/tvi_dshow.c +SRCS_COMMON-$(TV_DSHOW) += stream/tvi_dshow.c \ + loader/dshow/guids.c \ + loader/dshow/mediatype.c \ + SRCS_COMMON-$(TV_V4L1) += stream/tvi_v4l.c stream/audio_in.c SRCS_COMMON-$(TV_V4L2) += stream/tvi_v4l2.c stream/audio_in.c SRCS_COMMON-$(UNRAR_EXEC) += unrar_exec.c From e0b789ec7bf2a23d6bb640f7635649d9a1c3d98f Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 9 Dec 2009 17:55:34 +0000 Subject: [PATCH 15/84] Disable winsock when we already found a working socklib instead of checking blindly for cygwin and uselessly running the check on e.g. Linux. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29986 b3059339-0415-0410-9bf9-f77b7e298cf2 --- configure | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 8092e75d61..16049ced48 100755 --- a/configure +++ b/configure @@ -3050,7 +3050,8 @@ _socklib=no for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break done -if test $_winsock2_h = auto && ! cygwin ; then +test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no +if test $_winsock2_h = auto ; then _winsock2_h=no cat > $TMPC << EOF #include From de3620319a1ea2f711da09e4d8f3e20f229361bb Mon Sep 17 00:00:00 2001 From: compn Date: Wed, 9 Dec 2009 20:20:18 +0000 Subject: [PATCH 16/84] vdpau codecs config entry by beandog git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29987 b3059339-0415-0410-9bf9-f77b7e298cf2 --- etc/example.conf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/etc/example.conf b/etc/example.conf index 0868820e56..97b4d91b7c 100644 --- a/etc/example.conf +++ b/etc/example.conf @@ -16,6 +16,10 @@ # video settings # ################## +# Specify vdpau codecs when using -vo vdpau. +#[vo.vdpau] +#vc=ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau,ffh264vdpau,ffodivxvdpau, + # Specify default video driver (see -vo help for a list). #vo=xv From e17256978730314b79b851a9f80275065d7b5ca0 Mon Sep 17 00:00:00 2001 From: cehoyos Date: Thu, 10 Dec 2009 23:16:08 +0000 Subject: [PATCH 17/84] Update the SuperH VEU vidix driver with code that calls fsync() after each frame to make sure the frame is flushed in case of deferred io. Patch by Magnus Damm, damm opensource se git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29988 b3059339-0415-0410-9bf9-f77b7e298cf2 --- vidix/sh_veu_vid.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/vidix/sh_veu_vid.c b/vidix/sh_veu_vid.c index 7ce49b4a94..03868ac364 100644 --- a/vidix/sh_veu_vid.c +++ b/vidix/sh_veu_vid.c @@ -1,6 +1,6 @@ /* * VIDIX driver for SuperH Mobile VEU hardware block. - * Copyright (C) 2008 Magnus Damm + * Copyright (C) 2008, 2009 Magnus Damm * * Requires a kernel that exposes the VEU hardware block to user space * using UIO. Available in upstream linux-2.6.27 or later. @@ -179,8 +179,7 @@ static int get_fb_info(char *device, struct fb_info *fip) memset(iomem, 0, fip->line_length * fip->height); munmap(iomem, fip->size); - close(fd); - return 0; + return fd; } #define VESTR 0x00 /* start register */ @@ -268,6 +267,7 @@ struct sh_veu_plane { static struct sh_veu_plane _src, _dst; static vidix_playback_t my_info; +static int fb_fd; static int sh_veu_probe(int verbose, int force) { @@ -276,6 +276,7 @@ static int sh_veu_probe(int verbose, int force) ret = get_fb_info("/dev/fb0", &fbi); if (ret < 0) return ret; + fb_fd = ret; if (fbi.bpp != 16) { printf("sh_veu: only 16bpp supported\n"); @@ -315,6 +316,9 @@ static void sh_veu_wait_irq(vidix_playback_t *info) read(uio_dev.fd, &n_pending, sizeof(unsigned long)); write_reg(&uio_mmio, 0x100, VEVTR); /* ack int, write 0 to bit 0 */ + + /* flush framebuffer to handle deferred io case */ + fsync(fb_fd); } static int sh_veu_is_veu2h(void) @@ -486,6 +490,7 @@ static int sh_veu_init(void) static void sh_veu_destroy(void) { + close(fb_fd); } static int sh_veu_get_caps(vidix_capability_t *to) From 2a0af1ad5d194b45293cce06fc55d93aa26d545e Mon Sep 17 00:00:00 2001 From: cehoyos Date: Thu, 10 Dec 2009 23:20:09 +0000 Subject: [PATCH 18/84] Fix build on SuperH. Patch by Magnus Damm, damm opensource se git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29989 b3059339-0415-0410-9bf9-f77b7e298cf2 --- vidix/AsmMacros.h | 2 -- vidix/sysdep/pci_linux.c | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/vidix/AsmMacros.h b/vidix/AsmMacros.h index 8cf052b916..da4e3b150b 100644 --- a/vidix/AsmMacros.h +++ b/vidix/AsmMacros.h @@ -77,8 +77,6 @@ #include "sysdep/AsmMacros_arm32.h" #elif defined(__powerpc__) #include "sysdep/AsmMacros_powerpc.h" -#elif defined(__sh__) -#include #else #include "sysdep/AsmMacros_x86.h" #endif diff --git a/vidix/sysdep/pci_linux.c b/vidix/sysdep/pci_linux.c index 6accf0885d..62ccc9bd93 100644 --- a/vidix/sysdep/pci_linux.c +++ b/vidix/sysdep/pci_linux.c @@ -31,7 +31,7 @@ //#include doesn't exist on libc5 systems int iopl(); #else -#if !defined(__sparc__) && !defined(__powerpc__) && !defined(__x86_64__) +#if !defined(__sparc__) && !defined(__powerpc__) && !defined(__x86_64__) && !defined(__sh__) #include #endif #endif From 9aa17fbbb6a07bfa3cea5def4785f2db807e4581 Mon Sep 17 00:00:00 2001 From: cehoyos Date: Thu, 10 Dec 2009 23:22:19 +0000 Subject: [PATCH 19/84] Update the SuperH VEU vidix driver with experimental support for VEU3F. Patch by Magnus Damm, damm opensource se git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29990 b3059339-0415-0410-9bf9-f77b7e298cf2 --- vidix/sh_veu_vid.c | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/vidix/sh_veu_vid.c b/vidix/sh_veu_vid.c index 03868ac364..cc45e32d86 100644 --- a/vidix/sh_veu_vid.c +++ b/vidix/sh_veu_vid.c @@ -219,6 +219,8 @@ static int get_fb_info(char *device, struct fb_info *fip) #define VCOFFR 0x224 /* color conversion offset */ #define VCBR 0x228 /* color conversion clip */ +#define VRPBR 0xc8 /* resize passband */ + /* Helper functions for reading registers. */ static unsigned long read_reg(struct uio_map *ump, int reg_offs) @@ -323,14 +325,19 @@ static void sh_veu_wait_irq(vidix_playback_t *info) static int sh_veu_is_veu2h(void) { - return uio_mmio.size > 0xb8; + return uio_mmio.size == 0x27c; +} + +static int sh_veu_is_veu3f(void) +{ + return uio_mmio.size == 0xcc; } static unsigned long sh_veu_do_scale(struct uio_map *ump, int vertical, int size_in, int size_out, int crop_out) { - unsigned long fixpoint, mant, frac, value, rep; + unsigned long fixpoint, mant, frac, value, rep, vb; /* calculate FRAC and MANT */ do { @@ -402,6 +409,34 @@ static unsigned long sh_veu_do_scale(struct uio_map *ump, } write_reg(ump, value, VRFSR); + /* VEU3F needs additional VRPBR register handling */ + if (sh_veu_is_veu3f()) { + if (size_out > size_in) + vb = 64; + else { + if ((mant >= 8) && (mant < 16)) + value = 4; + else if ((mant >= 4) && (mant < 8)) + value = 2; + else + value = 1; + + vb = 64 * 4096 * value; + vb /= 4096 * mant + frac; + } + + /* set resize passband register */ + value = read_reg(ump, VRPBR); + if (vertical) { + value &= ~0xffff0000; + value |= vb << 16; + } else { + value &= ~0xffff; + value |= vb; + } + write_reg(ump, value, VRPBR); + } + return (((size_in * crop_out) / size_out) + 0x03) & ~0x03; } From e58e467c5650433efc8974e781ca029357f33122 Mon Sep 17 00:00:00 2001 From: reimar Date: Fri, 11 Dec 2009 21:33:57 +0000 Subject: [PATCH 20/84] 100l, fix check for V4L2 capture capability flag. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29991 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/tvi_v4l2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stream/tvi_v4l2.c b/stream/tvi_v4l2.c index 1472d7b6d9..6166a1fe16 100644 --- a/stream/tvi_v4l2.c +++ b/stream/tvi_v4l2.c @@ -613,7 +613,7 @@ static int vbi_init(priv_t* priv,char* device) close(vbi_fd); return TVI_CONTROL_FALSE; } - if(!cap.capabilities & V4L2_CAP_VBI_CAPTURE){ + if(!(cap.capabilities & V4L2_CAP_VBI_CAPTURE)){ mp_msg(MSGT_TV,MSGL_ERR,"vbi: %s does not support VBI capture\n",priv->vbi_dev); close(vbi_fd); return TVI_CONTROL_FALSE; From a5ceff924f07b9c0c6b192f90cc4f2487a7e9b36 Mon Sep 17 00:00:00 2001 From: reimar Date: Fri, 11 Dec 2009 22:27:42 +0000 Subject: [PATCH 21/84] Avoid miscompilation issues with the grow_array function more permanently by marking it noinline. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29992 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_mkv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c index 37a4628dd0..aa900d343a 100644 --- a/libmpdemux/demux_mkv.c +++ b/libmpdemux/demux_mkv.c @@ -208,7 +208,7 @@ extern int dvdsub_id; * \param nelem current number of elements in array * \param elsize size of one array element */ -static void grow_array(void *arrayp, int nelem, size_t elsize) { +static void av_noinline grow_array(void *arrayp, int nelem, size_t elsize) { void **array = arrayp; void *oldp = *array; if (nelem & 31) From 5ef58f03513d97c518a330d5d97f508529a3235e Mon Sep 17 00:00:00 2001 From: diego Date: Sun, 13 Dec 2009 12:28:42 +0000 Subject: [PATCH 22/84] Declare a dependency on xmllint instead of duplicating the target's commands. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29993 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index c7c3252240..53e475d7af 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -39,7 +39,7 @@ SYMLINKS_DEPS:=$(if $(findstring yes,$(USE_SYMLINKS)), $(patsubst ../en/%,%,$(wi xmllint: main.xml $(SYMLINKS_DEPS) ../xmllint.sh $< -$(HTMLDIR)/index.html: main.xml $(CHUNK_XSL_DEPS) $(SYMLINKS_DEPS) +$(HTMLDIR)/index.html: main.xml $(CHUNK_XSL_DEPS) $(SYMLINKS_DEPS) xmllint ifndef HTMLDIR $(warning $(HTMLDIR)) $(warning Error: HTMLDIR not set!!!) @@ -47,18 +47,16 @@ ifndef HTMLDIR $(error Don't do this!) endif -rm -f $(HTMLDIR)/* - ../xmllint.sh $< cp -f $(HTML_STYLESHEET) $(HTMLDIR)/ ../xsltproc.sh $(HTMLDIR)/ $(HTML_CHUNK_XSL) $< -$(HTMLFILE): main.xml $(XSL_DEPS) $(SYMLINKS_DEPS) +$(HTMLFILE): main.xml $(XSL_DEPS) $(SYMLINKS_DEPS) xmllint ifndef HTMLFILE $(warning Error: HTMLFILE not set!!!) $(warning Typically this means, that you've run make from a subdir of DOCS/xml.) $(error Don't do this!) endif -rm -f $(HTMLFILE) - ../xmllint.sh $< cp -f $(HTML_STYLESHEET) `dirname $(HTMLFILE)` ../xsltproc.sh $(HTMLFILE) $(HTML_SINGLE_XSL) $< From e50d429186ce2b27d25f3385ea230e1bc696922c Mon Sep 17 00:00:00 2001 From: diego Date: Sun, 13 Dec 2009 12:31:26 +0000 Subject: [PATCH 23/84] Do not pointlessly remove all targets before recreating them. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29994 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 2 -- 1 file changed, 2 deletions(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index 53e475d7af..2ef29064da 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -46,7 +46,6 @@ ifndef HTMLDIR $(warning Typically this means, that you've run make from a subdir of DOCS/xml.) $(error Don't do this!) endif - -rm -f $(HTMLDIR)/* cp -f $(HTML_STYLESHEET) $(HTMLDIR)/ ../xsltproc.sh $(HTMLDIR)/ $(HTML_CHUNK_XSL) $< @@ -56,7 +55,6 @@ ifndef HTMLFILE $(warning Typically this means, that you've run make from a subdir of DOCS/xml.) $(error Don't do this!) endif - -rm -f $(HTMLFILE) cp -f $(HTML_STYLESHEET) `dirname $(HTMLFILE)` ../xsltproc.sh $(HTMLFILE) $(HTML_SINGLE_XSL) $< From dcd42d9779857631dfa891453c847ba6e68ba647 Mon Sep 17 00:00:00 2001 From: diego Date: Sun, 13 Dec 2009 12:38:16 +0000 Subject: [PATCH 24/84] Use automatic variables instead of the target name. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29995 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index 2ef29064da..ce68ca2d8e 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -55,8 +55,8 @@ ifndef HTMLFILE $(warning Typically this means, that you've run make from a subdir of DOCS/xml.) $(error Don't do this!) endif - cp -f $(HTML_STYLESHEET) `dirname $(HTMLFILE)` - ../xsltproc.sh $(HTMLFILE) $(HTML_SINGLE_XSL) $< + cp -f $(HTML_STYLESHEET) `dirname $@` + ../xsltproc.sh $@ $(HTML_SINGLE_XSL) $< ../html-chunk.xsl ../html-single.xsl main.xml: cd .. && sh configure From ca65466a05ad6f608b092b9b75e14854b34d6b9a Mon Sep 17 00:00:00 2001 From: diego Date: Sun, 13 Dec 2009 12:41:17 +0000 Subject: [PATCH 25/84] Replace shell command substitution by Makefile syntax construct. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29996 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index ce68ca2d8e..86a0e4a068 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -55,7 +55,7 @@ ifndef HTMLFILE $(warning Typically this means, that you've run make from a subdir of DOCS/xml.) $(error Don't do this!) endif - cp -f $(HTML_STYLESHEET) `dirname $@` + cp -f $(HTML_STYLESHEET) $(@D) ../xsltproc.sh $@ $(HTML_SINGLE_XSL) $< ../html-chunk.xsl ../html-single.xsl main.xml: From a3c7601ce8fe772c901e42ce29e638a62522fa3f Mon Sep 17 00:00:00 2001 From: compn Date: Sun, 13 Dec 2009 19:21:38 +0000 Subject: [PATCH 26/84] add MTSJ fourcc to ffmjpeg and ldead mjpeg codec git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29997 b3059339-0415-0410-9bf9-f77b7e298cf2 --- etc/codecs.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/etc/codecs.conf b/etc/codecs.conf index 34ce6fcf2e..2bd04ec012 100644 --- a/etc/codecs.conf +++ b/etc/codecs.conf @@ -1268,6 +1268,7 @@ videocodec ffmjpeg fourcc MVJP ; Midvid JPEG Video Codec fourcc IJLV ; Intel JPEG Library Video Codec fourcc avi1,avi2 + fourcc MTSJ driver ffmpeg dll mjpeg out 444P @@ -1343,6 +1344,7 @@ videocodec LEAD fourcc MJPG fourcc jpeg MJPG ; MOV Photo-JPEG fourcc LEAD + fourcc MTSJ MJPG driver vfw dll "LCodcCMP.dll" out BGR24,BGR15 From 24b378c00ca658da69af0d8b7b9185833e53abf7 Mon Sep 17 00:00:00 2001 From: diego Date: Sun, 13 Dec 2009 21:24:04 +0000 Subject: [PATCH 27/84] Remove pointless warning about Make being called from the wrong place. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29998 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index 86a0e4a068..f69614871f 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -40,21 +40,10 @@ xmllint: main.xml $(SYMLINKS_DEPS) ../xmllint.sh $< $(HTMLDIR)/index.html: main.xml $(CHUNK_XSL_DEPS) $(SYMLINKS_DEPS) xmllint -ifndef HTMLDIR - $(warning $(HTMLDIR)) - $(warning Error: HTMLDIR not set!!!) - $(warning Typically this means, that you've run make from a subdir of DOCS/xml.) - $(error Don't do this!) -endif cp -f $(HTML_STYLESHEET) $(HTMLDIR)/ ../xsltproc.sh $(HTMLDIR)/ $(HTML_CHUNK_XSL) $< $(HTMLFILE): main.xml $(XSL_DEPS) $(SYMLINKS_DEPS) xmllint -ifndef HTMLFILE - $(warning Error: HTMLFILE not set!!!) - $(warning Typically this means, that you've run make from a subdir of DOCS/xml.) - $(error Don't do this!) -endif cp -f $(HTML_STYLESHEET) $(@D) ../xsltproc.sh $@ $(HTML_SINGLE_XSL) $< From 464d2e597f433110c8e0502528a2d48cc137d166 Mon Sep 17 00:00:00 2001 From: diego Date: Sun, 13 Dec 2009 21:33:24 +0000 Subject: [PATCH 28/84] Do not use symlinks for translations that comprise all XML files. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29999 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/de/Makefile | 2 +- DOCS/xml/hu/Makefile | 2 +- DOCS/xml/ru/Makefile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DOCS/xml/de/Makefile b/DOCS/xml/de/Makefile index e18885f6df..e36fbfffa5 100644 --- a/DOCS/xml/de/Makefile +++ b/DOCS/xml/de/Makefile @@ -2,7 +2,7 @@ #HTML_STYLESHEET = mystyle.css # Change to yes to enable symlinking missing files to English master versions -USE_SYMLINKS = yes +USE_SYMLINKS = no # Dependency information. $(HTMLDIR)/index.html: $(wildcard *.xml) diff --git a/DOCS/xml/hu/Makefile b/DOCS/xml/hu/Makefile index e18885f6df..e36fbfffa5 100644 --- a/DOCS/xml/hu/Makefile +++ b/DOCS/xml/hu/Makefile @@ -2,7 +2,7 @@ #HTML_STYLESHEET = mystyle.css # Change to yes to enable symlinking missing files to English master versions -USE_SYMLINKS = yes +USE_SYMLINKS = no # Dependency information. $(HTMLDIR)/index.html: $(wildcard *.xml) diff --git a/DOCS/xml/ru/Makefile b/DOCS/xml/ru/Makefile index e18885f6df..e36fbfffa5 100644 --- a/DOCS/xml/ru/Makefile +++ b/DOCS/xml/ru/Makefile @@ -2,7 +2,7 @@ #HTML_STYLESHEET = mystyle.css # Change to yes to enable symlinking missing files to English master versions -USE_SYMLINKS = yes +USE_SYMLINKS = no # Dependency information. $(HTMLDIR)/index.html: $(wildcard *.xml) From 11dc4089e74d4373fde9687c079574914f405ff5 Mon Sep 17 00:00:00 2001 From: diego Date: Sun, 13 Dec 2009 21:43:31 +0000 Subject: [PATCH 29/84] xmllint.sh is not a phony target. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30000 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index 7a90938aef..2a13530f39 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -62,4 +62,4 @@ releaseclean: distclean: clean releaseclean -.PHONY: all help html-chunked* html-single* xmllint* *clean* +.PHONY: all help html-chunked* html-single* xmllint xmllint-* *clean* From 8c42f1b7bcab35e3d70a0d6bea0865c67d5393dc Mon Sep 17 00:00:00 2001 From: diego Date: Sun, 13 Dec 2009 21:51:09 +0000 Subject: [PATCH 30/84] cosmetics: Remove pointless trailing /. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30001 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index f69614871f..644dac7083 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -40,7 +40,7 @@ xmllint: main.xml $(SYMLINKS_DEPS) ../xmllint.sh $< $(HTMLDIR)/index.html: main.xml $(CHUNK_XSL_DEPS) $(SYMLINKS_DEPS) xmllint - cp -f $(HTML_STYLESHEET) $(HTMLDIR)/ + cp -f $(HTML_STYLESHEET) $(HTMLDIR) ../xsltproc.sh $(HTMLDIR)/ $(HTML_CHUNK_XSL) $< $(HTMLFILE): main.xml $(XSL_DEPS) $(SYMLINKS_DEPS) xmllint From 05de890bad0299894d7804894228c3de40d46166 Mon Sep 17 00:00:00 2001 From: diego Date: Sun, 13 Dec 2009 22:10:39 +0000 Subject: [PATCH 31/84] Declare common dependencies for chunked and single HTML targets together. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30002 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index 2a13530f39..21d34df0f9 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -25,9 +25,9 @@ help: @echo "distclean : Remove ALL generated files." @echo "Substitute LANG for one of $(DOC_LANG_ALL)" -html-chunked: xsltproc.sh xmllint.sh $(HTML_CHUNKED) $(addprefix html-chunked-,$(DOC_LANGS)) - -html-single: xsltproc.sh xmllint.sh $(HTML_SINGLE) $(addprefix html-single-,$(DOC_LANGS)) +html-chunked html-single: xsltproc.sh xmllint.sh +html-chunked: $(HTML_CHUNKED) $(addprefix html-chunked-,$(DOC_LANGS)) +html-single: $(HTML_SINGLE) $(addprefix html-single-,$(DOC_LANGS)) xmllint: xmllint.sh $(addprefix xmllint-,$(DOC_LANG_ALL)) From 985b7e57ae8616b9aa9c5ff4d1e5469e55a10541 Mon Sep 17 00:00:00 2001 From: diego Date: Sun, 13 Dec 2009 22:15:50 +0000 Subject: [PATCH 32/84] Create required directories directly without intermediate steps. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30003 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index 21d34df0f9..5b18bc2101 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -31,19 +31,17 @@ html-single: $(HTML_SINGLE) $(addprefix html-single-,$(DOC_LANGS)) xmllint: xmllint.sh $(addprefix xmllint-,$(DOC_LANG_ALL)) -$(HTML_CHUNKED) $(HTML_SINGLE): +$(foreach lang,$(DOC_LANG_ALL),$(HTML_CHUNKED)/$(lang) $(HTML_SINGLE)/$(lang)): -mkdir -p $@ xsltproc.sh xmllint.sh: sh configure define lang-def -html-chunked-$(1): xsltproc.sh xmllint.sh $(HTML_CHUNKED) - -mkdir -p $(HTML_CHUNKED)/$(1) +html-chunked-$(1): $(HTML_CHUNKED)/$(1) xsltproc.sh xmllint.sh $(MAKE) HTMLDIR=../$(HTML_CHUNKED)/$(1) -C $(1) html-chunked -html-single-$(1): xsltproc.sh xmllint.sh $(HTML_SINGLE) - -mkdir -p $(HTML_SINGLE)/$(1) +html-single-$(1): $(HTML_SINGLE)/$(1) xsltproc.sh xmllint.sh $(MAKE) HTMLFILE=../$(HTML_SINGLE)/$(1)/MPlayer.html -C $(1) html-single xmllint-$(1): xmllint.sh From a1b76a2914349ad99abf60cb29a74bde2e972e18 Mon Sep 17 00:00:00 2001 From: diego Date: Sun, 13 Dec 2009 22:23:34 +0000 Subject: [PATCH 33/84] Simplify some commands via automatic variables. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30004 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index 5b18bc2101..da17379ba7 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -39,10 +39,10 @@ xsltproc.sh xmllint.sh: define lang-def html-chunked-$(1): $(HTML_CHUNKED)/$(1) xsltproc.sh xmllint.sh - $(MAKE) HTMLDIR=../$(HTML_CHUNKED)/$(1) -C $(1) html-chunked + $(MAKE) HTMLDIR=../$$< -C $(1) html-chunked html-single-$(1): $(HTML_SINGLE)/$(1) xsltproc.sh xmllint.sh - $(MAKE) HTMLFILE=../$(HTML_SINGLE)/$(1)/MPlayer.html -C $(1) html-single + $(MAKE) HTMLFILE=../$$ Date: Sun, 13 Dec 2009 22:25:08 +0000 Subject: [PATCH 34/84] Do not pointlessly set the HTMLFILE variable when running xmllint. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30005 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index da17379ba7..8b57846da8 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -45,7 +45,7 @@ html-single-$(1): $(HTML_SINGLE)/$(1) xsltproc.sh xmllint.sh $(MAKE) HTMLFILE=../$$ Date: Sun, 13 Dec 2009 22:43:37 +0000 Subject: [PATCH 35/84] - Remove now unnecessary dependency on intermediate directories. - Update README.maintainers to reflect that the monolithic documentation is no longer built in a separate dir (accidentally committed part that belongs to the next committed revision). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30006 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 4 ++-- DOCS/xml/README.maintainers | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index 8b57846da8..f540b2b418 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -26,8 +26,8 @@ help: @echo "Substitute LANG for one of $(DOC_LANG_ALL)" html-chunked html-single: xsltproc.sh xmllint.sh -html-chunked: $(HTML_CHUNKED) $(addprefix html-chunked-,$(DOC_LANGS)) -html-single: $(HTML_SINGLE) $(addprefix html-single-,$(DOC_LANGS)) +html-chunked: $(addprefix html-chunked-,$(DOC_LANGS)) +html-single: $(addprefix html-single-,$(DOC_LANGS)) xmllint: xmllint.sh $(addprefix xmllint-,$(DOC_LANG_ALL)) diff --git a/DOCS/xml/README.maintainers b/DOCS/xml/README.maintainers index a17617a555..743d0a71e2 100644 --- a/DOCS/xml/README.maintainers +++ b/DOCS/xml/README.maintainers @@ -2,9 +2,9 @@ The documentation and its translations reside in subdirectories. When building the documentation, the toplevel Makefile goes into the subdirectories listed in the SUBDIRS variable and executes make in each of those directories to create the HTML documentation -in subdirectories of the 'HTML' and 'HTML-single' directories. +in subdirectories of the 'HTML' directory. -IMPORTANT: Do NOT place sensitive files under 'HTML' or 'HTML-single'! +IMPORTANT: Do NOT place sensitive files under 'HTML'! It is for generated documentation only. The whole directory tree is wiped out by the Makefile when running 'make distclean' or 'make clean'. From b72afc004c0bb745d05f38224660444615e5d15d Mon Sep 17 00:00:00 2001 From: diego Date: Sun, 13 Dec 2009 22:51:55 +0000 Subject: [PATCH 36/84] Do not build monolithic documentation in a separate directory. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30007 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/README | 6 +++--- DOCS/xml/Makefile | 17 +++++++---------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/DOCS/README b/DOCS/README index 7caffa7300..04d7357854 100644 --- a/DOCS/README +++ b/DOCS/README @@ -12,10 +12,10 @@ Thanks for reading MPlayer documentation !!! each language in its own subdirectory. b, If you prefer reading the documentation as a single big file it - can be found in the HTML-single/ directory, each language in its + can be found in the file MPlayer.html, each language in its own subdirectory. - c, If the HTML/ or HTML-single/ directories don't contain your language, + c, If the HTML/ directory does not contain your language, try the subdirectories in this very same folder. @@ -23,7 +23,7 @@ Thanks for reading MPlayer documentation !!! a, Enter the xml/ directory, and read the README file there to find out how to build a HTML version of the XML documentation. It will - be created in the HTML/ and HTML-single/ directories. + be created in the HTML/ directory. b, If the xml/ directory doesn't contain your language, try the subdirectories in this very same folder. diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index f540b2b418..7f94dc5f37 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -2,11 +2,8 @@ include ../../config.mak -# Generated chunked HTML files go here. -HTML_CHUNKED = ../HTML - -# Generated single HTML files go here. -HTML_SINGLE = ../HTML-single +# Generated HTML files go here. +HTML = ../HTML all: html-chunked html-single @@ -20,7 +17,7 @@ help: @echo "html-chunked-LANG : As above, but only one language." @echo "xmllint : Check syntax of all xml files." @echo "xmllint-LANG : Check syntax of LANG xml files." - @echo "clean : Purge the 'HTML' and 'HTML-single' directories." + @echo "clean : Purge the 'HTML' directory." @echo "releaseclean : Remove generated files but keep the HTML." @echo "distclean : Remove ALL generated files." @echo "Substitute LANG for one of $(DOC_LANG_ALL)" @@ -31,17 +28,17 @@ html-single: $(addprefix html-single-,$(DOC_LANGS)) xmllint: xmllint.sh $(addprefix xmllint-,$(DOC_LANG_ALL)) -$(foreach lang,$(DOC_LANG_ALL),$(HTML_CHUNKED)/$(lang) $(HTML_SINGLE)/$(lang)): +$(foreach lang,$(DOC_LANG_ALL),$(HTML)/$(lang)): -mkdir -p $@ xsltproc.sh xmllint.sh: sh configure define lang-def -html-chunked-$(1): $(HTML_CHUNKED)/$(1) xsltproc.sh xmllint.sh +html-chunked-$(1): $(HTML)/$(1) xsltproc.sh xmllint.sh $(MAKE) HTMLDIR=../$$< -C $(1) html-chunked -html-single-$(1): $(HTML_SINGLE)/$(1) xsltproc.sh xmllint.sh +html-single-$(1): $(HTML)/$(1) xsltproc.sh xmllint.sh $(MAKE) HTMLFILE=../$$ Date: Sun, 13 Dec 2009 23:17:11 +0000 Subject: [PATCH 37/84] Simplify setting COMMON_XSL_DEPS variable: Use $(wildcard ) directly instead of using it to control a conditional. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30008 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index 644dac7083..52cdc31e15 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -4,11 +4,7 @@ # Use customized html-chunk.xsl and/or html-single.xsl file if they exist... # Also add html-common.xsl to depends if it exists. -ifeq (html-common.xsl,$(wildcard html-common.xsl)) -COMMON_XSL_DEPS := html-common.xsl ../html-common.xsl -else -COMMON_XSL_DEPS := ../html-common.xsl -endif +COMMON_XSL_DEPS := ../html-common.xsl $(wildcard html-common.xsl) ifeq (html-chunk.xsl,$(wildcard html-chunk.xsl)) HTML_CHUNK_XSL := html-chunk.xsl From d1cab97233109562807ee0a7ccf44be7401432fb Mon Sep 17 00:00:00 2001 From: diego Date: Sun, 13 Dec 2009 23:22:55 +0000 Subject: [PATCH 38/84] Simplify one more command via automatic variables. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30009 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index 52cdc31e15..30c18d7535 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -36,7 +36,7 @@ xmllint: main.xml $(SYMLINKS_DEPS) ../xmllint.sh $< $(HTMLDIR)/index.html: main.xml $(CHUNK_XSL_DEPS) $(SYMLINKS_DEPS) xmllint - cp -f $(HTML_STYLESHEET) $(HTMLDIR) + cp -f $(HTML_STYLESHEET) $(@D) ../xsltproc.sh $(HTMLDIR)/ $(HTML_CHUNK_XSL) $< $(HTMLFILE): main.xml $(XSL_DEPS) $(SYMLINKS_DEPS) xmllint From 01ebb2b49a65e051e0065f3fcdfd190921f95e14 Mon Sep 17 00:00:00 2001 From: diego Date: Sun, 13 Dec 2009 23:48:20 +0000 Subject: [PATCH 39/84] Avoid '&>' bashism for redirecting both stdout and stderr. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30010 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DOCS/xml/configure b/DOCS/xml/configure index d4145ddf4c..b94eebf7e5 100755 --- a/DOCS/xml/configure +++ b/DOCS/xml/configure @@ -181,7 +181,7 @@ echo "Looking for a valid XSLT processor..." # Also checks for Jade/OpenJade. #FIXME: Add support for the xalan/xalan2 XSLT processors. -if xsltproc --version &> /dev/null +if xsltproc --version > /dev/null 2>&1 then if test -z "$_fake_chunk_xsl" then From 5ffe3cf4797e7ad4dcf422474f3ac315f4d5a782 Mon Sep 17 00:00:00 2001 From: diego Date: Sun, 13 Dec 2009 23:50:38 +0000 Subject: [PATCH 40/84] Add html-chunk.xsl and html-single.xsl to targets generated by configure. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30011 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index 7f94dc5f37..19196d1aeb 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -31,7 +31,7 @@ xmllint: xmllint.sh $(addprefix xmllint-,$(DOC_LANG_ALL)) $(foreach lang,$(DOC_LANG_ALL),$(HTML)/$(lang)): -mkdir -p $@ -xsltproc.sh xmllint.sh: +html-chunk.xsl html-single.xsl xsltproc.sh xmllint.sh: sh configure define lang-def From 82624ac049656817805be1d05a9b61761fa70594 Mon Sep 17 00:00:00 2001 From: diego Date: Sun, 13 Dec 2009 23:54:46 +0000 Subject: [PATCH 41/84] configure also generates all main.xml files. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30012 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index 19196d1aeb..2aca1c3586 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -31,7 +31,7 @@ xmllint: xmllint.sh $(addprefix xmllint-,$(DOC_LANG_ALL)) $(foreach lang,$(DOC_LANG_ALL),$(HTML)/$(lang)): -mkdir -p $@ -html-chunk.xsl html-single.xsl xsltproc.sh xmllint.sh: +html-chunk.xsl html-single.xsl xsltproc.sh xmllint.sh $(foreach lang,$(DOC_LANG_ALL),$(lang)/main.xml): sh configure define lang-def From 4a7eee53920f0a6c77d8e95dcb5318219e8e98fc Mon Sep 17 00:00:00 2001 From: diego Date: Sun, 13 Dec 2009 23:59:10 +0000 Subject: [PATCH 42/84] Factorize generating the list of all main.xml files. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30013 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index 2aca1c3586..c7ce2e99f9 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -5,6 +5,8 @@ include ../../config.mak # Generated HTML files go here. HTML = ../HTML +MAIN_XML_ALL = $(foreach lang,$(DOC_LANG_ALL),$(lang)/main.xml) + all: html-chunked html-single help: @@ -31,7 +33,7 @@ xmllint: xmllint.sh $(addprefix xmllint-,$(DOC_LANG_ALL)) $(foreach lang,$(DOC_LANG_ALL),$(HTML)/$(lang)): -mkdir -p $@ -html-chunk.xsl html-single.xsl xsltproc.sh xmllint.sh $(foreach lang,$(DOC_LANG_ALL),$(lang)/main.xml): +html-chunk.xsl html-single.xsl xsltproc.sh xmllint.sh $(MAIN_XML_ALL): sh configure define lang-def @@ -51,7 +53,7 @@ clean: rm -rf $(HTML) releaseclean: - rm -f $(foreach lang,$(DOC_LANG_ALL),$(lang)/main.xml) + rm -f $(MAIN_XML_ALL) rm -f $$(find . -name *.xml -type l) rm -f html-chunk.xsl html-single.xsl xsltproc.sh xmllint.sh From b933c31df5e85b89e1610e91c933e587434c299e Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 00:16:32 +0000 Subject: [PATCH 43/84] Construct monolithic targets with the HTMLDIR instead of the HTMLFILE variable. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30014 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 2 +- DOCS/xml/Makefile.inc | 4 ++-- DOCS/xml/cs/Makefile | 3 +-- DOCS/xml/de/Makefile | 3 +-- DOCS/xml/en/Makefile | 3 +-- DOCS/xml/es/Makefile | 3 +-- DOCS/xml/fr/Makefile | 3 +-- DOCS/xml/hu/Makefile | 3 +-- DOCS/xml/it/Makefile | 3 +-- DOCS/xml/pl/Makefile | 3 +-- DOCS/xml/ru/Makefile | 3 +-- DOCS/xml/zh_CN/Makefile | 3 +-- 12 files changed, 13 insertions(+), 23 deletions(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index c7ce2e99f9..e9b0b2288f 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -41,7 +41,7 @@ html-chunked-$(1): $(HTML)/$(1) xsltproc.sh xmllint.sh $(MAKE) HTMLDIR=../$$< -C $(1) html-chunked html-single-$(1): $(HTML)/$(1) xsltproc.sh xmllint.sh - $(MAKE) HTMLFILE=../$$ Date: Mon, 14 Dec 2009 00:42:46 +0000 Subject: [PATCH 44/84] Factorize stylesheet installation into its own target. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30015 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index d509d42e53..4f8628e7f9 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -35,12 +35,13 @@ SYMLINKS_DEPS:=$(if $(findstring yes,$(USE_SYMLINKS)), $(patsubst ../en/%,%,$(wi xmllint: main.xml $(SYMLINKS_DEPS) ../xmllint.sh $< -$(HTMLDIR)/index.html: main.xml $(CHUNK_XSL_DEPS) $(SYMLINKS_DEPS) xmllint - cp -f $(HTML_STYLESHEET) $(@D) +$(HTMLDIR)/default.css: + cp -f ../default.css $(@D) + +$(HTMLDIR)/index.html: main.xml $(CHUNK_XSL_DEPS) $(SYMLINKS_DEPS) xmllint $(HTMLDIR)/default.css ../xsltproc.sh $(HTMLDIR)/ $(HTML_CHUNK_XSL) $< -$(HTMLDIR)/MPlayer.html: main.xml $(XSL_DEPS) $(SYMLINKS_DEPS) xmllint - cp -f $(HTML_STYLESHEET) $(@D) +$(HTMLDIR)/MPlayer.html: main.xml $(XSL_DEPS) $(SYMLINKS_DEPS) xmllint $(HTMLDIR)/default.css ../xsltproc.sh $@ $(HTML_SINGLE_XSL) $< ../html-chunk.xsl ../html-single.xsl main.xml: From 1f52f6765264b9ae3dff5d8ddd23bacfd8c714b6 Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 00:57:33 +0000 Subject: [PATCH 45/84] Use variable for HTML stylesheet so individual languages can use their own. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30016 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index 4f8628e7f9..f2a4060ef2 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -36,7 +36,7 @@ xmllint: main.xml $(SYMLINKS_DEPS) ../xmllint.sh $< $(HTMLDIR)/default.css: - cp -f ../default.css $(@D) + cp -f $(HTML_STYLESHEET) $(@D) $(HTMLDIR)/index.html: main.xml $(CHUNK_XSL_DEPS) $(SYMLINKS_DEPS) xmllint $(HTMLDIR)/default.css ../xsltproc.sh $(HTMLDIR)/ $(HTML_CHUNK_XSL) $< From 130e2f9b675dcc40f26743fb5bf068e75392532b Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 01:34:02 +0000 Subject: [PATCH 46/84] Unconditionally symlink documentation files missing from a translation. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30017 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 3 +-- DOCS/xml/README.maintainers | 5 ----- DOCS/xml/cs/Makefile | 3 --- DOCS/xml/de/Makefile | 3 --- DOCS/xml/en/Makefile | 3 --- DOCS/xml/es/Makefile | 3 --- DOCS/xml/fr/Makefile | 3 --- DOCS/xml/hu/Makefile | 3 --- DOCS/xml/it/Makefile | 3 --- DOCS/xml/pl/Makefile | 3 --- DOCS/xml/ru/Makefile | 3 --- DOCS/xml/zh_CN/Makefile | 3 --- 12 files changed, 1 insertion(+), 37 deletions(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index f2a4060ef2..c260710479 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -30,7 +30,7 @@ all: html-chunked html-single html-chunked: $(HTMLDIR)/index.html html-single: $(HTMLDIR)/MPlayer.html -SYMLINKS_DEPS:=$(if $(findstring yes,$(USE_SYMLINKS)), $(patsubst ../en/%,%,$(wildcard ../en/*.xml))) +SYMLINKS_DEPS:=$(patsubst ../en/%,%,$(wildcard ../en/*.xml)) xmllint: main.xml $(SYMLINKS_DEPS) ../xmllint.sh $< @@ -48,7 +48,6 @@ $(HTMLDIR)/MPlayer.html: main.xml $(XSL_DEPS) $(SYMLINKS_DEPS) xmllint $(HTMLDIR cd .. && sh configure $(filter-out main.xml, $(patsubst ../en/%,%, $(wildcard ../en/*.xml))): - $(if $(findstring yes,$(USE_SYMLINKS)), ,exit 0;)\ for file in ../en/*.xml ; do \ if ! test -r `basename $$file` ; then \ ln -s $$file `basename $$file` ; \ diff --git a/DOCS/xml/README.maintainers b/DOCS/xml/README.maintainers index 743d0a71e2..86be440a09 100644 --- a/DOCS/xml/README.maintainers +++ b/DOCS/xml/README.maintainers @@ -75,9 +75,4 @@ Adding new translations like , where 2 is the revision of corresponding English file (see comment at the top of file). -7) While your translation isn't finished, you can change USE_SYMLINKS - to "yes" in your Makefile. This will help you testing your translation: - English files will be used instead of untranslated ones, when generating - HTML docs. - That's all, in theory. diff --git a/DOCS/xml/cs/Makefile b/DOCS/xml/cs/Makefile index ea6cc92bcb..2b263eea93 100644 --- a/DOCS/xml/cs/Makefile +++ b/DOCS/xml/cs/Makefile @@ -1,9 +1,6 @@ # Set if you are using your own HTML stylesheet... #HTML_STYLESHEET = mystyle.css -# Change to yes to enable symlinking missing files to English master versions -USE_SYMLINKS = no - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/de/Makefile b/DOCS/xml/de/Makefile index ea6cc92bcb..2b263eea93 100644 --- a/DOCS/xml/de/Makefile +++ b/DOCS/xml/de/Makefile @@ -1,9 +1,6 @@ # Set if you are using your own HTML stylesheet... #HTML_STYLESHEET = mystyle.css -# Change to yes to enable symlinking missing files to English master versions -USE_SYMLINKS = no - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/en/Makefile b/DOCS/xml/en/Makefile index ea6cc92bcb..2b263eea93 100644 --- a/DOCS/xml/en/Makefile +++ b/DOCS/xml/en/Makefile @@ -1,9 +1,6 @@ # Set if you are using your own HTML stylesheet... #HTML_STYLESHEET = mystyle.css -# Change to yes to enable symlinking missing files to English master versions -USE_SYMLINKS = no - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/es/Makefile b/DOCS/xml/es/Makefile index 11dc2e788f..2b263eea93 100644 --- a/DOCS/xml/es/Makefile +++ b/DOCS/xml/es/Makefile @@ -1,9 +1,6 @@ # Set if you are using your own HTML stylesheet... #HTML_STYLESHEET = mystyle.css -# Change to yes to enable symlinking missing files to English master versions -USE_SYMLINKS = yes - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/fr/Makefile b/DOCS/xml/fr/Makefile index ea6cc92bcb..2b263eea93 100644 --- a/DOCS/xml/fr/Makefile +++ b/DOCS/xml/fr/Makefile @@ -1,9 +1,6 @@ # Set if you are using your own HTML stylesheet... #HTML_STYLESHEET = mystyle.css -# Change to yes to enable symlinking missing files to English master versions -USE_SYMLINKS = no - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/hu/Makefile b/DOCS/xml/hu/Makefile index ea6cc92bcb..2b263eea93 100644 --- a/DOCS/xml/hu/Makefile +++ b/DOCS/xml/hu/Makefile @@ -1,9 +1,6 @@ # Set if you are using your own HTML stylesheet... #HTML_STYLESHEET = mystyle.css -# Change to yes to enable symlinking missing files to English master versions -USE_SYMLINKS = no - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/it/Makefile b/DOCS/xml/it/Makefile index 11dc2e788f..2b263eea93 100644 --- a/DOCS/xml/it/Makefile +++ b/DOCS/xml/it/Makefile @@ -1,9 +1,6 @@ # Set if you are using your own HTML stylesheet... #HTML_STYLESHEET = mystyle.css -# Change to yes to enable symlinking missing files to English master versions -USE_SYMLINKS = yes - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/pl/Makefile b/DOCS/xml/pl/Makefile index ea6cc92bcb..2b263eea93 100644 --- a/DOCS/xml/pl/Makefile +++ b/DOCS/xml/pl/Makefile @@ -1,9 +1,6 @@ # Set if you are using your own HTML stylesheet... #HTML_STYLESHEET = mystyle.css -# Change to yes to enable symlinking missing files to English master versions -USE_SYMLINKS = no - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/ru/Makefile b/DOCS/xml/ru/Makefile index ea6cc92bcb..2b263eea93 100644 --- a/DOCS/xml/ru/Makefile +++ b/DOCS/xml/ru/Makefile @@ -1,9 +1,6 @@ # Set if you are using your own HTML stylesheet... #HTML_STYLESHEET = mystyle.css -# Change to yes to enable symlinking missing files to English master versions -USE_SYMLINKS = no - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/zh_CN/Makefile b/DOCS/xml/zh_CN/Makefile index 11dc2e788f..2b263eea93 100644 --- a/DOCS/xml/zh_CN/Makefile +++ b/DOCS/xml/zh_CN/Makefile @@ -1,9 +1,6 @@ # Set if you are using your own HTML stylesheet... #HTML_STYLESHEET = mystyle.css -# Change to yes to enable symlinking missing files to English master versions -USE_SYMLINKS = yes - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) From a1c5ce61194e5bb12eb9e61076c241104ecc0e71 Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 01:51:42 +0000 Subject: [PATCH 47/84] Drop support for per-language stylesheets. In all these years nobody ever used this feature. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30018 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 5 +---- DOCS/xml/README.maintainers | 6 +----- DOCS/xml/cs/Makefile | 3 --- DOCS/xml/de/Makefile | 3 --- DOCS/xml/en/Makefile | 3 --- DOCS/xml/es/Makefile | 3 --- DOCS/xml/fr/Makefile | 3 --- DOCS/xml/hu/Makefile | 3 --- DOCS/xml/it/Makefile | 3 --- DOCS/xml/pl/Makefile | 3 --- DOCS/xml/ru/Makefile | 3 --- DOCS/xml/zh_CN/Makefile | 3 --- 12 files changed, 2 insertions(+), 39 deletions(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index c260710479..72db2a0f24 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -22,9 +22,6 @@ HTML_SINGLE_XSL := ../html-single.xsl XSL_DEPS := $(HTML_SINGLE_XSL) ../html-common.xsl endif -# Fall back to the default HTML stylesheet if none is specified. -HTML_STYLESHEET ?= ../default.css - # This is the main target... all: html-chunked html-single html-chunked: $(HTMLDIR)/index.html @@ -36,7 +33,7 @@ xmllint: main.xml $(SYMLINKS_DEPS) ../xmllint.sh $< $(HTMLDIR)/default.css: - cp -f $(HTML_STYLESHEET) $(@D) + cp -f ../default.css $(@D) $(HTMLDIR)/index.html: main.xml $(CHUNK_XSL_DEPS) $(SYMLINKS_DEPS) xmllint $(HTMLDIR)/default.css ../xsltproc.sh $(HTMLDIR)/ $(HTML_CHUNK_XSL) $< diff --git a/DOCS/xml/README.maintainers b/DOCS/xml/README.maintainers index 86be440a09..f2fb2e7e12 100644 --- a/DOCS/xml/README.maintainers +++ b/DOCS/xml/README.maintainers @@ -67,11 +67,7 @@ Adding new translations -5) If you are using your own HTML stylesheet, edit your Makefile and set - the HTML_STYLESHEET variable to its name. Please, don't call your HTML - stylesheet 'default.css'. - -6) In each translated file after the tag you must put a note +5) In each translated file after the tag you must put a note like , where 2 is the revision of corresponding English file (see comment at the top of file). diff --git a/DOCS/xml/cs/Makefile b/DOCS/xml/cs/Makefile index 2b263eea93..db38611f41 100644 --- a/DOCS/xml/cs/Makefile +++ b/DOCS/xml/cs/Makefile @@ -1,6 +1,3 @@ -# Set if you are using your own HTML stylesheet... -#HTML_STYLESHEET = mystyle.css - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/de/Makefile b/DOCS/xml/de/Makefile index 2b263eea93..db38611f41 100644 --- a/DOCS/xml/de/Makefile +++ b/DOCS/xml/de/Makefile @@ -1,6 +1,3 @@ -# Set if you are using your own HTML stylesheet... -#HTML_STYLESHEET = mystyle.css - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/en/Makefile b/DOCS/xml/en/Makefile index 2b263eea93..db38611f41 100644 --- a/DOCS/xml/en/Makefile +++ b/DOCS/xml/en/Makefile @@ -1,6 +1,3 @@ -# Set if you are using your own HTML stylesheet... -#HTML_STYLESHEET = mystyle.css - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/es/Makefile b/DOCS/xml/es/Makefile index 2b263eea93..db38611f41 100644 --- a/DOCS/xml/es/Makefile +++ b/DOCS/xml/es/Makefile @@ -1,6 +1,3 @@ -# Set if you are using your own HTML stylesheet... -#HTML_STYLESHEET = mystyle.css - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/fr/Makefile b/DOCS/xml/fr/Makefile index 2b263eea93..db38611f41 100644 --- a/DOCS/xml/fr/Makefile +++ b/DOCS/xml/fr/Makefile @@ -1,6 +1,3 @@ -# Set if you are using your own HTML stylesheet... -#HTML_STYLESHEET = mystyle.css - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/hu/Makefile b/DOCS/xml/hu/Makefile index 2b263eea93..db38611f41 100644 --- a/DOCS/xml/hu/Makefile +++ b/DOCS/xml/hu/Makefile @@ -1,6 +1,3 @@ -# Set if you are using your own HTML stylesheet... -#HTML_STYLESHEET = mystyle.css - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/it/Makefile b/DOCS/xml/it/Makefile index 2b263eea93..db38611f41 100644 --- a/DOCS/xml/it/Makefile +++ b/DOCS/xml/it/Makefile @@ -1,6 +1,3 @@ -# Set if you are using your own HTML stylesheet... -#HTML_STYLESHEET = mystyle.css - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/pl/Makefile b/DOCS/xml/pl/Makefile index 2b263eea93..db38611f41 100644 --- a/DOCS/xml/pl/Makefile +++ b/DOCS/xml/pl/Makefile @@ -1,6 +1,3 @@ -# Set if you are using your own HTML stylesheet... -#HTML_STYLESHEET = mystyle.css - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/ru/Makefile b/DOCS/xml/ru/Makefile index 2b263eea93..db38611f41 100644 --- a/DOCS/xml/ru/Makefile +++ b/DOCS/xml/ru/Makefile @@ -1,6 +1,3 @@ -# Set if you are using your own HTML stylesheet... -#HTML_STYLESHEET = mystyle.css - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) diff --git a/DOCS/xml/zh_CN/Makefile b/DOCS/xml/zh_CN/Makefile index 2b263eea93..db38611f41 100644 --- a/DOCS/xml/zh_CN/Makefile +++ b/DOCS/xml/zh_CN/Makefile @@ -1,6 +1,3 @@ -# Set if you are using your own HTML stylesheet... -#HTML_STYLESHEET = mystyle.css - # Dependency information. $(HTMLDIR)/index.html $(HTMLDIR)/MPlayer.html: $(wildcard *.xml) From 0886fd008923d8f881091ab5bb2d173418e18fdb Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 02:00:25 +0000 Subject: [PATCH 48/84] Remove pointless Polish stylesheet; it provides no real benefit. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30019 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/pl/html-chunk.xsl | 8 -------- DOCS/xml/pl/html-common.xsl | 15 --------------- DOCS/xml/pl/html-single.xsl | 8 -------- 3 files changed, 31 deletions(-) delete mode 100644 DOCS/xml/pl/html-chunk.xsl delete mode 100644 DOCS/xml/pl/html-common.xsl delete mode 100644 DOCS/xml/pl/html-single.xsl diff --git a/DOCS/xml/pl/html-chunk.xsl b/DOCS/xml/pl/html-chunk.xsl deleted file mode 100644 index 26cfa2f125..0000000000 --- a/DOCS/xml/pl/html-chunk.xsl +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/DOCS/xml/pl/html-common.xsl b/DOCS/xml/pl/html-common.xsl deleted file mode 100644 index b3c85812ce..0000000000 --- a/DOCS/xml/pl/html-common.xsl +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - diff --git a/DOCS/xml/pl/html-single.xsl b/DOCS/xml/pl/html-single.xsl deleted file mode 100644 index b263daf761..0000000000 --- a/DOCS/xml/pl/html-single.xsl +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - From 62197a7183ee35f97ed31d78f4c2794673828a0e Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 02:01:50 +0000 Subject: [PATCH 49/84] Drop support for per-language XSL stylesheets. The feature was never properly used and provides little benefit. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30020 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 14 ------------ DOCS/xml/README.maintainers | 45 ++----------------------------------- 2 files changed, 2 insertions(+), 57 deletions(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index 72db2a0f24..7cd7436c4d 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -2,25 +2,11 @@ # Makefile.inc for Makefiles in subdirectories. # -# Use customized html-chunk.xsl and/or html-single.xsl file if they exist... -# Also add html-common.xsl to depends if it exists. -COMMON_XSL_DEPS := ../html-common.xsl $(wildcard html-common.xsl) - -ifeq (html-chunk.xsl,$(wildcard html-chunk.xsl)) -HTML_CHUNK_XSL := html-chunk.xsl -CHUNK_XSL_DEPS := $(HTML_CHUNK_XSL) ../html-chunk.xsl $(COMMON_XSL_DEPS) -else HTML_CHUNK_XSL := ../html-chunk.xsl CHUNK_XSL_DEPS := $(HTML_CHUNK_XSL) ../html-common.xsl -endif -ifeq (html-single.xsl,$(wildcard html-single.xsl)) -HTML_SINGLE_XSL := html-single.xsl -XSL_DEPS := $(HTML_SINGLE_XSL) ../html-single.xsl $(COMMON_XSL_DEPS) -else HTML_SINGLE_XSL := ../html-single.xsl XSL_DEPS := $(HTML_SINGLE_XSL) ../html-common.xsl -endif # This is the main target... all: html-chunked html-single diff --git a/DOCS/xml/README.maintainers b/DOCS/xml/README.maintainers index f2fb2e7e12..c39b5dc4ff 100644 --- a/DOCS/xml/README.maintainers +++ b/DOCS/xml/README.maintainers @@ -14,9 +14,7 @@ IMPORTANT: Do NOT place sensitive files under 'HTML'! Each subdirectory must have a Makefile. Its purpose is to include the toplevel Makefile.inc file (with the rules to build the docs) and add dependency information to the main target, $(HTMLDIR)/index.html. -The main target usually depends on all the XML and XSL files in the -subdirectory. (Note that the toplevel *.xsl files are added automatically -by Makefile.inc, so you do not have to list them.) +The main target usually depends on all the XML files in the subdirectory. Adding new translations @@ -28,46 +26,7 @@ Adding new translations 2) Make sure to create a 'Makefile' for the translation -- you can use 'en/Makefile' as an example. -3) If you want to use a customized XSL stylesheet, create one and name it - 'html-common.xsl'. Also create two additional XSL stylesheets - ('html-single.xsl' and 'html-chunk.xsl'), with content such as this: - - html-single.xsl: - - - - - - - - - - html-chunk.xsl: - - - - - - - - - - - Note: You mustn't xsl:include or xsl:import chunk.xsl directly! - Including it can (and will) break building of documentation if chunk.xsl - is installed at a nonstandard location. - -4) If you wish to change the output encoding of generated files, create - html-common.xsl as suggested in step 4) and add strings such as these - somewhere between the and tags - (please, pay attention to quotes): - - - - -5) In each translated file after the tag you must put a note +3) In each translated file after the tag you must put a note like , where 2 is the revision of corresponding English file (see comment at the top of file). From 24d9de2ce495266fa2c8c16c657d5567506cbd9c Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 02:25:40 +0000 Subject: [PATCH 50/84] cosmetics: Rename XSL_DEPS variable to SINGLE_XSL_DEPS for consistency. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30021 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index 7cd7436c4d..024ce11d87 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -6,7 +6,7 @@ HTML_CHUNK_XSL := ../html-chunk.xsl CHUNK_XSL_DEPS := $(HTML_CHUNK_XSL) ../html-common.xsl HTML_SINGLE_XSL := ../html-single.xsl -XSL_DEPS := $(HTML_SINGLE_XSL) ../html-common.xsl +SINGLE_XSL_DEPS := $(HTML_SINGLE_XSL) ../html-common.xsl # This is the main target... all: html-chunked html-single @@ -24,7 +24,7 @@ $(HTMLDIR)/default.css: $(HTMLDIR)/index.html: main.xml $(CHUNK_XSL_DEPS) $(SYMLINKS_DEPS) xmllint $(HTMLDIR)/default.css ../xsltproc.sh $(HTMLDIR)/ $(HTML_CHUNK_XSL) $< -$(HTMLDIR)/MPlayer.html: main.xml $(XSL_DEPS) $(SYMLINKS_DEPS) xmllint $(HTMLDIR)/default.css +$(HTMLDIR)/MPlayer.html: main.xml $(SINGLE_XSL_DEPS) $(SYMLINKS_DEPS) xmllint $(HTMLDIR)/default.css ../xsltproc.sh $@ $(HTML_SINGLE_XSL) $< ../html-chunk.xsl ../html-single.xsl main.xml: From 318f59cc4d037521d1002baeb71a06e89b77b485 Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 02:34:41 +0000 Subject: [PATCH 51/84] Remove outdated comment about build system behavior. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30022 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/README.maintainers | 2 -- 1 file changed, 2 deletions(-) diff --git a/DOCS/xml/README.maintainers b/DOCS/xml/README.maintainers index c39b5dc4ff..73114f2359 100644 --- a/DOCS/xml/README.maintainers +++ b/DOCS/xml/README.maintainers @@ -8,8 +8,6 @@ IMPORTANT: Do NOT place sensitive files under 'HTML'! It is for generated documentation only. The whole directory tree is wiped out by the Makefile when running 'make distclean' or 'make clean'. - Also, subdirectories are wiped out one by one before - creating the HTML files. Each subdirectory must have a Makefile. Its purpose is to include the toplevel Makefile.inc file (with the rules to build the docs) From bd1e209f88bcada8ec245488f964c18c31d37106 Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 02:39:22 +0000 Subject: [PATCH 52/84] Factorize all components generated by configure into a variable. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30023 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index e9b0b2288f..ed5646f5a3 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -6,6 +6,7 @@ include ../../config.mak HTML = ../HTML MAIN_XML_ALL = $(foreach lang,$(DOC_LANG_ALL),$(lang)/main.xml) +CONFIGURE_GENERATED = html-chunk.xsl html-single.xsl xsltproc.sh xmllint.sh all: html-chunked html-single @@ -53,9 +54,9 @@ clean: rm -rf $(HTML) releaseclean: + rm -f $(CONFIGURE_GENERATED) rm -f $(MAIN_XML_ALL) rm -f $$(find . -name *.xml -type l) - rm -f html-chunk.xsl html-single.xsl xsltproc.sh xmllint.sh distclean: clean releaseclean From 8bc89968cf5ac6a0be5078fdd981486abfdd2063 Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 02:40:55 +0000 Subject: [PATCH 53/84] Exploit one more opportunity to make use of the CONFIGURE_GENERATED variable. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30024 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index ed5646f5a3..517b150cf1 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -34,7 +34,7 @@ xmllint: xmllint.sh $(addprefix xmllint-,$(DOC_LANG_ALL)) $(foreach lang,$(DOC_LANG_ALL),$(HTML)/$(lang)): -mkdir -p $@ -html-chunk.xsl html-single.xsl xsltproc.sh xmllint.sh $(MAIN_XML_ALL): +$(CONFIGURE_GENERATED) $(MAIN_XML_ALL): sh configure define lang-def From 7cc9d58f73c0090a88c132728f72afb5584b56a2 Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 02:42:59 +0000 Subject: [PATCH 54/84] Fix dependencies of html-chunked and html-single targets. All the files generated by configure are required. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30025 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index 517b150cf1..79bd9f429f 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -25,7 +25,7 @@ help: @echo "distclean : Remove ALL generated files." @echo "Substitute LANG for one of $(DOC_LANG_ALL)" -html-chunked html-single: xsltproc.sh xmllint.sh +html-chunked html-single: $(CONFIGURE_GENERATED) html-chunked: $(addprefix html-chunked-,$(DOC_LANGS)) html-single: $(addprefix html-single-,$(DOC_LANGS)) @@ -38,10 +38,10 @@ $(CONFIGURE_GENERATED) $(MAIN_XML_ALL): sh configure define lang-def -html-chunked-$(1): $(HTML)/$(1) xsltproc.sh xmllint.sh +html-chunked-$(1): $(HTML)/$(1) $(CONFIGURE_GENERATED) $(MAKE) HTMLDIR=../$$< -C $(1) html-chunked -html-single-$(1): $(HTML)/$(1) xsltproc.sh xmllint.sh +html-single-$(1): $(HTML)/$(1) $(CONFIGURE_GENERATED) $(MAKE) HTMLDIR=../$$< -C $(1) html-single xmllint-$(1): xmllint.sh From 0ba35473ebe5f6a1b25c3e63c0c56eda989e23d7 Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 02:45:55 +0000 Subject: [PATCH 55/84] Drop pointless dependencies of the phony targets html-chunked and html-single. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30026 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index 79bd9f429f..62aa2e03ee 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -25,7 +25,6 @@ help: @echo "distclean : Remove ALL generated files." @echo "Substitute LANG for one of $(DOC_LANG_ALL)" -html-chunked html-single: $(CONFIGURE_GENERATED) html-chunked: $(addprefix html-chunked-,$(DOC_LANGS)) html-single: $(addprefix html-single-,$(DOC_LANGS)) From 6fe2e9b0acb580b2cda8d5d6b17a8abd00a363b6 Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 02:59:39 +0000 Subject: [PATCH 56/84] Remove pointless dependency on xmllint.sh from phony xmllint target. The individual language targets carry that dependency. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30027 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index 62aa2e03ee..d3fed701cc 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -28,7 +28,7 @@ help: html-chunked: $(addprefix html-chunked-,$(DOC_LANGS)) html-single: $(addprefix html-single-,$(DOC_LANGS)) -xmllint: xmllint.sh $(addprefix xmllint-,$(DOC_LANG_ALL)) +xmllint: $(addprefix xmllint-,$(DOC_LANG_ALL)) $(foreach lang,$(DOC_LANG_ALL),$(HTML)/$(lang)): -mkdir -p $@ From 9e41ccd3bc38b99efe3c105a9ca9f495937c4d4e Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 03:01:40 +0000 Subject: [PATCH 57/84] spelling cosmetics git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30028 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index d3fed701cc..04485c5bac 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -18,8 +18,8 @@ help: @echo "html-single-LANG : As above, but only one language." @echo "html-chunked : HTML documentation for configured languages (multiple files)" @echo "html-chunked-LANG : As above, but only one language." - @echo "xmllint : Check syntax of all xml files." - @echo "xmllint-LANG : Check syntax of LANG xml files." + @echo "xmllint : Check syntax of all XML files." + @echo "xmllint-LANG : Check syntax of LANG XML files." @echo "clean : Purge the 'HTML' directory." @echo "releaseclean : Remove generated files but keep the HTML." @echo "distclean : Remove ALL generated files." From 1586e9212d0795948eec2d463046623ba8a30d94 Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 03:07:35 +0000 Subject: [PATCH 58/84] Factorize dependencies of language-specific HTML generation targets. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30029 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index 04485c5bac..108cad664b 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -37,10 +37,12 @@ $(CONFIGURE_GENERATED) $(MAIN_XML_ALL): sh configure define lang-def -html-chunked-$(1): $(HTML)/$(1) $(CONFIGURE_GENERATED) +html-chunked-$(1) html-single-$(1): $(HTML)/$(1) $(CONFIGURE_GENERATED) + +html-chunked-$(1): $(MAKE) HTMLDIR=../$$< -C $(1) html-chunked -html-single-$(1): $(HTML)/$(1) $(CONFIGURE_GENERATED) +html-single-$(1): $(MAKE) HTMLDIR=../$$< -C $(1) html-single xmllint-$(1): xmllint.sh From 055694d3cdb5e529d6626deddc02709cfe411f71 Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 03:09:09 +0000 Subject: [PATCH 59/84] Improve declaration of phony targets. This prevents configure from being rerun all the time. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30030 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index 108cad664b..e850eeb9e9 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -61,4 +61,5 @@ releaseclean: distclean: clean releaseclean -.PHONY: all help html-chunked* html-single* xmllint xmllint-* *clean* +.PHONY: all help html-chunked html-single xmllint +.PHONY: html-chunked-* html-single-* xmllint-* *clean* From 35a7136f5c9f5acef3581f1ff1cc9fa17267aeed Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 03:14:21 +0000 Subject: [PATCH 60/84] The general xmllint target should only check configured languages. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30031 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index e850eeb9e9..bedf6e1eab 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -18,7 +18,7 @@ help: @echo "html-single-LANG : As above, but only one language." @echo "html-chunked : HTML documentation for configured languages (multiple files)" @echo "html-chunked-LANG : As above, but only one language." - @echo "xmllint : Check syntax of all XML files." + @echo "xmllint : Check syntax of XML files for configured languages." @echo "xmllint-LANG : Check syntax of LANG XML files." @echo "clean : Purge the 'HTML' directory." @echo "releaseclean : Remove generated files but keep the HTML." @@ -28,7 +28,7 @@ help: html-chunked: $(addprefix html-chunked-,$(DOC_LANGS)) html-single: $(addprefix html-single-,$(DOC_LANGS)) -xmllint: $(addprefix xmllint-,$(DOC_LANG_ALL)) +xmllint: $(addprefix xmllint-,$(DOC_LANGS)) $(foreach lang,$(DOC_LANG_ALL),$(HTML)/$(lang)): -mkdir -p $@ From ac50f582483fa367eecf81285ae722018287f19d Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 03:17:23 +0000 Subject: [PATCH 61/84] Do not ignore errors from mkdir invocations. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30032 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index bedf6e1eab..d39a56d5f1 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -31,7 +31,7 @@ html-single: $(addprefix html-single-,$(DOC_LANGS)) xmllint: $(addprefix xmllint-,$(DOC_LANGS)) $(foreach lang,$(DOC_LANG_ALL),$(HTML)/$(lang)): - -mkdir -p $@ + mkdir -p $@ $(CONFIGURE_GENERATED) $(MAIN_XML_ALL): sh configure From f39814302d390978c310a52d2543a91de83f20aa Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 03:19:01 +0000 Subject: [PATCH 62/84] Ignore errors from failing rm commands in clean targets. This is also the policy we have in the top-level Makefile. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30033 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index d39a56d5f1..ec92ca545d 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -52,12 +52,12 @@ endef $(foreach lang, $(DOC_LANG_ALL),$(eval $(call lang-def,$(lang)))) clean: - rm -rf $(HTML) + -rm -rf $(HTML) releaseclean: - rm -f $(CONFIGURE_GENERATED) - rm -f $(MAIN_XML_ALL) - rm -f $$(find . -name *.xml -type l) + -rm -f $(CONFIGURE_GENERATED) + -rm -f $(MAIN_XML_ALL) + -rm -f $$(find . -name *.xml -type l) distclean: clean releaseclean From 05f35acd589b11ce3165d697dfcfe43d01d23b36 Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 03:32:12 +0000 Subject: [PATCH 63/84] Simplify shell command to symlink missing translated source files. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30034 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index 024ce11d87..b000f3c01a 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -32,9 +32,7 @@ $(HTMLDIR)/MPlayer.html: main.xml $(SINGLE_XSL_DEPS) $(SYMLINKS_DEPS) xmllint $( $(filter-out main.xml, $(patsubst ../en/%,%, $(wildcard ../en/*.xml))): for file in ../en/*.xml ; do \ - if ! test -r `basename $$file` ; then \ - ln -s $$file `basename $$file` ; \ - fi; \ + test -r `basename $$file` || ln -s $$file `basename $$file` ; \ done .PHONY: all html-chunked html-single xmllint From 3ea762f28f378900d17cdf2afb0ee52bdaa164cf Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 03:35:26 +0000 Subject: [PATCH 64/84] Reuse SYMLINKS_DEPS variable in the symlink targets. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30035 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index b000f3c01a..34baa5a6e6 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -30,7 +30,7 @@ $(HTMLDIR)/MPlayer.html: main.xml $(SINGLE_XSL_DEPS) $(SYMLINKS_DEPS) xmllint $( ../html-chunk.xsl ../html-single.xsl main.xml: cd .. && sh configure -$(filter-out main.xml, $(patsubst ../en/%,%, $(wildcard ../en/*.xml))): +$(filter-out main.xml, $(SYMLINKS_DEPS)): for file in ../en/*.xml ; do \ test -r `basename $$file` || ln -s $$file `basename $$file` ; \ done From 49b5defb6effe0ee6c9d331c1b5c3a6d09ffc3d4 Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 03:43:54 +0000 Subject: [PATCH 65/84] Globally remove main.xml from SYMLINKS_DEPS. It should never be symlinked. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30036 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index 34baa5a6e6..5422b2eec1 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -13,7 +13,7 @@ all: html-chunked html-single html-chunked: $(HTMLDIR)/index.html html-single: $(HTMLDIR)/MPlayer.html -SYMLINKS_DEPS:=$(patsubst ../en/%,%,$(wildcard ../en/*.xml)) +SYMLINKS_DEPS := $(filter-out main.xml,$(patsubst ../en/%,%,$(wildcard ../en/*.xml))) xmllint: main.xml $(SYMLINKS_DEPS) ../xmllint.sh $< @@ -30,7 +30,7 @@ $(HTMLDIR)/MPlayer.html: main.xml $(SINGLE_XSL_DEPS) $(SYMLINKS_DEPS) xmllint $( ../html-chunk.xsl ../html-single.xsl main.xml: cd .. && sh configure -$(filter-out main.xml, $(SYMLINKS_DEPS)): +$(SYMLINKS_DEPS): for file in ../en/*.xml ; do \ test -r `basename $$file` || ln -s $$file `basename $$file` ; \ done From 0f4aed64d1ffab14b5f0532458c83e58a551369f Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 03:50:34 +0000 Subject: [PATCH 66/84] Avoid hackish shell loop to symlink missing XML source files. Instead, employ make syntax to generate the shell command arguments. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30037 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index 5422b2eec1..304b16acc9 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -31,8 +31,6 @@ $(HTMLDIR)/MPlayer.html: main.xml $(SINGLE_XSL_DEPS) $(SYMLINKS_DEPS) xmllint $( cd .. && sh configure $(SYMLINKS_DEPS): - for file in ../en/*.xml ; do \ - test -r `basename $$file` || ln -s $$file `basename $$file` ; \ - done + test -r $(@F) || ln -s ../en/$@ $@ .PHONY: all html-chunked html-single xmllint From 316cd982df6a9dea88727c91cb966273320483a9 Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 04:06:25 +0000 Subject: [PATCH 67/84] Use $(notdir ) to filter out path prefixes instead of reinventing it poorly. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30038 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index 304b16acc9..9bd91741db 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -13,7 +13,7 @@ all: html-chunked html-single html-chunked: $(HTMLDIR)/index.html html-single: $(HTMLDIR)/MPlayer.html -SYMLINKS_DEPS := $(filter-out main.xml,$(patsubst ../en/%,%,$(wildcard ../en/*.xml))) +SYMLINKS_DEPS := $(filter-out main.xml,$(notdir $(wildcard ../en/*.xml))) xmllint: main.xml $(SYMLINKS_DEPS) ../xmllint.sh $< From 1745f18511c9022f1fe9b9cc930d651e3eae09df Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 11:54:49 +0000 Subject: [PATCH 68/84] Add missing #includes to fix a bunch of 'implicit declaration of..' warnings. patch by Peter Hjalmarsson, xake rymdraket net git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30039 b3059339-0415-0410-9bf9-f77b7e298cf2 --- tremor/misc.h | 2 ++ tremor/tremor.diff | 13 +++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/tremor/misc.h b/tremor/misc.h index 8a235d657b..541019a5bd 100644 --- a/tremor/misc.h +++ b/tremor/misc.h @@ -18,6 +18,7 @@ #ifndef _V_RANDOM_H_ #define _V_RANDOM_H_ #include "ivorbiscodec.h" +#include "codec_internal.h" #include "os_types.h" #include "asm_arm.h" @@ -29,6 +30,7 @@ /* 64 bit multiply */ #include +#include #include "config.h" #if !HAVE_BIGENDIAN diff --git a/tremor/tremor.diff b/tremor/tremor.diff index 61e31c751a..c877b953d7 100644 --- a/tremor/tremor.diff +++ b/tremor/tremor.diff @@ -1,9 +1,18 @@ --- misc.h 2005-01-04 16:29:01.000000000 +0100 +++ misc.h 2004-12-30 13:09:20.000000000 +0100 -@@ -29,8 +29,9 @@ +@@ -18,6 +18,7 @@ + #ifndef _V_RANDOM_H_ + #define _V_RANDOM_H_ + #include "ivorbiscodec.h" ++#include "codec_internal.h" + #include "os_types.h" + + #include "asm_arm.h" +@@ -29,8 +30,10 @@ /* 64 bit multiply */ #include ++#include +#include "config.h" -#if BYTE_ORDER==LITTLE_ENDIAN @@ -11,7 +20,7 @@ union magic { struct { ogg_int32_t lo; -@@ -38,9 +39,7 @@ +@@ -38,9 +41,7 @@ } halves; ogg_int64_t whole; }; From 69171f86e27b2e4c4498600a1f0887d165c20b1b Mon Sep 17 00:00:00 2001 From: diego Date: Mon, 14 Dec 2009 12:03:02 +0000 Subject: [PATCH 69/84] Filter list of missing source files so that it only contains nonexisting files. Thus those files can be symlinked directly without testing if they exist. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30040 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DOCS/xml/Makefile.inc b/DOCS/xml/Makefile.inc index 9bd91741db..33639bed7e 100644 --- a/DOCS/xml/Makefile.inc +++ b/DOCS/xml/Makefile.inc @@ -13,7 +13,7 @@ all: html-chunked html-single html-chunked: $(HTMLDIR)/index.html html-single: $(HTMLDIR)/MPlayer.html -SYMLINKS_DEPS := $(filter-out main.xml,$(notdir $(wildcard ../en/*.xml))) +SYMLINKS_DEPS := $(filter-out $(wildcard *.xml),$(notdir $(wildcard ../en/*.xml))) xmllint: main.xml $(SYMLINKS_DEPS) ../xmllint.sh $< @@ -31,6 +31,6 @@ $(HTMLDIR)/MPlayer.html: main.xml $(SINGLE_XSL_DEPS) $(SYMLINKS_DEPS) xmllint $( cd .. && sh configure $(SYMLINKS_DEPS): - test -r $(@F) || ln -s ../en/$@ $@ + ln -s ../en/$@ $@ .PHONY: all html-chunked html-single xmllint From 8448c911533acaf60aeb3d2780c32c015d13f0c4 Mon Sep 17 00:00:00 2001 From: compn Date: Tue, 15 Dec 2009 02:13:51 +0000 Subject: [PATCH 70/84] add spdif example from beandog git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30041 b3059339-0415-0410-9bf9-f77b7e298cf2 --- etc/example.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/etc/example.conf b/etc/example.conf index 97b4d91b7c..bdd3cb56bf 100644 --- a/etc/example.conf +++ b/etc/example.conf @@ -86,6 +86,9 @@ # Resample the sound to 44100Hz with the lavcresample audio filter. #af=lavcresample=44100 +# Output audio to S/PDIF +#ao=alsa:device=spdif +#ac=hwac3,hwdts,hwmpa, ################## # other settings # From 5f0b5dcaa96326512835afbae46c30aeaa164b13 Mon Sep 17 00:00:00 2001 From: adrian Date: Tue, 15 Dec 2009 20:25:50 +0000 Subject: [PATCH 71/84] Add -xineramascreen support to corevideo vo. Still prefer corevideo's own device_id parameter if it's set. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30042 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/man/en/mplayer.1 | 4 ++-- libvo/vo_corevideo.m | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/DOCS/man/en/mplayer.1 b/DOCS/man/en/mplayer.1 index a7d1d1de8b..f4e1863879 100644 --- a/DOCS/man/en/mplayer.1 +++ b/DOCS/man/en/mplayer.1 @@ -3142,7 +3142,7 @@ vdpau, x11, xv, xvmc). .br .I NOTE: This option is only supported by the x11, xmga, xv, xvmc, xvidix, -gl, gl2, directx, fbdev and tdfxfb video output drivers. +gl, gl2, directx, fbdev, tdfxfb and corevideo video output drivers. .sp 1 .I EXAMPLE: .PD 0 @@ -3330,7 +3330,7 @@ This option is not suitable to only set the startup screen (because it will always display on the given screen in fullscreen mode), \-geometry is the best that is available for that purpose currently. -Supported by at least the direct3d, gl, gl2, x11 and xv video output drivers. +Supported by at least the direct3d, gl, gl2, x11, xv and corevideo video output drivers. . .TP .B \-zrbw (\-vo zr only) diff --git a/libvo/vo_corevideo.m b/libvo/vo_corevideo.m index e4b5e85545..f2b29edfd2 100644 --- a/libvo/vo_corevideo.m +++ b/libvo/vo_corevideo.m @@ -115,6 +115,9 @@ static void draw_alpha(int x0, int y0, int w, int h, unsigned char *src, unsigne static void update_screen_info(void) { + if (screen_id == -1 && xinerama_screen > -1) + screen_id = xinerama_screen; + screen_array = [NSScreen screens]; if(screen_id < (int)[screen_array count]) { From 2a33cd01f6d969600a56e9ea28d1504be7e7eafd Mon Sep 17 00:00:00 2001 From: adrian Date: Tue, 15 Dec 2009 20:38:54 +0000 Subject: [PATCH 72/84] Add support for -geometry to corevideo. Based on a patch by Tim Wojtulewicz (timwoj at ieee dot org). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30043 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/man/en/mplayer.1 | 2 +- libvo/vo_corevideo.m | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/DOCS/man/en/mplayer.1 b/DOCS/man/en/mplayer.1 index f4e1863879..37165f480d 100644 --- a/DOCS/man/en/mplayer.1 +++ b/DOCS/man/en/mplayer.1 @@ -3138,7 +3138,7 @@ y coordinates are relative to the top-left corner of the window rather than the screen. The coordinates are relative to the screen given with \-xineramascreen for the video output drivers that fully support \-xineramascreen (direct3d, gl, gl2, -vdpau, x11, xv, xvmc). +vdpau, x11, xv, xvmc, corevideo). .br .I NOTE: This option is only supported by the x11, xmga, xv, xvmc, xvidix, diff --git a/libvo/vo_corevideo.m b/libvo/vo_corevideo.m index f2b29edfd2..5d25b088f4 100644 --- a/libvo/vo_corevideo.m +++ b/libvo/vo_corevideo.m @@ -497,16 +497,21 @@ static int control(uint32_t request, void *data, ...) - (void) config { - uint32_t d_width; - uint32_t d_height; - - NSRect frame; + NSRect visibleFrame; CVReturn error = kCVReturnSuccess; //config window - d_width = vo_dwidth; d_height = vo_dheight; - frame = NSMakeRect(0, 0, d_width, d_height); - [window setContentSize: frame.size]; + [window setContentSize:NSMakeSize(vo_dwidth, vo_dheight)]; + + // Use visibleFrame to position the window taking the menu bar and dock into account. + // Also flip vo_dy since the screen origin is in the bottom left on OSX. + if (screen_id < 0) + visibleFrame = [[[mpGLView window] screen] visibleFrame]; + else + visibleFrame = [[[NSScreen screens] objectAtIndex:screen_id] visibleFrame]; + [window setFrameTopLeftPoint:NSMakePoint( + visibleFrame.origin.x + vo_dx, + visibleFrame.origin.y + visibleFrame.size.height - vo_dy)]; [self releaseVideoSpecific]; error = CVPixelBufferCreateWithBytes(NULL, image_width, image_height, pixelFormat, image_datas[0], image_width*image_bytes, NULL, NULL, NULL, &frameBuffers[0]); @@ -523,7 +528,6 @@ static int control(uint32_t request, void *data, ...) mp_msg(MSGT_VO, MSGL_ERR,"[vo_corevideo] Failed to create OpenGL texture(%d)\n", error); //show window - [window center]; [window makeKeyAndOrderFront:mpGLView]; if(vo_rootwin) From 067b81750004a883209ae9936b1e9c4b31ab3b1a Mon Sep 17 00:00:00 2001 From: adrian Date: Wed, 16 Dec 2009 11:11:31 +0000 Subject: [PATCH 73/84] Fix a crash when fontconfig is unable to select a font. e.g. if no config directory could be found. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30044 b3059339-0415-0410-9bf9-f77b7e298cf2 --- help/help_mp-en.h | 1 + libvo/font_load_ft.c | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/help/help_mp-en.h b/help/help_mp-en.h index 52d0484c93..5d9413fa33 100644 --- a/help/help_mp-en.h +++ b/help/help_mp-en.h @@ -856,6 +856,7 @@ static const char help_text[]= #define MSGTR_LIBVO_FONT_LOAD_FT_CannotPrepareOSDFont "Cannot prepare OSD font.\n" #define MSGTR_LIBVO_FONT_LOAD_FT_CannotGenerateTables "Cannot generate tables.\n" #define MSGTR_LIBVO_FONT_LOAD_FT_DoneFreeTypeFailed "FT_Done_FreeType failed.\n" +#define MSGTR_LIBVO_FONT_LOAD_FT_FontconfigNoMatch "Fontconfig failed to select a font. Trying without fontconfig...\n" // sub.c #define MSGTR_VO_SUB_Seekbar "Seekbar" diff --git a/libvo/font_load_ft.c b/libvo/font_load_ft.c index fe3845f7a9..5a5a09d108 100644 --- a/libvo/font_load_ft.c +++ b/libvo/font_load_ft.c @@ -1144,6 +1144,7 @@ void load_font_ft(int width, int height, font_desc_t** fontp, const char *font_n FcChar8 *s; int face_index; FcBool scalable; + FcResult result; #endif font_desc_t *vo_font = *fontp; vo_image_width = width; @@ -1162,7 +1163,8 @@ void load_font_ft(int width, int height, font_desc_t** fontp, const char *font_n FcConfigSubstitute(0, fc_pattern, FcMatchPattern); FcDefaultSubstitute(fc_pattern); fc_pattern2 = fc_pattern; - fc_pattern = FcFontMatch(0, fc_pattern, 0); + fc_pattern = FcFontMatch(0, fc_pattern, &result); + if (result == FcResultMatch) { FcPatternDestroy(fc_pattern2); FcPatternGetBool(fc_pattern, FC_SCALABLE, 0, &scalable); if (scalable != FcTrue) { @@ -1179,8 +1181,11 @@ void load_font_ft(int width, int height, font_desc_t** fontp, const char *font_n FcPatternGetInteger(fc_pattern, FC_INDEX, 0, &face_index); *fontp=read_font_desc_ft(s, face_index, width, height, font_scale_factor); FcPatternDestroy(fc_pattern); + return; + } + // Failed to match any font, try without fontconfig + mp_msg(MSGT_OSD, MSGL_ERR, MSGTR_LIBVO_FONT_LOAD_FT_FontconfigNoMatch); } - else #endif *fontp=read_font_desc_ft(font_name, 0, width, height, font_scale_factor); } From d018006adc10bff9ec4fdc7a63a997aef628d251 Mon Sep 17 00:00:00 2001 From: diego Date: Wed, 16 Dec 2009 11:59:53 +0000 Subject: [PATCH 74/84] Simplify the evaluation of the lang-def template: Use the language variable directly in the template instead of passing the language variable as a parameter to $(call). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30045 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/DOCS/xml/Makefile b/DOCS/xml/Makefile index ec92ca545d..ed0ec64ed6 100644 --- a/DOCS/xml/Makefile +++ b/DOCS/xml/Makefile @@ -37,19 +37,19 @@ $(CONFIGURE_GENERATED) $(MAIN_XML_ALL): sh configure define lang-def -html-chunked-$(1) html-single-$(1): $(HTML)/$(1) $(CONFIGURE_GENERATED) +html-chunked-$(lang) html-single-$(lang): $(HTML)/$(lang) $(CONFIGURE_GENERATED) -html-chunked-$(1): - $(MAKE) HTMLDIR=../$$< -C $(1) html-chunked +html-chunked-$(lang): + $(MAKE) HTMLDIR=../$$< -C $(lang) html-chunked -html-single-$(1): - $(MAKE) HTMLDIR=../$$< -C $(1) html-single +html-single-$(lang): + $(MAKE) HTMLDIR=../$$< -C $(lang) html-single -xmllint-$(1): xmllint.sh - $(MAKE) -C $(1) xmllint +xmllint-$(lang): xmllint.sh + $(MAKE) -C $(lang) xmllint endef -$(foreach lang, $(DOC_LANG_ALL),$(eval $(call lang-def,$(lang)))) +$(foreach lang, $(DOC_LANG_ALL),$(eval $(lang-def))) clean: -rm -rf $(HTML) From 1078baf9aa35ea06428671f17bce93d438b0cb75 Mon Sep 17 00:00:00 2001 From: adrian Date: Wed, 16 Dec 2009 22:36:17 +0000 Subject: [PATCH 75/84] The fontconfig check added in r30044 wasn't safe. This makes it more robust. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30046 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/font_load_ft.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libvo/font_load_ft.c b/libvo/font_load_ft.c index 5a5a09d108..771177eb96 100644 --- a/libvo/font_load_ft.c +++ b/libvo/font_load_ft.c @@ -1164,7 +1164,7 @@ void load_font_ft(int width, int height, font_desc_t** fontp, const char *font_n FcDefaultSubstitute(fc_pattern); fc_pattern2 = fc_pattern; fc_pattern = FcFontMatch(0, fc_pattern, &result); - if (result == FcResultMatch) { + if (fc_pattern) { FcPatternDestroy(fc_pattern2); FcPatternGetBool(fc_pattern, FC_SCALABLE, 0, &scalable); if (scalable != FcTrue) { From c796878e402cf56cd500d0657ec359863fe16bf3 Mon Sep 17 00:00:00 2001 From: diego Date: Wed, 16 Dec 2009 23:44:26 +0000 Subject: [PATCH 76/84] Make vidix/pci_db2c.awk executable. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30047 b3059339-0415-0410-9bf9-f77b7e298cf2 --- vidix/pci_db2c.awk | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) mode change 100644 => 100755 vidix/pci_db2c.awk diff --git a/vidix/pci_db2c.awk b/vidix/pci_db2c.awk old mode 100644 new mode 100755 index 1f948a5d76..039bf0f55a --- a/vidix/pci_db2c.awk +++ b/vidix/pci_db2c.awk @@ -1,9 +1,8 @@ +#!/usr/bin/awk -f # This file converts given pci.db to "C" source and header files # For latest version of pci ids see: http://pciids.sf.net # Copyright 2002 Nick Kurshev # -# Usage: awk -f pci_db2c.awk pci.db -# # Tested with Gawk v 3.0.x and Mawk 1.3.3 # But it should work with standard Awk implementations (hopefully). # (Nobody tested it with Nawk, but it should work, too). @@ -28,7 +27,7 @@ BEGIN { if(ARGC != 3) { # check for arguments: - print "Usage awk -f pci_db2c.awk pci.db (and make sure pci.db file exists first)"; + print "Usage ./pci_db2c.awk pci.db (and make sure pci.db file exists first)"; exit(1); } in_file = ARGV[1]; From 9182f6a97cf894fa57a266fa15aa2d21cbfceb22 Mon Sep 17 00:00:00 2001 From: cehoyos Date: Thu, 17 Dec 2009 02:16:12 +0000 Subject: [PATCH 77/84] Improve VDPAU render performance by increasing number of output surfaces. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30048 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/vo_vdpau.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libvo/vo_vdpau.c b/libvo/vo_vdpau.c index 97242d9abf..b007786bd2 100644 --- a/libvo/vo_vdpau.c +++ b/libvo/vo_vdpau.c @@ -75,7 +75,7 @@ LIBVO_EXTERN(vdpau) message, vdp_get_error_string(vdp_st)); /* number of video and output surfaces */ -#define NUM_OUTPUT_SURFACES 2 +#define NUM_OUTPUT_SURFACES 3 #define MAX_VIDEO_SURFACES 50 /* number of palette entries */ From d8fed1f04c621a48f3294d3df5c6ed47867bd328 Mon Sep 17 00:00:00 2001 From: adrian Date: Thu, 17 Dec 2009 10:57:40 +0000 Subject: [PATCH 78/84] Cosmetics: reindent git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30049 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/font_load_ft.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/libvo/font_load_ft.c b/libvo/font_load_ft.c index 771177eb96..2b4caad215 100644 --- a/libvo/font_load_ft.c +++ b/libvo/font_load_ft.c @@ -1163,28 +1163,28 @@ void load_font_ft(int width, int height, font_desc_t** fontp, const char *font_n FcConfigSubstitute(0, fc_pattern, FcMatchPattern); FcDefaultSubstitute(fc_pattern); fc_pattern2 = fc_pattern; - fc_pattern = FcFontMatch(0, fc_pattern, &result); - if (fc_pattern) { - FcPatternDestroy(fc_pattern2); - FcPatternGetBool(fc_pattern, FC_SCALABLE, 0, &scalable); - if (scalable != FcTrue) { - FcPatternDestroy(fc_pattern); - fc_pattern = FcNameParse("sans-serif"); - FcConfigSubstitute(0, fc_pattern, FcMatchPattern); - FcDefaultSubstitute(fc_pattern); - fc_pattern2 = fc_pattern; - fc_pattern = FcFontMatch(0, fc_pattern, 0); - FcPatternDestroy(fc_pattern2); - } - // s doesn't need to be freed according to fontconfig docs - FcPatternGetString(fc_pattern, FC_FILE, 0, &s); - FcPatternGetInteger(fc_pattern, FC_INDEX, 0, &face_index); - *fontp=read_font_desc_ft(s, face_index, width, height, font_scale_factor); - FcPatternDestroy(fc_pattern); - return; - } - // Failed to match any font, try without fontconfig - mp_msg(MSGT_OSD, MSGL_ERR, MSGTR_LIBVO_FONT_LOAD_FT_FontconfigNoMatch); + fc_pattern = FcFontMatch(0, fc_pattern, &result); + if (fc_pattern) { + FcPatternDestroy(fc_pattern2); + FcPatternGetBool(fc_pattern, FC_SCALABLE, 0, &scalable); + if (scalable != FcTrue) { + FcPatternDestroy(fc_pattern); + fc_pattern = FcNameParse("sans-serif"); + FcConfigSubstitute(0, fc_pattern, FcMatchPattern); + FcDefaultSubstitute(fc_pattern); + fc_pattern2 = fc_pattern; + fc_pattern = FcFontMatch(0, fc_pattern, 0); + FcPatternDestroy(fc_pattern2); + } + // s doesn't need to be freed according to fontconfig docs + FcPatternGetString(fc_pattern, FC_FILE, 0, &s); + FcPatternGetInteger(fc_pattern, FC_INDEX, 0, &face_index); + *fontp=read_font_desc_ft(s, face_index, width, height, font_scale_factor); + FcPatternDestroy(fc_pattern); + return; + } + // Failed to match any font, try without fontconfig + mp_msg(MSGT_OSD, MSGL_ERR, MSGTR_LIBVO_FONT_LOAD_FT_FontconfigNoMatch); } #endif *fontp=read_font_desc_ft(font_name, 0, width, height, font_scale_factor); From 3303bb67eca5b7609a36082ce862b1beb4920d42 Mon Sep 17 00:00:00 2001 From: cehoyos Date: Thu, 17 Dec 2009 13:23:15 +0000 Subject: [PATCH 79/84] Slightly increase hardware decoding performance by always using more video surfaces than absolutely necessary. I will revert if somebody reports real-world resource issues introduced by this commit. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30050 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/vo_vdpau.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/libvo/vo_vdpau.c b/libvo/vo_vdpau.c index b007786bd2..c8d734a041 100644 --- a/libvo/vo_vdpau.c +++ b/libvo/vo_vdpau.c @@ -153,7 +153,6 @@ static VdpVideoMixer video_mixer; static int deint; static int deint_type; static int deint_counter; -static int deint_buffer_past_frames; static int pullup; static float denoise; static float sharpen; @@ -1024,13 +1023,11 @@ static uint32_t draw_image(mp_image_t *mpi) if (IMGFMT_IS_VDPAU(image_format)) { struct vdpau_render_state *rndr = mpi->priv; vid_surface_num = rndr - surface_render; - if (deint_buffer_past_frames) { mpi->usage_count++; if (deint_mpi[1]) deint_mpi[1]->usage_count--; deint_mpi[1] = deint_mpi[0]; deint_mpi[0] = mpi; - } } else if (image_format == IMGFMT_BGRA) { VdpStatus vdp_st; VdpRect r = {0, 0, vid_width, vid_height}; @@ -1232,7 +1229,6 @@ static int preinit(const char *arg) deint = 0; deint_type = 3; deint_counter = 0; - deint_buffer_past_frames = 0; deint_mpi[0] = deint_mpi[1] = NULL; chroma_deint = 1; pullup = 0; @@ -1247,8 +1243,6 @@ static int preinit(const char *arg) } if (deint) deint_type = deint; - if (deint > 1) - deint_buffer_past_frames = 1; if (colorspace < 0 || colorspace > 3) { mp_msg(MSGT_VO, MSGL_WARN, "[vdpau] Invalid color space specified, " "using BT.601\n"); @@ -1343,7 +1337,6 @@ static int control(uint32_t request, void *data, ...) features, feature_enables); CHECK_ST_WARNING("Error changing deinterlacing settings") - deint_buffer_past_frames = 1; } return VO_TRUE; case VOCTRL_PAUSE: From e3b42e3e96a5983538e970ef11ed9748e2cf2aa7 Mon Sep 17 00:00:00 2001 From: cehoyos Date: Thu, 17 Dec 2009 13:27:15 +0000 Subject: [PATCH 80/84] Cosmetics: Reindent after r30050. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30051 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/vo_vdpau.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libvo/vo_vdpau.c b/libvo/vo_vdpau.c index c8d734a041..35e80768aa 100644 --- a/libvo/vo_vdpau.c +++ b/libvo/vo_vdpau.c @@ -1023,11 +1023,11 @@ static uint32_t draw_image(mp_image_t *mpi) if (IMGFMT_IS_VDPAU(image_format)) { struct vdpau_render_state *rndr = mpi->priv; vid_surface_num = rndr - surface_render; - mpi->usage_count++; - if (deint_mpi[1]) - deint_mpi[1]->usage_count--; - deint_mpi[1] = deint_mpi[0]; - deint_mpi[0] = mpi; + mpi->usage_count++; + if (deint_mpi[1]) + deint_mpi[1]->usage_count--; + deint_mpi[1] = deint_mpi[0]; + deint_mpi[0] = mpi; } else if (image_format == IMGFMT_BGRA) { VdpStatus vdp_st; VdpRect r = {0, 0, vid_width, vid_height}; From baaee832fdf16db01d49cc87ee028467f48fca7f Mon Sep 17 00:00:00 2001 From: reimar Date: Thu, 17 Dec 2009 18:31:59 +0000 Subject: [PATCH 81/84] Do not modify priv->idx_pos when regenerating the index, use a local variable instead. should fix seeking after starting playback with -force-idx broken by r29914. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30052 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/aviheader.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libmpdemux/aviheader.c b/libmpdemux/aviheader.c index dae0313108..2717478221 100644 --- a/libmpdemux/aviheader.c +++ b/libmpdemux/aviheader.c @@ -632,11 +632,11 @@ if (index_file_load) { } gen_index: if(index_mode>=2 || (priv->idx_size==0 && index_mode==1)){ + int idx_pos = 0; // build index for file: stream_reset(demuxer->stream); stream_seek(demuxer->stream,demuxer->movi_start); - priv->idx_pos=0; priv->idx_size=0; priv->idx=NULL; @@ -657,13 +657,13 @@ if(index_mode>=2 || (priv->idx_size==0 && index_mode==1)){ if(stream_eof(demuxer->stream)) break; if(!id || avi_stream_id(id)==100) goto skip_chunk; // bad ID (or padding?) - if(priv->idx_pos>=priv->idx_size){ + if(idx_pos>=priv->idx_size){ // priv->idx_size+=32; priv->idx_size+=1024; // +16kB priv->idx=realloc(priv->idx,priv->idx_size*sizeof(AVIINDEXENTRY)); - if(!priv->idx){priv->idx_pos=0; break;} // error! + if(!priv->idx){idx_pos=0; break;} // error! } - idx=&((AVIINDEXENTRY *)priv->idx)[priv->idx_pos++]; + idx=&((AVIINDEXENTRY *)priv->idx)[idx_pos++]; idx->ckid=id; idx->dwFlags=AVIIF_KEYFRAME; // FIXME idx->dwFlags|=(demuxer->filepos>>16)&0xffff0000U; @@ -713,7 +713,7 @@ skip_chunk: skip=(len+1)&(~1UL); // total bytes in this chunk stream_seek(demuxer->stream,8+demuxer->filepos+skip); } - priv->idx_size=priv->idx_pos; + priv->idx_size=idx_pos; mp_msg(MSGT_HEADER,MSGL_INFO,MSGTR_MPDEMUX_AVIHDR_IdxGeneratedForHowManyChunks,priv->idx_size); if( mp_msg_test(MSGT_HEADER,MSGL_DBG2) ) print_index(priv->idx,priv->idx_size,MSGL_DBG2); From 54fc3a69e7e11d2dd27e1d9277fd182ad8ebe3fd Mon Sep 17 00:00:00 2001 From: cehoyos Date: Thu, 17 Dec 2009 20:15:34 +0000 Subject: [PATCH 82/84] Support R210 uncompressed 10 bit RGB codec. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30053 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 2bd04ec012..9c7751b909 100644 --- a/etc/codecs.conf +++ b/etc/codecs.conf @@ -76,6 +76,14 @@ videocodec yuv8 out YV12,I420,UYVY out BGR24,BGR15,BGR32 +videocodec ffr210 + info "FFmpeg R210 - 10-bit RGB" + status working + fourcc r210 + driver ffmpeg + dll "r210" + out RGB48BE,RGB48LE + videocodec blackmagic info "Blackmagic 10-bit" status working From c911be40734a8c6bd9609f40f915e4dc764ff0b3 Mon Sep 17 00:00:00 2001 From: jrash Date: Fri, 18 Dec 2009 11:15:09 +0000 Subject: [PATCH 83/84] sync with en/mplayer.1 r30053 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30054 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/man/zh_CN/mplayer.1 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/DOCS/man/zh_CN/mplayer.1 b/DOCS/man/zh_CN/mplayer.1 index 699e982da7..e026e4a002 100644 --- a/DOCS/man/zh_CN/mplayer.1 +++ b/DOCS/man/zh_CN/mplayer.1 @@ -1,4 +1,4 @@ -.\" sync with en/mplayer.1 r29905 +.\" sync with en/mplayer.1 r30053 .\" Encoding: UTF-8 .\" Reminder of hard terms which need better/final solution later: .\" /capture; playtree in parent list; colorkey; retrace; desync; downmix; @@ -2935,14 +2935,14 @@ x 和 y 代表从屏幕左上角到显示图像左上角的距离(以像素为 如果使用 \-wid 选项指定了外部窗口, 那么 x 和 y 坐标是相对于窗口而不是屏幕的左上角。 坐标是相对于 \-xineramascreen 选项给出的屏幕,该屏幕用于完全支持 \-xineramascreen 的 -视频输出的驱动(direct3d、gl、gl2、vdpau、x11、xv、xvmc)。 +视频输出的驱动(direct3d、gl、gl2、vdpau、x11、xv、xvmc、corevideo)。 The coordinates are relative to the screen given with \-xineramascreen for the video output drivers that fully support \-xineramascreen (direct3d, gl, gl2, vdpau, x11, xv, xvmc). .br .I 注意: -此选项仅被 x11、xmga、xv、xvmc、xvidix、 -gl、gl2、directx、fbdev 和 tdfxfb 视频输出驱动支持。 +此选项仅被 x11、xmga、xv、xvmc、xvidix、gl、gl2、directx、fbdev、tdfxfb 和 +corevideo 视频输出驱动支持。 .sp 1 .I 示例: .PD 0 @@ -3116,7 +3116,7 @@ ggi 和 gl2 的都支持此功能。 通常只能与 "\-fstype \-fullscreen" 或 "\-fstype none" 一起工作。 该选项不适用于仅仅设置启动屏幕(并且也不适合设置全屏屏幕),\-geometry 是目前可用 于此目的的最好选项。 -至少 direct3d、gl、gl2、x11 和 xv 视频输出驱动支持该选项。 +至少 direct3d、gl、gl2、x11、xv 和 corevideo 视频输出驱动支持该选项。 .TP .B \-zrbw (仅用于 \-vo zr) 黑白显示。 From 8fcbe5835d038649e70da410d46c4f5cd502c261 Mon Sep 17 00:00:00 2001 From: jrash Date: Fri, 18 Dec 2009 11:31:58 +0000 Subject: [PATCH 84/84] Synced with help_mp-en.h r30044 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30055 b3059339-0415-0410-9bf9-f77b7e298cf2 --- help/help_mp-zh_CN.h | 92 ++++++++++++++++++++++---------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/help/help_mp-zh_CN.h b/help/help_mp-zh_CN.h index 69e2bb7000..9e0f2809b7 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 r29912 (MSGTR_MPDEMUX_ASFHDR_HeaderSizeOver1MB) +// Synced with help_mp-en.h r30044 (MSGTR_VO_YUV4MPEG_InterlacedHeightDivisibleBy4) // Reminder of hard terms which need better/final solution later: // (file links to be updated later if available!); // NAV; section/subsection; XScreenSaver; keycolor; @@ -842,7 +842,7 @@ static const char help_text[]= #define MSGTR_LIBVO_FONT_LOAD_FT_DoneFreeTypeFailed "调用 FT_Done_FreeType 失败。\n" // sub.c -#define MSGTR_VO_SUB_Seekbar "搜索条" +#define MSGTR_VO_SUB_Seekbar "定位条" #define MSGTR_VO_SUB_Play "播放" #define MSGTR_VO_SUB_Pause "暂停" #define MSGTR_VO_SUB_Stop "停止" @@ -989,14 +989,14 @@ static const char help_text[]= // vo_tdfx_vid.c #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_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] 纹理位块传输准备完毕:%d(%d) x %d @ %d => %d(%d) x %d @ %d。\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" @@ -1004,9 +1004,9 @@ static const char help_text[]= #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] 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_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 @@ -1016,10 +1016,10 @@ static const char help_text[]= #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_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_NotEnoughVideoMemoryToPlay "[VO_TDFXFB] 没有足够的显存播放此影片,请尝试使用较低的分辨率。\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" @@ -1027,11 +1027,11 @@ static const char help_text[]= // vo_vesa.c #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_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_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" @@ -1043,7 +1043,7 @@ static const char help_text[]= #define MSGTR_LIBVO_VESA_OemVendor "[VO_VESA] OEM 销售商:%s。\n" #define MSGTR_LIBVO_VESA_OemProductName "[VO_VESA] OEM 产品名:%s。\n" #define MSGTR_LIBVO_VESA_OemProductRev "[VO_VESA] OEM 产品版本:%s。\n" -#define MSGTR_LIBVO_VESA_Hint "[VO_VESA] 提示:为使用电视输出你应当在启动前插入 TV 接口。\n"\ +#define MSGTR_LIBVO_VESA_Hint "[VO_VESA] 提示:为使用电视输出你应当在启动前插入电视接头。\n"\ "[VO_VESA] 因为 VESA BIOS 只在自检的时候执行初始化。\n" #define MSGTR_LIBVO_VESA_UsingVesaMode "[VO_VESA] 使用 VESA 模式 (%u) = %x [%ux%u@%u]\n" #define MSGTR_LIBVO_VESA_CantInitializeSwscaler "[VO_VESA] 无法初始化软件缩放功能。\n" @@ -1055,7 +1055,7 @@ static const char help_text[]= #define MSGTR_LIBVO_VESA_CantFindValidWindowAddress "[VO_VESA] 无法找到有效的视频窗口地址。\n" #define MSGTR_LIBVO_VESA_UsingBankSwitchingMode "[VO_VESA] 使用组交换模式(物理资源:%08lXh, %08lXh)。\n" #define MSGTR_LIBVO_VESA_CantAllocateTemporaryBuffer "[VO_VESA] 无法分配临时缓冲。\n" -#define MSGTR_LIBVO_VESA_SorryUnsupportedMode "[VO_VESA] 抱歉,不支持该模式——试试 -x 640 -zoom。\n" +#define MSGTR_LIBVO_VESA_SorryUnsupportedMode "[VO_VESA] 抱歉,不支持该模式——请尝试 -x 640 -zoom。\n" #define MSGTR_LIBVO_VESA_OhYouReallyHavePictureOnTv "[VO_VESA] 噢,你的电视上有图像了!\n" #define MSGTR_LIBVO_VESA_CantInitialozeLinuxVideoOverlay "[VO_VESA] 无法初始化 Linux 视频覆盖模式。\n" #define MSGTR_LIBVO_VESA_UsingVideoOverlay "[VO_VESA] 使用视频覆盖模式:%s。\n" @@ -1068,15 +1068,15 @@ static const char help_text[]= #define MSGTR_LIBVO_VESA_ThisBranchIsNoLongerSupported "[VESA_LVO] 这个分支版本已经不再维护。\n[VESA_LVO] 请使用 -vo vesa:vidix。\n" #define MSGTR_LIBVO_VESA_CouldntOpen "[VESA_LVO] 无法打开:‘%s’\n" #define MSGTR_LIBVO_VESA_InvalidOutputFormat "[VESA_LVI] 无效的输出格式:%s(%0X)\n" -#define MSGTR_LIBVO_VESA_IncompatibleDriverVersion "[VESA_LVO] 你的 fb_vid 驱动版本与该版本 MPlayer 不兼容!\n" +#define MSGTR_LIBVO_VESA_IncompatibleDriverVersion "[VESA_LVO] fb_vid 驱动版本与该版本 MPlayer 不兼容!\n" // vo_x11.c #define MSGTR_LIBVO_X11_DrawFrameCalled "[VO_X11] 已调用 draw_frame()!!!\n" // vo_xv.c #define MSGTR_LIBVO_XV_DrawFrameCalled "[VO_XV] 已调用 draw_frame()!!!\n" -#define MSGTR_LIBVO_XV_SharedMemoryNotSupported "[VO_XV] 共享内存模式不支持\n回复到正常 Xv 模式。\n" -#define MSGTR_LIBVO_XV_XvNotSupportedByX11 "[VO_XV] 对不起,该 X11 版本/驱动不支持 Xv\n[VO_XV] ******** 试试使用 -vo x11 或 -vo sdl *********\n" +#define MSGTR_LIBVO_XV_SharedMemoryNotSupported "[VO_XV] 不支持共享内存模式\n回复到正常 Xv 模式。\n" +#define MSGTR_LIBVO_XV_XvNotSupportedByX11 "[VO_XV] 对不起,该 X11 版本/驱动不支持 Xv\n[VO_XV] ******** 请尝试使用 -vo x11 或 -vo sdl *********\n" #define MSGTR_LIBVO_XV_XvQueryAdaptorsFailed "[VO_XV] XvQueryAdaptors 失败。\n" #define MSGTR_LIBVO_XV_InvalidPortParameter "[VO_XV] 无效的端口参数,改用端口 0。\n" #define MSGTR_LIBVO_XV_CouldNotGrabPort "[VO_XV] 无法绑定端口 %i。\n" @@ -1440,40 +1440,40 @@ static const char help_text[]= // asfheader.c -#define MSGTR_MPDEMUX_ASFHDR_HeaderSizeOver1MB "致命: 头部的大小超过 1 MB (%d)!\n请联系 MPlayer 的作者, 并且发送或上传此文件。\n" -#define MSGTR_MPDEMUX_ASFHDR_HeaderMallocFailed "不能为头部分配 %d 字节的空间。\n" -#define MSGTR_MPDEMUX_ASFHDR_EOFWhileReadingHeader "读 ASF 头部时遇到 EOF, 文件损坏或不完整?\n" -#define MSGTR_MPDEMUX_ASFHDR_DVRWantsLibavformat "DVR 可能只能和 libavformat 一起工作, 如果有问题请试试 -demuxer 35\n" -#define MSGTR_MPDEMUX_ASFHDR_NoDataChunkAfterHeader "没有数据块紧随头部之后!\n" -#define MSGTR_MPDEMUX_ASFHDR_AudioVideoHeaderNotFound "ASF: 找不到音频或视频头部 - 文件损坏?\n" -#define MSGTR_MPDEMUX_ASFHDR_InvalidLengthInASFHeader "无效的 ASF 头部长度!\n" -#define MSGTR_MPDEMUX_ASFHDR_DRMLicenseURL "DRM许可证URL地址:%s\n" -#define MSGTR_MPDEMUX_ASFHDR_DRMProtected "该文件经过了DRM加密,不能在Mplayer中播放!\n" +#define MSGTR_MPDEMUX_ASFHDR_HeaderSizeOver1MB "致命错误:文件头部大小超过 1 MB(%d)!\n请联系 MPlayer 的作者, 并且发送或上传此文件。\n" +#define MSGTR_MPDEMUX_ASFHDR_HeaderMallocFailed "无法为文件头部分配 %d 字节的存放空间。\n" +#define MSGTR_MPDEMUX_ASFHDR_EOFWhileReadingHeader "读 ASF 头部时遇到文件结尾,文件损坏或不完整?\n" +#define MSGTR_MPDEMUX_ASFHDR_DVRWantsLibavformat "DVR 可能只能与 libavformat 一同使用,如果有问题请尝试 -demuxer 35。\n" +#define MSGTR_MPDEMUX_ASFHDR_NoDataChunkAfterHeader "文件头部之后没有数据块!\n" +#define MSGTR_MPDEMUX_ASFHDR_AudioVideoHeaderNotFound "ASF:未找到音频或视频头部 - 文件损坏?\n" +#define MSGTR_MPDEMUX_ASFHDR_InvalidLengthInASFHeader "ASF 头部长度无效!\n" +#define MSGTR_MPDEMUX_ASFHDR_DRMLicenseURL "DRM 许可证 URL 地址:%s\n" +#define MSGTR_MPDEMUX_ASFHDR_DRMProtected "该文件经过了 DRM 加密保护,无法在 Mplayer 中播放!\n" // aviheader.c -#define MSGTR_MPDEMUX_AVIHDR_EmptyList "**空列表?!\n" -#define MSGTR_MPDEMUX_AVIHDR_FoundMovieAt "在 0x%X - 0x%X 找到电影\n" -#define MSGTR_MPDEMUX_AVIHDR_FoundBitmapInfoHeader "找到 'bih', %u 字节的 %d\n" +#define MSGTR_MPDEMUX_AVIHDR_EmptyList "**空列表?!\n" +#define MSGTR_MPDEMUX_AVIHDR_FoundMovieAt "于 0x%X - 0x%X 位置找到影片数据\n" +#define MSGTR_MPDEMUX_AVIHDR_FoundBitmapInfoHeader "找到‘bih’,%u 字节,%d\n" #define MSGTR_MPDEMUX_AVIHDR_RegeneratingKeyfTableForMPG4V1 "为 M$ mpg4v1 视频重新生成关键帧表。\n" #define MSGTR_MPDEMUX_AVIHDR_RegeneratingKeyfTableForDIVX3 "为 DIVX3 视频重新生成关键帧表。\n" #define MSGTR_MPDEMUX_AVIHDR_RegeneratingKeyfTableForMPEG4 "为 MPEG4 视频重新生成关键帧表。\n" -#define MSGTR_MPDEMUX_AVIHDR_FoundWaveFmt "找到 'wf', %d 字节的 %d\n" -#define MSGTR_MPDEMUX_AVIHDR_FoundAVIV2Header "AVI: 发现 dmlh (size=%d) (total_frames=%d)\n" -#define MSGTR_MPDEMUX_AVIHDR_ReadingIndexBlockChunksForFrames "正在读 INDEX 块, %d 区块的 %d 帧 (fpos=%"PRId64")。\n" -#define MSGTR_MPDEMUX_AVIHDR_AdditionalRIFFHdr "附加的 RIFF 头...\n" -#define MSGTR_MPDEMUX_AVIHDR_WarnNotExtendedAVIHdr "** 警告: 这不是扩展的 AVI 头部..\n" -#define MSGTR_MPDEMUX_AVIHDR_BrokenChunk "区块损坏? chunksize=%d (id=%.4s)\n" -#define MSGTR_MPDEMUX_AVIHDR_BuildingODMLidx "AVI: ODML: 建造 ODML 索引 (%d superindexchunks)。\n" -#define MSGTR_MPDEMUX_AVIHDR_BrokenODMLfile "AVI: ODML: 检测到损坏的(不完整的?)文件。将使用传统的索引。\n" -#define MSGTR_MPDEMUX_AVIHDR_CantReadIdxFile "不能读索引文件 %s: %s\n" +#define MSGTR_MPDEMUX_AVIHDR_FoundWaveFmt "找到‘wf’,%d 字节,%d\n" +#define MSGTR_MPDEMUX_AVIHDR_FoundAVIV2Header "AVI:发现 dmlh (size=%d) (total_frames=%d)\n" +#define MSGTR_MPDEMUX_AVIHDR_ReadingIndexBlockChunksForFrames "正在读取索引数据块,%d 块数据用于 %d 帧 (fpos=%"PRId64")。\n" +#define MSGTR_MPDEMUX_AVIHDR_AdditionalRIFFHdr "额外的 RIFF 头部数据...\n" +#define MSGTR_MPDEMUX_AVIHDR_WarnNotExtendedAVIHdr "** 警告:这不是扩展格式的 AVI 头部..\n" +#define MSGTR_MPDEMUX_AVIHDR_BrokenChunk "数据块损坏? chunksize=%d (id=%.4s)\n" +#define MSGTR_MPDEMUX_AVIHDR_BuildingODMLidx "AVI:ODML:构造 ODML 索引 (%d superindexchunks)。\n" +#define MSGTR_MPDEMUX_AVIHDR_BrokenODMLfile "AVI:ODML:检测到损坏的(不完整的?)文件。将使用传统的索引模式。\n" +#define MSGTR_MPDEMUX_AVIHDR_CantReadIdxFile "无法读索引文件 %s:%s\n" #define MSGTR_MPDEMUX_AVIHDR_NotValidMPidxFile "%s 不是有效的 MPlayer 索引文件。\n" #define MSGTR_MPDEMUX_AVIHDR_FailedMallocForIdxFile "无法为来自 %s 的索引数据分配内存。\n" #define MSGTR_MPDEMUX_AVIHDR_PrematureEOF "过早结束的索引文件 %s\n" -#define MSGTR_MPDEMUX_AVIHDR_IdxFileLoaded "装载索引文件: %s\n" -#define MSGTR_MPDEMUX_AVIHDR_GeneratingIdx "正在生成索引: %3lu %s \r" -#define MSGTR_MPDEMUX_AVIHDR_IdxGeneratedForHowManyChunks "AVI: 为 %d 区块生成索引表!\n" -#define MSGTR_MPDEMUX_AVIHDR_Failed2WriteIdxFile "无法写索引文件 %s: %s\n" -#define MSGTR_MPDEMUX_AVIHDR_IdxFileSaved "已保存索引文件: %s\n" +#define MSGTR_MPDEMUX_AVIHDR_IdxFileLoaded "已加载索引文件:%s\n" +#define MSGTR_MPDEMUX_AVIHDR_GeneratingIdx "正在生成索引:%3lu %s \r" +#define MSGTR_MPDEMUX_AVIHDR_IdxGeneratedForHowManyChunks "AVI:为 %d 块数据生成索引表!\n" +#define MSGTR_MPDEMUX_AVIHDR_Failed2WriteIdxFile "无法写入索引文件 %s:%s\n" +#define MSGTR_MPDEMUX_AVIHDR_IdxFileSaved "已保存索引文件:%s\n" // demux_audio.c #define MSGTR_MPDEMUX_AUDIO_UnknownFormat "音频分路器: 未知格式 %d。\n"