[FFmpeg-devel] [GSoC] FFserver libmicrohttpd interface

Stephan Holljes klaxa1337 at googlemail.com
Tue Aug 14 00:44:07 EEST 2018


On Sat, Aug 11, 2018 at 3:58 AM, Michael Niedermayer
<michael at niedermayer.cc> wrote:
> On Thu, Aug 09, 2018 at 02:46:59PM +0200, Stephan Holljes wrote:
>> On Thu, Aug 2, 2018 at 1:00 AM, Stephan Holljes
>> <klaxa1337 at googlemail.com> wrote:
>> > 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.
>> >
>>
>> Ping? Also I put everything up here for submission:
>> https://github.com/klaxa/ffserver
>>
>> If you want me to submit something different, have suggestions for
>> changes or something else, please comment.
>
> is there something like a selftest? even a very basic one ?
> like make fate (but could be VERY much simpler, even a single simple test
>
> thanks
>
> [...]
> --
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> It is dangerous to be right in matters on which the established authorities
> are wrong. -- Voltaire
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>

I spent the last days working on a test and it passes when using mkv,
however for HLS and DASH it does not work (with HLS it appears the
timestamps are off and with DASH I have no idea so far what the issue
is for now.) I will shortly send the patch to the ML.
It is a simple bash script that generates a video with lavfi, and
ffserver restreaming it with ffmpeg and curl as clients. The resulting
videos (including the original generated one) are checked with
framecrc against each other.

After looking at FFmpeg's Makefile I'm not sure how to incorporate the
script into the Makefile so you can run `make test` or something
similar. Also, maybe having bash (and curl) as dependencies is not
desirable?

Thanks
Stephan


More information about the ffmpeg-devel mailing list