Skip to content

Commit 402021a

Browse files
committed
2.0.025
1 parent 41e6bf6 commit 402021a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+681
-585
lines changed

include/yangplayer/YangPlayerHandle.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,16 @@
99
#define INCLUDE_YANGPLAYER_YANGPLAYERHANDLE_H_
1010
#include <string>
1111
#include <yangutil/buffer/YangVideoBuffer.h>
12-
12+
#include <yangutil/sys/YangSysMessageI.h>
1313
class YangPlayerHandle {
1414
public:
1515
YangPlayerHandle(){};
1616
virtual ~YangPlayerHandle(){};
1717
virtual YangVideoBuffer* getVideoBuffer()=0;
18-
virtual void play(std::string url,int32_t localport)=0;
18+
virtual int play(std::string url,int32_t localport)=0;
1919
virtual int32_t playRtc(int32_t puid,std::string localIp,int32_t localPort, std::string server, int32_t pport,std::string app,std::string stream)=0;
2020
virtual void stopPlay()=0;
21-
static YangPlayerHandle* createPlayerHandle(YangContext* pcontext);
21+
static YangPlayerHandle* createPlayerHandle(YangContext* pcontext,YangSysMessageI* pmessage);
2222
};
2323

2424
#endif /* INCLUDE_YANGPLAYER_YANGPLAYERHANDLE_H_ */

