mirror of
https://github.com/ossrs/srs.git
synced 2025-02-15 04:42:04 +00:00
add comments for RTMP packets.
This commit is contained in:
parent
51f924c553
commit
2554836940
1 changed files with 254 additions and 9 deletions
|
@ -484,15 +484,21 @@ protected:
|
||||||
class SrsConnectAppPacket : public SrsPacket
|
class SrsConnectAppPacket : public SrsPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* Name of the command. Set to “connect”.
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
* Always set to 1.
|
||||||
|
*/
|
||||||
double transaction_id;
|
double transaction_id;
|
||||||
/**
|
/**
|
||||||
* alloc in packet constructor,
|
* Command information object which has the name-value pairs.
|
||||||
* so, directly use it, never alloc again.
|
* @remark: alloc in packet constructor, user can directly use it,
|
||||||
|
* user should never alloc it again which will cause memory leak.
|
||||||
*/
|
*/
|
||||||
SrsAmf0Object* command_object;
|
SrsAmf0Object* command_object;
|
||||||
/**
|
/**
|
||||||
* Object
|
|
||||||
* Any optional information
|
* Any optional information
|
||||||
*/
|
*/
|
||||||
SrsAmf0Object* args;
|
SrsAmf0Object* args;
|
||||||
|
@ -516,9 +522,22 @@ protected:
|
||||||
class SrsConnectAppResPacket : public SrsPacket
|
class SrsConnectAppResPacket : public SrsPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* _result or _error; indicates whether the response is result or error.
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
* Transaction ID is 1 for call connect responses
|
||||||
|
*/
|
||||||
double transaction_id;
|
double transaction_id;
|
||||||
|
/**
|
||||||
|
* Name-value pairs that describe the properties(fmsver etc.) of the connection.
|
||||||
|
*/
|
||||||
SrsAmf0Object* props;
|
SrsAmf0Object* props;
|
||||||
|
/**
|
||||||
|
* Name-value pairs that describe the response from|the server. ‘code’,
|
||||||
|
* ‘level’, ‘description’ are names of few among such information.
|
||||||
|
*/
|
||||||
SrsAmf0Object* info;
|
SrsAmf0Object* info;
|
||||||
public:
|
public:
|
||||||
SrsConnectAppResPacket();
|
SrsConnectAppResPacket();
|
||||||
|
@ -544,14 +563,22 @@ protected:
|
||||||
class SrsCallPacket : public SrsPacket
|
class SrsCallPacket : public SrsPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* Name of the remote procedure that is called.
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
* If a response is expected we give a transaction Id. Else we pass a value of 0
|
||||||
|
*/
|
||||||
double transaction_id;
|
double transaction_id;
|
||||||
/**
|
/**
|
||||||
* If there exists any command info this
|
* If there exists any command info this
|
||||||
* is set, else this is set to null type.
|
* is set, else this is set to null type.
|
||||||
*/
|
*/
|
||||||
SrsAmf0Any* command_object;
|
SrsAmf0Any* command_object;
|
||||||
// Any optional arguments to be provided
|
/**
|
||||||
|
* Any optional arguments to be provided
|
||||||
|
*/
|
||||||
SrsAmf0Any* arguments;
|
SrsAmf0Any* arguments;
|
||||||
public:
|
public:
|
||||||
SrsCallPacket();
|
SrsCallPacket();
|
||||||
|
@ -573,13 +600,21 @@ protected:
|
||||||
class SrsCallResPacket : public SrsPacket
|
class SrsCallResPacket : public SrsPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* Name of the command.
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
* ID of the command, to which the response belongs to
|
||||||
|
*/
|
||||||
double transaction_id;
|
double transaction_id;
|
||||||
// If there exists any command info this
|
/**
|
||||||
// is set, else this is set to null type.
|
* If there exists any command info this is set, else this is set to null type.
|
||||||
|
*/
|
||||||
SrsAmf0Any* command_object;
|
SrsAmf0Any* command_object;
|
||||||
// Response from the method that was
|
/**
|
||||||
// called.
|
* Response from the method that was called.
|
||||||
|
*/
|
||||||
SrsAmf0Any* response;
|
SrsAmf0Any* response;
|
||||||
public:
|
public:
|
||||||
SrsCallResPacket(double _transaction_id);
|
SrsCallResPacket(double _transaction_id);
|
||||||
|
@ -603,8 +638,17 @@ protected:
|
||||||
class SrsCreateStreamPacket : public SrsPacket
|
class SrsCreateStreamPacket : public SrsPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* Name of the command. Set to “createStream”.
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
* Transaction ID of the command.
|
||||||
|
*/
|
||||||
double transaction_id;
|
double transaction_id;
|
||||||
|
/**
|
||||||
|
* If there exists any command info this is set, else this is set to null type.
|
||||||
|
*/
|
||||||
SrsAmf0Any* command_object; // null
|
SrsAmf0Any* command_object; // null
|
||||||
public:
|
public:
|
||||||
SrsCreateStreamPacket();
|
SrsCreateStreamPacket();
|
||||||
|
@ -626,9 +670,21 @@ protected:
|
||||||
class SrsCreateStreamResPacket : public SrsPacket
|
class SrsCreateStreamResPacket : public SrsPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* _result or _error; indicates whether the response is result or error.
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
* ID of the command that response belongs to.
|
||||||
|
*/
|
||||||
double transaction_id;
|
double transaction_id;
|
||||||
|
/**
|
||||||
|
* If there exists any command info this is set, else this is set to null type.
|
||||||
|
*/
|
||||||
SrsAmf0Any* command_object; // null
|
SrsAmf0Any* command_object; // null
|
||||||
|
/**
|
||||||
|
* The return value is either a stream ID or an error information object.
|
||||||
|
*/
|
||||||
double stream_id;
|
double stream_id;
|
||||||
public:
|
public:
|
||||||
SrsCreateStreamResPacket(double _transaction_id, double _stream_id);
|
SrsCreateStreamResPacket(double _transaction_id, double _stream_id);
|
||||||
|
@ -651,8 +707,17 @@ protected:
|
||||||
class SrsCloseStreamPacket : public SrsPacket
|
class SrsCloseStreamPacket : public SrsPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* Name of the command, set to “closeStream”.
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
* Transaction ID set to 0.
|
||||||
|
*/
|
||||||
double transaction_id;
|
double transaction_id;
|
||||||
|
/**
|
||||||
|
* Command information object does not exist. Set to null type.
|
||||||
|
*/
|
||||||
SrsAmf0Any* command_object; // null
|
SrsAmf0Any* command_object; // null
|
||||||
public:
|
public:
|
||||||
SrsCloseStreamPacket();
|
SrsCloseStreamPacket();
|
||||||
|
@ -668,9 +733,21 @@ public:
|
||||||
class SrsFMLEStartPacket : public SrsPacket
|
class SrsFMLEStartPacket : public SrsPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* Name of the command
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
* the transaction ID to get the response.
|
||||||
|
*/
|
||||||
double transaction_id;
|
double transaction_id;
|
||||||
|
/**
|
||||||
|
* If there exists any command info this is set, else this is set to null type.
|
||||||
|
*/
|
||||||
SrsAmf0Any* command_object; // null
|
SrsAmf0Any* command_object; // null
|
||||||
|
/**
|
||||||
|
* the stream name to start publish or release.
|
||||||
|
*/
|
||||||
std::string stream_name;
|
std::string stream_name;
|
||||||
public:
|
public:
|
||||||
SrsFMLEStartPacket();
|
SrsFMLEStartPacket();
|
||||||
|
@ -696,9 +773,21 @@ public:
|
||||||
class SrsFMLEStartResPacket : public SrsPacket
|
class SrsFMLEStartResPacket : public SrsPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* Name of the command
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
* the transaction ID to get the response.
|
||||||
|
*/
|
||||||
double transaction_id;
|
double transaction_id;
|
||||||
|
/**
|
||||||
|
* If there exists any command info this is set, else this is set to null type.
|
||||||
|
*/
|
||||||
SrsAmf0Any* command_object; // null
|
SrsAmf0Any* command_object; // null
|
||||||
|
/**
|
||||||
|
* the optional args, set to undefined.
|
||||||
|
*/
|
||||||
SrsAmf0Any* args; // undefined
|
SrsAmf0Any* args; // undefined
|
||||||
public:
|
public:
|
||||||
SrsFMLEStartResPacket(double _transaction_id);
|
SrsFMLEStartResPacket(double _transaction_id);
|
||||||
|
@ -725,11 +814,34 @@ protected:
|
||||||
class SrsPublishPacket : public SrsPacket
|
class SrsPublishPacket : public SrsPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* Name of the command, set to “publish”.
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
* Transaction ID set to 0.
|
||||||
|
*/
|
||||||
double transaction_id;
|
double transaction_id;
|
||||||
|
/**
|
||||||
|
* Command information object does not exist. Set to null type.
|
||||||
|
*/
|
||||||
SrsAmf0Any* command_object; // null
|
SrsAmf0Any* command_object; // null
|
||||||
|
/**
|
||||||
|
* Name with which the stream is published.
|
||||||
|
*/
|
||||||
std::string stream_name;
|
std::string stream_name;
|
||||||
// optional, default to live.
|
/**
|
||||||
|
* Type of publishing. Set to “live”, “record”, or “append”.
|
||||||
|
* record: The stream is published and the data is recorded to a new file.The file
|
||||||
|
* is stored on the server in a subdirectory within the directory that
|
||||||
|
* contains the server application. If the file already exists, it is
|
||||||
|
* overwritten.
|
||||||
|
* append: The stream is published and the data is appended to a file. If no file
|
||||||
|
* is found, it is created.
|
||||||
|
* live: Live data is published without recording it in a file.
|
||||||
|
* @remark, SRS only support live.
|
||||||
|
* @remark, optional, default to live.
|
||||||
|
*/
|
||||||
std::string type;
|
std::string type;
|
||||||
public:
|
public:
|
||||||
SrsPublishPacket();
|
SrsPublishPacket();
|
||||||
|
@ -754,10 +866,28 @@ protected:
|
||||||
class SrsPausePacket : public SrsPacket
|
class SrsPausePacket : public SrsPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* Name of the command, set to “pause”.
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
* There is no transaction ID for this command. Set to 0.
|
||||||
|
*/
|
||||||
double transaction_id;
|
double transaction_id;
|
||||||
|
/**
|
||||||
|
* Command information object does not exist. Set to null type.
|
||||||
|
*/
|
||||||
SrsAmf0Any* command_object; // null
|
SrsAmf0Any* command_object; // null
|
||||||
|
/**
|
||||||
|
* true or false, to indicate pausing or resuming play
|
||||||
|
*/
|
||||||
bool is_pause;
|
bool is_pause;
|
||||||
|
/**
|
||||||
|
* Number of milliseconds at which the the stream is paused or play resumed.
|
||||||
|
* This is the current stream time at the Client when stream was paused. When the
|
||||||
|
* playback is resumed, the server will only send messages with timestamps
|
||||||
|
* greater than this value.
|
||||||
|
*/
|
||||||
double time_ms;
|
double time_ms;
|
||||||
public:
|
public:
|
||||||
SrsPausePacket();
|
SrsPausePacket();
|
||||||
|
@ -774,12 +904,61 @@ public:
|
||||||
class SrsPlayPacket : public SrsPacket
|
class SrsPlayPacket : public SrsPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* Name of the command. Set to “play”.
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
* Transaction ID set to 0.
|
||||||
|
*/
|
||||||
double transaction_id;
|
double transaction_id;
|
||||||
|
/**
|
||||||
|
* Command information does not exist. Set to null type.
|
||||||
|
*/
|
||||||
SrsAmf0Any* command_object; // null
|
SrsAmf0Any* command_object; // null
|
||||||
|
/**
|
||||||
|
* Name of the stream to play.
|
||||||
|
* To play video (FLV) files, specify the name of the stream without a file
|
||||||
|
* extension (for example, "sample").
|
||||||
|
* To play back MP3 or ID3 tags, you must precede the stream name with mp3:
|
||||||
|
* (for example, "mp3:sample".)
|
||||||
|
* To play H.264/AAC files, you must precede the stream name with mp4: and specify the
|
||||||
|
* file extension. For example, to play the file sample.m4v, specify
|
||||||
|
* "mp4:sample.m4v"
|
||||||
|
*/
|
||||||
std::string stream_name;
|
std::string stream_name;
|
||||||
|
/**
|
||||||
|
* An optional parameter that specifies the start time in seconds.
|
||||||
|
* The default value is -2, which means the subscriber first tries to play the live
|
||||||
|
* stream specified in the Stream Name field. If a live stream of that name is
|
||||||
|
* not found, it plays the recorded stream specified in the Stream Name field.
|
||||||
|
* If you pass -1 in the Start field, only the live stream specified in the Stream
|
||||||
|
* Name field is played.
|
||||||
|
* If you pass 0 or a positive number in the Start field, a recorded stream specified
|
||||||
|
* in the Stream Name field is played beginning from the time specified in the
|
||||||
|
* Start field.
|
||||||
|
* If no recorded stream is found, the next item in the playlist is played.
|
||||||
|
*/
|
||||||
double start;
|
double start;
|
||||||
|
/**
|
||||||
|
* An optional parameter that specifies the duration of playback in seconds.
|
||||||
|
* The default value is -1. The -1 value means a live stream is played until it is no
|
||||||
|
* longer available or a recorded stream is played until it ends.
|
||||||
|
* If u pass 0, it plays the single frame since the time specified in the Start field
|
||||||
|
* from the beginning of a recorded stream. It is assumed that the value specified
|
||||||
|
* in the Start field is equal to or greater than 0.
|
||||||
|
* If you pass a positive number, it plays a live stream for the time period specified
|
||||||
|
* in the Duration field. After that it becomes available or plays a recorded
|
||||||
|
* stream for the time specified in the Duration field. (If a stream ends before the
|
||||||
|
* time specified in the Duration field, playback ends when the stream ends.)
|
||||||
|
* If you pass a negative number other than -1 in the Duration field, it interprets the
|
||||||
|
* value as if it were -1.
|
||||||
|
*/
|
||||||
double duration;
|
double duration;
|
||||||
|
/**
|
||||||
|
* An optional Boolean value or number that specifies whether to flush any
|
||||||
|
* previous playlist.
|
||||||
|
*/
|
||||||
bool reset;
|
bool reset;
|
||||||
public:
|
public:
|
||||||
SrsPlayPacket();
|
SrsPlayPacket();
|
||||||
|
@ -802,9 +981,24 @@ protected:
|
||||||
class SrsPlayResPacket : public SrsPacket
|
class SrsPlayResPacket : public SrsPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* Name of the command. If the play command is successful, the command
|
||||||
|
* name is set to onStatus.
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
* Transaction ID set to 0.
|
||||||
|
*/
|
||||||
double transaction_id;
|
double transaction_id;
|
||||||
|
/**
|
||||||
|
* Command information does not exist. Set to null type.
|
||||||
|
*/
|
||||||
SrsAmf0Any* command_object; // null
|
SrsAmf0Any* command_object; // null
|
||||||
|
/**
|
||||||
|
* If the play command is successful, the client receives OnStatus message from
|
||||||
|
* server which is NetStream.Play.Start. If the specified stream is not found,
|
||||||
|
* NetStream.Play.StreamNotFound is received.
|
||||||
|
*/
|
||||||
SrsAmf0Object* desc;
|
SrsAmf0Object* desc;
|
||||||
public:
|
public:
|
||||||
SrsPlayResPacket();
|
SrsPlayResPacket();
|
||||||
|
@ -824,8 +1018,17 @@ protected:
|
||||||
class SrsOnBWDonePacket : public SrsPacket
|
class SrsOnBWDonePacket : public SrsPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* Name of command. Set to "onBWDone"
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
* Transaction ID set to 0.
|
||||||
|
*/
|
||||||
double transaction_id;
|
double transaction_id;
|
||||||
|
/**
|
||||||
|
* Command information does not exist. Set to null type.
|
||||||
|
*/
|
||||||
SrsAmf0Any* args; // null
|
SrsAmf0Any* args; // null
|
||||||
public:
|
public:
|
||||||
SrsOnBWDonePacket();
|
SrsOnBWDonePacket();
|
||||||
|
@ -846,9 +1049,22 @@ protected:
|
||||||
class SrsOnStatusCallPacket : public SrsPacket
|
class SrsOnStatusCallPacket : public SrsPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* Name of command. Set to "onStatus"
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
* Transaction ID set to 0.
|
||||||
|
*/
|
||||||
double transaction_id;
|
double transaction_id;
|
||||||
|
/**
|
||||||
|
* Command information does not exist. Set to null type.
|
||||||
|
*/
|
||||||
SrsAmf0Any* args; // null
|
SrsAmf0Any* args; // null
|
||||||
|
/**
|
||||||
|
* Name-value pairs that describe the response from the server.
|
||||||
|
* ‘code’,‘level’, ‘description’ are names of few among such information.
|
||||||
|
*/
|
||||||
SrsAmf0Object* data;
|
SrsAmf0Object* data;
|
||||||
public:
|
public:
|
||||||
SrsOnStatusCallPacket();
|
SrsOnStatusCallPacket();
|
||||||
|
@ -873,9 +1089,22 @@ class SrsBandwidthPacket : public SrsPacket
|
||||||
private:
|
private:
|
||||||
disable_default_copy(SrsBandwidthPacket);
|
disable_default_copy(SrsBandwidthPacket);
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* Name of command.
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
* Transaction ID set to 0.
|
||||||
|
*/
|
||||||
double transaction_id;
|
double transaction_id;
|
||||||
|
/**
|
||||||
|
* Command information does not exist. Set to null type.
|
||||||
|
*/
|
||||||
SrsAmf0Any* args; // null
|
SrsAmf0Any* args; // null
|
||||||
|
/**
|
||||||
|
* Name-value pairs that describe the response from the server.
|
||||||
|
* ‘code’,‘level’, ‘description’ are names of few among such information.
|
||||||
|
*/
|
||||||
SrsAmf0Object* data;
|
SrsAmf0Object* data;
|
||||||
public:
|
public:
|
||||||
SrsBandwidthPacket();
|
SrsBandwidthPacket();
|
||||||
|
@ -914,7 +1143,14 @@ private:
|
||||||
class SrsOnStatusDataPacket : public SrsPacket
|
class SrsOnStatusDataPacket : public SrsPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* Name of command. Set to "onStatus"
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
* Name-value pairs that describe the response from the server.
|
||||||
|
* ‘code’, are names of few among such information.
|
||||||
|
*/
|
||||||
SrsAmf0Object* data;
|
SrsAmf0Object* data;
|
||||||
public:
|
public:
|
||||||
SrsOnStatusDataPacket();
|
SrsOnStatusDataPacket();
|
||||||
|
@ -935,8 +1171,17 @@ protected:
|
||||||
class SrsSampleAccessPacket : public SrsPacket
|
class SrsSampleAccessPacket : public SrsPacket
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
bool video_sample_access;
|
bool video_sample_access;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
bool audio_sample_access;
|
bool audio_sample_access;
|
||||||
public:
|
public:
|
||||||
SrsSampleAccessPacket();
|
SrsSampleAccessPacket();
|
||||||
|
|
Loading…
Reference in a new issue