summaryrefslogtreecommitdiffstats
path: root/libhb/dvdnav.c
diff options
context:
space:
mode:
authorritsuka <[email protected]>2015-01-13 19:04:16 +0000
committerritsuka <[email protected]>2015-01-13 19:04:16 +0000
commitacac8a09b29da8875c1d539796fc7f3bb7948939 (patch)
tree400b99790d1d1508dbfc54f240d4c31924b88c02 /libhb/dvdnav.c
parent2c5ec037274054f5dd4a270811c11afb5caa7331 (diff)
Fix libdvdnav dvd name and add additional fallback if no name is found
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6744 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'libhb/dvdnav.c')
-rw-r--r--libhb/dvdnav.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/libhb/dvdnav.c b/libhb/dvdnav.c
index f7153177c..9dcf9e530 100644
--- a/libhb/dvdnav.c
+++ b/libhb/dvdnav.c
@@ -334,6 +334,7 @@ static hb_title_t * hb_dvdnav_title_scan( hb_dvd_t * e, int t, uint64_t min_dura
uint64_t duration, longest;
int longest_pgcn, longest_pgn, longest_pgcn_end;
const char * name;
+ unsigned char unused[1024];
const char * codec_name;
hb_log( "scan: scanning title %d", t );
@@ -344,8 +345,13 @@ static hb_title_t * hb_dvdnav_title_scan( hb_dvd_t * e, int t, uint64_t min_dura
{
strncpy( title->name, name, sizeof( title->name ) );
}
- else
+
+ if (strlen(title->name) == 0)
{
+ if( DVDUDFVolumeInfo( d->reader, title->name, sizeof( title->name ),
+ unused, sizeof( unused ) ) )
+ {
+
char * p_cur, * p_last = d->path;
for( p_cur = d->path; *p_cur; p_cur++ )
{
@@ -358,6 +364,7 @@ static hb_title_t * hb_dvdnav_title_scan( hb_dvd_t * e, int t, uint64_t min_dura
char *dot_term = strrchr(title->name, '.');
if (dot_term)
*dot_term = '\0';
+ }
}
/* VTS which our title is in */