include/yangpush/YangPushHandle.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22
#define INCLUDE_YANGPUSH_YANGPUSHHANDLE_H_
33
#include <yangutil/buffer/YangVideoBuffer.h>
44
#include <yangutil/yangavinfotype.h>
5-
5+
#include <yangutil/sys/YangSysMessageI.h>
66
#include <string>
77
class YangPushHandle {
88
public:
99
YangPushHandle();
1010
virtual ~YangPushHandle();
11-
virtual void publish(std::string url,std::string localIp,int32_t localport)=0;
11+
virtual int publish(std::string url,std::string localIp,int32_t localport)=0;
1212
virtual void disconnect()=0;
1313
virtual void init()=0;
1414
//virtual void startCapture()=0;
1515
virtual YangVideoBuffer* getPreVideoBuffer()=0;
16-
static YangPushHandle* createPushHandle(YangContext* pcontext);
16+
static YangPushHandle* createPushHandle(YangContext* pcontext,YangSysMessageI* pmessage);
1717

1818

1919

include/yangpush/YangRtcPublish.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#include <yangstream/YangStreamHandle.h>
55

66
#include <yangutil/sys/YangThread.h>
7-
7+
#include <yangutil/sys/YangSysMessageI.h>
88
#include <yangutil/buffer/YangAudioEncoderBuffer.h>
99
#include <yangutil/buffer/YangVideoEncoderBuffer.h>
1010
#include <vector>
@@ -13,7 +13,7 @@ class YangRtcPublish: public YangThread,public YangSendRequestCallback {
1313
public:
1414
YangRtcPublish(YangContext *pcontext);
1515
virtual ~YangRtcPublish();
16-
//int32_t initPublish();
16+
1717
int32_t init(int32_t nettype, string server,string localIp,int32_t localPort, int32_t pport,
1818
string app,string stream);
1919
int32_t connectServer(int32_t puid);

include/yangstream/YangAudioStreamCapture.h

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class YangAudioStreamCapture{
2929
int32_t m_audioLen;
3030

3131
int64_t atime ;
32+
int64_t m_unitAudioTime;
3233
double atime1;
3334
double perSt ;
3435

include/yangstream/YangStreamManager.h

+5
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,16 @@ class YangStreamManager {
2222
void setSendRequestCallback(YangSendRequestCallback* pli);
2323
void setDecoderMediaConfigCallback(YangMediaConfigCallback* dec);
2424
void setRenderMediaConfigCallback(YangMediaConfigCallback* render);
25+
int32_t getAudioClock();
26+
int32_t getVideoClock();
2527
private:
2628
YangSendRequestCallback* m_sendPli;
2729
YangMediaConfigCallback* m_mediaConfig_dec;
2830
YangMediaConfigCallback* m_mediaConfig_render;
2931

32+
int32_t m_videoClock;
33+
int32_t m_audioClock;
34+
3035

3136

3237
};

include/yangstream/YangSynBuffer.h

+20-17
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,18 @@
77
#include <yangavutil/audio/YangAudioMix.h>
88
#include <yangutil/buffer/YangVideoBuffer.h>
99

10+
1011
enum YangSynType{
1112
YANG_SYNC_AUDIO_MASTER, /* default choice */
1213
YANG_SYNC_VIDEO_MASTER,
1314
YANG_SYNC_EXTERNAL_CLOCK, /* synchronize to an external clock */
1415
};
15-
#define Yang_Max_Audio_Intervaltime 20
16-
#define Yang_Max_Video_Intervaltime 40
17-
#define Yang_Video_Cache_time 0
16+
#define Yang_Max_Audio_Intervaltime 25
17+
#define Yang_Max_Video_Intervaltime 35
18+
#define Yang_Video_Base_Update_Interval 600000//10*60*1000 //10m
19+
#define Yang_Audio_Base_Update_Interval 600000//10*60*1000 //10m
20+
#define Yang_Video_Cache_time 35
21+
#define Yang_Audio_Cache_time 0
1822
class YangSynBuffer //:public YangSynBufferI
1923
{
2024
public:
@@ -24,6 +28,8 @@ class YangSynBuffer //:public YangSynBufferI
2428
int32_t m_width;
2529
int32_t m_height;
2630
void setTranstype(int transtype);
31+
void setAudioClock(int paudioclock);
32+
void setVideoClock(int pvideoclock);
2733

2834
public:
2935
uint8_t* getVideoRef(YangFrame* pframe);
@@ -39,10 +45,8 @@ class YangSynBuffer //:public YangSynBufferI
3945
void initClock();
4046
void setClock();
4147

42-
//int32_t playAudioFrame(YangFrame* pframe);
43-
bool playAudioFrame(int64_t pts);
44-
//int32_t playVideoFrame(YangFrame* pframe);
45-
int playVideoFrame(int64_t pts);
48+
int playAudioFrame(int64_t pts);
49+
int playVideoFrame(YangFrame* frame);
4650
double compute_target_delay(double delay);
4751
void video_refresh(int32_t pisaudio, double *remaining_time);
4852
int32_t m_maxAudioMinus;
@@ -52,12 +56,13 @@ class YangSynBuffer //:public YangSynBufferI
5256
bool m_isFirstAudio;
5357
int32_t m_video_time_state;
5458
void updateBaseTimestamp(int64_t pts);
55-
59+
void updateVideoBaseTimestamp(int64_t pts);
60+
void updateAudioBaseTimestamp(int64_t pts);
5661
private:
57-
//YangTime m_time;
58-
YangSynType m_synType;
62+
63+
YangSynType m_synType;
5964
int32_t m_paused;
60-
int64_t m_baseClock,m_startClock;
65+
int64_t m_baseClock,m_audio_startClock;
6166
int32_t m_videoClock;
6267
int32_t m_audioClock;
6368

@@ -70,6 +75,10 @@ class YangSynBuffer //:public YangSynBufferI
7075
int64_t m_videoTime;
7176
int32_t m_audioMinus;
7277
int32_t m_videoMinus;
78+
int32_t m_audioNegativeCount;
79+
int32_t m_audioTimeoutCount;
80+
// int32_t m_keyFrameCount;
81+
7382

7483
int64_t m_pre_audioTime;
7584
int64_t m_pre_videoTime;
@@ -80,12 +89,6 @@ class YangSynBuffer //:public YangSynBufferI
8089
private:
8190
YangVideoBuffer *m_videoBuffer;
8291
YangAudioPlayBuffer* m_audioBuffer;
83-
84-
85-
86-
87-
88-
8992
};
9093

9194
#endif /* YANGPLAYER_INCLUDE_YANGAVSYN_H_ */

include/yangutil/buffer/YangVideoBuffer.h

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class YangVideoBuffer:public YangMediaBuffer
3131
uint8_t * getVideoRef(YangFrame* pframe);
3232
int64_t getTimestamp(int64_t *timestamp);
3333
int64_t getNextTimestamp();
34+
YangFrame* getCurVideoFrame();
3435
//int32_t playFrame();
3536
protected:
3637

include/yangutil/sys/TypeCast.h

-49
This file was deleted.

include/yangutil/sys/YangSysMessageHandle.h

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
#ifndef INCLUDE_YANGUTIL_SYS_YANGSYSMESSAGEHANDLE_H_
22
#define INCLUDE_YANGUTIL_SYS_YANGSYSMESSAGEHANDLE_H_
3-
#include "yangutil/sys/YangSysMessageI.h"
3+
#include <yangutil/sys/YangSysMessageI.h>
4+
#include <yangutil/sys/YangThread.h>
45
#include <vector>
5-
//#include <mutex>
6-
#include "yangutil/sys/YangThread.h"
6+
7+
78
using namespace std;
89

910
class YangSysMessageHandle :public YangThread{

include/yangutil/sys/YangTime.h

+16-13
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,24 @@
55
#endif
66
#include <stdlib.h>
77
#include <iostream>
8-
9-
#include "TypeCast.h"
108
using namespace std;
11-
129
#define yang_get_system_time YangSystime::get_system_micro_time
1310
#define yang_update_system_time YangSystime::get_system_micro_time
14-
#ifdef _MSC_VER
15-
#include <winsock2.h>
16-
int gettimeofday(struct timeval *tp, void *tzp);
1711

18-
#endif
1912
int64_t yang_get_milli_time();//haomiao
2013
int64_t yang_get_micro_time();//weimiao
14+
#ifdef _MSC_VER
15+
#include <winsock2.h>
16+
int gettimeofday(struct timeval *tp, void *tzp);
2117
int64_t yang_get_milli_tick();//haomiao
2218
int64_t yang_get_micro_tick();//weimiao
19+
#else
20+
#define yang_get_milli_tick yang_get_milli_time
21+
#define yang_get_micro_tick yang_get_micro_time
22+
#endif
23+
24+
25+
2326
int64_t yang_get_nano_tick();//namiao
2427
class YangSystime{
2528
public:
@@ -39,14 +42,14 @@ class YangSystime{
3942

4043
class YangNtp
4144
{
42-
public:
43-
uint64_t system_ms_;
44-
uint64_t ntp_;
45-
uint32_t ntp_second_;
46-
uint32_t ntp_fractions_;
4745
public:
4846
YangNtp();
4947
virtual ~YangNtp();
48+
public:
49+
uint64_t m_system_ms;
50+
uint64_t m_ntp;
51+
uint32_t m_ntp_second;
52+
uint32_t m_ntp_fractions;
5053
public:
5154
static YangNtp from_time_ms(uint64_t ms);
5255
static YangNtp to_time_ms(uint64_t ntp);
@@ -61,7 +64,7 @@ class YangWallClock
6164
virtual ~YangWallClock();
6265
public:
6366
/**
64-
* Current time in srs_utime_t.
67+
* Current time in get_system_milli_time.
6568
*/
6669
virtual int64_t now();
6770
};

include/yangutil/yangavtype.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,12 @@ struct YangAudioParam{
6464
YangAudioEncDecType encode;
6565
int32_t sample;
6666
int32_t channel;
67-
int32_t clock;
67+
int32_t audioClock;
6868
};
6969

7070
struct YangVideoParam{
7171
YangVideoEncDecType encode;
72-
int32_t clock;
72+
int32_t videoClock;
7373

7474
};
7575
struct YangFrame{

include/yangutil/yangtype.h

+1-13
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,7 @@
1212
#define yang_free(a) {if( (a)) {free((a)); (a) = NULL;}}
1313
#define yang_min(a, b) (((a) < (b))? (a) : (b))
1414
#define yang_max(a, b) (((a) < (b))? (b) : (a))
15-
#define yang_freep(p) \
16-
if (p) { \
17-
delete p; \
18-
p = NULL; \
19-
} \
20-
(void)0
21-
// Please use the freepa(T[]) to free an array, otherwise the behavior is undefined.
22-
#define yang_freepa(pa) \
23-
if (pa) { \
24-
delete[] pa; \
25-
pa = NULL; \
26-
} \
27-
(void)0
15+
2816
#define Yang_Rtmp 0
2917
#define Yang_Srt 1
3018
#define Yang_Webrtc 2

libyangrtc2/src/yangdecoder/YangAudioDecoderHandles.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ void YangAudioDecoderHandles::onAudioData(YangFrame* pframe){
177177
int ind=0;
178178
if(m_context&&(ind=m_context->streams.getIndex(pframe->uid))>-1){
179179
m_context->streams.m_playBuffers->at(ind)->setInAudioBuffer(t_vb);
180+
m_context->streams.m_playBuffers->at(ind)->setAudioClock(m_context->streams.getAudioClock());
180181
}
181182
}
182183
if (t_vb) {

0 commit comments

Comments
 (0)