mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-06-13 03:31:45 +08:00
合并pr:#1025
This commit is contained in:
@@ -76,24 +76,24 @@ protected:
|
||||
return true;
|
||||
}
|
||||
|
||||
bool seekTo(MediaSource &sender,uint32_t ui32Stamp) override{
|
||||
if(!_on_seek){
|
||||
bool seekTo(MediaSource &sender, uint32_t stamp) override {
|
||||
if (!_on_seek) {
|
||||
return false;
|
||||
}
|
||||
return _on_seek(_on_seek_data,ui32Stamp);
|
||||
return _on_seek(_on_seek_data, stamp);
|
||||
}
|
||||
// 通知暂停
|
||||
bool pause(MediaSource &sender) override {
|
||||
if (!_on_pause)
|
||||
{
|
||||
|
||||
// 通知暂停或恢复
|
||||
bool pause(MediaSource &sender, bool pause) override {
|
||||
if (!_on_pause) {
|
||||
return false;
|
||||
}
|
||||
return _on_pause(_on_pause_data);
|
||||
return _on_pause(_on_pause_data, pause);
|
||||
}
|
||||
|
||||
//通知倍数播放
|
||||
bool speed(MediaSource& sender, float speed) override {
|
||||
if (!_on_speed)
|
||||
{
|
||||
bool speed(MediaSource &sender, float speed) override {
|
||||
if (!_on_speed) {
|
||||
return false;
|
||||
}
|
||||
return _on_speed(_on_pause_data, speed);
|
||||
@@ -130,23 +130,21 @@ API_EXPORT void API_CALL mk_media_set_on_close(mk_media ctx, on_mk_media_close c
|
||||
(*obj)->setOnClose(cb, user_data);
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_media_set_on_seek(mk_media ctx, on_mk_media_seek cb, void *user_data){
|
||||
API_EXPORT void API_CALL mk_media_set_on_seek(mk_media ctx, on_mk_media_seek cb, void *user_data) {
|
||||
assert(ctx);
|
||||
MediaHelper::Ptr *obj = (MediaHelper::Ptr *) ctx;
|
||||
(*obj)->setOnSeek(cb, user_data);
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_media_set_on_pause(mk_media ctx, on_mk_media_pause cb, void* user_data)
|
||||
{
|
||||
API_EXPORT void API_CALL mk_media_set_on_pause(mk_media ctx, on_mk_media_pause cb, void *user_data) {
|
||||
assert(ctx);
|
||||
MediaHelper::Ptr* obj = (MediaHelper::Ptr*) ctx;
|
||||
MediaHelper::Ptr *obj = (MediaHelper::Ptr *) ctx;
|
||||
(*obj)->setOnPause(cb, user_data);
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_media_set_on_speed(mk_media ctx, on_mk_media_speed cb, void* user_data)
|
||||
{
|
||||
API_EXPORT void API_CALL mk_media_set_on_speed(mk_media ctx, on_mk_media_speed cb, void *user_data) {
|
||||
assert(ctx);
|
||||
MediaHelper::Ptr* obj = (MediaHelper::Ptr*) ctx;
|
||||
MediaHelper::Ptr *obj = (MediaHelper::Ptr *) ctx;
|
||||
(*obj)->setOnSpeed(cb, user_data);
|
||||
}
|
||||
|
||||
|
||||
@@ -171,12 +171,12 @@ API_EXPORT void API_CALL mk_player_pause(mk_player ctx, int pause) {
|
||||
|
||||
API_EXPORT void API_CALL mk_player_speed(mk_player ctx, float speed) {
|
||||
assert(ctx);
|
||||
MediaPlayerForC& obj = **((MediaPlayerForC::Ptr*)ctx);
|
||||
MediaPlayerForC &obj = **((MediaPlayerForC::Ptr *) ctx);
|
||||
auto player = obj.getPlayer();
|
||||
player->getPoller()->async([speed, player]() {
|
||||
//切换线程后再操作
|
||||
player->speed(speed);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_player_seekto(mk_player ctx, float progress) {
|
||||
@@ -189,14 +189,14 @@ API_EXPORT void API_CALL mk_player_seekto(mk_player ctx, float progress) {
|
||||
});
|
||||
}
|
||||
|
||||
API_EXPORT void API_CALL mk_player_seektoByPos(mk_player ctx, int seekPos){
|
||||
API_EXPORT void API_CALL mk_player_seekto_pos(mk_player ctx, int seek_pos) {
|
||||
assert(ctx);
|
||||
MediaPlayerForC& obj = **((MediaPlayerForC::Ptr*)ctx);
|
||||
MediaPlayerForC &obj = **((MediaPlayerForC::Ptr *) ctx);
|
||||
auto player = obj.getPlayer();
|
||||
player->getPoller()->async([seekPos, player]() {
|
||||
player->getPoller()->async([seek_pos, player]() {
|
||||
//切换线程后再操作
|
||||
player->seekTo((uint32_t)seekPos);
|
||||
});
|
||||
player->seekTo((uint32_t) seek_pos);
|
||||
});
|
||||
}
|
||||
|
||||
static void mk_player_set_on_event(mk_player ctx, on_mk_play_event cb, void *user_data, int type) {
|
||||
@@ -219,30 +219,26 @@ API_EXPORT void API_CALL mk_player_set_on_data(mk_player ctx, on_mk_play_data cb
|
||||
obj.setOnData(cb,user_data);
|
||||
}
|
||||
|
||||
API_EXPORT int API_CALL mk_player_video_codecId(mk_player ctx){
|
||||
API_EXPORT int API_CALL mk_player_video_codec_id(mk_player ctx){
|
||||
assert(ctx);
|
||||
MediaPlayerForC &obj = **((MediaPlayerForC::Ptr *)ctx);
|
||||
auto track = dynamic_pointer_cast<VideoTrack>(obj->getTrack(TrackVideo));
|
||||
return track ? track->getCodecId() : CodecInvalid;
|
||||
}
|
||||
|
||||
API_EXPORT int API_CALL mk_player_video_codecId_vendor_head(mk_player ctx, char* vendor, char* head, int* head_len)
|
||||
{
|
||||
API_EXPORT int API_CALL mk_player_video_codec_id_vendor_head(mk_player ctx, char *vendor, char *head, int *head_len) {
|
||||
assert(ctx);
|
||||
MediaPlayerForC& obj = **((MediaPlayerForC::Ptr*)ctx);
|
||||
MediaPlayerForC &obj = **((MediaPlayerForC::Ptr *) ctx);
|
||||
auto track = dynamic_pointer_cast<VideoTrack>(obj->getTrack(TrackVideo));
|
||||
int codecId = track ? track->getCodecId() : CodecInvalid;
|
||||
if (codecId == CodecH264)
|
||||
{
|
||||
if (codecId == CodecH264) {
|
||||
auto h264Track = dynamic_pointer_cast<H264Track>(obj->getTrack(TrackVideo));
|
||||
auto pps = h264Track->getPps();
|
||||
auto ppsLen = pps.size();
|
||||
if (ppsLen >= (4 + 16))
|
||||
{
|
||||
if (ppsLen >= (4 + 16)) {
|
||||
std::string temVendor = std::string(pps.c_str() + 4, 16);
|
||||
memcpy(vendor, temVendor.c_str(), temVendor.length());
|
||||
if (ppsLen > (4 + 16))
|
||||
{
|
||||
if (ppsLen > (4 + 16)) {
|
||||
std::string temHead = std::string(pps.c_str() + 20, ppsLen - 20);
|
||||
memcpy(head, temHead.c_str(), temHead.length());
|
||||
*head_len = temHead.length();
|
||||
@@ -273,7 +269,7 @@ API_EXPORT float API_CALL mk_player_video_fps(mk_player ctx) {
|
||||
return track ? track->getVideoFps() : 0;
|
||||
}
|
||||
|
||||
API_EXPORT int API_CALL mk_player_audio_codecId(mk_player ctx){
|
||||
API_EXPORT int API_CALL mk_player_audio_codec_id(mk_player ctx){
|
||||
assert(ctx);
|
||||
MediaPlayerForC &obj = **((MediaPlayerForC::Ptr *)ctx);
|
||||
auto track = dynamic_pointer_cast<AudioTrack>(obj->getTrack(TrackAudio));
|
||||
|
||||
Reference in New Issue
Block a user