[FFmpeg-devel] [PATCH] rtsp - alternate protocol
Michael Niedermayer
michaelni
Mon Dec 31 15:41:55 CET 2007
On Mon, Dec 31, 2007 at 02:57:52PM +0100, Luca Abeni wrote:
> Hi all,
>
> Luca Abeni wrote:
> [...]
>> Anyway, in the next days I'll work on a patch for adding a flag to
>
> sorry, this is a typo; I obviously wanted to write "a field"
>
>
>> AVFormatContext and using it for selecting the transport protocol.
>
> I attach a first version of such patch. To make the patch independent
>> from RTSP, I added an enum AVTransportProtocol. I also modified ffplay
> to properly set the new AVFormatContext field for selecting TCP when needed
> (since the transport protocol cannot be selected through an option in the
> URL, the "-rtp_tcp" option cannot be removed).
>
> As I said, I have no problems in applying Ronald's patch first, and
> re-generating my patch after that.
>
> And, BTW, happy new year to everyone!!!
[...]
> -#ifdef CONFIG_RTSP_DEMUXER
> static void opt_rtp_tcp(void)
> {
> /* only tcp protocol */
> - rtsp_default_protocols = (1 << RTSP_PROTOCOL_RTP_TCP);
> + rtsp_default_protocols = AVTRANSPORT_TCP;
> }
> -#endif
this would be unneeded if ffplay would use AVOptions, but thats seperate
and belongs in some future patch
... if you want to volunteer to implement it :)
>
> static void opt_sync(const char *arg)
> {
> Index: libavformat/avformat.h
> ===================================================================
> --- libavformat/avformat.h (revision 11361)
> +++ libavformat/avformat.h (working copy)
> @@ -371,6 +371,13 @@
>
> #define MAX_STREAMS 20
>
> +enum AVTransportProtocol {
> + AVTRANSPORT_UDP, /**< Use UDP as a transport protocol for networking formats */
> + AVTRANSPORT_TCP, /**< Use UDP as a transport protocol for networking
> + formats */
> + AVTRANSPORT_MULTICAST, /**< Use a multicast transport protocol for networking formats */
> +};
> +
> /**
> * format I/O context.
> * New fields can be added to the end with minor version bumps.
> @@ -476,6 +483,11 @@
> * demuxing: set by user
> */
> enum CodecID subtitle_codec_id;
> + /**
> + * Forced network protocol.
> + * demuxing: set by user
> + */
> + enum AVTransportProtocol transport_protocol;
> } AVFormatContext;
>
you are forgetting to bump the minor version num
and you have to add an entry to AVOption in utils.c
[...]
> + switch (s->transport_protocol) {
> + case AVTRANSPORT_UDP: protocol_mask = (1<< RTSP_PROTOCOL_RTP_UDP); break;
> + case AVTRANSPORT_TCP: protocol_mask = (1<< RTSP_PROTOCOL_RTP_TCP); break;
> + case AVTRANSPORT_MULTICAST: protocol_mask = (1<< RTSP_PROTOCOL_RTP_UDP_MULTICAST); break;
> }
vertical align, and is this remapping needed? cant u use the AVTRANSPORT
values in RTSP too?
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
I count him braver who overcomes his desires than him who conquers his
enemies for the hardest victory is over self. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20071231/36210cfe/attachment.pgp>
More information about the ffmpeg-devel
mailing list