diff options
| author | 2025-02-19 17:38:59 -0500 | |
|---|---|---|
| committer | 2025-02-19 17:45:26 -0500 | |
| commit | 152bf64d7da624dd6401e6529300bfc4b817dbbe (patch) | |
| tree | 1b1b138eed8a9ac4ea560b514d08f2da028b441d /src/libsink | |
| parent | 2bee71a7e032c0972418e324bb1d7e6b02330b18 (diff) | |
| download | camu-152bf64d7da624dd6401e6529300bfc4b817dbbe.tar.gz camu-152bf64d7da624dd6401e6529300bfc4b817dbbe.tar.bz2 camu-152bf64d7da624dd6401e6529300bfc4b817dbbe.zip | |
Small fixes and update deps
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/libsink')
| -rw-r--r-- | src/libsink/sink.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/libsink/sink.c b/src/libsink/sink.c index 0eca9f5..4aa1d51 100644 --- a/src/libsink/sink.c +++ b/src/libsink/sink.c @@ -308,6 +308,8 @@ static void handle_sink_cmd(struct camu_sink *sink, struct camu_sink_cmd *cmd) if (sink->video.state == SINK_PLAYING) { sink->callback(sink->userdata, CAMU_SINK_STOP, CAMU_SINK_VIDEO, NULL); sink->video.state = SINK_PAUSED; + } else { + sink->callback(sink->userdata, CAMU_SINK_REFRESH_VIDEO, 0, NULL); } break; #endif @@ -743,7 +745,7 @@ static void switch_to(struct camu_sink *sink, struct camu_sink_entry *target) sink->current = target; sink->current->audio.ignore_paused = false; if (!sink->current->buffers_paused) { - camu_audio_buffer_unpause(&sink->current->audio.buf); + camu_audio_buffer_resync(&sink->current->audio.buf); } } @@ -1438,7 +1440,7 @@ static bool set_command_callback(void *userdata, struct nn_rpc_connection *conn, if (entry != current) { switch_to(sink, entry); } else { - camu_audio_buffer_unpause(&entry->audio.buf); + camu_audio_buffer_resync(&entry->audio.buf); } camu_clock_resume(&entry->clock, at); break; @@ -1471,7 +1473,7 @@ static bool set_command_callback(void *userdata, struct nn_rpc_connection *conn, sink->target = entry; } else { sink->target = NULL; - camu_audio_buffer_unpause(&entry->audio.buf); + camu_audio_buffer_resync(&entry->audio.buf); } camu_clock_pause(&prev_target->clock, at); } else { @@ -1528,7 +1530,7 @@ static bool pause_command_callback(void *userdata, struct nn_rpc_connection *con entry->buffers_paused = false; camu_clock_resume(&entry->clock, at); if (!AUDIO_EMPTY(entry)) { - camu_audio_buffer_unpause(&entry->audio.buf); + camu_audio_buffer_resync(&entry->audio.buf); queue_cmd(entry->sink, (struct camu_sink_cmd){ .op = START, .value.i = CAMU_SINK_AUDIO |