Grok 12.0.1
mqc_inl.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016-2024 Grok Image Compression Inc.
3 *
4 * This source code is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Affero General Public License, version 3,
6 * as published by the Free Software Foundation.
7 *
8 * This source code is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Affero General Public License for more details.
12 *
13 * You should have received a copy of the GNU Affero General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 *
17 * This source code incorporates work covered by the BSD 2-clause license.
18 * Please see the LICENSE file in the root directory for details.
19 *
20 */
21
22#pragma once
23
24#define BYPASS_CT_INIT 0xDEADBEEF
25
26#define PUSH_MQC() \
27 const mqc_state** curctx = mqc->curctx; \
28 uint32_t c = mqc->c; \
29 uint32_t a = mqc->a; \
30 uint32_t ct = mqc->ct
31
32#define POP_MQC() \
33 mqc->curctx = curctx; \
34 mqc->c = c; \
35 mqc->a = a; \
36 mqc->ct = ct;
37
38#ifdef PLUGIN_DEBUG_ENCODE
39#define mqc_setcurctx(mqc, ctxno) \
40 (mqc)->debug_mqc.context_number = ctxno; \
41 (mqc)->curctx = (mqc)->ctxs + (uint32_t)(ctxno)
42#else
43
44#define mqc_setcurctx(mqc, ctxno) (mqc)->curctx = (mqc)->ctxs + (uint32_t)(ctxno)
45
46#endif