Skip to content

Commit

Permalink
feat(mediaplayer): not return buffer when secret playback
Browse files Browse the repository at this point in the history
Signed-off-by: pingkai <pingkai010@gmail.com>
  • Loading branch information
pingkai committed Jun 4, 2020
1 parent a390893 commit b26f337
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 5 deletions.
20 changes: 15 additions & 5 deletions mediaPlayer/SuperMediaPlayer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1928,7 +1928,7 @@ namespace Cicada {
duration = getPCMFrameDuration(avafFrame->ToAVFrame());
}

if (mFrameCb) {
if (mFrameCb && !mSecretPlayBack) {
mFrameCb(mFrameCbUserData, avafFrame);
}

Expand Down Expand Up @@ -2136,7 +2136,7 @@ namespace Cicada {
AF_LOGW("drop frame,master played time is %lld,video pts is %lld\n", masterPlayedTime, videoPts);
videoFrame->setDiscard(true);

if (mFrameCb) {
if (mFrameCb && !mSecretPlayBack) {
mFrameCb(mFrameCbUserData, videoFrame.get());
}
VideoRenderCallback(this, videoPts, nullptr);
Expand Down Expand Up @@ -2231,7 +2231,7 @@ namespace Cicada {

void SuperMediaPlayer::SendVideoFrameToRender(unique_ptr<IAFFrame> frame, bool valid)
{
if (mFrameCb) {
if (mFrameCb && !mSecretPlayBack) {
bool rendered = mFrameCb(mFrameCbUserData, frame.get());
if (rendered) {
VideoRenderCallback(this, frame->getInfo().pts, nullptr);
Expand Down Expand Up @@ -2453,6 +2453,12 @@ namespace Cicada {
return ret;
}

// FIXME: transfer to frame
if (pMedia_Frame->isProtected() && !mSecretPlayBack) {
AF_LOGI("SecretPlayBack\n");
mSecretPlayBack = true;
}

pFrame = pMedia_Frame.get();
mUtil.notifyRead(MediaPlayerUtil::readEvent_Got);

Expand Down Expand Up @@ -2512,6 +2518,8 @@ namespace Cicada {

if (pFrame->getInfo().streamIndex == mCurrentVideoIndex ||
pFrame->getInfo().streamIndex == mWillChangedVideoStreamIndex) {

// FIXME: return non slice nal only when protected packet
if (mMediaFrameCb) {
// TODO: change to std::unique_ptr<IAFPacket>
mMediaFrameCb(mMediaFrameCbArg, pMedia_Frame, ST_TYPE_VIDEO);
Expand Down Expand Up @@ -2606,15 +2614,15 @@ namespace Cicada {
}
}

if (mMediaFrameCb) {
if (mMediaFrameCb && !pMedia_Frame->isProtected()) {
// TODO: change to std::unique_ptr<IAFPacket>
mMediaFrameCb(mMediaFrameCbArg, pMedia_Frame, ST_TYPE_AUDIO);
}

mBufferController.AddPacket(move(pMedia_Frame), BUFFER_TYPE_AUDIO);
} else if (pFrame->getInfo().streamIndex == mCurrentSubtitleIndex ||
pFrame->getInfo().streamIndex == mWillChangedSubtitleStreamIndex) {
if (mMediaFrameCb) {
if (mMediaFrameCb && !pMedia_Frame->isProtected()) {
// TODO: change to std::unique_ptr<IAFPacket>
mMediaFrameCb(mMediaFrameCbArg, pMedia_Frame, ST_TYPE_SUB);
}
Expand Down Expand Up @@ -3288,6 +3296,8 @@ namespace Cicada {
if (mVideoRender) {
mVideoRender->setSpeed(1);
}

mSecretPlayBack = false;
}

int SuperMediaPlayer::GetCurrentStreamIndex(StreamType type)
Expand Down
2 changes: 2 additions & 0 deletions mediaPlayer/SuperMediaPlayer.h
Original file line number Diff line number Diff line change
Expand Up @@ -485,6 +485,8 @@ namespace Cicada {
bool dropLateVideoFrames = false;
bool waitingForStart = false;
bool mBRendingStart {false};
bool mSecretPlayBack{false};

private:

bool mAutoPlay = false;
Expand Down

0 comments on commit b26f337

Please sign in to comment.