static void ScanFunc( void * );
static int DecodePreviews( hb_scan_t *, hb_title_t * title );
-static int LookForAudio( hb_title_t * title, hb_buffer_t * b );
+static void LookForAudio( hb_title_t * title, hb_buffer_t * b );
static int AllAudioOK( hb_title_t * title );
static const char *aspect_to_string( double aspect )
hb_scan_t * data = (hb_scan_t *) _data;
hb_title_t * title;
int i;
+ int feature = 0;
data->dvd = NULL;
data->stream = NULL;
hb_list_add( data->list_title,
hb_dvd_title_scan( data->dvd, i + 1 ) );
}
+ feature = hb_dvd_main_feature( data->dvd, data->list_title );
}
}
else if ( ( data->batch = hb_batch_init( data->path ) ) )
j++;
}
+ if ( data->dvd )
+ {
+ // The subtitle width and height needs to be set to the
+ // title widht and height for DVDs. title width and
+ // height don't get set until we decode previews, so
+ // we can't set subtitle width/height till we get here.
+ for( j = 0; j < hb_list_count( title->list_subtitle ); j++ )
+ {
+ hb_subtitle_t *subtitle = hb_list_item( title->list_subtitle, j );
+ if ( subtitle->source == VOBSUB )
+ {
+ subtitle->width = title->width;
+ subtitle->height = title->height;
+ }
+ }
+ }
i++;
}
title->job = job;
job->title = title;
+ job->feature = feature;
/* Set defaults settings */
job->chapter_start = 1;
vid_buf = NULL;
}
}
- else
+ else if( ! AllAudioOK( title ) )
{
- if( ! AllAudioOK( title ) )
- if ( !LookForAudio( title, buf_es ) )
- buf_es = NULL;
+ LookForAudio( title, buf_es );
+ buf_es = NULL;
}
if ( buf_es )
hb_buffer_close( &buf_es );
* aren't (e.g., some European DVD Teletext streams use the same IDs as US ATSC
* AC-3 audio).
*/
-static int LookForAudio( hb_title_t * title, hb_buffer_t * b )
+static void LookForAudio( hb_title_t * title, hb_buffer_t * b )
{
int i;
if( !audio || audio->config.in.bitrate != 0 )
{
/* not found or already done */
- return 1;
+ hb_buffer_close( &b );
+ return;
}
if ( audio->priv.scan_cache == NULL )
if ( !info.bitrate )
{
/* didn't find any info */
- return 0;
+ return;
}
hb_fifo_flush( audio->priv.scan_cache );
hb_fifo_close( &audio->priv.scan_cache );
audio->config.lang.description );
free( w );
- return 1;
+ return;
// We get here if there's no hope of finding info on an audio bitstream,
// either because we don't have a decoder (or a decoder with a bitstream
hb_fifo_flush( audio->priv.scan_cache );
hb_fifo_close( &audio->priv.scan_cache );
hb_list_rem( title->list_audio, audio );
- return -1;
+ return;
}
/*