// force a new scr offset computation
r->scr_changes = r->demux.scr_changes - 1;
r->saw_video = 1;
- hb_log( "reader: first SCR %lld", r->demux.last_scr );
+ hb_log( "reader: first SCR %"PRId64, r->demux.last_scr );
}
else
{
// packet of a stream we've never seen before. We
// have no idea what the timing should be so toss
// this buffer & wait for a stream we've already seen.
+ // add stream to list of streams we have seen
+ id_to_st( r, buf );
hb_buffer_close( &buf );
continue;
}
hb_title_t * title = job->title;
hb_audio_t * audio;
hb_subtitle_t * subtitle;
- int i, n;
- static hb_fifo_t * fifos[8];
+ int i, n, count;
+ static hb_fifo_t * fifos[100];
memset(fifos, 0, sizeof(fifos));
}
}
- for( i=0; i < hb_list_count( title->list_subtitle ); i++ ) {
+ n = 0;
+ count = hb_list_count( title->list_subtitle );
+ count = count > 99 ? 99 : count;
+ for( i=0; i < count; i++ ) {
subtitle = hb_list_item( title->list_subtitle, i );
if (id == subtitle->id) {
subtitle->hits++;
- if( !job->indepth_scan || job->subtitle_force )
+ if( !job->indepth_scan || job->select_subtitle_config.force )
{
/*
* Pass the subtitles to be processed if we are not scanning, or if
* we are scanning and looking for forced subs, then pass them up
* to decode whether the sub is a forced one.
*/
- fifos[0] = subtitle->fifo_in;
- return fifos;
+ fifos[n++] = subtitle->fifo_in;
}
- break;
}
}
+ if ( n != 0 )
+ {
+ return fifos;
+ }
if( !job->indepth_scan )
{