diff --git a/framework/base/media/AVAFPacket.cpp b/framework/base/media/AVAFPacket.cpp index b093bacc9..0efd78052 100644 --- a/framework/base/media/AVAFPacket.cpp +++ b/framework/base/media/AVAFPacket.cpp @@ -68,7 +68,7 @@ uint8_t *AVAFPacket::getData() return mpkt->data; } -unique_ptr AVAFPacket::clone() +unique_ptr AVAFPacket::clone() const { return unique_ptr(new AVAFPacket(mpkt, mIsProtected)); } diff --git a/framework/base/media/AVAFPacket.h b/framework/base/media/AVAFPacket.h index 333ac6cc0..990ddc692 100644 --- a/framework/base/media/AVAFPacket.h +++ b/framework/base/media/AVAFPacket.h @@ -40,7 +40,7 @@ class AVAFPacket : public IAFPacket { mIsProtected = true; } - std::unique_ptr clone() override; + std::unique_ptr clone() const override; int64_t getSize() override; diff --git a/framework/base/media/IAFPacket.h b/framework/base/media/IAFPacket.h index 1bbbaa306..88538d61f 100644 --- a/framework/base/media/IAFPacket.h +++ b/framework/base/media/IAFPacket.h @@ -58,7 +58,7 @@ class CICADA_CPLUS_EXTERN IAFPacket { virtual ~IAFPacket() = default; - virtual std::unique_ptr clone() = 0; + virtual std::unique_ptr clone() const = 0; //TODO renturn const uint8_t, now for framework use virtual uint8_t *getData() = 0; diff --git a/framework/base/media/subTitlePacket.cpp b/framework/base/media/subTitlePacket.cpp index 7c94e5cf3..50e832b72 100644 --- a/framework/base/media/subTitlePacket.cpp +++ b/framework/base/media/subTitlePacket.cpp @@ -32,7 +32,7 @@ uint8_t *subTitlePacket::getData() return mpBuffer; } -std::unique_ptr subTitlePacket::clone() +std::unique_ptr subTitlePacket::clone() const { return std::unique_ptr(new subTitlePacket(mpBuffer, mSize, mInfo.pts, mInfo.duration)); } diff --git a/framework/base/media/subTitlePacket.h b/framework/base/media/subTitlePacket.h index 1f1944610..a908726ea 100644 --- a/framework/base/media/subTitlePacket.h +++ b/framework/base/media/subTitlePacket.h @@ -14,7 +14,7 @@ class subTitlePacket : public IAFPacket { ~subTitlePacket() override; - std::unique_ptr clone() override; + std::unique_ptr clone() const override; uint8_t *getData() override; diff --git a/framework/cacheModule/CacheManager.cpp b/framework/cacheModule/CacheManager.cpp index 2392b2a23..1d38b2a2c 100644 --- a/framework/cacheModule/CacheManager.cpp +++ b/framework/cacheModule/CacheManager.cpp @@ -69,7 +69,7 @@ string CacheManager::init() return mSourceUrl; } -void CacheManager::sendMediaFrame(const unique_ptr &frame, StreamType type) +void CacheManager::sendMediaFrame(const IAFPacket *frame, StreamType type) { if (!mNeedProcessFrame) { return; diff --git a/framework/cacheModule/CacheManager.h b/framework/cacheModule/CacheManager.h index 3c23b0495..ba153a6c8 100644 --- a/framework/cacheModule/CacheManager.h +++ b/framework/cacheModule/CacheManager.h @@ -53,7 +53,7 @@ class CacheManager { void setCacheSuccessCallback(function resultCallback); - void sendMediaFrame(const std::unique_ptr &frame, StreamType type); + void sendMediaFrame(const IAFPacket *frame, StreamType type); private: std::mutex mStopMutex{}; diff --git a/framework/cacheModule/CacheModule.cpp b/framework/cacheModule/CacheModule.cpp index f979548b2..f329eca16 100644 --- a/framework/cacheModule/CacheModule.cpp +++ b/framework/cacheModule/CacheModule.cpp @@ -196,7 +196,7 @@ CacheRet CacheModule::checkCanCache() } -void CacheModule::addFrame(const unique_ptr &frame, StreamType type) +void CacheModule::addFrame(const IAFPacket *frame, StreamType type) { std::unique_lock lock(mReumxerMutex); diff --git a/framework/cacheModule/CacheModule.h b/framework/cacheModule/CacheModule.h index 3e0601abc..4adfbac5b 100644 --- a/framework/cacheModule/CacheModule.h +++ b/framework/cacheModule/CacheModule.h @@ -60,7 +60,7 @@ class CacheModule { bool isMediaInfoSet(); - void addFrame(const unique_ptr& frame, StreamType type); + void addFrame(const IAFPacket *frame, StreamType type); void setErrorCallback(function callback); diff --git a/framework/cacheModule/cache/CacheFileRemuxer.cpp b/framework/cacheModule/cache/CacheFileRemuxer.cpp index 0f408a2bd..99f7d1e2c 100644 --- a/framework/cacheModule/cache/CacheFileRemuxer.cpp +++ b/framework/cacheModule/cache/CacheFileRemuxer.cpp @@ -41,7 +41,7 @@ CacheFileRemuxer::~CacheFileRemuxer() mFrameInfoQueue.clear(); } -void CacheFileRemuxer::addFrame(const unique_ptr &frame, StreamType type) +void CacheFileRemuxer::addFrame(const IAFPacket *frame, StreamType type) { if (frame == nullptr) { mFrameEof = true; diff --git a/framework/cacheModule/cache/CacheFileRemuxer.h b/framework/cacheModule/cache/CacheFileRemuxer.h index 227a95643..6d7c8687f 100644 --- a/framework/cacheModule/cache/CacheFileRemuxer.h +++ b/framework/cacheModule/cache/CacheFileRemuxer.h @@ -36,7 +36,7 @@ class CacheFileRemuxer { ~CacheFileRemuxer(); - void addFrame(const unique_ptr &frame, StreamType type); + void addFrame(const IAFPacket *frame, StreamType type); bool prepare(); diff --git a/mediaPlayer/MediaPlayer.cpp b/mediaPlayer/MediaPlayer.cpp index 8c23bc35e..9c6ca61e7 100644 --- a/mediaPlayer/MediaPlayer.cpp +++ b/mediaPlayer/MediaPlayer.cpp @@ -1085,7 +1085,7 @@ namespace Cicada { mPlayUrlChangedCallback = urlChangedCallbak; } - void MediaPlayer::onMediaFrameCallback(void *arg, const unique_ptr &frame, StreamType type) + void MediaPlayer::onMediaFrameCallback(void *arg, const IAFPacket *frame, StreamType type) { MediaPlayer *player = (MediaPlayer *) arg; @@ -1096,7 +1096,7 @@ namespace Cicada { player->mediaFrameCallback(frame, type); } - void MediaPlayer::mediaFrameCallback(const unique_ptr &frame, StreamType type) + void MediaPlayer::mediaFrameCallback(const IAFPacket *frame, StreamType type) { #ifdef ENABLE_CACHE_MODULE if (mCacheManager) { diff --git a/mediaPlayer/MediaPlayer.h b/mediaPlayer/MediaPlayer.h index 6dbb6d8b2..2f68f0a10 100644 --- a/mediaPlayer/MediaPlayer.h +++ b/mediaPlayer/MediaPlayer.h @@ -387,8 +387,8 @@ namespace Cicada { void abrChanged(int stream); - static void onMediaFrameCallback(void *arg, const unique_ptr &frame, StreamType type); - void mediaFrameCallback(const unique_ptr &frame, StreamType type); + static void onMediaFrameCallback(void *arg, const IAFPacket *frame, StreamType type); + void mediaFrameCallback(const IAFPacket *frame, StreamType type); private: void configPlayer(const MediaPlayerConfig *config) const; diff --git a/mediaPlayer/SuperMediaPlayer.cpp b/mediaPlayer/SuperMediaPlayer.cpp index 4c7362e19..bbea59a50 100644 --- a/mediaPlayer/SuperMediaPlayer.cpp +++ b/mediaPlayer/SuperMediaPlayer.cpp @@ -2508,8 +2508,7 @@ int SuperMediaPlayer::ReadPacket() if (pFrame->getInfo().streamIndex == mCurrentVideoIndex || pFrame->getInfo().streamIndex == mWillChangedVideoStreamIndex) { if (mMediaFrameCb && (!pMedia_Frame->isProtected() || mDrmKeyValid)) { - // TODO: change to std::unique_ptr - mMediaFrameCb(mMediaFrameCbArg, pMedia_Frame, ST_TYPE_VIDEO); + mMediaFrameCb(mMediaFrameCbArg, pMedia_Frame.get(), ST_TYPE_VIDEO); } mBufferController->AddPacket(move(pMedia_Frame), BUFFER_TYPE_VIDEO); @@ -2602,15 +2601,13 @@ int SuperMediaPlayer::ReadPacket() } if (mMediaFrameCb && (!pMedia_Frame->isProtected() || mDrmKeyValid)) { - // TODO: change to std::unique_ptr - mMediaFrameCb(mMediaFrameCbArg, pMedia_Frame, ST_TYPE_AUDIO); + mMediaFrameCb(mMediaFrameCbArg, pMedia_Frame.get(), ST_TYPE_AUDIO); } mBufferController->AddPacket(move(pMedia_Frame), BUFFER_TYPE_AUDIO); } else if (pFrame->getInfo().streamIndex == mCurrentSubtitleIndex || pFrame->getInfo().streamIndex == mWillChangedSubtitleStreamIndex) { if (mMediaFrameCb && (!pMedia_Frame->isProtected() || mDrmKeyValid)) { - // TODO: change to std::unique_ptr - mMediaFrameCb(mMediaFrameCbArg, pMedia_Frame, ST_TYPE_SUB); + mMediaFrameCb(mMediaFrameCbArg, pMedia_Frame.get(), ST_TYPE_SUB); } mBufferController->AddPacket(move(pMedia_Frame), BUFFER_TYPE_SUBTITLE); diff --git a/mediaPlayer/native_cicada_player_def.h b/mediaPlayer/native_cicada_player_def.h index 25351c181..65540ae57 100644 --- a/mediaPlayer/native_cicada_player_def.h +++ b/mediaPlayer/native_cicada_player_def.h @@ -150,7 +150,7 @@ typedef enum PropertyKey { class AMediaFrame; -typedef void (*playerMediaFrameCb)(void *arg, const std::unique_ptr& frame, StreamType type); +typedef void (*playerMediaFrameCb)(void *arg, const IAFPacket *frame, StreamType type); typedef int (*readCB)(void *arg, uint8_t *buffer, int size);