From 45b8f81a2e184e2b7deaf47afc49483766191a27 Mon Sep 17 00:00:00 2001 From: jstebbins Date: Tue, 27 Mar 2012 20:11:26 +0000 Subject: Rework filter pipeline This patch enhances the filter objects. The 2 key improvements are: 1. A filter can change the image dimensions as frames pass through it. 2. A filter can output more than one frame. In addition, I have: Moved cropping & scalling into a filter object Added 90 degree rotation to the rotate filter Moved subtitle burn-in rendering to a filter object. Moved VFR/CFR handling into a framerate shaping filter object. Removed render.c since all it's responsibilities got moved to filters. Improves VOBSUB and SSA subtitle handling. Allows subtitle animations. SSA karaoke support. My apologies in advance if anything breaks ;) git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4546 b64f7644-9d1e-0410-96f1-a4d463321fa5 --- libhb/deccc608sub.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'libhb/deccc608sub.c') diff --git a/libhb/deccc608sub.c b/libhb/deccc608sub.c index b9033e6d6..aaa3d020d 100644 --- a/libhb/deccc608sub.c +++ b/libhb/deccc608sub.c @@ -1497,10 +1497,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( length + 1 ); - buffer->start = wb->data608->current_visible_start_ms; - buffer->stop = get_fts(wb); + buffer->s.start = wb->data608->current_visible_start_ms; + buffer->s.stop = get_fts(wb); memcpy( buffer->data, wb->subline, length + 1 ); - //hb_log("CC %"PRId64": %s", buffer->stop, wb->subline); + //hb_log("CC %"PRId64": %s", buffer->s.stop, wb->subline); if (wb->hb_last_buffer) { wb->hb_last_buffer->next = buffer; @@ -1650,8 +1650,8 @@ int write_cc_buffer_as_srt (struct eia608_screen *data, struct s_write *wb) if (wb->enc_buffer_used) { hb_buffer_t *buffer = hb_buffer_init( wb->enc_buffer_used + 1 ); - buffer->start = ms_start; - buffer->stop = ms_end; + buffer->s.start = ms_start; + buffer->s.stop = ms_end; memcpy( buffer->data, wb->enc_buffer, wb->enc_buffer_used + 1 ); if (wb->hb_last_buffer) { wb->hb_last_buffer->next = buffer; @@ -2504,7 +2504,7 @@ int decccWork( hb_work_object_t * w, hb_buffer_t ** buf_in, return HB_WORK_DONE; } - pv->cc608->last_pts = in->start; + pv->cc608->last_pts = in->s.start; process608(in->data, in->size, pv->cc608); -- cgit v1.2.3