diff options
-rw-r--r-- | gtk/src/callbacks.c | 2 | ||||
-rw-r--r-- | gtk/src/hb-backend.c | 2 | ||||
-rw-r--r-- | libhb/common.h | 2 | ||||
-rw-r--r-- | libhb/reader.c | 3 | ||||
-rw-r--r-- | libhb/scan.c | 4 | ||||
-rw-r--r-- | libhb/stream.c | 5 | ||||
-rw-r--r-- | macosx/Controller.m | 5 | ||||
-rw-r--r-- | test/test.c | 2 |
8 files changed, 15 insertions, 10 deletions
diff --git a/gtk/src/callbacks.c b/gtk/src/callbacks.c index fc79b99cf..0d8699c0d 100644 --- a/gtk/src/callbacks.c +++ b/gtk/src/callbacks.c @@ -1343,7 +1343,7 @@ show_title_info(signal_user_data_t *ud, ghb_title_info_t *tinfo) gchar *text; ghb_settings_set_string(ud->settings, "source", tinfo->path); - if (tinfo->type == HB_STREAM_TYPE) + if (tinfo->type == HB_STREAM_TYPE || tinfo->type == HB_FF_STREAM_TYPE) { GtkWidget *widget = GHB_WIDGET (ud->builder, "source_title"); if (tinfo->name != NULL && tinfo->name[0] != 0) diff --git a/gtk/src/hb-backend.c b/gtk/src/hb-backend.c index e0ee19c3b..f6061c564 100644 --- a/gtk/src/hb-backend.c +++ b/gtk/src/hb-backend.c @@ -1888,7 +1888,7 @@ title_opts_set(GtkBuilder *builder, const gchar *name) for (ii = 0; ii < count; ii++) { title = (hb_title_t*)hb_list_item(list, ii); - if (title->type == HB_STREAM_TYPE) + if (title->type == HB_STREAM_TYPE || title->type == HB_FF_STREAM_TYPE) { if (title->duration != 0) { diff --git a/libhb/common.h b/libhb/common.h index b8045234c..a3461e864 100644 --- a/libhb/common.h +++ b/libhb/common.h @@ -573,7 +573,7 @@ struct hb_metadata_s struct hb_title_s { - enum { HB_DVD_TYPE, HB_BD_TYPE, HB_STREAM_TYPE } type; + enum { HB_DVD_TYPE, HB_BD_TYPE, HB_STREAM_TYPE, HB_FF_STREAM_TYPE } type; uint32_t reg_desc; char path[1024]; char name[1024]; diff --git a/libhb/reader.c b/libhb/reader.c index bd3758eea..d506719d4 100644 --- a/libhb/reader.c +++ b/libhb/reader.c @@ -236,7 +236,8 @@ static void ReaderFunc( void * _r ) if ( !( r->dvd = hb_dvd_init( r->title->path ) ) ) return; } - else if ( r->title->type == HB_STREAM_TYPE ) + else if ( r->title->type == HB_STREAM_TYPE || + r->title->type == HB_FF_STREAM_TYPE ) { if ( !( r->stream = hb_stream_open( r->title->path, r->title ) ) ) return; diff --git a/libhb/scan.c b/libhb/scan.c index bec45d373..7b563638a 100644 --- a/libhb/scan.c +++ b/libhb/scan.c @@ -555,8 +555,8 @@ static int DecodePreviews( hb_scan_t * data, hb_title_t * title ) } // If it's a BD, we can relax this a bit. Since seeks will // at least get us to a recovery point. - if (data->bd) - vidskip = 4; + if (data->bd || title->type == HB_FF_STREAM_TYPE) + vidskip = 2; } for( j = 0; j < 10240 ; j++ ) diff --git a/libhb/stream.c b/libhb/stream.c index 64fa6cba4..5b4d248d0 100644 --- a/libhb/stream.c +++ b/libhb/stream.c @@ -3271,7 +3271,7 @@ static hb_title_t *ffmpeg_title_scan( hb_stream_t *stream ) // 'Barebones Title' hb_title_t *title = hb_title_init( stream->path, 0 ); - title->type = HB_STREAM_TYPE; + title->type = HB_FF_STREAM_TYPE; title->index = 1; // Copy part of the stream path to the title name @@ -3309,6 +3309,9 @@ static hb_title_t *ffmpeg_title_scan( hb_stream_t *stream ) title->video_id = i; stream->ffmpeg_video_id = i; + if ( context->codec_id == CODEC_ID_H264 ) + title->flags |= HBTF_NO_IDR; + // We have to use the 'internal' avcodec decoder because // it needs to share the codec context from this video // stream. The parser internal to av_read_frame diff --git a/macosx/Controller.m b/macosx/Controller.m index 1e3f50547..7af452a98 100644 --- a/macosx/Controller.m +++ b/macosx/Controller.m @@ -1901,7 +1901,7 @@ static NSString * ChooseSourceIdentifier = @"Choose Source It } /* if we are a stream, select the first title */ - if (title->type == HB_STREAM_TYPE) + if (title->type == HB_STREAM_TYPE || title->type == HB_FF_STREAM_TYPE) { [fSrcTitlePopUp selectItemAtIndex: 0]; } @@ -4195,7 +4195,8 @@ bool one_burned = FALSE; hb_list_item( list, [fSrcTitlePopUp indexOfSelectedItem] ); /* If we are a stream type and a batch scan, grok the output file name from title->name upon title change */ - if (title->type == HB_STREAM_TYPE && hb_list_count( list ) > 1 ) + if ((title->type == HB_STREAM_TYPE || title->type == HB_FF_STREAM_TYPE) && + hb_list_count( list ) > 1 ) { /* we set the default name according to the new title->name */ [fDstFile2Field setStringValue: [NSString stringWithFormat: diff --git a/test/test.c b/test/test.c index c6363a036..97ecfd3e9 100644 --- a/test/test.c +++ b/test/test.c @@ -385,7 +385,7 @@ static void PrintTitleInfo( hb_title_t * title ) { fprintf( stderr, " + Main Feature\n" ); } - if ( title->type == HB_STREAM_TYPE ) + if ( title->type == HB_STREAM_TYPE || title->type == HB_FF_STREAM_TYPE ) { fprintf( stderr, " + stream: %s\n", title->path ); } |