Index: src/dvdnav/dvdnav.h =================================================================== --- src/dvdnav/dvdnav.h (revision 1191) +++ src/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;