Disable DVD and BD menu support (to be removed)

DVD/BD menu support never worked right, and are a pain to maintain. In
particular, DVD menus never actually worked correctly, because
highlights were not rendered correctly. Fixing this requires major
effort, which I'm not interested to spend.

Most importantly, the requirement to switch streams without losing the
DVD/BD state caused major weirdness in the playback core. It was
implemented by somehow syncing the playback state to the DVD/BD
implementation (in stream_dvdnav.c etc.), and then reloading the demuxer
without destroying and recreating the stream. This caused a bunch of
special-cases which I'm looking forward to remove.

For now, don't just remove everything related to menu support and just
disable it. If someone volunteers, it can be restored (i.e. rewritten)
in a reasonable way. If nobody volunteers soon, it goes.
This commit is contained in:
wm4
2015-06-26 23:37:23 +02:00
parent d9b19390ad
commit 3b3170aedb
5 changed files with 9 additions and 7 deletions

View File

@@ -567,13 +567,9 @@ PROTOCOLS
you must mount the ISO file as filesystem, and point ``--bluray-device`` you must mount the ISO file as filesystem, and point ``--bluray-device``
to the mounted directory directly. to the mounted directory directly.
``bdnav://[title][/device]``
Play a Blu-Ray disc, with navigation features enabled. This feature is
permanently experimental.
``dvd://[title|[starttitle]-endtitle][/device]`` ``--dvd-device=PATH`` ``dvd://[title|[starttitle]-endtitle][/device]`` ``--dvd-device=PATH``
Play a DVD. If you want dvdnav menus, use ``dvd://menu``. If no title Play a DVD. DVD menus are not supported. If no title is given, the longest
is given, the longest title is auto-selected. title is auto-selected.
``dvdnav://`` is an old alias for ``dvd://`` and does exactly the same ``dvdnav://`` is an old alias for ``dvd://`` and does exactly the same
thing. thing.

View File

@@ -279,7 +279,7 @@ Command Line Switches
``-xineramascreen`` ``--screen`` (different values) ``-xineramascreen`` ``--screen`` (different values)
``-xy W`` ``--autofit=W`` ``-xy W`` ``--autofit=W``
``-zoom`` Inverse available as ``--video-unscaled`` ``-zoom`` Inverse available as ``--video-unscaled``
``dvdnav://`` ``dvdnav://menu`` ``dvdnav://`` Removed.
``dvd://1`` ``dvd://0`` (0-based offset) ``dvd://1`` ``dvd://0`` (0-based offset)
=========================== ======================================== =========================== ========================================

View File

@@ -135,6 +135,7 @@ void mp_nav_init(struct MPContext *mpctx)
if (mpctx->encode_lavc_ctx) if (mpctx->encode_lavc_ctx)
return; return;
#if 0
struct mp_nav_cmd inp = {MP_NAV_CMD_ENABLE}; struct mp_nav_cmd inp = {MP_NAV_CMD_ENABLE};
if (run_stream_control(mpctx, STREAM_CTRL_NAV_CMD, &inp) < 1) if (run_stream_control(mpctx, STREAM_CTRL_NAV_CMD, &inp) < 1)
return; return;
@@ -150,6 +151,7 @@ void mp_nav_init(struct MPContext *mpctx)
update_state(mpctx); update_state(mpctx);
update_mouse_on_button(mpctx); update_mouse_on_button(mpctx);
#endif
} }
void mp_nav_reset(struct MPContext *mpctx) void mp_nav_reset(struct MPContext *mpctx)

View File

@@ -744,6 +744,8 @@ static int bluray_stream_open(stream_t *s)
int title_guess = BLURAY_DEFAULT_TITLE; int title_guess = BLURAY_DEFAULT_TITLE;
if (b->use_nav) { if (b->use_nav) {
MP_FATAL(s, "BluRay menu support has been removed.\n");
return STREAM_ERROR;
const BLURAY_DISC_INFO *disc_info = bd_get_disc_info(b->bd); const BLURAY_DISC_INFO *disc_info = bd_get_disc_info(b->bd);
b->num_titles = disc_info->num_hdmv_titles + disc_info->num_bdj_titles; b->num_titles = disc_info->num_hdmv_titles + disc_info->num_bdj_titles;
++b->num_titles; // for BLURAY_TITLE_TOP_MENU ++b->num_titles; // for BLURAY_TITLE_TOP_MENU

View File

@@ -781,6 +781,8 @@ static int open_s(stream_t *stream)
return STREAM_UNSUPPORTED; return STREAM_UNSUPPORTED;
} }
} else { } else {
MP_FATAL(stream, "DVD menu support has been removed.\n");
return STREAM_ERROR;
if (dvdnav_menu_call(priv->dvdnav, DVD_MENU_Root) != DVDNAV_STATUS_OK) if (dvdnav_menu_call(priv->dvdnav, DVD_MENU_Root) != DVDNAV_STATUS_OK)
dvdnav_menu_call(priv->dvdnav, DVD_MENU_Title); dvdnav_menu_call(priv->dvdnav, DVD_MENU_Title);
} }