1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

refine RTMP protocol completed, to 0.9.81

This commit is contained in:
winlin 2014-04-29 14:44:07 +08:00
parent be4c182d11
commit 80ddddf823
20 changed files with 343 additions and 353 deletions

View file

@ -40,9 +40,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
class SrsPlayEdge;
class SrsPublishEdge;
class SrsSource;
class __SrsMessage;
class SrsMessage;
class SrsOnMetaDataPacket;
class __SrsSharedPtrMessage;
class SrsSharedPtrMessage;
class SrsForwarder;
class SrsRequest;
class SrsSocket;
@ -74,7 +74,7 @@ public:
/**
* detect the time jitter and correct it.
*/
virtual int correct(__SrsSharedPtrMessage* msg, int tba, int tbv);
virtual int correct(SrsSharedPtrMessage* msg, int tba, int tbv);
/**
* get current client time, the last packet time.
*/
@ -91,7 +91,7 @@ private:
int64_t av_start_time;
int64_t av_end_time;
int queue_size_ms;
std::vector<__SrsSharedPtrMessage*> msgs;
std::vector<SrsSharedPtrMessage*> msgs;
public:
SrsMessageQueue();
virtual ~SrsMessageQueue();
@ -106,14 +106,14 @@ public:
* enqueue the message, the timestamp always monotonically.
* @param msg, the msg to enqueue, user never free it whatever the return code.
*/
virtual int enqueue(__SrsSharedPtrMessage* msg);
virtual int enqueue(SrsSharedPtrMessage* msg);
/**
* get packets in consumer queue.
* @pmsgs SrsMessages*[], output the prt array.
* @count the count in array.
* @max_count the max count to dequeue, 0 to dequeue all.
*/
virtual int get_packets(int max_count, __SrsSharedPtrMessage**& pmsgs, int& count);
virtual int get_packets(int max_count, SrsSharedPtrMessage**& pmsgs, int& count);
private:
/**
* remove a gop from the front.
@ -150,14 +150,14 @@ public:
* @param tbv timebase of video.
* used to calc the video time delta if time-jitter detected.
*/
virtual int enqueue(__SrsSharedPtrMessage* msg, int tba, int tbv);
virtual int enqueue(SrsSharedPtrMessage* msg, int tba, int tbv);
/**
* get packets in consumer queue.
* @pmsgs SrsMessages*[], output the prt array.
* @count the count in array.
* @max_count the max count to dequeue, 0 to dequeue all.
*/
virtual int get_packets(int max_count, __SrsSharedPtrMessage**& pmsgs, int& count);
virtual int get_packets(int max_count, SrsSharedPtrMessage**& pmsgs, int& count);
/**
* when client send the pause message.
*/
@ -185,7 +185,7 @@ private:
/**
* cached gop.
*/
std::vector<__SrsSharedPtrMessage*> gop_cache;
std::vector<SrsSharedPtrMessage*> gop_cache;
public:
SrsGopCache();
virtual ~SrsGopCache();
@ -196,7 +196,7 @@ public:
* 1. cache the gop when got h264 video packet.
* 2. clear gop when got keyframe.
*/
virtual int cache(__SrsSharedPtrMessage* msg);
virtual int cache(SrsSharedPtrMessage* msg);
virtual void clear();
virtual int dump(SrsConsumer* consumer, int tba, int tbv);
/**
@ -267,11 +267,11 @@ private:
// TODO: FIXME: to support reload atc.
bool atc;
private:
__SrsSharedPtrMessage* cache_metadata;
SrsSharedPtrMessage* cache_metadata;
// the cached video sequence header.
__SrsSharedPtrMessage* cache_sh_video;
SrsSharedPtrMessage* cache_sh_video;
// the cached audio sequence header.
__SrsSharedPtrMessage* cache_sh_audio;
SrsSharedPtrMessage* cache_sh_audio;
public:
/**
* @param _req the client request object,
@ -299,9 +299,9 @@ public:
virtual int on_dvr_request_sh();
public:
virtual bool can_publish();
virtual int on_meta_data(__SrsMessage* msg, SrsOnMetaDataPacket* metadata);
virtual int on_audio(__SrsMessage* audio);
virtual int on_video(__SrsMessage* video);
virtual int on_meta_data(SrsMessage* msg, SrsOnMetaDataPacket* metadata);
virtual int on_audio(SrsMessage* audio);
virtual int on_video(SrsMessage* video);
/**
* publish stream event notify.
* @param _req the request from client, the source will deep copy it,
@ -322,7 +322,7 @@ public:
// for edge, when publish edge stream, check the state
virtual int on_edge_start_publish();
// for edge, proxy the publish
virtual int on_edge_proxy_publish(__SrsMessage* msg);
virtual int on_edge_proxy_publish(SrsMessage* msg);
// for edge, proxy stop publish
virtual void on_edge_proxy_unpublish();
private: