summaryrefslogtreecommitdiff
path: root/src/bimu/handlers
diff options
context:
space:
mode:
Diffstat (limited to 'src/bimu/handlers')
-rw-r--r--src/bimu/handlers/codec_server.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/bimu/handlers/codec_server.c b/src/bimu/handlers/codec_server.c
index 3c27179..99c4e71 100644
--- a/src/bimu/handlers/codec_server.c
+++ b/src/bimu/handlers/codec_server.c
@@ -10,7 +10,7 @@
#include "codec.h"
static bool codec_server_init(struct bmu_server_handler *handler, struct cch_handle *handle,
- struct aki_packet_pool *pool, void *userdata)
+ struct aki_packet_pool *pool)
{
struct bmu_codec_server *codec = (struct bmu_codec_server *)handler;
codec->demux = camu_lav_demuxer_create();
@@ -27,13 +27,13 @@ static bool codec_server_init(struct bmu_server_handler *handler, struct cch_han
#endif
}
codec->pool = pool;
- codec->handler.userdata = userdata;
return true;
}
static void codec_server_write_info(struct bmu_server_handler *handler, struct aki_packet *packet)
{
struct bmu_codec_server *codec = (struct bmu_codec_server *)handler;
+ aki_packet_write_s64(packet, codec->demux->get_duration(codec->demux));
aki_packet_write_u32(packet, codec->demux->streams.size);
struct camu_stream *stream;
al_array_foreach_ptr(codec->demux->streams, i, stream) {
@@ -78,13 +78,12 @@ static bool codec_server_step(struct bmu_server_handler *handler)
struct bmu_codec_server *codec = (struct bmu_codec_server *)handler;
struct aki_packet *packet = aki_packet_pool_get(codec->pool);
if (!packet) return false;
- packet->userdata = codec->handler.userdata;
s32 ret = codec->demux->get_packet(codec->demux, &codec->packet);
if (ret == CAMU_OK) {
aki_packet_write_u8(packet, 0);
switch (codec->packet.type) {
case CAMU_NORMAL: {
- aki_packet_write_s32(packet, 0);
+ aki_packet_write_s32(packet, BIMU_PACKET_DATA);
aki_packet_write_u8(packet, codec->packet.type);
aki_packet_write_buffer(packet, codec->packet.buffer);
break;
@@ -102,11 +101,11 @@ static bool codec_server_step(struct bmu_server_handler *handler)
}
aki_packet_pool_submit(codec->pool, packet);
} else if (ret == CAMU_ERR_EOF) {
- aki_packet_write_u8(packet, 1);
+ aki_packet_write_u8(packet, BIMU_PACKET_EOF);
aki_packet_pool_submit(codec->pool, packet);
return false;
} else {
- aki_packet_write_u8(packet, 2);
+ aki_packet_write_u8(packet, BIMU_PACKET_ERROR);
aki_packet_pool_submit(codec->pool, packet);
return false;
}