mirror of https://github.com/mpv-player/mpv
player: fix audio-device-list updates
The way the AO wakes up the playloop has nothing to do with events; instead we must query the events on the AO once the playloop was woken up. Querying the events in every playloop iteration is thus the correct way to do this.
This commit is contained in:
parent
a799a4c57f
commit
04472352ae
|
@ -4875,6 +4875,11 @@ static void command_event(struct MPContext *mpctx, int event, void *arg)
|
|||
// Update chapters - does nothing if something else is visible.
|
||||
set_osd_bar_chapters(mpctx, OSD_BAR_SEEK);
|
||||
}
|
||||
}
|
||||
|
||||
void handle_command_updates(struct MPContext *mpctx)
|
||||
{
|
||||
struct command_ctx *ctx = mpctx->command_ctx;
|
||||
|
||||
// This is a bit messy: ao_hotplug wakes up the player, and then we have
|
||||
// to recheck the state. Then the client(s) will read the property.
|
||||
|
|
|
@ -36,6 +36,8 @@ int mp_property_do(const char* name, int action, void* val,
|
|||
void mp_notify(struct MPContext *mpctx, int event, void *arg);
|
||||
void mp_notify_property(struct MPContext *mpctx, const char *property);
|
||||
|
||||
void handle_command_updates(struct MPContext *mpctx);
|
||||
|
||||
int mp_get_property_id(const char *name);
|
||||
uint64_t mp_get_property_event_mask(const char *name);
|
||||
|
||||
|
|
|
@ -986,6 +986,7 @@ void run_playloop(struct MPContext *mpctx)
|
|||
handle_cursor_autohide(mpctx);
|
||||
handle_vo_events(mpctx);
|
||||
handle_heartbeat_cmd(mpctx);
|
||||
handle_command_updates(mpctx);
|
||||
|
||||
fill_audio_out_buffers(mpctx, endpts);
|
||||
write_video(mpctx, endpts);
|
||||
|
|
Loading…
Reference in New Issue