From 2c67e7af2c58f4e594dd09049965da9749e52967 Mon Sep 17 00:00:00 2001 From: Alaric Senat Date: Wed, 25 Jan 2023 14:36:40 +0100 Subject: [PATCH] test: pcr_sync: check IO mismatch error --- test/modules/stream_out/pcr_sync.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/test/modules/stream_out/pcr_sync.c b/test/modules/stream_out/pcr_sync.c index 6f931d25c1..61b202815b 100644 --- a/test/modules/stream_out/pcr_sync.c +++ b/test/modules/stream_out/pcr_sync.c @@ -470,6 +470,31 @@ test_PCRHelperSplitFrameInput(vlc_pcr_sync_t *sync, assert(pcr == VLC_TICK_INVALID); } +static void test_PCRHelperIOMismatch(vlc_pcr_sync_t *sync, + transcode_track_pcr_helper_t *pcr_helper) +{ + const vlc_frame_t in_frame = {.i_dts = 1u, .i_length = 10u}; + vlc_tick_t dropped_frame_pcr; + transcode_track_pcr_helper_SignalEnteringFrame( + pcr_helper, &in_frame, &dropped_frame_pcr); + assert(dropped_frame_pcr == VLC_TICK_INVALID); + + assert(vlc_pcr_sync_SignalPCR(sync, 10u) == VLC_SUCCESS); + + const vlc_frame_t out_frame1 = {.i_dts = 2000u, .i_length = 10u}; + const vlc_frame_t out_frame2 = {.i_dts = 2010u, .i_length = 10u}; + vlc_tick_t pcr; + int status = transcode_track_pcr_helper_SignalLeavingFrame( + pcr_helper, &out_frame1, &pcr); + assert(status == VLC_SUCCESS); + assert(pcr == 10u); + + status = transcode_track_pcr_helper_SignalLeavingFrame( + pcr_helper, &out_frame2, &pcr); + assert(status == VLC_EGENERIC); + assert(pcr == VLC_TICK_INVALID); +} + int main() { test_Run(test_Simple); @@ -488,4 +513,5 @@ int main() test_PCRHelper(test_PCRHelperMultipleTracks); test_PCRHelper(test_PCRHelperSplitFrameOutput); test_PCRHelper(test_PCRHelperSplitFrameInput); + test_PCRHelper(test_PCRHelperIOMismatch); }