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;