From 342e613fba5849c11a07d568f765f512f30ea6cf Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Sun, 7 Jan 2024 17:58:16 -0500 Subject: Rough seek implementation Signed-off-by: Andrew Opalach --- src/bimu/handlers/codec_server.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src/bimu/handlers') 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; } -- cgit v1.2.3-101-g0448