diff options
author | jstebbins <[email protected]> | 2010-09-08 16:51:59 +0000 |
---|---|---|
committer | jstebbins <[email protected]> | 2010-09-08 16:51:59 +0000 |
commit | a007891bf9f7e53d3705c51b5b41f9e56a144031 (patch) | |
tree | b7a532c24a458d549afb0174c374e631b896a46e /libhb/dvd.c | |
parent | 772c3574758e9bc29cb76bbc86343cf9ad5ddd71 (diff) |
Add Bluray support
Unencrypted BD directory trees only. Doesn't support iso images.
Also, no PGS subtitle support yet.
Chapters and angles are supported.
Adds a new contrib libbluray.
Adds new option to hb_scan() for duration of short titles to filter.
This applies to BD and DVD multi-title scans only. Does not apply
to any single title scans.
Fixes memory leak during scan. hb_buffer_close() was not freeing
all buffers in a chain of buffers passed to it.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3510 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'libhb/dvd.c')
-rw-r--r-- | libhb/dvd.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/libhb/dvd.c b/libhb/dvd.c index ee10dd507..5fd0a4ad9 100644 --- a/libhb/dvd.c +++ b/libhb/dvd.c @@ -16,7 +16,7 @@ static hb_dvd_t * hb_dvdread_init( char * path ); static void hb_dvdread_close( hb_dvd_t ** _d ); static char * hb_dvdread_name( char * path ); static int hb_dvdread_title_count( hb_dvd_t * d ); -static hb_title_t * hb_dvdread_title_scan( hb_dvd_t * d, int t ); +static hb_title_t * hb_dvdread_title_scan( hb_dvd_t * d, int t, uint64_t min_duration ); static int hb_dvdread_start( hb_dvd_t * d, hb_title_t *title, int chapter ); static void hb_dvdread_stop( hb_dvd_t * d ); static int hb_dvdread_seek( hb_dvd_t * d, float f ); @@ -162,7 +162,7 @@ static int hb_dvdread_title_count( hb_dvd_t * e ) /*********************************************************************** * hb_dvdread_title_scan **********************************************************************/ -static hb_title_t * hb_dvdread_title_scan( hb_dvd_t * e, int t ) +static hb_title_t * hb_dvdread_title_scan( hb_dvd_t * e, int t, uint64_t min_duration ) { hb_dvdread_t *d = &(e->dvdread); @@ -299,8 +299,8 @@ static hb_title_t * hb_dvdread_title_scan( hb_dvd_t * e, int t ) d->cell_cur = d->cell_next; } - hb_log( "scan: vts=%d, ttn=%d, cells=%d->%d, blocks=%d->%d, " - "%d blocks", title->vts, title->ttn, title->cell_start, + hb_log( "scan: vts=%d, ttn=%d, cells=%d->%d, blocks=%"PRIu64"->%"PRIu64", " + "%"PRIu64" blocks", title->vts, title->ttn, title->cell_start, title->cell_end, title->block_start, title->block_end, title->block_count ); @@ -316,7 +316,7 @@ static hb_title_t * hb_dvdread_title_scan( hb_dvd_t * e, int t ) /* ignore titles under 10 seconds because they're often stills or * clips with no audio & our preview code doesn't currently handle * either of these. */ - if( title->duration < 900000LL ) + if( title->duration < min_duration ) { hb_log( "scan: ignoring title (too short)" ); goto fail; @@ -624,7 +624,7 @@ static hb_title_t * hb_dvdread_title_scan( hb_dvd_t * e, int t ) chapter->minutes = ( seconds % 3600 ) / 60; chapter->seconds = seconds % 60; - hb_log( "scan: chap %d c=%d->%d, b=%d->%d (%d), %"PRId64" ms", + hb_log( "scan: chap %d c=%d->%d, b=%"PRIu64"->%"PRIu64" (%"PRIu64"), %"PRId64" ms", chapter->index, chapter->cell_start, chapter->cell_end, chapter->block_start, chapter->block_end, chapter->block_count, chapter->duration / 90 ); @@ -1268,9 +1268,9 @@ int hb_dvd_title_count( hb_dvd_t * d ) return dvd_methods->title_count(d); } -hb_title_t * hb_dvd_title_scan( hb_dvd_t * d, int t ) +hb_title_t * hb_dvd_title_scan( hb_dvd_t * d, int t, uint64_t min_duration ) { - return dvd_methods->title_scan(d, t); + return dvd_methods->title_scan(d, t, min_duration); } int hb_dvd_start( hb_dvd_t * d, hb_title_t *title, int chapter ) |