Skip to content
Snippets Groups Projects
Commit a685b7ea authored by Alexandre Janniaux's avatar Alexandre Janniaux Committed by Felix Paul Kühne
Browse files

test: modules: add transcoder test

A unit-test for the transcoder code currently is hard to achieve, as it
involves decoders, encoders, filters, sout_stream_t object, and general
transcode code.

This commit introduces an integration test which mocks the extern
components (filters, decoders, encoders) used by the transcode pipeline
and starts this pipeline using the usual input item properties.

The main end goals are to:
 - check whether no part of the stream is dropped.
 - check whether push model with video context is supported everywhere.
 - check the different kind of decoder behaviour, in particular those
   for which decode is asynchronous with the decoder_QueueVideo call,
   those for which Open() is asynchronous with the decoder_UpdateVideo*
   call and their synchronous variants.
 - check memory leaks and use-after-free in the pipeline (through asan).
 - check threading within the pipeline (through tsan).
 - check decoder, encoder and filter loading failure.
 - check format adaptation through filters before the encoder.
 - check format conversion (called final_conv_static) before the
   encoder, needed for encoders requesting a conversion.

It's currently written in an asynchronous state way spread across
multiple feature functions to handle the different stage of the pipeline
without interaction, like it was done for the video output test, but we
might want to find a way to rewrite those tests in a more sequential way
if it were to get more complex even.
parent 77cfe38a
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment