diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-11-21 02:45:30 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-11-21 02:45:30 +0000 |
| commit | 84012cdd64f451891febd36154b7226ea21a899b (patch) | |
| tree | 096fb898aa14d936dfc8f8598a6908337508233c /src/lib/video_mxf_decoder.cc | |
| parent | 254b3044d72de6b033d7c584f5abd2b9aa70aad5 (diff) | |
Put Film pointer into Decoder.
Diffstat (limited to 'src/lib/video_mxf_decoder.cc')
| -rw-r--r-- | src/lib/video_mxf_decoder.cc | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/lib/video_mxf_decoder.cc b/src/lib/video_mxf_decoder.cc index 7d9656dd5..3c4002ca2 100644 --- a/src/lib/video_mxf_decoder.cc +++ b/src/lib/video_mxf_decoder.cc @@ -31,8 +31,9 @@ using boost::shared_ptr; using boost::optional; -VideoMXFDecoder::VideoMXFDecoder (shared_ptr<const VideoMXFContent> content) - : _content (content) +VideoMXFDecoder::VideoMXFDecoder (shared_ptr<const Film> film, shared_ptr<const VideoMXFContent> content) + : Decoder (film) + , _content (content) { video.reset (new VideoDecoder (this, content)); @@ -68,18 +69,19 @@ VideoMXFDecoder::VideoMXFDecoder (shared_ptr<const VideoMXFContent> content) } bool -VideoMXFDecoder::pass (shared_ptr<const Film> film) +VideoMXFDecoder::pass () { - double const vfr = _content->active_video_frame_rate (film); + double const vfr = _content->active_video_frame_rate (film()); int64_t const frame = _next.frames_round (vfr); + if (frame >= _content->video->length()) { return true; } if (_mono_reader) { video->emit ( - film, + film(), shared_ptr<ImageProxy> ( new J2KImageProxy (_mono_reader->get_frame(frame), _size, AV_PIX_FMT_XYZ12LE, optional<int>()) ), @@ -87,14 +89,14 @@ VideoMXFDecoder::pass (shared_ptr<const Film> film) ); } else { video->emit ( - film, + film(), shared_ptr<ImageProxy> ( new J2KImageProxy (_stereo_reader->get_frame(frame), _size, dcp::EYE_LEFT, AV_PIX_FMT_XYZ12LE, optional<int>()) ), frame ); video->emit ( - film, + film(), shared_ptr<ImageProxy> ( new J2KImageProxy (_stereo_reader->get_frame(frame), _size, dcp::EYE_RIGHT, AV_PIX_FMT_XYZ12LE, optional<int>()) ), @@ -107,8 +109,8 @@ VideoMXFDecoder::pass (shared_ptr<const Film> film) } void -VideoMXFDecoder::seek (shared_ptr<const Film> film, ContentTime t, bool accurate) +VideoMXFDecoder::seek (ContentTime t, bool accurate) { - Decoder::seek (film, t, accurate); + Decoder::seek (t, accurate); _next = t; } |
