📄 mplayer-1.0pre7try2-xynth.diff
字号:
++ /* tricky hack for double buffering */+ window->surface->mode = SURFACE_VIRTUAL;+ + win = window->surface->buf;+ }++ return 0;+}++static uint32_t draw_slice(uint8_t *src[], int stride[], int w, int h, int x, int y)+{+ assert(0);+ UNUSED(src);+ UNUSED(stride);+ UNUSED(w);+ UNUSED(h);+ UNUSED(x);+ UNUSED(y);++ return VO_ERROR; //this is yv12 only -> vf_scale should do all transforms+}++static uint32_t draw_frame (uint8_t *src[])+{+ assert(0);+ UNUSED(src);+ return VO_ERROR;+}++static void draw_osd (void)+{+ vo_draw_text(image_width, image_height, draw_alpha);+}++static void flip_page (void)+{+ if (!running) {+ return;+ }+ + window->surface->mode = SURFACE_REAL;+ s_putbox(window->surface, 0, 0, window->surface->width, window->surface->height, window->surface->vbuf);+ window->surface->mode = SURFACE_VIRTUAL;+}++static void check_events (void)+{+}++static void uninit (void)+{+ if (running) {+ s_client_quit(window);+ s_thread_join(tid, NULL);+ }+ running = 0;+}++/*****************************************************************************/++static uint32_t query_format (uint32_t format)+{+ int32_t req_bpp;+ int32_t flags;++ // only RGB modes supported+ if((!IMGFMT_IS_RGB(format)) && (!IMGFMT_IS_BGR(format)))+ return 0;+ // Reject different endian+#ifdef WORDS_BIGENDIAN+ if (IMGFMT_IS_BGR(format))+ return 0;+#else+ if (IMGFMT_IS_RGB(format))+ return 0;+#endif+ if ((format == IMGFMT_BGR4) || (format == IMGFMT_RGB4))+ return 0;+ req_bpp = IMGFMT_RGB_DEPTH(format);+ if ((vo_dbpp > 0) && (vo_dbpp != req_bpp))+ return 0;++ if (req_bpp == window->surface->bitsperpixel) {+ flags = VFCAP_CSP_SUPPORTED |+ VFCAP_CSP_SUPPORTED_BY_HW |+ VFCAP_ACCEPT_STRIDE |+ 0;+ if (req_bpp > 8)+ flags |= VFCAP_OSD;+ return flags;+ }++ return 0;+}++static void draw_alpha (int x0, int y0, int w, int h, unsigned char *src, unsigned char *srca, int stride)+{+ int bpp = window->surface->bytesperpixel;+ char *base = window->surface->vbuf + ((y0 * image_width) + x0) * bpp;++ switch (window->surface->bitsperpixel) {+ case 32:+ vo_draw_alpha_rgb32(w, h, src, srca, stride, base, image_width * bpp);+ break;+ case 24:+ vo_draw_alpha_rgb24(w, h, src, srca, stride, base, image_width * bpp);+ break;+ case 16:+ vo_draw_alpha_rgb16(w, h, src, srca, stride, base, image_width * bpp);+ break;+ case 15:+ vo_draw_alpha_rgb15(w, h, src, srca, stride, base, image_width * bpp);+ break;+ }+}++static uint32_t draw_image (mp_image_t *mpi)+{+ int x;+ int y;+ int w;+ int h;+ uint8_t *rgbplane;++ if (!running) {+ return VO_TRUE;+ }+ + if (mpi->flags & MP_IMGFLAG_DIRECT) {+ assert((uint32_t) mpi->priv >= 0);+ return VO_TRUE; // it's already done+ }++ x = mpi->x;+ y = mpi->y;+ w = mpi->w;+ h = mpi->h;+ rgbplane = mpi->planes[0] + y * mpi->stride[0] + (x * mpi->bpp) / 8;++ s_putbox(window->surface, x, y, w, h, rgbplane);++ return VO_TRUE;+}++static void atexit_handler (s_window_t *w)+{+ if (running) {+ exit_player(NULL);+ }+}+static void keybd_handler_left (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key(KEY_LEFT); } /* seek +10 */+static void keybd_handler_right (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key(KEY_RIGHT); } /* seek -10 */+static void keybd_handler_down (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key(KEY_DOWN); } /* seek +60 */+static void keybd_handler_up (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key(KEY_UP); } /* seek -60 */+static void keybd_handler_pagedown (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key(KEY_PAGE_DOWN); } /* seek +600 */+static void keybd_handler_pageup (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key(KEY_PAGE_UP); }/* seek -600 */+static void keybd_handler_minus (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('-'); } /* audio delay +1.000 */+static void keybd_handler_add (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('+'); } /* audio delay -1.000 */+static void keybd_handler_q (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('q'); } /* quit */+static void keybd_handler_esc (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key(KEY_ESC); } /* quit */+static void keybd_handler_p (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('p'); } /* pause */+static void keybd_handler_space (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key(' '); } /* pause */+static void keybd_handler_o (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('o'); } /* osd */+static void keybd_handler_z (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('z'); } /* sub delay -0.1 */+static void keybd_handler_x (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('x'); } /* sub delay +0.1 */+static void keybd_handler_g (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('g'); } /* sub step -1 */+static void keybd_handler_y (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('y'); } /* sub step +1 */+static void keybd_handler_9 (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('9'); } /* volume -1 */+static void keybd_handler_divide (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('/'); } /* volume -1 */+static void keybd_handler_0 (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('0'); } /* volume +1 */+static void keybd_handler_multiply (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('*'); } /* volume +1 */+static void keybd_handler_m (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('m'); } /* mute */+static void keybd_handler_1 (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('1'); } /* contrast -1 */+static void keybd_handler_2 (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('2'); } /* contrast +1 */+static void keybd_handler_3 (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('3'); } /* brightness -1 */+static void keybd_handler_4 (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('4'); } /* brightness +1 */+static void keybd_handler_5 (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('5'); } /* hue -1 */+static void keybd_handler_6 (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('6'); } /* hue +1 */+static void keybd_handler_7 (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('7'); } /* saturation -1 */+static void keybd_handler_8 (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('8'); } /* saturation +1 */+static void keybd_handler_d (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('d'); } /* frame drop */+static void keybd_handler_r (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('r'); } /* sub pos -1 */+static void keybd_handler_t (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('t'); } /* sub pos +1 */+static void keybd_handler_a (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('a'); } /* sub alignment */+static void keybd_handler_v (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('v'); } /* sub visibility */+static void keybd_handler_j (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('j'); } /* vobsub lang */+static void keybd_handler_s (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('s'); } /* screen shot */+static void keybd_handler_w (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('w'); } /* panscan -0.1 */+static void keybd_handler_e (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('e'); } /* panscan +0.1 */+static void keybd_handler_f (s_window_t *w, s_event_t *e, s_handler_t *h) { mplayer_put_key('f'); } /* vo fullscreen */++#define keybd_handler_set_(a, b)\+ {\+ s_handler_init(&handler);\+ handler->type = KEYBD_HANDLER;\+ handler->keybd.button = a;\+ handler->keybd.p = b;\+ s_handler_add(window, handler);\+ }++static void keybd_handler_set (void)+{+ s_handler_t *handler;+ + keybd_handler_set_(S_KEYCODE_RIGHT, keybd_handler_right);+ keybd_handler_set_(S_KEYCODE_LEFT, keybd_handler_left);+ keybd_handler_set_(S_KEYCODE_UP, keybd_handler_up);+ keybd_handler_set_(S_KEYCODE_DOWN, keybd_handler_down);+ keybd_handler_set_(S_KEYCODE_PAGEUP, keybd_handler_pageup);+ keybd_handler_set_(S_KEYCODE_PAGEDOWN, keybd_handler_pagedown);+ keybd_handler_set_(S_KEYCODE_KP_SUBTRACT, keybd_handler_minus);+ keybd_handler_set_(S_KEYCODE_KP_ADD, keybd_handler_add);+ keybd_handler_set_(S_KEYCODE_Q, keybd_handler_q);+ keybd_handler_set_(S_KEYCODE_ESCAPE, keybd_handler_esc);+ keybd_handler_set_(S_KEYCODE_P, keybd_handler_p);+ keybd_handler_set_(S_KEYCODE_SPACE, keybd_handler_space);+ keybd_handler_set_(S_KEYCODE_O, keybd_handler_o);+ keybd_handler_set_(S_KEYCODE_Z, keybd_handler_z);+ keybd_handler_set_(S_KEYCODE_X, keybd_handler_x);+ keybd_handler_set_(S_KEYCODE_G, keybd_handler_g);+ keybd_handler_set_(S_KEYCODE_Y, keybd_handler_y);+ keybd_handler_set_(S_KEYCODE_NINE, keybd_handler_9);+ keybd_handler_set_(S_KEYCODE_KP_DIVIDE, keybd_handler_divide);+ keybd_handler_set_(S_KEYCODE_ZERO, keybd_handler_0);+ keybd_handler_set_(S_KEYCODE_KP_MULTIPLY, keybd_handler_multiply);+ keybd_handler_set_(S_KEYCODE_M, keybd_handler_m);+ keybd_handler_set_(S_KEYCODE_ONE, keybd_handler_1);+ keybd_handler_set_(S_KEYCODE_TWO, keybd_handler_2);+ keybd_handler_set_(S_KEYCODE_THREE, keybd_handler_3);+ keybd_handler_set_(S_KEYCODE_FOUR, keybd_handler_4);+ keybd_handler_set_(S_KEYCODE_FIVE, keybd_handler_5);+ keybd_handler_set_(S_KEYCODE_SIX, keybd_handler_6);+ keybd_handler_set_(S_KEYCODE_SEVEN, keybd_handler_7);+ keybd_handler_set_(S_KEYCODE_EIGHT, keybd_handler_8);+ keybd_handler_set_(S_KEYCODE_D, keybd_handler_d);+ keybd_handler_set_(S_KEYCODE_R, keybd_handler_r);+ keybd_handler_set_(S_KEYCODE_T, keybd_handler_t);+ keybd_handler_set_(S_KEYCODE_A, keybd_handler_a);+ keybd_handler_set_(S_KEYCODE_V, keybd_handler_v);+ keybd_handler_set_(S_KEYCODE_J, keybd_handler_j);+ keybd_handler_set_(S_KEYCODE_F, keybd_handler_f);+ keybd_handler_set_(S_KEYCODE_S, keybd_handler_s);+ keybd_handler_set_(S_KEYCODE_W, keybd_handler_w);+ keybd_handler_set_(S_KEYCODE_E, keybd_handler_e);+}+static void handler_set (void)+{+ keybd_handler_set();+}+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -