Definition at line 987 of file tjpgd.cpp.hpp.
994{
997 unsigned int n, i, ofs;
998 size_t len;
1000
1008
1011
1012 ofs = marker = 0;
1013 do {
1015 ofs++;
1016 marker = marker << 8 | seg[0];
1017 } while (marker != 0xFFD8);
1018
1019 for (;;) {
1020
1024 if (len <= 2 || (marker >> 8) != 0xFF)
return JDR_FMT1;
1025 len -= 2;
1026 ofs += 4 + len;
1027
1028 switch (marker & 0xFF) {
1029 case 0xC0:
1032
1037
1038
1039 for (i = 0; i < jd->
ncomp; i++) {
1040 b = seg[7 + 3 * i];
1041 if (i == 0) {
1042 if (b != 0x11 && b != 0x22 && b != 0x21) {
1044 }
1045 jd->
msx = b >> 4; jd->
msy = b & 15;
1046 } else {
1048 }
1049 jd->
qtid[i] = seg[8 + 3 * i];
1051 }
1052 break;
1053
1054 case 0xDD:
1057
1059 break;
1060
1061 case 0xC4:
1064
1066 if (rc) return rc;
1067 break;
1068
1069 case 0xDB:
1072
1074 if (rc) return rc;
1075 break;
1076
1077 case 0xDA:
1080
1083
1084
1085 for (i = 0; i < jd->
ncomp; i++) {
1086 b = seg[2 + 2 * i];
1087 if (b != 0x00 && b != 0x11)
return JDR_FMT3;
1088 n = i ? 1 : 0;
1091 }
1094 }
1095 }
1096
1097
1100 len = n * 64 * 2 + 64;
1101 if (len < 256) len = 256;
1106
1107
1110 }
1112
1114
1115 case 0xC1:
1116 case 0xC2:
1117 case 0xC3:
1118 case 0xC5:
1119 case 0xC6:
1120 case 0xC7:
1121 case 0xC9:
1122 case 0xCA:
1123 case 0xCB:
1124 case 0xCD:
1125 case 0xCE:
1126 case 0xCF:
1127 case 0xD9:
1129
1130 default:
1131
1133 }
1134 }
1135}
static JRESULT create_huffman_tbl(JDEC *jd, const uint8_t *data, size_t ndata) FL_NOEXCEPT
static JRESULT create_qt_tbl(JDEC *jd, const uint8_t *data, size_t ndata) FL_NOEXCEPT
static void * alloc_pool(JDEC *jd, size_t ndata) FL_NOEXCEPT
size_t(* infunc)(JDEC *, uint8_t *, size_t)
void * memset(void *s, int c, size_t n) FL_NOEXCEPT
References alloc_pool(), create_huffman_tbl(), create_qt_tbl(), fl::third_party::JDEC::dctr, fl::third_party::JDEC::device, fl::third_party::JDEC::dptr, FL_NOEXCEPT, fl::third_party::JDEC::height, fl::third_party::JDEC::huffbits, fl::third_party::JDEC::inbuf, fl::third_party::JDEC::infunc, JD_FASTDECODE, JD_SZBUF, JDR_FMT1, JDR_FMT3, JDR_INP, JDR_MEM1, JDR_MEM2, JDR_OK, LDB_WORD, fl::third_party::JDEC::mcubuf, fl::memset(), fl::third_party::JDEC::msx, fl::third_party::JDEC::msy, fl::third_party::JDEC::ncomp, fl::third_party::JDEC::nrst, fl::third_party::JDEC::pool, fl::third_party::JDEC::qtid, fl::third_party::JDEC::qttbl, fl::third_party::JDEC::swap, fl::third_party::JDEC::sz_pool, fl::third_party::JDEC::width, and fl::third_party::JDEC::workbuf.
Referenced by fl::third_party::TJpg_Decoder::drawJpg(), fl::third_party::TJpg_Decoder::getJpgSize(), and fl::third_party::TJpgInstanceDecoder::initializeDecoder().