From 7516d989b1a1afa7ec2080e407e941d93c524e76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Mon, 30 Aug 2010 09:50:47 +0000 Subject: [PATCH] Added FindKeyFrameForFrame() to the VideoTrackSupplier API and the implementation to MediaTrackerVideoSupplier. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38438 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../mediaplayer/supplier/MediaTrackVideoSupplier.cpp | 11 +++++++++++ .../mediaplayer/supplier/MediaTrackVideoSupplier.h | 1 + src/apps/mediaplayer/supplier/VideoTrackSupplier.h | 1 + 3 files changed, 13 insertions(+) diff --git a/src/apps/mediaplayer/supplier/MediaTrackVideoSupplier.cpp b/src/apps/mediaplayer/supplier/MediaTrackVideoSupplier.cpp index 7c56f3fc99..96f49fa25d 100644 --- a/src/apps/mediaplayer/supplier/MediaTrackVideoSupplier.cpp +++ b/src/apps/mediaplayer/supplier/MediaTrackVideoSupplier.cpp @@ -141,6 +141,17 @@ delete bitmap; } +status_t +MediaTrackVideoSupplier::FindKeyFrameForFrame(int64* frame) +{ + if (!fVideoTrack) + return B_NO_INIT; + + return fVideoTrack->FindKeyFrameForFrame(frame, + B_MEDIA_SEEK_CLOSEST_BACKWARD); +} + + status_t MediaTrackVideoSupplier::SeekToTime(bigtime_t* performanceTime) { diff --git a/src/apps/mediaplayer/supplier/MediaTrackVideoSupplier.h b/src/apps/mediaplayer/supplier/MediaTrackVideoSupplier.h index 93613358b9..4c27720aec 100644 --- a/src/apps/mediaplayer/supplier/MediaTrackVideoSupplier.h +++ b/src/apps/mediaplayer/supplier/MediaTrackVideoSupplier.h @@ -28,6 +28,7 @@ class MediaTrackVideoSupplier : public VideoTrackSupplier { bigtime_t* performanceTime, const media_format* format, bool& wasCached); + virtual status_t FindKeyFrameForFrame(int64* frame); virtual status_t SeekToTime(bigtime_t* performanceTime); virtual status_t SeekToFrame(int64* frame); diff --git a/src/apps/mediaplayer/supplier/VideoTrackSupplier.h b/src/apps/mediaplayer/supplier/VideoTrackSupplier.h index c6e5a7490b..cc9e5c5eec 100644 --- a/src/apps/mediaplayer/supplier/VideoTrackSupplier.h +++ b/src/apps/mediaplayer/supplier/VideoTrackSupplier.h @@ -25,6 +25,7 @@ class VideoTrackSupplier { bigtime_t* performanceTime, const media_format* format, bool& wasCached) = 0; + virtual status_t FindKeyFrameForFrame(int64* frame) = 0; virtual status_t SeekToTime(bigtime_t* performanceTime) = 0; virtual status_t SeekToFrame(int64* frame) = 0;