diff stream/stream_ffmpeg.c @ 30456:0eee9d2e7a1d

Add support for FFmpeg's rtsp dummy URL-with-pseudo-demuxer scheme. ffmpeg://rtsp://... will play a rtsp stream via FFmpeg.
author reimar
date Wed, 03 Feb 2010 22:32:48 +0000
parents ce0122361a39
children 04bdf393175b
line wrap: on
line diff
--- a/stream/stream_ffmpeg.c	Wed Feb 03 21:12:23 2010 +0000
+++ b/stream/stream_ffmpeg.c	Wed Feb 03 22:32:48 2010 +0000
@@ -75,6 +75,7 @@
     URLContext *ctx = NULL;
     int res = STREAM_ERROR;
     int64_t size;
+    int dummy;
 
     av_register_all();
     if (mode == STREAM_READ)
@@ -95,25 +96,28 @@
     }
     if (!strncmp(filename, prefix, strlen(prefix)))
         filename += strlen(prefix);
+    dummy = !strncmp(filename, "rtsp:", 5);
     mp_msg(MSGT_OPEN, MSGL_V, "[ffmpeg] Opening %s\n", filename);
 
-    if (url_open(&ctx, filename, flags) < 0)
+    if (!dummy && url_open(&ctx, filename, flags) < 0)
         goto out;
 
     stream->priv = ctx;
-    size = url_filesize(ctx);
+    size = dummy ? 0 : url_filesize(ctx);
     if (size >= 0)
         stream->end_pos = size;
     stream->type = STREAMTYPE_FILE;
     stream->seek = seek;
-    if (ctx->is_streamed) {
+    if (dummy || ctx->is_streamed) {
         stream->type = STREAMTYPE_STREAM;
         stream->seek = NULL;
     }
+    if (!dummy) {
     stream->fill_buffer = fill_buffer;
     stream->write_buffer = write_buffer;
     stream->control = control;
     stream->close = close_f;
+    }
     res = STREAM_OK;
 
 out: