diff --git a/shaka/src/media/apple_video_renderer.cc b/shaka/src/media/apple_video_renderer.cc index c2a926bc..f46a49d4 100644 --- a/shaka/src/media/apple_video_renderer.cc +++ b/shaka/src/media/apple_video_renderer.cc @@ -59,7 +59,8 @@ CGImageRef AppleVideoRenderer::Impl::Render( if (delay) *delay = loc_delay; - if (!frame || frame == prev_frame_) + const bool is_paused = player_->PlaybackState() == VideoPlaybackState::Paused; + if (!frame || (frame == prev_frame_ && !is_paused)) return nullptr; if (sample_aspect_ratio) diff --git a/shaka/src/media/video_renderer_common.h b/shaka/src/media/video_renderer_common.h index 0462f237..0c8a8d6f 100644 --- a/shaka/src/media/video_renderer_common.h +++ b/shaka/src/media/video_renderer_common.h @@ -51,12 +51,13 @@ class VideoRendererCommon : public VideoRenderer, MediaPlayer::Client { struct VideoPlaybackQuality VideoPlaybackQuality() const override; bool SetVideoFillMode(VideoFillMode mode) override; + protected: + mutable Mutex mutex_; + const MediaPlayer* player_; + private: void OnSeeking() override; - mutable Mutex mutex_; - - const MediaPlayer* player_; const DecodedStream* input_; struct VideoPlaybackQuality quality_; std::atomic fill_mode_;