Hi John,

On Mon, 31 Oct 2011, John Brooks wrote:

Streams from the RTSP server that do not match an allowed type
will be skipped entirely, which allows video-only or audio-only
streaming from servers that provide both.

Nice, in general, this patch looks good, I could have used it a number of times when debugging some things (where I've just temporarily hacked the code to skip either stream).

---
libavformat/rtsp.c |   10 +++++++++-
libavformat/rtsp.h |    5 +++++
2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 5aadc44..94184b0 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -74,6 +74,12 @@ const AVOption ff_rtsp_options[] = {
    { "udp_multicast", "UDP multicast", 0, AV_OPT_TYPE_CONST, {1 << 
RTSP_LOWER_TRANSPORT_UDP_MULTICAST}, 0, 0, DEC, "rtsp_transport" },
    { "http", "HTTP tunneling", 0, AV_OPT_TYPE_CONST, {(1 << RTSP_LOWER_TRANSPORT_HTTP)}, 
0, 0, DEC, "rtsp_transport" },
    RTSP_FLAG_OPTS("rtsp_flags", "RTSP flags"),
+
+    { "allowed_media_types", "Media types to accept from the server", OFFSET(media_type_mask), 
AV_OPT_TYPE_FLAGS, { (1 << (AVMEDIA_TYPE_DATA+1)) - 1 }, INT_MIN, INT_MAX, DEC, 
"allowed_media_types" }, \
+    { "video", "Video", 0, AV_OPT_TYPE_CONST, {1 << AVMEDIA_TYPE_VIDEO}, 0, 0, DEC, 
"allowed_media_types" }, \
+    { "audio", "Audio", 0, AV_OPT_TYPE_CONST, {1 << AVMEDIA_TYPE_AUDIO}, 0, 0, DEC, 
"allowed_media_types" }, \
+    { "data", "Data", 0, AV_OPT_TYPE_CONST, {1 << AVMEDIA_TYPE_DATA}, 0, 0, DEC, 
"allowed_media_types" },
+
    { NULL },
};

I think these options could be shared with the SDP demuxer, too, so then they should be defined in some #define above, and added to both ff_rtsp_options and ff_sdp_options. (They don't really make sense for the RTP guessing demuxer, which can only handle one single stream anyway.)

Other than that, I think it looks good, but a comment from Anton on the AVOption style might be good.

// Martin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to