/*
- Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2016 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
#include "decoder.h"
-#include <iostream>
+#include "video_decoder.h"
+#include "audio_decoder.h"
+#include "subtitle_decoder.h"
-using std::cout;
-using boost::optional;
-
-void
-Decoder::maybe_seek (optional<ContentTime>& position, ContentTime time, bool accurate)
+ContentTime
+Decoder::position () const
{
- if (!position) {
- /* A seek has just happened */
- return;
+ ContentTime pos;
+
+ if (video && video->position()) {
+ pos = min (pos, video->position().get());
+ }
+
+ if (audio && audio->position()) {
+ pos = min (pos, audio->position().get());
}
- if (time >= *position && time < (*position + ContentTime::from_seconds(1))) {
- /* No need to seek: caller should just pass() */
- return;
+ if (subtitle && subtitle->position()) {
+ pos = min (pos, subtitle->position().get());
}
- position.reset ();
- seek (time, accurate);
+ return pos;
}