|
|
@@ -74,6 +74,7 @@ typedef struct RTMPContext { |
|
|
|
int skip_bytes; ///< number of bytes to skip from the input FLV stream in the next write call |
|
|
|
uint8_t flv_header[11]; ///< partial incoming flv packet header |
|
|
|
int flv_header_bytes; ///< number of initialized bytes in flv_header |
|
|
|
int nb_invokes; ///< keeps track of invoke messages |
|
|
|
} RTMPContext; |
|
|
|
|
|
|
|
#define PLAYER_KEY_OPEN_PART_LEN 30 ///< length of partial key used for first client digest signing |
|
|
@@ -166,7 +167,7 @@ static void gen_release_stream(URLContext *s, RTMPContext *rt) |
|
|
|
av_log(s, AV_LOG_DEBUG, "Releasing stream...\n"); |
|
|
|
p = pkt.data; |
|
|
|
ff_amf_write_string(&p, "releaseStream"); |
|
|
|
ff_amf_write_number(&p, 2.0); |
|
|
|
ff_amf_write_number(&p, ++rt->nb_invokes); |
|
|
|
ff_amf_write_null(&p); |
|
|
|
ff_amf_write_string(&p, rt->playpath); |
|
|
|
|
|
|
@@ -189,7 +190,7 @@ static void gen_fcpublish_stream(URLContext *s, RTMPContext *rt) |
|
|
|
av_log(s, AV_LOG_DEBUG, "FCPublish stream...\n"); |
|
|
|
p = pkt.data; |
|
|
|
ff_amf_write_string(&p, "FCPublish"); |
|
|
|
ff_amf_write_number(&p, 3.0); |
|
|
|
ff_amf_write_number(&p, ++rt->nb_invokes); |
|
|
|
ff_amf_write_null(&p); |
|
|
|
ff_amf_write_string(&p, rt->playpath); |
|
|
|
|
|
|
@@ -212,7 +213,7 @@ static void gen_fcunpublish_stream(URLContext *s, RTMPContext *rt) |
|
|
|
av_log(s, AV_LOG_DEBUG, "UnPublishing stream...\n"); |
|
|
|
p = pkt.data; |
|
|
|
ff_amf_write_string(&p, "FCUnpublish"); |
|
|
|
ff_amf_write_number(&p, 5.0); |
|
|
|
ff_amf_write_number(&p, ++rt->nb_invokes); |
|
|
|
ff_amf_write_null(&p); |
|
|
|
ff_amf_write_string(&p, rt->playpath); |
|
|
|
|
|
|
@@ -234,7 +235,7 @@ static void gen_create_stream(URLContext *s, RTMPContext *rt) |
|
|
|
|
|
|
|
p = pkt.data; |
|
|
|
ff_amf_write_string(&p, "createStream"); |
|
|
|
ff_amf_write_number(&p, rt->is_input ? 3.0 : 4.0); |
|
|
|
ff_amf_write_number(&p, ++rt->nb_invokes); |
|
|
|
ff_amf_write_null(&p); |
|
|
|
|
|
|
|
ff_rtmp_packet_write(rt->stream, &pkt, rt->chunk_size, rt->prev_pkt[1]); |
|
|
|