[FFmpeg-devel] [GSoC] FFserver libmicrohttpd interface

Stephan Holljes klaxa1337 at googlemail.com
Thu Aug 2 02:00:17 EEST 2018


After fighting for a bit too long, I am finally submitting this patch series
that adds the more mature libmicrohttpd library. Client disconnect detection
is not really taken care of as of now, clients will be disconnected once
av_interleaved_write_frame() fails. This may be worth looking into more
closely, see below.

Other fixes and improvements are also contained, the most important ones:
  - fix compilation (fileserver.c/.h's fileserver_schedule() was broken.
  - properly handle file requests if no fileserver is running (prevents crash)

At the moment there is a memory-leak I can't seem to fix. It is the connection-
closure (**con_cls) in lmhttpd.c:answer_to_connection(). In the libmicrohttpd
examples a function to free it is passed to MHD_create_response_from_callback(),
however this leads to a heap-use-after-free bug. This happens when a client
disconnects prematurely.

Another but I could not reliably reproduce is the skipping of segments from the
server side. It occurs very rarely and as I said I could not reproduce it yet.

There may even be more bugs I am currently unaware of, these just took the
highest priority for fixing in my opinion.



More information about the ffmpeg-devel mailing list