X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fpiece.h;h=0adc8fb32454894ea2e7758f6a0dccea1d106cdb;hb=de9cbfbbfcf2ecc9d2579c65703b54f42e4a2c32;hp=976409381d3a8744c69f5f14e53f67a5ca688e08;hpb=73f52e94953848c696725defd3d7f5c4c30707e2;p=dcpomatic.git diff --git a/src/lib/piece.h b/src/lib/piece.h index 976409381..0adc8fb32 100644 --- a/src/lib/piece.h +++ b/src/lib/piece.h @@ -1,27 +1,30 @@ /* - Copyright (C) 2013-2014 Carl Hetherington + Copyright (C) 2013-2020 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + DCP-o-matic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ #ifndef DCPOMATIC_PIECE_H #define DCPOMATIC_PIECE_H +#include "audio_stream.h" +#include "dcpomatic_time.h" +#include "frame_rate_change.h" #include "types.h" -#include "video_content.h" class Content; class Decoder; @@ -29,15 +32,21 @@ class Decoder; class Piece { public: - Piece (boost::shared_ptr c, boost::shared_ptr d, FrameRateChange f) - : content (c) - , decoder (d) - , frc (f) - {} - - boost::shared_ptr content; - boost::shared_ptr decoder; - FrameRateChange frc; + Piece (boost::shared_ptr c, boost::shared_ptr d, FrameRateChange f); + + void update_pull_to (dcpomatic::DCPTime& pull_to) const; + void set_last_push_end (AudioStreamPtr stream, dcpomatic::DCPTime last_push_end); + + dcpomatic::DCPTime position () const; + dcpomatic::DCPTime end (boost::shared_ptr film) const; + +private: + std::vector > _content; + std::vector > _decoder; + FrameRateChange _frc; + bool _done; + + std::map _stream_last_push_end; }; #endif