Commits on Source (4)
-
3d61b755
-
621491b8
-
In the UpdateCurrentPicture function, it looks like the picture will never be NULL because we check at the beginning of the function whether it's NULL or not and only set it at the end. However, UpdateCurrentPicture calls PreparePicture to make progress, and this last function can call ChangeFilters, leading to the call to FilterFlush. After this sequence, FilterFlush will set the picture syys->displayed.current to NULL and the code will unwind back to the UpdateCurrentPicture call, ready to release the picture. PreparePicture should probably be made so that it doesn't reset the current state, but it's far simpler to first fix the problem with a check after PreparePicture, guarding picture_Release from NULL pointers and then test the behaviour so that refactor doesn't break it.
059b41d9 -
Send initial pictures to start-up the whole input_decoder state and ensure it won't deadlock the es_out. At the same time, it seems that updating the vout state from the decoder (decoder_UpdateVideoOutput) is racy with the work of the video output itself, so ensure the update is done once at the beginning for now. A subsequent test will be provided once this race is fixed.
a50390b5
Showing
- src/video_output/video_output.c 7 additions, 2 deletionssrc/video_output/video_output.c
- test/src/input/decoder/input_decoder_scenarios.c 28 additions, 2 deletionstest/src/input/decoder/input_decoder_scenarios.c
- test/src/video_output/video_output.c 1 addition, 1 deletiontest/src/video_output/video_output.c