Skip to content

Commit

Permalink
feat(mediaplayer): add setClockRefer api
Browse files Browse the repository at this point in the history
Signed-off-by: pingkai <pingkai010@gmail.com>
  • Loading branch information
pingkai committed Apr 26, 2020
1 parent 285967f commit 96837a7
Show file tree
Hide file tree
Showing 7 changed files with 57 additions and 27 deletions.
8 changes: 8 additions & 0 deletions mediaPlayer/ICicadaPlayer.h
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,12 @@ namespace Cicada {
mBSCbArg = arg;
}

virtual void setClockRefer(clockRefer cb, void *arg)
{
mClockRef = cb;
mCRArg = arg;
}

virtual int getCurrentStreamMeta(Stream_meta *meta, StreamType type) = 0;

virtual void setErrorConverter(ErrorConverter *converter)
Expand All @@ -250,6 +256,8 @@ namespace Cicada {
readCB mBSReadCb = nullptr;
seekCB mBSSeekCb = nullptr;
void *mBSCbArg = nullptr;
clockRefer mClockRef = nullptr;
void* mCRArg = nullptr;

ErrorConverter *mErrorConverter = nullptr;
};
Expand Down
5 changes: 5 additions & 0 deletions mediaPlayer/MediaPlayer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,11 @@ namespace Cicada {
GET_PLAYER_HANDLE
return CicadaGetMasterClockPts(handle);
}
void MediaPlayer::SetClockRefer(clockRefer cb, void *arg)
{
GET_PLAYER_HANDLE
return CicadaSetClockRefer(handle,cb,arg);
}

void MediaPlayer::abrChanged(int stream)
{
Expand Down
57 changes: 31 additions & 26 deletions mediaPlayer/MediaPlayer.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,20 @@
#ifndef CicadaPlayer_h
#define CicadaPlayer_h

#include <stdio.h>
#include "MediaPlayerConfig.h"
#include "native_cicada_player_def.h"
#include <stdio.h>

class AbrManager;

class AbrAlgoStrategy;

#include <string>
#include <sstream>
#include <vector>
#include <cacheModule/CacheManager.h>
#include <mutex>
#include <sstream>
#include <string>
#include <utils/AFMediaType.h>
#include <cacheModule/CacheManager.h>
#include <vector>

#ifdef ANDROID

Expand All @@ -33,7 +33,7 @@ namespace std {
os << value;
return os.str();
}
}
}// namespace std
#endif

