rtmp: do not hardcode invoke numbers
Note: FCPublish/FCUnpublish are adobe server specific and not described in the rtmp specification. Some servers might not cope with them at all. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This commit is contained in:
		
							parent
							
								
									b7d939d998
								
							
						
					
					
						commit
						704af3e29c
					
				@ -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
 | 
					    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
 | 
					    uint8_t       flv_header[11];             ///< partial incoming flv packet header
 | 
				
			||||||
    int           flv_header_bytes;           ///< number of initialized bytes in flv_header
 | 
					    int           flv_header_bytes;           ///< number of initialized bytes in flv_header
 | 
				
			||||||
 | 
					    int           nb_invokes;                 ///< keeps track of invoke messages
 | 
				
			||||||
} RTMPContext;
 | 
					} RTMPContext;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define PLAYER_KEY_OPEN_PART_LEN 30   ///< length of partial key used for first client digest signing
 | 
					#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");
 | 
					    av_log(s, AV_LOG_DEBUG, "Releasing stream...\n");
 | 
				
			||||||
    p = pkt.data;
 | 
					    p = pkt.data;
 | 
				
			||||||
    ff_amf_write_string(&p, "releaseStream");
 | 
					    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_null(&p);
 | 
				
			||||||
    ff_amf_write_string(&p, rt->playpath);
 | 
					    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");
 | 
					    av_log(s, AV_LOG_DEBUG, "FCPublish stream...\n");
 | 
				
			||||||
    p = pkt.data;
 | 
					    p = pkt.data;
 | 
				
			||||||
    ff_amf_write_string(&p, "FCPublish");
 | 
					    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_null(&p);
 | 
				
			||||||
    ff_amf_write_string(&p, rt->playpath);
 | 
					    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");
 | 
					    av_log(s, AV_LOG_DEBUG, "UnPublishing stream...\n");
 | 
				
			||||||
    p = pkt.data;
 | 
					    p = pkt.data;
 | 
				
			||||||
    ff_amf_write_string(&p, "FCUnpublish");
 | 
					    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_null(&p);
 | 
				
			||||||
    ff_amf_write_string(&p, rt->playpath);
 | 
					    ff_amf_write_string(&p, rt->playpath);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -234,7 +235,7 @@ static void gen_create_stream(URLContext *s, RTMPContext *rt)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    p = pkt.data;
 | 
					    p = pkt.data;
 | 
				
			||||||
    ff_amf_write_string(&p, "createStream");
 | 
					    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_amf_write_null(&p);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ff_rtmp_packet_write(rt->stream, &pkt, rt->chunk_size, rt->prev_pkt[1]);
 | 
					    ff_rtmp_packet_write(rt->stream, &pkt, rt->chunk_size, rt->prev_pkt[1]);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user