X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=libhb%2Fscan.c;h=74cc52adb9b96c4dda1de5cdf331b28d01c5942f;hb=033e32de9c380f54c7d1362a3979da205ebc3a29;hp=db179ef757eaba19b307b80acfb5e76e16bd71bc;hpb=64a48a58d954017539afc5e4f1d5c6201873149e;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/libhb/scan.c b/libhb/scan.c index db179ef7..74cc52ad 100644 --- a/libhb/scan.c +++ b/libhb/scan.c @@ -106,36 +106,9 @@ static void ScanFunc( void * _data ) int j; hb_state_t state; hb_audio_t * audio; - hb_title_t * title_tmp = NULL; title = hb_list_item( data->list_title, i ); - /* I've seen a DVD with strictly identical titles. Check this - here and ignore it if redundant */ - for( j = 0; j < i; j++ ) - { - title_tmp = hb_list_item( data->list_title, j ); - if( title->vts == title_tmp->vts && - title->block_start == title_tmp->block_start && - title->block_end == title_tmp->block_end && - title->block_count == title_tmp->block_count ) - { - break; - } - else - { - title_tmp = NULL; - } - } - if( title_tmp ) - { - hb_log( "scan: title %d is duplicate with title %d", - title->index, title_tmp->index ); - hb_list_rem( data->list_title, title ); - free( title ); /* This _will_ leak! */ - continue; - } - #define p state.param.scanning /* Update the UI */ state.state = HB_STATE_SCANNING; @@ -224,8 +197,7 @@ static void ScanFunc( void * _data ) job->vrate_base = title->rate_base; job->list_audio = hb_list_init(); - - job->subtitle = -1; + job->list_subtitle = hb_list_init(); job->mux = HB_MUX_MP4; } @@ -407,7 +379,7 @@ static int DecodePreviews( hb_scan_t * data, hb_title_t * title ) if (data->dvd) { - hb_dvd_start( data->dvd, title->index, 1 ); + hb_dvd_start( data->dvd, title, 1 ); title->angle_count = hb_dvd_angle_count( data->dvd ); hb_log( "scan: title angle(s) %d", title->angle_count ); } @@ -441,6 +413,7 @@ static int DecodePreviews( hb_scan_t * data, hb_title_t * title ) int vcodec = title->video_codec? title->video_codec : WORK_DECMPEG2; hb_work_object_t *vid_decoder = hb_get_work( vcodec ); vid_decoder->codec_param = title->video_codec_param; + vid_decoder->title = title; vid_decoder->init( vid_decoder, NULL ); hb_buffer_t * vid_buf = NULL; int vidskip = 0; @@ -600,7 +573,7 @@ static int DecodePreviews( hb_scan_t * data, hb_title_t * title ) hb_get_tempory_filename( data->h, filename, "%" PRIxPTR "%d", (intptr_t)title, i ); - file_preview = fopen( filename, "w" ); + file_preview = fopen( filename, "wb" ); if( file_preview ) { fwrite( vid_buf->data, title->width * title->height * 3 / 2,