static void ao_chain_reset_state(struct ao_chain *ao_c) { ao_c->last_out_pts = MP_NOPTS_VALUE; TA_FREEP(&ao_c->output_frame); ao_c->out_eof = false; mp_audio_buffer_clear(ao_c->ao_buffer); }
void reset_audio_state(struct MPContext *mpctx) { if (mpctx->d_audio) audio_reset_decoding(mpctx->d_audio); if (mpctx->ao_buffer) mp_audio_buffer_clear(mpctx->ao_buffer); mpctx->audio_status = mpctx->d_audio ? STATUS_SYNCING : STATUS_EOF; }
void audio_reset_decoding(struct dec_audio *d_audio) { if (d_audio->ad_driver) d_audio->ad_driver->control(d_audio, ADCTRL_RESET, NULL); if (d_audio->afilter) af_control_all(d_audio->afilter, AF_CONTROL_RESET, NULL); d_audio->pts = MP_NOPTS_VALUE; d_audio->pts_offset = 0; if (d_audio->decode_buffer) mp_audio_buffer_clear(d_audio->decode_buffer); }