[FFmpeg-devel] [PATCH] Make RTP work with IPv6 enabled

Luca Abeni lucabe72
Tue Oct 30 09:28:49 CET 2007


Hi Ronald,

sorry, I missed a part of this email and I am reading it only now...

Ronald S. Bultje wrote:
[...]
> For me, the bind() fails with EINVAL, as in ffserver...

Now I am even more confused: is it bind() to fail, or is it sendto()?
I understood that sendto() was the problem?

> For example, what
> about the RDWR sockets that rtsp uses for reading (ffplay), which are set up
> for reading to start (no target address known) but are used to send data on
> shutdown of the rtsp stream?

I missed these sockets... Can you please point me to them? As far as I know,
the rtsp demuxer uses a TCP socket (for cotrol) and two UDP sockets (same
as the RTP demuxer).
The first UDP socket is used for receiving RTP packets (and I think the rtsp
demuxer should NEVER use this socket for sending anything), while the second
one is used for sending/receiving RTCP packets. Note that the destination
address for this socket is known since the beginning (it's the rtsp server
address).
BTW, I am confused about sockets "set up for reading". I do not understand
this concept (I do not think an UDP socket needs any particular setup for
sending data).


> This means the bind()/socket() precede the
> point where the target address family is known, which royally sucks.

I am sure I am missing something, but I really do not see any problem here.
Are you talking about the RTP sockets or the TCP socket used for RTSP commands?
If you are talking about the RTP sockets, I believe that the target address
and its family are known, because when RTP sockets are created the RTSP connection
is already up (so, the server has already been contacted).

Also note that the SDP should tell you if we are going to send/receive traffic over
IPv6 or IPv4.


				Luca




More information about the ffmpeg-devel mailing list