From f3f150ad34ddf7577fdc96ba263bbbe9f6d37d1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Cartegnie?= Date: Mon, 26 Jan 2026 19:59:52 +0100 Subject: [PATCH] demux: rawdv: check es --- modules/demux/rawdv.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/modules/demux/rawdv.c b/modules/demux/rawdv.c index 8bdae06d22..cb98f65927 100644 --- a/modules/demux/rawdv.c +++ b/modules/demux/rawdv.c @@ -245,7 +245,6 @@ static int Demux( demux_t *p_demux ) { demux_sys_t *p_sys = p_demux->p_sys; block_t *p_block; - bool b_audio = false; if( p_sys->b_hurry_up ) { @@ -259,23 +258,26 @@ static int Demux( demux_t *p_demux ) if( p_block == NULL ) return VLC_DEMUXER_EOF; - if( p_sys->p_es_audio ) - { - es_out_Control( p_demux->out, ES_OUT_GET_ES_STATE, - p_sys->p_es_audio, &b_audio ); - } - p_block->i_dts = p_block->i_pts = VLC_TICK_0 + p_sys->i_pcr; - if( b_audio ) + if( likely(p_sys->p_es_audio) ) { - block_t *p_audio_block = dv_extract_audio( p_block ); - if( p_audio_block ) - es_out_Send( p_demux->out, p_sys->p_es_audio, p_audio_block ); + bool b_audio = false; + es_out_Control( p_demux->out, ES_OUT_GET_ES_STATE, + p_sys->p_es_audio, &b_audio ); + if( b_audio ) + { + block_t *p_audio_block = dv_extract_audio( p_block ); + if( p_audio_block ) + es_out_Send( p_demux->out, p_sys->p_es_audio, p_audio_block ); + } } - es_out_Send( p_demux->out, p_sys->p_es_video, p_block ); + if( likely(p_sys->p_es_video) ) + es_out_Send( p_demux->out, p_sys->p_es_video, p_block ); + else + block_Release( p_block ); if( !p_sys->b_hurry_up ) {