diff --git a/lib/upipe-ts/upipe_ts_demux.c b/lib/upipe-ts/upipe_ts_demux.c index d03fc7ece..cc7018caa 100644 --- a/lib/upipe-ts/upipe_ts_demux.c +++ b/lib/upipe-ts/upipe_ts_demux.c @@ -3330,7 +3330,8 @@ static void upipe_ts_demux_emm_no_input(struct upipe *upipe) struct upipe_ts_demux_psi_pid *psi_pid = upipe_ts_demux_emm->psi_pid_emm; upipe_ts_demux_emm->psi_pid_emm = NULL; - upipe_ts_demux_psi_pid_release(psi_pid); + if (psi_pid) + upipe_ts_demux_psi_pid_release(psi_pid); upipe_ts_demux_emm_clean_emmd(upipe); upipe_ts_demux_emm_clean_psi_split_output_emm(upipe); @@ -3368,15 +3369,18 @@ static void upipe_ts_demux_emm_free(struct upipe *upipe) static int upipe_ts_demux_emm_control(struct upipe *upipe, int command, va_list args) { - struct upipe_ts_demux_emm *emm = upipe_ts_demux_emm_from_upipe(upipe); UBASE_HANDLED_RETURN( upipe_ts_demux_emm_control_super(upipe, command, args)); +#ifdef HAVE_TS_CRYPT + struct upipe_ts_demux_emm *emm = upipe_ts_demux_emm_from_upipe(upipe); + switch (command) { case UPIPE_TS_EMM_SET_PRIVATE_KEY: return upipe_control_va(emm->emmd, command, args); } - return UBASE_ERR_NONE; +#endif + return UBASE_ERR_UNHANDLED; }