summaryrefslogtreecommitdiffstats
path: root/libhb
diff options
context:
space:
mode:
authoreddyg <[email protected]>2009-05-06 22:58:21 +0000
committereddyg <[email protected]>2009-05-06 22:58:21 +0000
commite797f1b5f0a4c0388fac3dadaab836a84c7cfe77 (patch)
treed104c243bae5f9b71a48d875d30791967c1cacf0 /libhb
parent608dfc094e62c0734cc22ffdcda73c3f60391924 (diff)
Removed double EOF for CC's (one from dvd and one from cc), fixed compiler warnings for CC.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2394 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'libhb')
-rw-r--r--libhb/deccc608sub.c33
-rw-r--r--libhb/reader.c2
-rw-r--r--libhb/sync.c20
3 files changed, 33 insertions, 22 deletions
diff --git a/libhb/deccc608sub.c b/libhb/deccc608sub.c
index b351be93d..18d0e6b18 100644
--- a/libhb/deccc608sub.c
+++ b/libhb/deccc608sub.c
@@ -1490,10 +1490,10 @@ void write_cc_line_as_transcript (struct eia608_screen *data, struct s_write *wb
/*
* Put this subtitle in a hb_buffer_t and shove it into the subtitle fifo
*/
- buffer = hb_buffer_init( strlen( wb->subline ) + 1 );
+ buffer = hb_buffer_init( length + 1 );
buffer->start = wb->data608->current_visible_start_ms;
buffer->stop = get_fts(wb);
- strcpy( buffer->data, wb->subline );
+ memcpy( buffer->data, wb->subline, length + 1 );
//hb_log("CC %lld: %s", buffer->stop, wb->subline);
hb_fifo_push( wb->subtitle->fifo_raw, buffer );
@@ -1615,19 +1615,22 @@ int write_cc_buffer_as_srt (struct eia608_screen *data, struct s_write *wb)
hb_log ("\r");
hb_log ("%s\n",wb->subline);
}
- hb_buffer_t *buffer = hb_buffer_init( strlen( wb->subline ) + 1 );
- buffer->start = ms_start;
- buffer->stop = ms_end;
- strcpy( buffer->data, wb->subline );
-
- hb_fifo_push( wb->subtitle->fifo_raw, buffer );
-
- //fwrite (wb->subline, 1, length, wb->fh);
- XMLRPC_APPEND(wb->subline,length);
- //fwrite (encoded_crlf, 1, encoded_crlf_length,wb->fh);
- XMLRPC_APPEND(encoded_crlf,encoded_crlf_length);
- wrote_something=1;
- // fhb_log (wb->fh,encoded_crlf);
+ if (length > 0)
+ {
+ hb_buffer_t *buffer = hb_buffer_init( length + 1 );
+ buffer->start = ms_start;
+ buffer->stop = ms_end;
+ memcpy( buffer->data, wb->subline, length + 1 );
+
+ hb_fifo_push( wb->subtitle->fifo_raw, buffer );
+
+ //fwrite (wb->subline, 1, length, wb->fh);
+ XMLRPC_APPEND(wb->subline,length);
+ //fwrite (encoded_crlf, 1, encoded_crlf_length,wb->fh);
+ XMLRPC_APPEND(encoded_crlf,encoded_crlf_length);
+ wrote_something=1;
+ // fhb_log (wb->fh,encoded_crlf);
+ }
}
}
if (debug_608)
diff --git a/libhb/reader.c b/libhb/reader.c
index f7470bfa2..dd478151b 100644
--- a/libhb/reader.c
+++ b/libhb/reader.c
@@ -460,7 +460,7 @@ static void ReaderFunc( void * _r )
hb_subtitle_t *subtitle;
for( n = 0; ( subtitle = hb_list_item( r->job->title->list_subtitle, n ) ); ++n )
{
- if ( subtitle->fifo_in )
+ if ( subtitle->fifo_in && subtitle->source == VOBSUB)
push_buf( r, subtitle->fifo_in, hb_buffer_init(0) );
}
diff --git a/libhb/sync.c b/libhb/sync.c
index a0dfd6627..67093d1e6 100644
--- a/libhb/sync.c
+++ b/libhb/sync.c
@@ -416,17 +416,25 @@ static void SyncVideo( hb_work_object_t * w )
*
* Bypass the sync fifo altogether.
*/
- if( sub->size == 0 || sub->start < cur->start )
+ if( sub->size == 0 )
{
- uint64_t duration;
- duration = sub->stop - sub->start;
sub = hb_fifo_get( subtitle->fifo_raw );
- sub->start = pv->next_start;
- sub->stop = sub->start + duration;
hb_fifo_push( subtitle->fifo_out, sub );
- } else {
sub = NULL;
break;
+ } else {
+ if( sub->start < cur->start )
+ {
+ uint64_t duration;
+ duration = sub->stop - sub->start;
+ sub = hb_fifo_get( subtitle->fifo_raw );
+ sub->start = pv->next_start;
+ sub->stop = sub->start + duration;
+ hb_fifo_push( subtitle->fifo_out, sub );
+ } else {
+ sub = NULL;
+ break;
+ }
}
}
}