[FFmpeg-devel] Realmedia patch
Mon Aug 25 14:33:00 CEST 2008
Ronald S. Bultje wrote:
> Hi Luca,
>> At least the code would be more correct from the theoretical point
>> of view (see the discussion above). And we would avoid opening an UDP
>> port for non-existing RTCP packets ;-). And I guess the RDT code
>> could be simplified (no need to have two separate functions to parse
>> the header and the payload).
> OK, I'll try to separate the two. I would still like to use the
> RTPDynamicProtocolHandler and some other RTP-like structures, but
> those are mostly called from rtsp.c so I think that should be OK.
I do not know if RDT is supposed to contain RM, or if it can also
contain different payloads... In the second case, using
RTPDynamicProtocolHandler makes sense; in the first case, I do not
> I guess I could rename Handler:parse_header to Handler:parse_packet and
> use that (so that no explicit reference to RDT is needed).
The point is that RTPDynamicProtocolHandler is a "dynamic payload"
header, so a "parse_packet" or a "parse_header" method does not make
much sense (IMHO).
One thing you can do is to have a "parse_packet" pointer in RTSPStream
and to call rtsp_st->parse_packet instead of rtp_parse_packet (then,
instead of the "RTPDemuxContext *rtp_ctx" field you need an opaque
"void *transport_ctx", and to change some things accordingly).
> For the generalizing of the RDT handling in rtsp.c, do you know if RDT
> is always TCP?
Well, I do not know (unfortunately, RDT is not documented). This evening
I'll try to perform some experiments with the new URL you provided, to
check if it is possible to receive RDT over TCP and over UDP.
> If so, I could make it a separate RTSPProtocol, like
> TCP, UDP and UDP_MULTICAST, and could rotate over them in
> make_setup_request() (although I'd need some code to handle it during
> OPTIONS / DESCRIBE, but anyway...). Alternatively, I'd add a new
> variable to the rtsp context that distinguishes between RTP and RDT.
A possibility is to define RTSP_PROTOCOL_RDT_TCP and RTSP_PROTOCOL_RDT_UDP.
More information about the ffmpeg-devel