summaryrefslogtreecommitdiff
path: root/src/libsink
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsink')
-rw-r--r--src/libsink/sink.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/libsink/sink.c b/src/libsink/sink.c
index 55485b0..3468a48 100644
--- a/src/libsink/sink.c
+++ b/src/libsink/sink.c
@@ -321,18 +321,24 @@ static void audio_buffer_callback(void *userdata, u8 op)
aki_mutex_unlock(&entry->sink->mutex);
break;
case CAMU_BUFFER_CORK:
+ bmu_vcr_stream_cork(entry->audio.stream);
+ /*
queue_cmd(entry->sink, (struct camu_sink_cmd){
.op = CORK,
.value.i = CAMU_SINK_AUDIO,
.opaque = entry
});
+ */
break;
case CAMU_BUFFER_UNCORK:
+ bmu_vcr_stream_uncork(entry->audio.stream);
+ /*
queue_cmd(entry->sink, (struct camu_sink_cmd){
.op = UNCORK,
.value.i = CAMU_SINK_AUDIO,
.opaque = entry
});
+ */
break;
case CAMU_BUFFER_PAUSED:
queue_cmd(entry->sink, (struct camu_sink_cmd){
@@ -378,18 +384,24 @@ static void video_buffer_callback(void *userdata, u8 op)
aki_mutex_unlock(&entry->sink->mutex);
break;
case CAMU_BUFFER_CORK:
+ bmu_vcr_stream_cork(entry->video.stream);
+ /*
queue_cmd(entry->sink, (struct camu_sink_cmd){
.op = CORK,
.value.i = CAMU_SINK_VIDEO,
.opaque = entry
});
+ */
break;
case CAMU_BUFFER_UNCORK:
+ bmu_vcr_stream_uncork(entry->video.stream);
+ /*
queue_cmd(entry->sink, (struct camu_sink_cmd){
.op = UNCORK,
.value.i = CAMU_SINK_VIDEO,
.opaque = entry
});
+ */
break;
case CAMU_BUFFER_EOF:
queue_cmd(entry->sink, (struct camu_sink_cmd){
@@ -636,7 +648,6 @@ static bool buffer_command_callback(void *userdata, struct aki_rpc_connection *c
return false;
}
-
static bool set_command_callback(void *userdata, struct aki_rpc_connection *conn,
struct aki_packet *packet, struct aki_packet *rpacket)
{
@@ -694,6 +705,8 @@ static bool queue_command_callback(void *userdata, struct aki_rpc_connection *co
sink->queued = ensure_entry_buffered_internal(sink, &addr, port, node_id);
aki_mutex_unlock(&sink->mutex);
+ aki_packet_free(packet);
+
return false;
}
@@ -802,8 +815,8 @@ void camu_sink_close(struct camu_sink *sink)
struct camu_sink_entry *entry;
al_array_foreach(sink->entries, i, entry) {
bmu_client_close(&entry->client);
- al_array_remove_at_iter(sink->entries, i);
}
+ sink->entries.size = 0;
aki_mutex_unlock(&sink->mutex);
}