summaryrefslogtreecommitdiffstats
path: root/media/player/movie.cc
diff options
context:
space:
mode:
Diffstat (limited to 'media/player/movie.cc')
-rw-r--r--media/player/movie.cc25
1 files changed, 25 insertions, 0 deletions
diff --git a/media/player/movie.cc b/media/player/movie.cc
index 32594eb..1ef840f 100644
--- a/media/player/movie.cc
+++ b/media/player/movie.cc
@@ -107,6 +107,31 @@ float Movie::GetPlayRate() {
return play_rate_;
}
+// Get movie duration in seconds.
+float Movie::GetDuration() {
+ float duration = 0.f;
+ if (pipeline_.get())
+ duration = (pipeline_->GetDuration()).InMicroseconds() / 1000000.0f;
+ return duration;
+}
+
+// Get current movie position in seconds.
+float Movie::GetPosition() {
+ float position = 0.f;
+ if (pipeline_.get())
+ position = (pipeline_->GetInterpolatedTime()).InMicroseconds() / 1000000.0f;
+ return position;
+}
+
+// Set current movie position in seconds.
+void Movie::SetPosition(float position) {
+ int64 us = static_cast<int64>(position * 1000000);
+ base::TimeDelta time = base::TimeDelta::FromMicroseconds(us);
+ if (pipeline_.get())
+ pipeline_->Seek(time, NULL);
+}
+
+
// Set playback pause.
void Movie::SetPause(bool pause) {
enable_pause_ = pause;