[libav-bugs] [Bug 224] Please export url.h and ffurl_register_protocol() function

bugzilla-daemon at aruru.libav.org bugzilla-daemon at aruru.libav.org
Wed Feb 8 18:02:44 CET 2012


--- Comment #8 from Ronald S. Bultje <rsbultje at gmail.com> 2012-02-08 18:02:44 CET ---
Hi Ilya,

two problems. First, use:
A) what should it be used for? Many users, e.g. GStreamer, used custom
protocols to forward application-provided data (e.g. if the application wants
to read files, instead of reading them through libavformat's file:// protocol
implementation). Another API to do the same thing was AVIOContext. We felt
having two APIs to do the same thing was silly, so we elected AVIOContext as
the better of the two, and deprecated URLProtocol for this purpose.
B) new protocols. Note how this is different from the above, because here the
user very specifically wants to use URLProtocol's API and protocol
implementations to do reading of protocols, just add more protocols to it. We
felt that this is akin to adding new external AVCodecs or
AVInputFormat/AVOutputFormat that are application-specific; it is not the right
place. If you fork Libav into your project, add it inside the source tree and
binary. If you link to it, send it upstream. In fact, in both cases, please
send it upstream, so that other projects can benefit from it also, if
interesting. DVD is a perfect example. It does belong in Libav upstream, not in
a few downstream projects only.

That explains why we don't like that use. Now, second, as for the public API
deprecation: we don't like the implementation. At all. It's horrible and ugly,
and we can't fix it or even add new struct members, because it's public. So we
decided to remove the public API so we can completely overhaul and redo it
while it's private, and then _maybe_ export it again after that if there's a
legitimate use case for it. Best example is how you could use a URLContext as a
av_log() context because we couldn't add a AVClass to the beginning of it
because it'd break ABI...

Configure bugmail: https://bugzilla.libav.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.

More information about the libav-bugs mailing list