[FFmpeg-devel] [GSOC] Handling slave failure in tee muxer

sebechlebskyjan at gmail.com sebechlebskyjan at gmail.com
Tue Apr 12 19:46:26 CEST 2016

I'm sorry for delay. I made a few modifications to the patchset from the
last version apart from issues pointed by Marton:

- I discovered another source of leaks - slave muxers often allocate memory
in write_header call and free them in write_trailer. write_trailer is called
if write_header succeeded before. However in the tee when i-th slave failed to open,
write_trailer was never called on already succesfully initializated slaves.

I've changed the code in second patch so if failure happens inside open_slave function
after write_header call, write_trailer is called before open_slave function returns.
write_trailer is also called on all already initialized (alive) slaves. 

If failure happens later (in write_packet), if we are not handling slave failure
this is not a problem since master write_trailer will be called anyway.
If we are handling slave failure (third patch), the slave is closed immediately after
failure happens, so I write_trailer is called inside tee_process_slave_failure in that case.

- I removed is_alive field from TeeSlave structure, since avf field can be used instead.

I've tested several scenarios with valgrind, I believe there should be no more leaks in 
tee after this patchset is applied.

Marton, Nicolas - What do you think?

Jan S.

More information about the ffmpeg-devel mailing list