]> granicus.if.org Git - handbrake/commitdiff
libhb: fix some log spam when scanning h.264 BDs
authorjstebbins <jstebbins.hb@gmail.com>
Mon, 1 Aug 2011 17:14:49 +0000 (17:14 +0000)
committerjstebbins <jstebbins.hb@gmail.com>
Mon, 1 Aug 2011 17:14:49 +0000 (17:14 +0000)
Some residual data from the previous preview was being sent to the
decoder after a seek causing the decoder to complain.

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4147 b64f7644-9d1e-0410-96f1-a4d463321fa5

libhb/bd.c
libhb/internal.h
libhb/stream.c

index 4eb9fceb62774d513446ab528abf05d78cd7c52a..d61e5217a9be7c2efef26fbf79bd4d6c40b1ac9a 100644 (file)
@@ -520,6 +520,7 @@ int hb_bd_seek( hb_bd_t * d, float f )
 
     bd_seek(d->bd, packet * 192);
     d->next_chap = bd_get_current_chapter( d->bd ) + 1;
+    hb_ts_stream_reset(d->stream);
     return 1;
 }
 
index 724ab7c2ed00400e92c069a7f8f2162eae71e73c..c4b30ee4a0626e484ccdccf016311cc3a34ef22c 100644 (file)
@@ -255,6 +255,7 @@ void          hb_bd_set_angle( hb_bd_t * d, int angle );
 int           hb_bd_main_feature( hb_bd_t * d, hb_list_t * list_title );
 
 hb_stream_t * hb_bd_stream_open( hb_title_t *title );
+void hb_ts_stream_reset(hb_stream_t *stream);
 hb_stream_t * hb_stream_open( char * path, hb_title_t *title, int scan );
 void            hb_stream_close( hb_stream_t ** );
 hb_title_t * hb_stream_title_scan( hb_stream_t *, hb_title_t *);
index 84d6c1a63d9be038404caff9b3db3018e2bb3d6e..a95ce532c7c6f6a378753481c8a9138462d867ad 100644 (file)
@@ -206,7 +206,6 @@ static void hb_stream_duration(hb_stream_t *stream, hb_title_t *inTitle);
 static void hb_ts_stream_init(hb_stream_t *stream);
 static void hb_ts_stream_find_pids(hb_stream_t *stream);
 static hb_buffer_t * hb_ts_stream_decode(hb_stream_t *stream);
-static void hb_ts_stream_reset(hb_stream_t *stream);
 static void hb_ts_stream_set_audio_list(hb_list_t *list_audio, hb_stream_t *stream);
 static void hb_ps_stream_find_audio_ids(hb_stream_t *stream, hb_title_t *title);
 static off_t align_to_next_packet(hb_stream_t *stream);
@@ -1579,6 +1578,7 @@ int hb_stream_seek( hb_stream_t * stream, float f )
         // We need to drop the current decoder output and move
         // forwards to the next transport stream packet.
         hb_ts_stream_reset(stream);
+        align_to_next_packet(stream);
         if ( f > 0 )
         {
             if ( stream->ts_IDRs )
@@ -3054,7 +3054,7 @@ static hb_buffer_t * hb_ts_stream_decode( hb_stream_t *stream )
     return NULL;
 }
 
-static void hb_ts_stream_reset(hb_stream_t *stream)
+void hb_ts_stream_reset(hb_stream_t *stream)
 {
     int i;
 
@@ -3080,8 +3080,6 @@ static void hb_ts_stream_reset(hb_stream_t *stream)
     stream->errors = 0;
     stream->last_error_frame = -10000;
     stream->last_error_count = 0;
-
-    align_to_next_packet(stream);
 }
 
 // ------------------------------------------------------------------