+ if (c->video) {
+ video.reset (new VideoDecoder (this, c, log));
+ _pts_offset = pts_offset (c->ffmpeg_audio_streams(), c->first_video(), c->active_video_frame_rate());
+ } else {
+ _pts_offset = ContentTime ();
+ }
+
+ if (c->audio) {
+ audio.reset (new AudioDecoder (this, c->audio, fast, log));
+ }
+
+ if (c->subtitle) {
+ subtitle.reset (
+ new SubtitleDecoder (
+ this,
+ c->subtitle,
+ bind (&FFmpegDecoder::image_subtitles_during, this, _1, _2),
+ bind (&FFmpegDecoder::text_subtitles_during, this, _1, _2)
+ )
+ );
+ }