summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_lavf.c
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-02-03 22:32:48 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-02-03 22:32:48 +0000
commit8613396aa050e5ff67e15f1cbf10e83092d5811b (patch)
treea3642911719c40fb2a65fa4212ad59dcdc703cfc /libmpdemux/demux_lavf.c
parentbc9eaa540474e1537908864344641ee4ea7c4294 (diff)
downloadmpv-8613396aa050e5ff67e15f1cbf10e83092d5811b.tar.bz2
mpv-8613396aa050e5ff67e15f1cbf10e83092d5811b.tar.xz
Add support for FFmpeg's rtsp dummy URL-with-pseudo-demuxer scheme.
ffmpeg://rtsp://... will play a rtsp stream via FFmpeg. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30498 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_lavf.c')
-rw-r--r--libmpdemux/demux_lavf.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c
index fe6aac4273..6d77cb7640 100644
--- a/libmpdemux/demux_lavf.c
+++ b/libmpdemux/demux_lavf.c
@@ -155,13 +155,15 @@ static int lavf_check_file(demuxer_t *demuxer){
}
probe_data_size = stream_read(demuxer->stream, priv->buffer, PROBE_BUF_SIZE);
- if(probe_data_size <= 0)
+ if(probe_data_size < 0)
return 0;
avpd.filename= demuxer->stream->url;
+ if (!strncmp(avpd.filename, "ffmpeg://", 9))
+ avpd.filename += 9;
avpd.buf= priv->buffer;
avpd.buf_size= probe_data_size;
- priv->avif= av_probe_input_format(&avpd, 1);
+ priv->avif= av_probe_input_format(&avpd, probe_data_size > 0);
if(!priv->avif){
mp_msg(MSGT_HEADER,MSGL_V,"LAVF_check: no clue about this gibberish!\n");
return 0;
@@ -458,9 +460,12 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){
}
}
- if(demuxer->stream->url)
+ if(demuxer->stream->url) {
+ if (!strncmp(demuxer->stream->url, "ffmpeg://rtsp:", 14))
+ strncpy(mp_filename, demuxer->stream->url + 9, sizeof(mp_filename)-3);
+ else
strncpy(mp_filename + 3, demuxer->stream->url, sizeof(mp_filename)-3);
- else
+ } else
strncpy(mp_filename + 3, "foobar.dummy", sizeof(mp_filename)-3);
priv->pb = av_alloc_put_byte(priv->buffer, BIO_BUFFER_SIZE, 0,