@ -932,7 +932,10 @@ static int rtsp_read_reply(AVFormatContext *s, RTSPMessageHeader *reply,
return 0 ;
}
static void rtsp_send_cmd_async ( AVFormatContext * s , const char * cmd )
static void rtsp_send_cmd_with_content_async ( AVFormatContext * s ,
const char * cmd ,
const unsigned char * send_content ,
int send_content_length )
{
RTSPState * rt = s - > priv_data ;
char buf [ 4096 ] , buf1 [ 1024 ] ;
@ -949,14 +952,23 @@ static void rtsp_send_cmd_async(AVFormatContext *s, const char *cmd)
av_strlcatf ( buf , sizeof ( buf ) ,
" Authorization: Basic %s \r \n " ,
rt - > auth_b64 ) ;
if ( send_content_length > 0 & & send_content )
av_strlcatf ( buf , sizeof ( buf ) , " Content-Length: %d \r \n " , send_content_length ) ;
av_strlcat ( buf , " \r \n " , sizeof ( buf ) ) ;
dprintf ( s , " Sending: \n %s-- \n " , buf ) ;
url_write ( rt - > rtsp_hd , buf , strlen ( buf ) ) ;
if ( send_content_length > 0 & & send_content )
url_write ( rt - > rtsp_hd , send_content , send_content_length ) ;
rt - > last_cmd_time = av_gettime ( ) ;
}
static void rtsp_send_cmd_async ( AVFormatContext * s , const char * cmd )
{
rtsp_send_cmd_with_content_async ( s , cmd , NULL , 0 ) ;
}
static void rtsp_send_cmd ( AVFormatContext * s ,
const char * cmd , RTSPMessageHeader * reply ,
unsigned char * * content_ptr )
@ -966,6 +978,18 @@ static void rtsp_send_cmd(AVFormatContext *s,
rtsp_read_reply ( s , reply , content_ptr , 0 ) ;
}
static void rtsp_send_cmd_with_content ( AVFormatContext * s ,
const char * cmd ,
RTSPMessageHeader * reply ,
unsigned char * * content_ptr ,
const unsigned char * send_content ,
int send_content_length )
{
rtsp_send_cmd_with_content_async ( s , cmd , send_content , send_content_length ) ;
rtsp_read_reply ( s , reply , content_ptr , 0 ) ;
}
/**
* @ returns 0 on success , < 0 on error , 1 if protocol is unavailable .
*/