cosmetics: rename video/audio reset functions

These used the suffix _resync_stream, which is a bit misleading. Nothing
gets "resynchronized", they really just reset state.

(Some audio decoders actually used to "resync" by reading packets for
resuming playback, but that's not the case anymore.)

Also move the function in dec_video.c to the top of the file.
This commit is contained in:
wm4 2013-11-27 20:54:07 +01:00
parent f2b5267e88
commit f09b2ff661
11 changed files with 21 additions and 21 deletions

View File

@ -40,7 +40,7 @@ struct ad_functions {
};
enum ad_ctrl {
ADCTRL_RESYNC_STREAM = 1, // resync, called after seeking
ADCTRL_RESET = 1, // flush and reset state, e.g. after seeking
};
#endif /* MPLAYER_AD_H */

View File

@ -301,7 +301,7 @@ static int control(struct dec_audio *da, int cmd, void *arg)
{
struct priv *ctx = da->priv;
switch (cmd) {
case ADCTRL_RESYNC_STREAM:
case ADCTRL_RESET:
avcodec_flush_buffers(ctx->avctx);
ctx->frame.samples = 0;
talloc_free(ctx->packet);

View File

@ -347,7 +347,7 @@ static int control(struct dec_audio *da, int cmd, void *arg)
struct ad_mpg123_context *con = da->priv;
switch (cmd) {
case ADCTRL_RESYNC_STREAM:
case ADCTRL_RESET:
mpg123_close(con->handle);
if (mpg123_open_feed(con->handle) != MPG123_OK) {

View File

@ -135,7 +135,7 @@ static const struct ad_functions *find_driver(const char *name)
int audio_init_best_codec(struct dec_audio *d_audio, char *audio_decoders)
{
assert(!d_audio->ad_driver);
audio_resync_stream(d_audio);
audio_reset_decoding(d_audio);
struct mp_decoder_entry *decoder = NULL;
struct mp_decoder_list *list =
@ -347,10 +347,10 @@ int audio_decode(struct dec_audio *d_audio, struct mp_audio_buffer *outbuf,
return 0;
}
void audio_resync_stream(struct dec_audio *d_audio)
void audio_reset_decoding(struct dec_audio *d_audio)
{
d_audio->pts = MP_NOPTS_VALUE;
d_audio->pts_offset = 0;
if (d_audio->ad_driver)
d_audio->ad_driver->control(d_audio, ADCTRL_RESYNC_STREAM, NULL);
d_audio->ad_driver->control(d_audio, ADCTRL_RESET, NULL);
}

View File

@ -50,7 +50,7 @@ struct mp_decoder_list *audio_decoder_list(void);
int audio_init_best_codec(struct dec_audio *d_audio, char *audio_decoders);
int audio_decode(struct dec_audio *d_audio, struct mp_audio_buffer *outbuf,
int minsamples);
void audio_resync_stream(struct dec_audio *d_audio);
void audio_reset_decoding(struct dec_audio *d_audio);
void audio_uninit(struct dec_audio *d_audio);
int audio_init_filters(struct dec_audio *d_audio, int in_samplerate,

View File

@ -624,10 +624,10 @@ static int mp_property_angle(m_option_t *prop, int action, void *arg,
angle = demuxer_set_angle(demuxer, *(int *)arg);
if (angle >= 0) {
if (mpctx->d_video)
video_resync_stream(mpctx->d_video);
video_reset_decoding(mpctx->d_video);
if (mpctx->d_audio)
audio_resync_stream(mpctx->d_audio);
audio_reset_decoding(mpctx->d_audio);
}
return M_PROPERTY_OK;
case M_PROPERTY_GET_TYPE: {

View File

@ -170,7 +170,7 @@ void add_step_frame(struct MPContext *mpctx, int dir)
static void seek_reset(struct MPContext *mpctx, bool reset_ao)
{
if (mpctx->d_video) {
video_resync_stream(mpctx->d_video);
video_reset_decoding(mpctx->d_video);
vo_seek_reset(mpctx->video_out);
if (mpctx->d_video->vf_initialized == 1)
vf_chain_seek_reset(mpctx->d_video->vfilter);
@ -184,7 +184,7 @@ static void seek_reset(struct MPContext *mpctx, bool reset_ao)
}
if (mpctx->d_audio) {
audio_resync_stream(mpctx->d_audio);
audio_reset_decoding(mpctx->d_audio);
if (mpctx->d_audio->afilter)
af_control_all(mpctx->d_audio->afilter, AF_CONTROL_RESET, NULL);
if (reset_ao)

View File

@ -56,6 +56,13 @@ const vd_functions_t * const mpcodecs_vd_drivers[] = {
NULL
};
void video_reset_decoding(struct dec_video *d_video)
{
video_vd_control(d_video, VDCTRL_RESET, NULL);
d_video->prev_codec_reordered_pts = MP_NOPTS_VALUE;
d_video->prev_sorted_pts = MP_NOPTS_VALUE;
}
int video_vd_control(struct dec_video *d_video, int cmd, void *arg)
{
const struct vd_functions *vd = d_video->vd_driver;
@ -101,13 +108,6 @@ int video_get_colors(struct dec_video *d_video, const char *item, int *value)
return 0;
}
void video_resync_stream(struct dec_video *d_video)
{
video_vd_control(d_video, VDCTRL_RESYNC_STREAM, NULL);
d_video->prev_codec_reordered_pts = MP_NOPTS_VALUE;
d_video->prev_sorted_pts = MP_NOPTS_VALUE;
}
void video_reinit_vo(struct dec_video *d_video)
{
video_vd_control(d_video, VDCTRL_REINIT_VO, NULL);

View File

@ -77,7 +77,7 @@ struct mp_image *video_decode(struct dec_video *d_video,
int video_get_colors(struct dec_video *d_video, const char *item, int *value);
int video_set_colors(struct dec_video *d_video, const char *item, int value);
void video_resync_stream(struct dec_video *d_video);
void video_reset_decoding(struct dec_video *d_video);
void video_reinit_vo(struct dec_video *d_video);
int video_vd_control(struct dec_video *d_video, int cmd, void *arg);

View File

@ -43,7 +43,7 @@ extern const vd_functions_t *const mpcodecs_vd_drivers[];
enum vd_ctrl {
VDCTRL_GET_PARAMS = 1, // retrieve struct mp_image_params
VDCTRL_RESYNC_STREAM, // reset decode state after seeking
VDCTRL_RESET, // reset decode state after seeking
VDCTRL_QUERY_UNSEEN_FRAMES, // current decoder lag
VDCTRL_REINIT_VO, // reinit filter/VO chain
};

View File

@ -821,7 +821,7 @@ static int control(struct dec_video *vd, int cmd, void *arg)
vd_ffmpeg_ctx *ctx = vd->priv;
AVCodecContext *avctx = ctx->avctx;
switch (cmd) {
case VDCTRL_RESYNC_STREAM:
case VDCTRL_RESET:
avcodec_flush_buffers(avctx);
return CONTROL_TRUE;
case VDCTRL_QUERY_UNSEEN_FRAMES:;