On Mon, 23 Jul 2012, Diego Biurrun wrote:

Some of the rtmp* dependencies are in shambles.
libavformat/rtmpproto.c unconditionally uses all the symbols from
libavformat/rtmpcrypt.c, but does not depend on it.

I suspect all of the rtmp hackers have the dependencies for ffrtmpcrypt
protocol installed and thus never noticed, but at least one FATE box
does:

http://fate.libav.org/x86_64-linux-debug-no-optimizations/20120723150416

Please try combinations of '--disable-everything --enable-protocol=rtmp*'
to localize which protocols have incomplete dependencies.

Good catch. I ran into this but thought we wouldn't care (since iirc there's similar stuff if you disable svq3 but enable h264, but perhaps that's been fixed now), but since the rtmpe stuff depends on external libraries and this configuration is quite common, this probably is more important.

The fix is pretty simple - change some/all occurraces of "encrypted" into "rt->encrypted && CONFIG_FFRTMPCRYPT_PROTOCOL" (one case which is a parameter to a function can do with just rt->encrypted). The issue is that gcc isn't smart enough to propagate a known-0 variable to allow dead code elimination unless optimization is enabled.

// Martin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to