summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@gnome.org>2008-12-10 11:51:03 +0100
committerBenjamin Otte <otte@gnome.org>2008-12-16 21:38:14 +0100
commit1ac6d8f50435d67786965bb7a0f2ff865ed7d034 (patch)
tree5f2e66f7a23da657c39595dc24b0aab122358247
parent282eea7488ef6b4e43b278438917218bb350e4e8 (diff)
implement proper queueing for the RPC channel
-rw-r--r--swfdec/swfdec_net_stream.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/swfdec/swfdec_net_stream.c b/swfdec/swfdec_net_stream.c
index 0478d31a..e74c5ff2 100644
--- a/swfdec/swfdec_net_stream.c
+++ b/swfdec/swfdec_net_stream.c
@@ -70,12 +70,24 @@ swfdec_net_stream_rtmp_stream_receive (SwfdecRtmpStream *rtmp_stream,
}
static SwfdecRtmpPacket *
-swfdec_net_stream_rtmp_stream_sent (SwfdecRtmpStream *stream,
+swfdec_net_stream_rtmp_stream_sent (SwfdecRtmpStream *rtmp_stream,
const SwfdecRtmpPacket *packet)
{
- SWFDEC_FIXME ("implement");
+ SwfdecNetStream *stream = SWFDEC_NET_STREAM (rtmp_stream);
+ SwfdecRtmpPacket *result;
+
+ if (packet->header.channel == SWFDEC_NET_STREAM_RPC_CHANNEL (stream)) {
+ result = swfdec_rtmp_rpc_pop (stream->rpc, TRUE);
+ if (result) {
+ result->header.channel = SWFDEC_NET_STREAM_RPC_CHANNEL (stream);
+ result->header.stream = stream->stream;
+ }
+ } else {
+ result = NULL;
+ g_assert_not_reached ();
+ }
- return NULL;
+ return result;
}
static void