namespace Cicada {
Expand All @@ -43,7 +43,7 @@ namespace Cicada {

class IAnalyticsCollectorFactory;

typedef void(*CicadaLogCallback)(void *userData, int prio, const char *buf);
typedef void (*CicadaLogCallback)(void *userData, int prio, const char *buf);

class MediaPlayer {
public:
Expand All @@ -53,12 +53,12 @@ namespace Cicada {

~MediaPlayer();

static string GetSdkVersion(){
return "paas 0.9";//TODO version
static string GetSdkVersion()
{
return "paas 0.9";//TODO version
}

public:

void EnableVideoRenderedCallback(bool enable);


Expand Down Expand Up @@ -142,7 +142,10 @@ namespace Cicada {
/*
* get master clock pts
*/
int64_t GetMasterClockPts(); //TODO ??这是什么?
int64_t GetMasterClockPts();//TODO ??这是什么?


void SetClockRefer(clockRefer cb, void *arg);

/*
* get current stream index
Expand Down Expand Up @@ -263,12 +266,12 @@ namespace Cicada {
/**
* set auto play
*/
void SetAutoPlay(bool bAutoPlay) ;
void SetAutoPlay(bool bAutoPlay);

/**
* get is auto play or not
*/
bool IsAutoPlay() ;
bool IsAutoPlay();

void Reload();

Expand All @@ -283,7 +286,7 @@ namespace Cicada {

int GetCurrentStreamMeta(Stream_meta *meta, StreamType type);

void AddExtSubtitle( const char *uri);
void AddExtSubtitle(const char *uri);

void SelectExtSubtitle(int index, bool select);

Expand All @@ -295,7 +298,10 @@ namespace Cicada {

void GetOption(const char *key, char *value);

IAnalyticsCollector *GetAnalyticsCollector() { return mCollector; }
IAnalyticsCollector *GetAnalyticsCollector()
{
return mCollector;
}
//
// long ApsaraGetPropertyLong(playerHandle *player, int key);

Expand All @@ -305,14 +311,14 @@ namespace Cicada {
* set cache config.
* @param config
*/
void SetCacheConfig(const CacheConfig &config);
void SetCacheConfig(const CacheConfig &config);

/**
* get cache url. Should SetCacheConfig before call this.
* @param URL orignal url
* @return cached url.
*/
string GetCachePathByURL(const string &URL);
string GetCachePathByURL(const string &URL);

void SetDefaultBandWidth(int bandWidth);

Expand Down Expand Up @@ -343,11 +349,9 @@ namespace Cicada {

static void loadingProgressCallback(int64_t prg, void *userData);

static void
subtitleShowCallback(int64_t index, int64_t size, const void *content, void *userData);
static void subtitleShowCallback(int64_t index, int64_t size, const void *content, void *userData);

static void
subtitleHideCallback(int64_t index, int64_t size, const void *content, void *userData);
static void subtitleHideCallback(int64_t index, int64_t size, const void *content, void *userData);

static void subtitleExtAddedCallback(int64_t index, const void *url, void *userData);

Expand All @@ -363,17 +367,18 @@ namespace Cicada {

static void captureScreenResult(int64_t width, int64_t height, const void *buffer, void *userData);

static void autoPlayStart(void * userData);
static void autoPlayStart(void *userData);

void abrChanged(int stream);

static void onMediaFrameCallback(void *arg, const unique_ptr<IAFPacket>& frame, StreamType type);
void mediaFrameCallback(const unique_ptr<IAFPacket>& frame, StreamType type);
static void onMediaFrameCallback(void *arg, const unique_ptr<IAFPacket> &frame, StreamType type);
void mediaFrameCallback(const unique_ptr<IAFPacket> &frame, StreamType type);

private:
void configPlayer(const MediaPlayerConfig *config) const;

void dummyFunction(bool dummy);

protected:
void *mPlayerHandle = nullptr;
playerListener mListener{nullptr};
Expand All @@ -390,7 +395,7 @@ namespace Cicada {
bool waitingForStart = false;
bool waitingForLoop = false;
string mPlayUrl;
CacheManager* mCacheManager = nullptr;
CacheManager *mCacheManager = nullptr;
CacheConfig mCacheConfig;
PlayerStatus mOldPlayStatus{PLAYER_IDLE};

Expand All @@ -399,7 +404,7 @@ namespace Cicada {

function<void(const string &)> mPlayUrlChangedCallback = nullptr;
};
}
}// namespace Cicada


#endif /* CicadaPlayer_h */
2 changes: 1 addition & 1 deletion mediaPlayer/SuperMediaPlayer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2105,7 +2105,7 @@ namespace Cicada {
if (!HAVE_AUDIO) {
if (mPlayedVideoPts == INT64_MIN) {
mMasterClock.setTime(videoPts);
mMasterClock.setReferenceClock(nullptr, nullptr);
mMasterClock.setReferenceClock(mClockRef, mCRArg);
}
}
} else {
Expand Down
8 changes: 8 additions & 0 deletions mediaPlayer/media_player_api.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -611,6 +611,14 @@ void CicadaSetBitStreamCb(playerHandle *pHandle, readCB read, seekCB seek, void
}
}

void CicadaSetClockRefer(playerHandle *pHandle, clockRefer cb, void *arg)
{
GET_PLAYER;
if (player) {
return player->setClockRefer(cb,arg);
}
}

void CicadaAddExtSubtitle(playerHandle *pHandle, const char *uri)
{
GET_PLAYER;
Expand Down
2 changes: 2 additions & 0 deletions mediaPlayer/media_player_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ void CicadaCaptureScreen(playerHandle *pHandle);

int64_t CicadaGetMasterClockPts(playerHandle *pHandle);

void CicadaSetClockRefer(playerHandle *pHandle,clockRefer cb, void *arg);

/*
* prepare to play
*/
Expand Down
2 changes: 2 additions & 0 deletions mediaPlayer/native_cicada_player_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,8 @@ typedef int (*readCB)(void *arg, uint8_t *buffer, int size);

typedef int64_t (*seekCB)(void *arg, int64_t offset, int whence);

typedef int64_t(*clockRefer)(void *arg);

class ErrorConverter {
public:
virtual int ConvertErrorCode(int code, int &outCode, std::string &outStr) = 0;
Expand Down

0 comments on commit 96837a7

Please sign in to comment.