From 17cea71c34ed6bdba67aac8614572c7511844c2a Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 12 Nov 2012 21:04:06 +0000 Subject: Untested; more movement of stuff out of decoder. --- src/lib/transcoder.cc | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src/lib/transcoder.cc') diff --git a/src/lib/transcoder.cc b/src/lib/transcoder.cc index ac908768e..f53fc4001 100644 --- a/src/lib/transcoder.cc +++ b/src/lib/transcoder.cc @@ -30,6 +30,8 @@ #include "encoder.h" #include "decoder_factory.h" #include "film.h" +#include "matcher.h" +#include "delay_line.h" using std::string; using boost::shared_ptr; @@ -47,12 +49,21 @@ Transcoder::Transcoder (shared_ptr f, shared_ptr o, Job* j, { assert (_encoder); + AudioStream st = f->audio_stream().get(); + + _matcher.reset (new Matcher (f->log(), st.sample_rate(), f->frames_per_second())); + _delay_line.reset (new DelayLine (f->log(), st.channels(), f->audio_delay() * st.sample_rate() / 1000)); + /* Set up the decoder to use the film's set streams */ _decoder->set_audio_stream (f->audio_stream ()); _decoder->set_subtitle_stream (f->subtitle_stream ()); - - _decoder->Video.connect (bind (&Encoder::process_video, e, _1, _2, _3)); - _decoder->Audio.connect (bind (&Encoder::process_audio, e, _1, _2)); + + _decoder->connect_video (_matcher); + _matcher->connect_video (_encoder); + + _decoder->connect_audio (_delay_line); + _delay_line->connect_audio (_matcher); + _matcher->connect_audio (_delay_line); } /** Run the decoder, passing its output to the encoder, until the decoder -- cgit v1.2.3