[FFmpeg-devel] [PATCH] IPv6 support v.2

Ronald S. Bultje rsbultje
Tue Oct 30 14:40:30 CET 2007


Hi,

On 10/28/07, Ronald S. Bultje <rsbultje at gmail.com> wrote:
>
> ffmpeg-avinetaddr-ipv6.patch - add IPv6 host resolution and info API, this
> deprecates resolve_host() (ipv4-only). Also converts tcp.c over to the new
> API.


This API needed a small enhancement (new flag) to handle the address family
problem discussed in the rtp/ipv6 thread elsewhere. Updated patch attached.

AVInetAddr is a replacement API for resolve_host(), which is limited to
IPv4. AVInetAddr is fully IPv6-compatible. The API is similar to
resolve_host(), which means that relatively minor changes are needed to port
protocols over to the new API and become IPv6-compatible. The API consists
of:
- AVInetAddr: sort of a container for struct addrinfo, works on both
ipv4-only and ipv6-capable systems
- inetaddr_resolve: replaces resolve_host(), can either parse IPv4/6 names
w/o host resolution or resolve hosts on a name server
- inetaddr_alloc: for those cases where you need an empty AVInetAddr, e.g.
for use in accept()
- inetaddr_str: basically inet_ntop() and inet_ntoa().
- there's also a bunch of macros to directly access (set/get) the
port/address of AVInetAddr and some flags as last argument in
inetaddr_resolve(). To access the family, simply use
AVInetAddr::addr->sa_family.

Other changes:
- ports tcp.c over to the new API

(I have patches for udp, ffserver, rtsp and for removal of resolve_host()
also, I'll try 1-by-1 and see if that makes this whole submission process
somewhat faster...)

Ronald
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ffmpeg-avinetaddr-ipv6.patch
Type: application/octet-stream
Size: 11335 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20071030/830ee33f/attachment.obj>



More information about the ffmpeg-devel mailing list