+ else
+ {
+ hb_subtitle_t * subtitle;
+ hb_subtitle_config_t sub_config;
+ int track;
+ int burn = 0, force = 0, def = 0;
+
+ track = atoi(token) - 1;
+ subtitle = hb_list_item(title->list_subtitle, track);
+ if( subtitle == NULL )
+ {
+ fprintf( stderr, "Warning: Could not find subtitle track %d, skipped\n", track+1 );
+ continue;
+ }
+ sub_config = subtitle->config;
+
+ if ( subburn != NULL )
+ {
+ burn = ( pos == 1 && subburn[0] == 0 ) ||
+ ( strcmp( token, subburn ) == 0 );
+ }
+ if ( subdefault != NULL )
+ {
+ def = ( pos == 1 && subdefault[0] == 0 ) ||
+ ( strcmp( token, subdefault ) == 0 );
+ }
+
+ force = test_sub_list(subforce, token, pos);
+
+ if ( !burn && mux == HB_MUX_MKV &&
+ subtitle->format == PICTURESUB)
+ {
+ sub_config.dest = PASSTHRUSUB;
+ }
+ else if (!burn && mux == HB_MUX_MP4 &&
+ subtitle->format == PICTURESUB)
+ {
+ // Skip any non-burned vobsubs when output is mp4
+ fprintf( stderr, "Warning: Skipping subtitle track %d, can't pass-through VOBSUBs in an MP4 container,\nadd '--subtitle-burn %d' to the command line\n", track+1, track+1 );
+ continue;
+ }
+ else if ( burn && subtitle->format == PICTURESUB )
+ {
+ // Only allow one subtitle to be burned into video
+ if ( sub_burned )
+ {
+ fprintf( stderr, "Warning: Skipping subtitle track %d, can't have more than one track burnt in\n", track+1 );
+ continue;
+ }
+ sub_burned = 1;
+ }
+ sub_config.force = force;
+ sub_config.default_track = def;
+ hb_subtitle_add( job, &sub_config, track );
+ }
+ }
+ }
+
+ if( srtfile )
+ {
+ char * token;
+ int i, pos;
+ hb_subtitle_config_t sub_config;
+
+ pos = 0;
+ for( i=0; srtfile[i] != NULL; i++ )
+ {
+ char *codeset = "L1";
+ int64_t offset = 0;
+ char *lang = "und";
+
+ pos++;
+ token = srtfile[i];
+ if( srtcodeset && srtcodeset[i] )
+ {
+ codeset = srtcodeset[i];
+ }
+ if( srtoffset && srtoffset[i] )
+ {
+ offset = strtoll( srtoffset[i], &srtoffset[i], 0 );
+ }
+ if ( srtlang && srtlang[i] )
+ {
+ lang = srtlang[i];
+ }
+ sub_config.default_track =
+ ( srtdefault != -1 ) && ( srtdefault == i + 1 );
+ sub_config.force = 0;
+ strncpy( sub_config.src_filename, srtfile[i], 128);
+ strncpy( sub_config.src_codeset, codeset, 40);
+ sub_config.offset = offset;
+
+ hb_srt_add( job, &sub_config, lang);