]> git.sesse.net Git - vlc/commitdiff
Added a patch to the contribs to have a dvdnav_get_video_resolution() function in...
authorLaurent Aimar <fenrir@videolan.org>
Mon, 24 May 2010 21:53:30 +0000 (23:53 +0200)
committerLaurent Aimar <fenrir@videolan.org>
Mon, 24 May 2010 21:59:06 +0000 (23:59 +0200)
extras/contrib/src/Makefile
extras/contrib/src/Patches/libdvdnav-resolution.patch [new file with mode: 0644]

index 70b093ac24c9e913d8a684785ba40db6a9ce5fed..23b343bcd8ba033a13ec0e2477f85b8e5f5cb412 100644 (file)
@@ -1213,6 +1213,7 @@ ifdef SVN
 libdvdnav:
        $(SVN) co $(LIBDVDNAV_SVN)  libdvdnav
        patch -d libdvdnav -p0 < Patches/libdvdnav.patch
+       patch -d libdvdnav -p0 < Patches/libdvdnav-resolution.patch
        (cd $@; ./autogen.sh noconfig)
 else
 libdvdnav-$(LIBDVDNAV_VERSION).tar.gz:
diff --git a/extras/contrib/src/Patches/libdvdnav-resolution.patch b/extras/contrib/src/Patches/libdvdnav-resolution.patch
new file mode 100644 (file)
index 0000000..bc4ee01
--- /dev/null
@@ -0,0 +1,80 @@
+Index: src/dvdnav/dvdnav.h
+===================================================================
+--- src/dvdnav/dvdnav.h        (revision 1191)
++++ src/dvdnav/dvdnav.h        (working copy)
+@@ -553,6 +553,11 @@
+ uint8_t dvdnav_get_video_aspect(dvdnav_t *self);
+ /*
++ * Get video resolution.
++ */
++int dvdnav_get_video_resolution(dvdnav_t *self, uint32_t *width, uint32_t *height);
++
++/*
+  * Get video scaling permissions.
+  * The scaling permission does only change on VTS boundaries.
+  * See the DVDNAV_VTS_CHANGE event.
+Index: src/vm/vm.c
+===================================================================
+--- src/vm/vm.c        (revision 1191)
++++ src/vm/vm.c        (working copy)
+@@ -858,8 +858,8 @@
+     break;
+   }
+ }
++#endif
+-/* currently unused */
+ void vm_get_video_res(vm_t *vm, int *width, int *height) {
+   video_attr_t attr = vm_get_video_attr(vm);
+@@ -883,7 +883,6 @@
+     break;
+   }
+ }
+-#endif
+ int vm_get_video_aspect(vm_t *vm) {
+   int aspect = vm_get_video_attr(vm).display_aspect_ratio;
+Index: src/vm/vm.h
+===================================================================
+--- src/vm/vm.h        (revision 1191)
++++ src/vm/vm.h        (working copy)
+@@ -159,8 +159,8 @@
+ /* currently unused */
+ void vm_get_audio_info(vm_t *vm, int *current, int *num_avail);
+ void vm_get_subp_info(vm_t *vm, int *current, int *num_avail);
++#endif
+ void vm_get_video_res(vm_t *vm, int *width, int *height);
+-#endif
+ int  vm_get_video_aspect(vm_t *vm);
+ int  vm_get_video_scale_permission(vm_t *vm);
+ video_attr_t vm_get_video_attr(vm_t *vm);
+Index: src/dvdnav.c
+===================================================================
+--- src/dvdnav.c       (revision 1191)
++++ src/dvdnav.c       (working copy)
+@@ -844,7 +844,23 @@
+   return retval;
+ }
++int dvdnav_get_video_resolution(dvdnav_t *this, uint32_t *width, uint32_t *height) {
++  int w, h;
++  if(!this->started) {
++    printerr("Virtual DVD machine not started.");
++    return -1;
++  }
++
++  pthread_mutex_lock(&this->vm_lock);
++  vm_get_video_res(this->vm, &w, &h);
++  pthread_mutex_unlock(&this->vm_lock);
++  
++  *width  = w;
++  *height = h;
++  return 0;
++}
++
+ uint8_t dvdnav_get_video_scale_permission(dvdnav_t *this) {
+   uint8_t         retval;