@ -26,16 +26,13 @@
# include <string.h>
# include <string.h>
# include <stdlib.h>
# include <stdlib.h>
# include "libavformat/avformat.h"
# include "libavformat/avformat.h"
// FIXME those are internal headers, avserver _really_ shouldn't use them
# include "libavformat/ffm.h"
# include "libavformat/ffm.h"
# include "libavformat/network.h"
# include "libavformat/network.h"
# include "libavformat/os_support.h"
# include "libavformat/os_support.h"
# include "libavformat/rtpdec.h"
# include "libavformat/rtpdec.h"
# include "libavformat/rtsp.h"
# include "libavformat/rtsp.h"
// XXX for ffio_open_dyn_packet_buffer, to be removed
# include "libavformat/avio_internal.h"
# include "libavformat/avio_internal.h"
# include "libavformat/internal.h"
# include "libavformat/url.h"
# include "libavutil/avstring.h"
# include "libavutil/avstring.h"
# include "libavutil/lfg.h"
# include "libavutil/lfg.h"
# include "libavutil/dict.h"
# include "libavutil/dict.h"
@ -870,7 +867,7 @@ static void close_connection(HTTPContext *c)
}
}
h = c - > rtp_handles [ i ] ;
h = c - > rtp_handles [ i ] ;
if ( h )
if ( h )
ff url_close( h ) ;
url_close ( h ) ;
}
}
ctx = & c - > fmt_ctx ;
ctx = & c - > fmt_ctx ;
@ -2251,6 +2248,7 @@ static int http_prepare_data(HTTPContext *c)
* Default value from Libav
* Default value from Libav
* Try to set it use configuration option
* Try to set it use configuration option
*/
*/
c - > fmt_ctx . preload = ( int ) ( 0.5 * AV_TIME_BASE ) ;
c - > fmt_ctx . max_delay = ( int ) ( 0.7 * AV_TIME_BASE ) ;
c - > fmt_ctx . max_delay = ( int ) ( 0.7 * AV_TIME_BASE ) ;
if ( avformat_write_header ( & c - > fmt_ctx , NULL ) < 0 ) {
if ( avformat_write_header ( & c - > fmt_ctx , NULL ) < 0 ) {
@ -2369,7 +2367,7 @@ static int http_prepare_data(HTTPContext *c)
if ( c - > rtp_protocol = = RTSP_LOWER_TRANSPORT_TCP )
if ( c - > rtp_protocol = = RTSP_LOWER_TRANSPORT_TCP )
max_packet_size = RTSP_TCP_MAX_PACKET_SIZE ;
max_packet_size = RTSP_TCP_MAX_PACKET_SIZE ;
else
else
max_packet_size = c - > rtp_handles [ c - > packet_stream_index ] - > max_packet_size ;
max_packet_size = url_get_max_packet_size ( c - > rtp_handles [ c - > packet_stream_index ] ) ;
ret = ffio_open_dyn_packet_buf ( & ctx - > pb , max_packet_size ) ;
ret = ffio_open_dyn_packet_buf ( & ctx - > pb , max_packet_size ) ;
} else {
} else {
ret = avio_open_dyn_buf ( & ctx - > pb ) ;
ret = avio_open_dyn_buf ( & ctx - > pb ) ;
@ -2522,7 +2520,7 @@ static int http_send_data(HTTPContext *c)
} else {
} else {
/* send RTP packet directly in UDP */
/* send RTP packet directly in UDP */
c - > buffer_ptr + = 4 ;
c - > buffer_ptr + = 4 ;
ff url_write( c - > rtp_handles [ c - > packet_stream_index ] ,
url_write ( c - > rtp_handles [ c - > packet_stream_index ] ,
c - > buffer_ptr , len ) ;
c - > buffer_ptr , len ) ;
c - > buffer_ptr + = len ;
c - > buffer_ptr + = len ;
/* here we continue as we can send several packets per 10 ms slot */
/* here we continue as we can send several packets per 10 ms slot */
@ -3406,10 +3404,10 @@ static int rtp_new_av_stream(HTTPContext *c,
" rtp://%s:%d " , ipaddr , ntohs ( dest_addr - > sin_port ) ) ;
" rtp://%s:%d " , ipaddr , ntohs ( dest_addr - > sin_port ) ) ;
}
}
if ( ff url_open( & h , ctx - > filename , AVIO_FLAG_WRITE , NULL , NULL ) < 0 )
if ( url_open ( & h , ctx - > filename , AVIO_FLAG_WRITE ) < 0 )
goto fail ;
goto fail ;
c - > rtp_handles [ stream_index ] = h ;
c - > rtp_handles [ stream_index ] = h ;
max_packet_size = h - > max_packet_size ;
max_packet_size = url_get_max_packet_size ( h ) ;
break ;
break ;
case RTSP_LOWER_TRANSPORT_TCP :
case RTSP_LOWER_TRANSPORT_TCP :
/* RTP/TCP case */
/* RTP/TCP case */
@ -3432,7 +3430,7 @@ static int rtp_new_av_stream(HTTPContext *c,
if ( avformat_write_header ( ctx , NULL ) < 0 ) {
if ( avformat_write_header ( ctx , NULL ) < 0 ) {
fail :
fail :
if ( h )
if ( h )
ff url_close( h ) ;
url_close ( h ) ;
av_free ( ctx ) ;
av_free ( ctx ) ;
return - 1 ;
return - 1 ;
}
}
@ -3469,7 +3467,7 @@ static AVStream *add_av_stream1(FFStream *stream, AVCodecContext *codec, int cop
}
}
fst - > priv_data = av_mallocz ( sizeof ( FeedData ) ) ;
fst - > priv_data = av_mallocz ( sizeof ( FeedData ) ) ;
fst - > index = stream - > nb_streams ;
fst - > index = stream - > nb_streams ;
avpriv _set_pts_info ( fst , 33 , 1 , 90000 ) ;
av_set_pts_info ( fst , 33 , 1 , 90000 ) ;
fst - > sample_aspect_ratio = codec - > sample_aspect_ratio ;
fst - > sample_aspect_ratio = codec - > sample_aspect_ratio ;
stream - > streams [ stream - > nb_streams + + ] = fst ;
stream - > streams [ stream - > nb_streams + + ] = fst ;
return fst ;
return fst ;