Mercurial > mplayer.hg
diff command.c @ 32561:17bb5a38ae2e
build_afilter_chain is not safe to use directly, thus make it
static and instead use reinit_audio_chain which should have
better error handling.
Fixes a crash with -af hrtf and changing speed, audio will
still stop playing though.
author | reimar |
---|---|
date | Fri, 26 Nov 2010 20:52:35 +0000 |
parents | b39155e98ac3 |
children | aa82dfc7bd49 |
line wrap: on
line diff
--- a/command.c Thu Nov 25 10:04:07 2010 +0000 +++ b/command.c Fri Nov 26 20:52:35 2010 +0000 @@ -257,14 +257,14 @@ return M_PROPERTY_ERROR; M_PROPERTY_CLAMP(prop, *(float *) arg); playback_speed = *(float *) arg; - build_afilter_chain(mpctx->sh_audio, &ao_data); + reinit_audio_chain(); return M_PROPERTY_OK; case M_PROPERTY_STEP_UP: case M_PROPERTY_STEP_DOWN: playback_speed += (arg ? *(float *) arg : 0.1) * (action == M_PROPERTY_STEP_DOWN ? -1 : 1); M_PROPERTY_CLAMP(prop, playback_speed); - build_afilter_chain(mpctx->sh_audio, &ao_data); + reinit_audio_chain(); return M_PROPERTY_OK; } return m_property_float_range(prop, action, arg, &playback_speed); @@ -2746,7 +2746,7 @@ case MP_CMD_SPEED_INCR:{ float v = cmd->args[0].v.f; playback_speed += v; - build_afilter_chain(sh_audio, &ao_data); + reinit_audio_chain(); set_osd_msg(OSD_MSG_SPEED, 1, osd_duration, MSGTR_OSDSpeed, playback_speed); } break; @@ -2754,7 +2754,7 @@ case MP_CMD_SPEED_MULT:{ float v = cmd->args[0].v.f; playback_speed *= v; - build_afilter_chain(sh_audio, &ao_data); + reinit_audio_chain(); set_osd_msg(OSD_MSG_SPEED, 1, osd_duration, MSGTR_OSDSpeed, playback_speed); } break; @@ -2762,7 +2762,7 @@ case MP_CMD_SPEED_SET:{ float v = cmd->args[0].v.f; playback_speed = v; - build_afilter_chain(sh_audio, &ao_data); + reinit_audio_chain(); set_osd_msg(OSD_MSG_SPEED, 1, osd_duration, MSGTR_OSDSpeed, playback_speed); } break; @@ -3467,7 +3467,7 @@ else af_add(mpctx->mixer.afilter, af_command); } - build_afilter_chain(sh_audio, &ao_data); + reinit_audio_chain(); free(af_args); } break; @@ -3476,7 +3476,7 @@ break; af_uninit(mpctx->mixer.afilter); af_init(mpctx->mixer.afilter); - build_afilter_chain(sh_audio, &ao_data); + reinit_audio_chain(); break; case MP_CMD_AF_CMDLINE: if (sh_audio) {