Go to the source code of this file.
|
| #define | BYPASS_CT_INIT 0xFF |
| #define | mqc_byteout(mqc) |
| | Outputs a byte, doing bit-stuffing if necessary.
|
| #define | mqc_renorme_macro(mqc, a_, c_, ct_) |
| #define | mqc_codemps_macro(mqc, curctx, a, c, ct) |
| #define | mqc_codelps_macro(mqc, curctx, a, c, ct) |
| #define | mqc_encode_macro(mqc, curctx, a, c, ct, d) |
| #define | mqc_bypass_enc_macro(mqc, c, ct, d) |
◆ BYPASS_CT_INIT
| #define BYPASS_CT_INIT 0xFF |
◆ mqc_bypass_enc_macro
| #define mqc_bypass_enc_macro |
( |
| mqc, |
|
|
| c, |
|
|
| ct, |
|
|
| d ) |
Value:{ \
ct = 8; \
ct--; \
c = c + ((d) << ct); \
if(ct == 0) \
{ \
*mqc->bp = (uint8_t)c; \
ct = 8; \
\
if(*mqc->bp == 0xff) \
ct = 7; \
mqc->bp++; \
c = 0; \
} \
}
◆ mqc_byteout
| #define mqc_byteout |
( |
| mqc | ) |
|
Outputs a byte, doing bit-stuffing if necessary.
After a 0xff byte, the next byte must be smaller than 0x90
- Parameters
-
◆ mqc_codelps_macro
| #define mqc_codelps_macro |
( |
| mqc, |
|
|
| curctx, |
|
|
| a, |
|
|
| c, |
|
|
| ct ) |
Value:do \
{ \
a -= (*curctx)->qeval; \
if(a < (*curctx)->qeval) \
c += (*curctx)->qeval; \
else \
a = (*curctx)->qeval; \
*curctx = (*curctx)->nlps; \
mqc_renorme_macro(mqc, a, c, ct); \
} while(0)
◆ mqc_codemps_macro
| #define mqc_codemps_macro |
( |
| mqc, |
|
|
| curctx, |
|
|
| a, |
|
|
| c, |
|
|
| ct ) |
Value:do \
{ \
a -= (*curctx)->qeval; \
if((a & 0x8000) == 0) \
{ \
if(a < (*curctx)->qeval) \
a = (*curctx)->qeval; \
else \
c += (*curctx)->qeval; \
*curctx = (*curctx)->nmps; \
mqc_renorme_macro(mqc, a, c, ct); \
} \
else \
{ \
c += (*curctx)->qeval; \
} \
} while(0)
◆ mqc_encode_macro
| #define mqc_encode_macro |
( |
| mqc, |
|
|
| curctx, |
|
|
| a, |
|
|
| c, |
|
|
| ct, |
|
|
| d ) |
Value:{ \
if((*curctx)->mps == (d)) \
mqc_codemps_macro(mqc, curctx, a, c, ct); \
else \
mqc_codelps_macro(mqc, curctx, a, c, ct); \
}
◆ mqc_renorme_macro
| #define mqc_renorme_macro |
( |
| mqc, |
|
|
| a_, |
|
|
| c_, |
|
|
| ct_ ) |
Value:{ \
do \
{ \
a_ <<= 1; \
c_ <<= 1; \
ct_--; \
if(ct_ == 0) \
{ \
mqc->c = c_; \
mqc_byteout(mqc); \
c_ = mqc->c; \
ct_ = mqc->ct; \
} \
} while((a_ & 0x8000) == 0); \
}