diff options
Diffstat (limited to 'src/bimu/handlers')
| -rw-r--r-- | src/bimu/handlers/codec_server.c | 11 |
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; } |