void uninit_sub(struct MPContext *mpctx, int order) { if (mpctx->d_sub[order]) { reset_subtitles(mpctx, order); mpctx->d_sub[order] = NULL; // Note: not free'd. update_osd_sub_state(mpctx, order, NULL); // unset reselect_demux_streams(mpctx); } }
void uninit_sub(struct MPContext *mpctx, int order) { if (mpctx->d_sub[order]) { mpctx->d_sub[order] = NULL; // Note: not free'd. int obj = order ? OSDTYPE_SUB2 : OSDTYPE_SUB; osd_set_sub(mpctx->osd, obj, NULL); reset_subtitles(mpctx, order); reselect_demux_streams(mpctx); } }
void uninit_video_chain(struct MPContext *mpctx) { if (mpctx->d_video) { reset_video_state(mpctx); video_uninit(mpctx->d_video); mpctx->d_video = NULL; mpctx->video_status = STATUS_EOF; mpctx->sync_audio_to_video = false; reselect_demux_streams(mpctx); } mp_notify(mpctx, MPV_EVENT_VIDEO_RECONFIG, NULL); }
void uninit_audio_chain(struct MPContext *mpctx) { if (mpctx->d_audio) { mixer_uninit_audio(mpctx->mixer); audio_uninit(mpctx->d_audio); mpctx->d_audio = NULL; talloc_free(mpctx->ao_buffer); mpctx->ao_buffer = NULL; mpctx->audio_status = STATUS_EOF; reselect_demux_streams(mpctx); } }