summaryrefslogtreecommitdiff
path: root/src/liana/handlers
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2025-02-04 21:05:18 -0500
committerAndrew Opalach <andrew@akon.city> 2025-02-04 21:05:18 -0500
commit0060d4f3df9b264e4a4adb77da67336709b41b6b (patch)
treea59d4e2f218cec89af56bdb2036d0a2ecd488349 /src/liana/handlers
parentcdd1f574312722ab305cba6771d9bcc5da0b0c38 (diff)
downloadcamu-0060d4f3df9b264e4a4adb77da67336709b41b6b.tar.gz
camu-0060d4f3df9b264e4a4adb77da67336709b41b6b.tar.bz2
camu-0060d4f3df9b264e4a4adb77da67336709b41b6b.zip
Audio buffer and sink fixes, unsigned width/height
- Screen feature testing - Older FFmpeg support - Build configuration fixes Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/liana/handlers')
-rw-r--r--src/liana/handlers/cdio.h7
-rw-r--r--src/liana/handlers/cdio_client.c2
-rw-r--r--src/liana/handlers/cdio_server.c2
-rw-r--r--src/liana/handlers/codec.h7
-rw-r--r--src/liana/handlers/codec_client.c16
-rw-r--r--src/liana/handlers/codec_server.c6
-rw-r--r--src/liana/handlers/dvd.h11
-rw-r--r--src/liana/handlers/dvd_server.c2
8 files changed, 35 insertions, 18 deletions
diff --git a/src/liana/handlers/cdio.h b/src/liana/handlers/cdio.h
index 4c40986..3b0e991 100644
--- a/src/liana/handlers/cdio.h
+++ b/src/liana/handlers/cdio.h
@@ -2,6 +2,7 @@
#include "../handler.h"
+#ifdef LIANA_SERVER
struct lia_cdio_server {
struct lia_server_handler handler;
struct cch_handle *handle;
@@ -10,9 +11,13 @@ struct lia_cdio_server {
f64 pts;
};
+struct lia_server_handler *lia_cdio_server_create();
+#endif
+
+#ifdef LIANA_CLIENT
struct lia_cdio_client {
struct lia_client_handler handler;
};
-struct lia_server_handler *lia_cdio_server_create();
struct lia_client_handler *lia_cdio_client_create(void);
+#endif
diff --git a/src/liana/handlers/cdio_client.c b/src/liana/handlers/cdio_client.c
index 665858f..6d61e59 100644
--- a/src/liana/handlers/cdio_client.c
+++ b/src/liana/handlers/cdio_client.c
@@ -1,3 +1,5 @@
+#include "../client.h"
+
#include "cdio.h"
static bool cdio_client_init(struct lia_client_handler *handler, struct camu_renderer *renderer,
diff --git a/src/liana/handlers/cdio_server.c b/src/liana/handlers/cdio_server.c
index 01a9265..6ea1422 100644
--- a/src/liana/handlers/cdio_server.c
+++ b/src/liana/handlers/cdio_server.c
@@ -39,7 +39,7 @@ static void cdio_server_write_info(struct lia_server_handler *handler, struct nn
nn_packet_write_s32(packet, cdio->fmt.channel_count);
}
-static void cdio_server_subscribe(struct lia_server_handler *handler, s32 mask)
+static void cdio_server_subscribe(struct lia_server_handler *handler, u32 mask)
{
(void)handler;
(void)mask;
diff --git a/src/liana/handlers/codec.h b/src/liana/handlers/codec.h
index 29d513b..696cbb8 100644
--- a/src/liana/handlers/codec.h
+++ b/src/liana/handlers/codec.h
@@ -5,6 +5,7 @@
#include "../server.h"
#include "../handler.h"
+#ifdef LIANA_SERVER
struct lia_codec_server {
struct lia_server_handler handler;
struct camu_demuxer *demux;
@@ -14,10 +15,14 @@ struct lia_codec_server {
struct camu_codec_packet packet;
};
+struct lia_server_handler *lia_codec_server_create(void);
+#endif
+
+#ifdef LIANA_CLIENT
struct lia_codec_client {
struct lia_client_handler handler;
struct camu_decoder *dec;
};
-struct lia_server_handler *lia_codec_server_create(void);
struct lia_client_handler *lia_codec_client_create(void);
+#endif
diff --git a/src/liana/handlers/codec_client.c b/src/liana/handlers/codec_client.c
index 0aef69f..36e475e 100644
--- a/src/liana/handlers/codec_client.c
+++ b/src/liana/handlers/codec_client.c
@@ -1,5 +1,4 @@
#include "../../codec/codec.h"
-#include "../../server/common.h"
#ifdef CAMU_HAVE_FFMPEG
#include "../../codec/ffmpeg/decoder.h"
@@ -11,6 +10,7 @@
#include "../../codec/wuffs/decoder.h"
#include "../vcr.h"
+#include "../client.h"
#include "codec.h"
@@ -87,13 +87,13 @@ static bool codec_client_handle_packet(struct lia_client_handler *handler, struc
switch (mode) {
case CAMU_NORMAL: {
if (codec->dec) {
-#ifdef CAMU_DIRECT_MODE
- success = push_packet(codec, (struct nn_buffer *)packet->opaque);
-#else
- struct nn_buffer buffer;
- nn_packet_read_buffer(packet, &buffer);
- success = push_packet(codec, &buffer);
-#endif
+ if (packet->opaque) {
+ success = push_packet(codec, (struct nn_buffer *)packet->opaque);
+ } else {
+ struct nn_buffer buffer;
+ nn_packet_read_buffer(packet, &buffer);
+ success = push_packet(codec, &buffer);
+ }
} else {
success = true;
}
diff --git a/src/liana/handlers/codec_server.c b/src/liana/handlers/codec_server.c
index dcbfe17..7868a42 100644
--- a/src/liana/handlers/codec_server.c
+++ b/src/liana/handlers/codec_server.c
@@ -63,8 +63,8 @@ static void codec_server_write_info(struct lia_server_handler *handler, struct n
switch (stream->mode) {
case CAMU_NORMAL: {
struct camu_video_format *fmt = &stream->video.fmt;
- nn_packet_write_s32(packet, fmt->width);
- nn_packet_write_s32(packet, fmt->height);
+ nn_packet_write_u32(packet, fmt->width);
+ nn_packet_write_u32(packet, fmt->height);
nn_packet_write_s32(packet, fmt->format);
break;
}
@@ -78,7 +78,7 @@ static void codec_server_write_info(struct lia_server_handler *handler, struct n
}
}
-static void codec_server_subscribe(struct lia_server_handler *handler, s32 mask)
+static void codec_server_subscribe(struct lia_server_handler *handler, u32 mask)
{
struct lia_codec_server *codec = (struct lia_codec_server *)handler;
codec->demux->subscribed = mask;
diff --git a/src/liana/handlers/dvd.h b/src/liana/handlers/dvd.h
index 4b71ec8..dd5ac0a 100644
--- a/src/liana/handlers/dvd.h
+++ b/src/liana/handlers/dvd.h
@@ -1,9 +1,10 @@
#pragma once
-#include <dvdnav/dvdnav.h>
-
#include "../handler.h"
+#ifdef LIANA_SERVER
+#include <dvdnav/dvdnav.h>
+
struct lia_dvd_server {
struct lia_server_handler handler;
struct cch_handle *handle;
@@ -11,9 +12,13 @@ struct lia_dvd_server {
struct nn_buffer buffer;
};
+struct lia_server_handler *lia_dvd_server_create(void);
+#endif
+
+#ifdef LIANA_CLIENT
struct lia_dvd_client {
struct lia_client_handler handler;
};
-struct lia_server_handler *lia_dvd_server_create(void);
struct lia_client_handler *lia_dvd_client_create(void);
+#endif
diff --git a/src/liana/handlers/dvd_server.c b/src/liana/handlers/dvd_server.c
index afb2c07..f564325 100644
--- a/src/liana/handlers/dvd_server.c
+++ b/src/liana/handlers/dvd_server.c
@@ -53,7 +53,7 @@ static void dvd_server_write_info(struct lia_server_handler *handler, struct nn_
(void)packet;
}
-static void dvd_server_subscribe(struct lia_server_handler *handler, s32 mask)
+static void dvd_server_subscribe(struct lia_server_handler *handler, u32 mask)
{
(void)handler;
(void)mask;