summaryrefslogtreecommitdiff
path: root/src/codec/spng
diff options
context:
space:
mode:
Diffstat (limited to 'src/codec/spng')
-rw-r--r--src/codec/spng/meson.build7
-rw-r--r--src/codec/spng/server.c7
2 files changed, 9 insertions, 5 deletions
diff --git a/src/codec/spng/meson.build b/src/codec/spng/meson.build
index d8af781..f99a885 100644
--- a/src/codec/spng/meson.build
+++ b/src/codec/spng/meson.build
@@ -1,3 +1,6 @@
spng = dependency('spng')
-codec_server_deps += [declare_dependency(sources: ['server.c'], dependencies: spng)]
-codec_client_deps += [declare_dependency(sources: ['client.c'], dependencies: spng)]
+spng_args = ['-DCAMU_HAVE_SPNG']
+codec_server_deps += declare_dependency(sources: ['server.c'],
+ dependencies: spng, compile_args: spng_args)
+codec_client_deps += declare_dependency(sources: ['client.c'],
+ dependencies: spng, compile_args: spng_args)
diff --git a/src/codec/spng/server.c b/src/codec/spng/server.c
index 8eb941b..1bb2ca8 100644
--- a/src/codec/spng/server.c
+++ b/src/codec/spng/server.c
@@ -13,7 +13,8 @@ static bool spng_demuxer_init(struct camu_demuxer *demux, struct cch_handle *han
spng->eof = false;
cch_handle_seek(spng->handle, 0, SEEK_SET);
- off_t size = cch_entry_get_size(spng->handle->entry);
+ struct cch_backing *backing = spng->handle->entry->backing;
+ off_t size = backing->get_size_if_known(backing);
nn_buffer_ensure_space(&spng->buffer, size);
cch_handle_read(spng->handle, nn_buffer_get_ptr(&spng->buffer, 0), size);
spng->buffer.size = size;
@@ -59,10 +60,11 @@ static u64 spng_demuxer_get_duration(struct camu_demuxer *demux)
return 0;
}
-static bool spng_demuxer_seek(struct camu_demuxer *demux, u64 pos)
+static bool spng_demuxer_seek(struct camu_demuxer *demux, u64 pos, bool bytes)
{
(void)demux;
(void)pos;
+ (void)bytes;
return true;
}
@@ -75,7 +77,6 @@ static void spng_demuxer_free(struct camu_demuxer **demux)
*demux = NULL;
}
-
struct camu_demuxer *camu_spng_demuxer_create(void)
{
struct camu_spng_demuxer *spng = al_alloc_object(struct camu_spng_demuxer);