mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
support h264/avc codec by rtmp complex handshake(SrsComplexHandshake)
This commit is contained in:
parent
f0f4837a97
commit
53a668e34d
8 changed files with 1031 additions and 29 deletions
2
trunk/configure
vendored
2
trunk/configure
vendored
|
@ -105,7 +105,7 @@ MAIN_ENTRANCES=("srs_main_server")
|
||||||
# srs(simple rtmp server) over st(state-threads)
|
# srs(simple rtmp server) over st(state-threads)
|
||||||
ModuleLibFiles=(${LibSTfile})
|
ModuleLibFiles=(${LibSTfile})
|
||||||
MODULE_OBJS="${CORE_OBJS[@]} ${CONFIG_OBJS[@]} ${PROTOCOL_OBJS[@]} ${MAIN_OBJS[@]}"
|
MODULE_OBJS="${CORE_OBJS[@]} ${CONFIG_OBJS[@]} ${PROTOCOL_OBJS[@]} ${MAIN_OBJS[@]}"
|
||||||
BUILD_KEY="simple_rtmp_server" APP_MAIN="srs_main_server" APP_NAME="simple_rtmp_server" LINK_OPTIONS="-ldl" SO_PATH="" . auto/apps.sh
|
BUILD_KEY="simple_rtmp_server" APP_MAIN="srs_main_server" APP_NAME="simple_rtmp_server" LINK_OPTIONS="-ldl -lssl" SO_PATH="" . auto/apps.sh
|
||||||
|
|
||||||
echo 'configure ok! '
|
echo 'configure ok! '
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Annex E. The FLV File Format
|
* Annex E. The FLV File Format
|
||||||
|
* @doc update the README.cmd
|
||||||
*/
|
*/
|
||||||
class SrsCodec
|
class SrsCodec
|
||||||
{
|
{
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -36,6 +36,7 @@ class SrsSocket;
|
||||||
* rtmp complex handshake,
|
* rtmp complex handshake,
|
||||||
* @see also crtmp(crtmpserver) or librtmp,
|
* @see also crtmp(crtmpserver) or librtmp,
|
||||||
* @see also: http://blog.csdn.net/win_lin/article/details/13006803
|
* @see also: http://blog.csdn.net/win_lin/article/details/13006803
|
||||||
|
* @doc update the README.cmd
|
||||||
*/
|
*/
|
||||||
class SrsComplexHandshake
|
class SrsComplexHandshake
|
||||||
{
|
{
|
||||||
|
|
|
@ -63,10 +63,39 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#define ERROR_RTMP_AMF0_ENCODE 309
|
#define ERROR_RTMP_AMF0_ENCODE 309
|
||||||
#define ERROR_RTMP_CHUNK_SIZE 310
|
#define ERROR_RTMP_CHUNK_SIZE 310
|
||||||
#define ERROR_RTMP_TRY_SIMPLE_HS 311
|
#define ERROR_RTMP_TRY_SIMPLE_HS 311
|
||||||
|
#define ERROR_RTMP_CH_SCHEMA 312
|
||||||
|
|
||||||
#define ERROR_SYSTEM_STREAM_INIT 400
|
#define ERROR_SYSTEM_STREAM_INIT 400
|
||||||
#define ERROR_SYSTEM_PACKET_INVALID 401
|
#define ERROR_SYSTEM_PACKET_INVALID 401
|
||||||
#define ERROR_SYSTEM_CLIENT_INVALID 402
|
#define ERROR_SYSTEM_CLIENT_INVALID 402
|
||||||
#define ERROR_SYSTEM_ASSERT_FAILED 403
|
#define ERROR_SYSTEM_ASSERT_FAILED 403
|
||||||
|
|
||||||
|
// see librtmp.
|
||||||
|
// failed when open ssl create the dh
|
||||||
|
#define ERROR_OpenSslCreateDH 500
|
||||||
|
// failed when open ssl create the Private key.
|
||||||
|
#define ERROR_OpenSslCreateP 501
|
||||||
|
// when open ssl create G.
|
||||||
|
#define ERROR_OpenSslCreateG 502
|
||||||
|
// when open ssl parse P1024
|
||||||
|
#define ERROR_OpenSslParseP1024 503
|
||||||
|
// when open ssl set G
|
||||||
|
#define ERROR_OpenSslSetG 504
|
||||||
|
// when open ssl generate DHKeys
|
||||||
|
#define ERROR_OpenSslGenerateDHKeys 505
|
||||||
|
// when open ssl share key already computed.
|
||||||
|
#define ERROR_OpenSslShareKeyComputed 506
|
||||||
|
// when open ssl get shared key size.
|
||||||
|
#define ERROR_OpenSslGetSharedKeySize 507
|
||||||
|
// when open ssl get peer public key.
|
||||||
|
#define ERROR_OpenSslGetPeerPublicKey 508
|
||||||
|
// when open ssl compute shared key.
|
||||||
|
#define ERROR_OpenSslComputeSharedKey 509
|
||||||
|
// when open ssl is invalid DH state.
|
||||||
|
#define ERROR_OpenSslInvalidDHState 510
|
||||||
|
// when open ssl copy key
|
||||||
|
#define ERROR_OpenSslCopyKey 511
|
||||||
|
// when open ssl sha256 digest key invalid size.
|
||||||
|
#define ERROR_OpenSslSha256DigestSize 512
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -345,6 +345,7 @@ public:
|
||||||
* shared ptr message.
|
* shared ptr message.
|
||||||
* for audio/video/data message that need less memory copy.
|
* for audio/video/data message that need less memory copy.
|
||||||
* and only for output.
|
* and only for output.
|
||||||
|
* @doc update the README.cmd
|
||||||
*/
|
*/
|
||||||
class SrsSharedPtrMessage : public ISrsMessage
|
class SrsSharedPtrMessage : public ISrsMessage
|
||||||
{
|
{
|
||||||
|
|
|
@ -210,18 +210,18 @@ int SrsRtmp::handshake()
|
||||||
// plain text required.
|
// plain text required.
|
||||||
s0s1s2[0] = 0x03;
|
s0s1s2[0] = 0x03;
|
||||||
if ((ret = skt.write(s0s1s2, 3073, &nsize)) != ERROR_SUCCESS) {
|
if ((ret = skt.write(s0s1s2, 3073, &nsize)) != ERROR_SUCCESS) {
|
||||||
srs_warn("send s0s1s2 failed. ret=%d", ret);
|
srs_warn("simple handshake send s0s1s2 failed. ret=%d", ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
srs_verbose("send s0s1s2 success.");
|
srs_verbose("simple handshake send s0s1s2 success.");
|
||||||
|
|
||||||
char* c2 = new char[1536];
|
char* c2 = new char[1536];
|
||||||
SrsAutoFree(char, c2, true);
|
SrsAutoFree(char, c2, true);
|
||||||
if ((ret = skt.read_fully(c2, 1536, &nsize)) != ERROR_SUCCESS) {
|
if ((ret = skt.read_fully(c2, 1536, &nsize)) != ERROR_SUCCESS) {
|
||||||
srs_warn("read c2 failed. ret=%d", ret);
|
srs_warn("simple handshake read c2 failed. ret=%d", ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
srs_verbose("read c2 success.");
|
srs_verbose("simple handshake read c2 success.");
|
||||||
|
|
||||||
srs_trace("simple handshake success.");
|
srs_trace("simple handshake success.");
|
||||||
|
|
||||||
|
|
|
@ -68,6 +68,7 @@ public:
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* detect the time jitter and correct it.
|
* detect the time jitter and correct it.
|
||||||
|
* @doc update the README.cmd
|
||||||
*/
|
*/
|
||||||
virtual int jitter_correct(SrsSharedPtrMessage* msg);
|
virtual int jitter_correct(SrsSharedPtrMessage* msg);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue