summaryrefslogtreecommitdiff
path: root/package/kodi/files/kodi-shim.c
diff options
context:
space:
mode:
Diffstat (limited to 'package/kodi/files/kodi-shim.c')
-rw-r--r--package/kodi/files/kodi-shim.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/package/kodi/files/kodi-shim.c b/package/kodi/files/kodi-shim.c
new file mode 100644
index 000000000..952cb5660
--- /dev/null
+++ b/package/kodi/files/kodi-shim.c
@@ -0,0 +1,29 @@
+// from https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=881536
+
+#define _GNU_SOURCE
+#include <dlfcn.h>
+#include <stdint.h>
+
+// Mini version of AVPacket
+typedef struct AVPacket {
+ void *buf;
+ int64_t pts;
+ int64_t dts;
+ uint8_t *data;
+ int size;
+} AVPacket;
+
+int avcodec_decode_audio4(void* a, void* b, int* got_frame_ptr, const AVPacket* pkt)
+{
+ // Ignore null packets
+ if (pkt->size == 0)
+ {
+ *got_frame_ptr = 0;
+ return 0;
+ }
+
+ // Forward to real function
+ int (*orig_decode)(void*, void*, int*, const AVPacket*) =
+ dlsym(RTLD_NEXT, "avcodec_decode_audio4");
+ return orig_decode(a, b, got_frame_ptr, pkt);
+}