From 8613396aa050e5ff67e15f1cbf10e83092d5811b Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 3 Feb 2010 22:32:48 +0000 Subject: 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 --- libmpdemux/demux_lavf.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'libmpdemux/demux_lavf.c') 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, -- cgit v1.2.3 From 9d9b7a1e229e6bbff6616a8fc8320bcad990e558 Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 3 Feb 2010 22:33:35 +0000 Subject: Reindent git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30499 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_lavf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libmpdemux/demux_lavf.c') diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index 6d77cb7640..463a3b4991 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -464,7 +464,7 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){ 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); + strncpy(mp_filename + 3, demuxer->stream->url, sizeof(mp_filename)-3); } else strncpy(mp_filename + 3, "foobar.dummy", sizeof(mp_filename)-3); -- cgit v1.2.3 From 78ecbc1e6f3c19ef6392dbaa492e7fb4fbd46edc Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 3 Feb 2010 22:36:47 +0000 Subject: Replace incorrect usage of strncpy. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30500 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_lavf.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'libmpdemux/demux_lavf.c') diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index 463a3b4991..03e617536c 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -37,6 +37,7 @@ #include "libavformat/avformat.h" #include "libavformat/avio.h" #include "libavutil/avutil.h" +#include "libavutil/avstring.h" #include "libavcodec/opt.h" #include "mp_taglists.h" @@ -462,11 +463,11 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){ if(demuxer->stream->url) { if (!strncmp(demuxer->stream->url, "ffmpeg://rtsp:", 14)) - strncpy(mp_filename, demuxer->stream->url + 9, sizeof(mp_filename)-3); + av_strlcpy(mp_filename, demuxer->stream->url + 9, sizeof(mp_filename)); else - strncpy(mp_filename + 3, demuxer->stream->url, sizeof(mp_filename)-3); + av_strlcat(mp_filename, demuxer->stream->url, sizeof(mp_filename)); } else - strncpy(mp_filename + 3, "foobar.dummy", sizeof(mp_filename)-3); + av_strlcat(mp_filename, "foobar.dummy", sizeof(mp_filename)); priv->pb = av_alloc_put_byte(priv->buffer, BIO_BUFFER_SIZE, 0, demuxer->stream, mp_read, NULL, mp_seek); -- cgit v1.2.3