diff options
-rw-r--r-- | include/media/mediaplayer.h | 2 | ||||
-rw-r--r-- | media/libstagefright/AwesomePlayer.cpp | 7 | ||||
-rw-r--r-- | media/libstagefright/include/AwesomePlayer.h | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/include/media/mediaplayer.h b/include/media/mediaplayer.h index 1fad383..f7cebc5 100644 --- a/include/media/mediaplayer.h +++ b/include/media/mediaplayer.h @@ -99,6 +99,8 @@ enum media_info_type { // The player was started because it was used as the next player for another // player, which just completed playback MEDIA_INFO_STARTED_AS_NEXT = 2, + // The player just pushed the very first video frame for rendering + MEDIA_INFO_RENDERING_START = 3, // 7xx // The video is too complex for the decoder: it can't decode frames fast // enough. Possibly only the audio plays fine at this stage. diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp index 661d7cd..664d5dd 100644 --- a/media/libstagefright/AwesomePlayer.cpp +++ b/media/libstagefright/AwesomePlayer.cpp @@ -183,6 +183,7 @@ AwesomePlayer::AwesomePlayer() : mQueueStarted(false), mUIDValid(false), mTimeSource(NULL), + mVideoRenderingStarted(false), mVideoRendererIsPreview(false), mAudioPlayer(NULL), mDisplayWidth(0), @@ -468,6 +469,7 @@ void AwesomePlayer::reset() { } void AwesomePlayer::reset_l() { + mVideoRenderingStarted = false; mActiveAudioTrackIndex = -1; mDisplayWidth = 0; mDisplayHeight = 0; @@ -1805,6 +1807,11 @@ void AwesomePlayer::onVideoEvent() { if (mVideoRenderer != NULL) { mSinceLastDropped++; mVideoRenderer->render(mVideoBuffer); + if (!mVideoRenderingStarted) { + mVideoRenderingStarted = true; + notifyListener_l(MEDIA_INFO, MEDIA_INFO_RENDERING_START); + } + } mVideoBuffer->release(); diff --git a/media/libstagefright/include/AwesomePlayer.h b/media/libstagefright/include/AwesomePlayer.h index 68380a8..1422687 100644 --- a/media/libstagefright/include/AwesomePlayer.h +++ b/media/libstagefright/include/AwesomePlayer.h @@ -166,6 +166,7 @@ private: sp<MediaSource> mVideoTrack; sp<MediaSource> mVideoSource; sp<AwesomeRenderer> mVideoRenderer; + bool mVideoRenderingStarted; bool mVideoRendererIsPreview; ssize_t mActiveAudioTrackIndex; |