summaryrefslogtreecommitdiff
path: root/libavcodec/mqc.h
diff options
context:
space:
mode:
authorNicolas Bertrand <nicoinattendu@gmail.com>2013-04-22 11:41:01 +0200
committerDiego Biurrun <diego@biurrun.de>2013-04-22 15:38:29 +0200
commitc81a70638116eaf4251075475e5cbb600a33c5ec (patch)
treeaa1763bfcab7c9d475bba445ca99de2bfe805826 /libavcodec/mqc.h
parent0c15a9aa7e1654a19144eb594f9639a57fd47482 (diff)
JPEG 2000 decoder for DCinema
Based on the 2007 GSoC project from Kamil Nowosad <k.nowosad@students.mimuw.edu.pl> Updated to current programming standards, style and many more small fixes by Diego Biurrun <diego@biurrun.de>. Signed-off-by: Diego Biurrun <diego@biurrun.de>
Diffstat (limited to 'libavcodec/mqc.h')
-rw-r--r--libavcodec/mqc.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/libavcodec/mqc.h b/libavcodec/mqc.h
new file mode 100644
index 0000000000..3b849c2351
--- /dev/null
+++ b/libavcodec/mqc.h
@@ -0,0 +1,73 @@
+/*
+ * MQ-coder: structures, common and decoder functions
+ * Copyright (c) 2007 Kamil Nowosad
+ *
+ * This file is part of Libav.
+ *
+ * Libav is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * Libav is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Libav; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef AVCODEC_MQC_H
+#define AVCODEC_MQC_H
+
+/**
+ * MQ-coder
+ * @file
+ * @author Kamil Nowosad
+ */
+
+#include <stdint.h>
+
+#define MQC_CX_UNI 17
+#define MQC_CX_RL 18
+
+extern uint16_t ff_mqc_qe[2 * 47];
+extern uint8_t ff_mqc_nlps[2 * 47];
+extern uint8_t ff_mqc_nmps[2 * 47];
+
+typedef struct MqcState {
+ uint8_t *bp, *bpstart;
+ unsigned int a;
+ unsigned int c;
+ unsigned int ct;
+ uint8_t cx_states[19];
+} MqcState;
+
+/* decoder */
+
+/**
+ * Initialize MQ-decoder.
+ * @param mqc MQ decoder state
+ * @param bp byte poiter
+ */
+void ff_mqc_initdec(MqcState *mqc, uint8_t *bp);
+
+/**
+ * MQ decoder.
+ * @param mqc MQ decoder state
+ * @param cxstate Context
+ * @return Decision (0 ot 1)
+ */
+int ff_mqc_decode(MqcState *mqc, uint8_t *cxstate);
+
+/* common */
+
+/**
+ * MQ-coder context initialisations.
+ * @param mqc MQ-coder context
+ */
+void ff_mqc_init_contexts(MqcState *mqc);
+
+#endif /* AVCODEC_MQC_H */