2 Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 #ifndef DCPOMATIC_LIB_DECODED_H
21 #define DCPOMATIC_LIB_DECODED_H
41 virtual ~Decoded () {}
43 virtual void set_dcp_times (float speed_up, DCPTime offset) = 0;
45 ContentTime content_time;
49 /** One frame of video from a VideoDecoder */
50 class DecodedVideo : public Decoded
58 DecodedVideo (boost::shared_ptr<const Image> im, Eyes e, bool s, ContentTime ct)
65 void set_dcp_times (float speed_up, DCPTime offset) {
66 dcp_time = rint (content_time / speed_up) + offset;
69 boost::shared_ptr<const Image> image;
74 class DecodedAudio : public Decoded
77 DecodedAudio (boost::shared_ptr<const AudioBuffers> d, ContentTime ct)
82 void set_dcp_times (float speed_up, DCPTime offset) {
83 dcp_time = rint (content_time / speed_up) + offset;
86 boost::shared_ptr<const AudioBuffers> data;
89 class DecodedSubtitle : public Decoded
97 DecodedSubtitle (boost::shared_ptr<Image> im, dcpomatic::Rect<double> r, ContentTime f, ContentTime t)
101 , content_time_to (t)
105 void set_dcp_times (float speed_up, DCPTime offset) {
106 dcp_time = rint (content_time / speed_up) + offset;
107 dcp_time_to = rint (content_time_to / speed_up) + offset;
110 boost::shared_ptr<Image> image;
111 dcpomatic::Rect<double> rect;
112 ContentTime content_time_to;