summaryrefslogtreecommitdiffstats
path: root/sub
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2012-08-12 18:40:21 +0200
committerwm4 <wm4@nowhere>2012-08-16 17:17:49 +0200
commit41fbcee1f557c3ddbfefc79b2b1b4719c6442265 (patch)
tree6c15b7631ad817a68207d2d04e4969ec0e128a8a /sub
parentaebfbbf2bdda8e18beef90c16da97bd335f7d3b0 (diff)
downloadmpv-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.c62
-rw-r--r--sub/sub.h6
2 files changed, 0 insertions, 68 deletions
diff --git a/sub/sub.c b/sub/sub.c
index 52c79c1d40..afcc8fc3e5 100644
--- a/sub/sub.c
+++ b/sub/sub.c
@@ -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:
diff --git a/sub/sub.h b/sub/sub.h
index 3390f7fa18..3e7f70f615 100644
--- a/sub/sub.h
+++ b/sub/sub.h
@@ -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);