summaryrefslogtreecommitdiff
path: root/src/liana/handlers
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2024-10-28 13:08:13 -0400
committerAndrew Opalach <andrew@akon.city> 2024-10-28 13:23:02 -0400
commit846e17728f2ed2af3672987ef61853f0bc96c224 (patch)
treee8e81fc8a2a7de208bd9ba397ef3928d33110824 /src/liana/handlers
parentd6735566cebf82a5d22a3ade22b9acd52fbe11a5 (diff)
downloadcamu-846e17728f2ed2af3672987ef61853f0bc96c224.tar.gz
camu-846e17728f2ed2af3672987ef61853f0bc96c224.tar.bz2
camu-846e17728f2ed2af3672987ef61853f0bc96c224.zip
Refactor video buffer and scaler, better A/V sync
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/liana/handlers')
-rw-r--r--src/liana/handlers/codec_client.c2
-rw-r--r--src/liana/handlers/codec_server.c12
2 files changed, 10 insertions, 4 deletions
diff --git a/src/liana/handlers/codec_client.c b/src/liana/handlers/codec_client.c
index 050cc6f..d420c59 100644
--- a/src/liana/handlers/codec_client.c
+++ b/src/liana/handlers/codec_client.c
@@ -1,6 +1,8 @@
#include "../../codec/codec.h"
+#ifdef CAMU_HAVE_FFMPEG
#include "../../codec/ffmpeg/decoder.h"
#include "../../codec/ffmpeg/packet_ext.h"
+#endif
#include "../../codec/stb_image/decoder.h"
#include "../../codec/spng/decoder.h"
#include "../../codec/wuffs/decoder.h"
diff --git a/src/liana/handlers/codec_server.c b/src/liana/handlers/codec_server.c
index 07fafdf..58da2e6 100644
--- a/src/liana/handlers/codec_server.c
+++ b/src/liana/handlers/codec_server.c
@@ -1,6 +1,8 @@
#include "../../codec/codec.h"
+#ifdef CAMU_HAVE_FFMPEG
#include "../../codec/ffmpeg/demuxer.h"
#include "../../codec/ffmpeg/packet_ext.h"
+#endif
#include "../../codec/stb_image/demuxer.h"
#include "../../codec/spng/demuxer.h"
#include "../../codec/wuffs/demuxer.h"
@@ -41,12 +43,14 @@ static void codec_server_write_info(struct lia_server_handler *handler, struct a
al_array_foreach_ptr(codec->demux->streams, i, stream) {
aki_packet_write_u8(packet, stream->mode);
switch (stream->mode) {
- case CAMU_NORMAL:
+ case CAMU_NORMAL: {
aki_packet_write_u8(packet, stream->type);
- aki_packet_write_s32(packet, stream->video.width);
- aki_packet_write_s32(packet, stream->video.height);
- aki_packet_write_s32(packet, stream->video.format);
+ struct camu_video_format *fmt = &stream->video.fmt;
+ aki_packet_write_s32(packet, fmt->width);
+ aki_packet_write_s32(packet, fmt->height);
+ aki_packet_write_s32(packet, fmt->format);
break;
+ }
#ifdef CAMU_HAVE_FFMPEG
case CAMU_FFMPEG_COMPAT:
aki_packet_write_av_codec_id(packet, stream->av.stream->codecpar->codec_id);