diff options
author | wm4 <wm4@nowhere> | 2012-08-12 18:40:21 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2012-08-16 17:17:49 +0200 |
commit | 41fbcee1f557c3ddbfefc79b2b1b4719c6442265 (patch) | |
tree | 6c15b7631ad817a68207d2d04e4969ec0e128a8a /sub | |
parent | aebfbbf2bdda8e18beef90c16da97bd335f7d3b0 (diff) | |
download | mpv-41fbcee1f557c3ddbfefc79b2b1b4719c6442265.tar.bz2 mpv-41fbcee1f557c3ddbfefc79b2b1b4719c6442265.tar.xz |
Remove dvdnav support (DVD menus)
When the internal mplayer MPEG demuxer was removed (commit 1fde09db),
the default demuxer when using dvdnav was set to libavformat. Now it
turns out that this doesn't work with libavformat. It will terminate
playback right after the audio runs out (instead of looping it like the
video, or whatever it's supposed to do). I'm not sure what exactly the
problem is, but since 1. even mplayer-svn can't handle DVD menus
directly (missing highlights), 2. DVD menus are essentially worthless,
and 3. I don't directly watch DVDs, don't bother with it and remove it.
For basic playback, there's still libdvdread support.
Also, use pkg-config for libdvdread, and drop support for in-tree
libdvdread. Remove support for in-tree libdvdcss as well.
Diffstat (limited to 'sub')
-rw-r--r-- | sub/sub.c | 62 | ||||
-rw-r--r-- | sub/sub.h | 6 |
2 files changed, 0 insertions, 68 deletions
@@ -26,8 +26,6 @@ #include "config.h" #include "stream/stream.h" -#include "stream/stream_dvdnav.h" -#define OSD_NAV_BOX_ALPHA 0x7f #include "osdep/timer.h" @@ -66,9 +64,6 @@ int sub_visibility=1; int sub_bg_color=0; /* subtitles background color */ int sub_bg_alpha=0; int sub_justify=0; -#ifdef CONFIG_DVDNAV -static nav_highlight_t nav_hl; -#endif int vo_osd_progbar_type=-1; int vo_osd_progbar_value=100; // 0..256 @@ -123,52 +118,6 @@ void vo_draw_text_from_buffer(mp_osd_obj_t* obj,void (*draw_alpha)(void *ctx, in } } -#ifdef CONFIG_DVDNAV -void osd_set_nav_box (uint16_t sx, uint16_t sy, uint16_t ex, uint16_t ey) { - nav_hl.sx = sx; - nav_hl.sy = sy; - nav_hl.ex = ex; - nav_hl.ey = ey; -} - -inline static void vo_update_nav (mp_osd_obj_t *obj, int dxs, int dys, int left_border, int top_border, - int right_border, int bottom_border, int orig_w, int orig_h) { - int len; - int sx = nav_hl.sx, sy = nav_hl.sy; - int ex = nav_hl.ex, ey = nav_hl.ey; - int scaled_w = dxs - left_border - right_border; - int scaled_h = dys - top_border - bottom_border; - if (scaled_w != orig_w) { - sx = sx * scaled_w / orig_w; - ex = ex * scaled_w / orig_w; - } - if (scaled_h != orig_h) { - sy = sy * scaled_h / orig_h; - ey = ey * scaled_h / orig_h; - } - sx += left_border; ex += left_border; - sy += top_border; ey += top_border; - sx = FFMIN(FFMAX(sx, 0), dxs); - ex = FFMIN(FFMAX(ex, 0), dxs); - sy = FFMIN(FFMAX(sy, 0), dys); - ey = FFMIN(FFMAX(ey, 0), dys); - - obj->bbox.x1 = obj->x = sx; - obj->bbox.y1 = obj->y = sy; - obj->bbox.x2 = ex; - obj->bbox.y2 = ey; - - osd_alloc_buf (obj); - len = obj->stride * (obj->bbox.y2 - obj->bbox.y1); - memset (obj->bitmap_buffer, OSD_NAV_BOX_ALPHA, len); - memset (obj->alpha_buffer, OSD_NAV_BOX_ALPHA, len); - obj->flags |= OSDFLAG_BBOX | OSDFLAG_CHANGED; - if (obj->bbox.y2 > obj->bbox.y1 && obj->bbox.x2 > obj->bbox.x1) - obj->flags |= OSDFLAG_VISIBLE; -} -#endif - - inline static void vo_update_spudec_sub(struct osd_state *osd, mp_osd_obj_t* obj) { unsigned int bbox[4]; @@ -238,11 +187,6 @@ static int osd_update_ext(struct osd_state *osd, int dxs, int dys, int vis=obj->flags&OSDFLAG_VISIBLE; obj->flags&=~OSDFLAG_BBOX; switch(obj->type){ -#ifdef CONFIG_DVDNAV - case OSDTYPE_DVDNAV: - vo_update_nav(obj,dxs,dys, left_border, top_border, right_border, bottom_border, orig_w, orig_h); - break; -#endif case OSDTYPE_SUBTITLE: vo_update_text_sub(osd, obj); break; @@ -320,9 +264,6 @@ struct osd_state *osd_create(struct MPOpts *opts, struct ass_library *asslib) new_osd_obj(OSDTYPE_SUBTITLE); new_osd_obj(OSDTYPE_PROGBAR); new_osd_obj(OSDTYPE_SPU); -#ifdef CONFIG_DVDNAV - new_osd_obj(OSDTYPE_DVDNAV); -#endif osd_font_invalidate(); osd->osd_text = talloc_strdup(osd, ""); osd_init_backend(osd); @@ -358,9 +299,6 @@ void osd_draw_text_ext(struct osd_state *osd, int dxs, int dys, case OSDTYPE_SPU: vo_draw_spudec_sub(obj, draw_alpha, ctx); // FIXME break; -#ifdef CONFIG_DVDNAV - case OSDTYPE_DVDNAV: -#endif case OSDTYPE_OSD: case OSDTYPE_SUBTITLE: case OSDTYPE_PROGBAR: @@ -29,7 +29,6 @@ typedef struct mp_osd_bbox_s { #define OSDTYPE_SUBTITLE 2 #define OSDTYPE_PROGBAR 3 #define OSDTYPE_SPU 4 -#define OSDTYPE_DVDNAV 5 #define OSDFLAG_VISIBLE 1 #define OSDFLAG_CHANGED 2 @@ -173,11 +172,6 @@ void vo_osd_resized(void); int vo_osd_check_range_update(int,int,int,int); void osd_free(struct osd_state *osd); -#ifdef CONFIG_DVDNAV -#include <inttypes.h> -void osd_set_nav_box (uint16_t sx, uint16_t sy, uint16_t ex, uint16_t ey); -#endif - // used only by osd_ft.c or osd_libass.c void osd_alloc_buf(mp_osd_obj_t* obj); void vo_draw_text_from_buffer(mp_osd_obj_t* obj,void (*draw_alpha)(void *ctx, int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride), void *ctx); |