diff --git a/configure.ac b/configure.ac index 3e0b3988b1..d4bc424471 100644 --- a/configure.ac +++ b/configure.ac @@ -519,6 +519,23 @@ GST_CHECK_FEATURE(DVDNAV, [dvdnav library], dvdnavsrc, [ translit(dnm, m, l) AC_SUBST(DVDNAV_LIBS) translit(dnm, m, l) AC_SUBST(DVDNAV_CFLAGS) GST_CHECK_CONFIGPROG(DVDNAV, dvdnav-config) + if test x"$HAVE_DVDNAV" = x"yes"; then + dnl check version + DVDNAV_VERSION=`dvdnav-config --version|head -n 1|sed 's/^.*) //'|sed 's/ (.*)//'` + DVDNAV_MAJOR=`echo $DVDNAV_VERSION | cut -d. -f1 | sed s/[a-zA-Z\-].*//g` + DVDNAV_MINOR=`echo $DVDNAV_VERSION | cut -d. -f2 | sed s/[a-zA-Z\-].*//g` + DVDNAV_MICRO=`echo $DVDNAV_VERSION | cut -d. -f3 | sed s/[a-zA-Z\-].*//g` + if [[ "$DVDNAV_MAJOR" -eq "0" ]] && \ + [[ "$DVDNAV_MINOR" -lt "1" ]]; then + AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION]) + HAVE_DVDNAV="no" + elif [[ "$DVDNAV_MAJOR" -eq "0" ]] && \ + [[ "$DVDNAV_MINOR" -eq "1" ]] && \ + [[ "$DVDNAV_MICRO" -lt "7" ]]; then + AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION]) + HAVE_DVDNAV="no" + fi + fi AS_SCRUB_INCLUDE(DVDNAV_CFLAGS) ]) diff --git a/ext/dvdnav/dvdnavsrc.c b/ext/dvdnav/dvdnavsrc.c index 8954fb420d..d54484dd17 100644 --- a/ext/dvdnav/dvdnavsrc.c +++ b/ext/dvdnav/dvdnavsrc.c @@ -591,45 +591,51 @@ dvdnavsrc_button_pressed (DVDNavSrc *src, int button) static void dvdnavsrc_pointer_select (DVDNavSrc *src, int x, int y) { - dvdnav_mouse_select(src->dvdnav, x, y); + dvdnav_mouse_select(src->dvdnav, + dvdnav_get_current_nav_pci(src->dvdnav), + x, y); } static void dvdnavsrc_pointer_activate (DVDNavSrc *src, int x, int y) { - dvdnav_mouse_activate(src->dvdnav, x, y); + dvdnav_mouse_activate(src->dvdnav, + dvdnav_get_current_nav_pci(src->dvdnav), + x, y); } static void dvdnavsrc_user_op (DVDNavSrc *src, int op) { + pci_t *pci = dvdnav_get_current_nav_pci(src->dvdnav); + fprintf (stderr, "user_op %d\n", op); /* Magic user_op ids */ switch (op) { case 0: /* None */ break; case 1: /* Upper */ - if (dvdnav_upper_button_select(src->dvdnav) != DVDNAV_STATUS_OK) { + if (dvdnav_upper_button_select(src->dvdnav, pci) != DVDNAV_STATUS_OK) { goto naverr; } break; case 2: /* Lower */ - if (dvdnav_lower_button_select(src->dvdnav) != DVDNAV_STATUS_OK) { + if (dvdnav_lower_button_select(src->dvdnav, pci) != DVDNAV_STATUS_OK) { goto naverr; } break; case 3: /* Left */ - if (dvdnav_left_button_select(src->dvdnav) != DVDNAV_STATUS_OK) { + if (dvdnav_left_button_select(src->dvdnav, pci) != DVDNAV_STATUS_OK) { goto naverr; } break; case 4: /* Right */ - if (dvdnav_right_button_select(src->dvdnav) != DVDNAV_STATUS_OK) { + if (dvdnav_right_button_select(src->dvdnav, pci) != DVDNAV_STATUS_OK) { goto naverr; } break; case 5: /* Activate */ - if (dvdnav_button_activate(src->dvdnav) != DVDNAV_STATUS_OK) { + if (dvdnav_button_activate(src->dvdnav, pci) != DVDNAV_STATUS_OK) { goto naverr; } break;