|
RawSpeed
fast raw decoding library
|
#include "decompressors/AbstractLJpegDecoder.h"
Public Member Functions | |
| AbstractLJpegDecoder (ByteStream bs, RawImage img) | |
| int | getSamplePrecision () const |
| virtual | ~AbstractLJpegDecoder ()=default |
Protected Member Functions | |
| virtual bool | erratumImplicitEOIMarkerAfterScan () const |
| void | decodeSOI () |
| void | parseSOF (ByteStream data, SOFInfo *i) |
| void | parseSOS (ByteStream data) |
| void | parseDHT (ByteStream data) |
| void | parseDRI (ByteStream dri) |
| JpegMarker | getNextMarker (bool allowskip) |
| std::vector< const PrefixCodeDecoder<> * > | getPrefixCodeDecoders (int N_COMP) const |
| std::vector< uint16_t > | getInitialPredictors (int N_COMP) const |
| virtual ByteStream::size_type | decodeScan ()=0 |
Protected Attributes | |
| bool | fixDng16Bug = false |
| bool | fullDecodeHT = true |
| ByteStream | input |
| RawImage | mRaw |
| SOFInfo | frame |
| uint16_t | numMCUsPerRestartInterval = 0 |
| uint32_t | predictorMode = 0 |
Private Member Functions | |
| virtual void | anchor () const |
Private Attributes | |
| std::vector< std::unique_ptr< const HuffmanCode< BaselineCodeTag > > > | huffmanCodeStore |
| std::vector< std::unique_ptr< const PrefixCodeDecoder<> > > | PrefixCodeDecoderStore |
| uint32_t | Pt = 0 |
| std::array< const PrefixCodeDecoder<> *, 4 > | huff |
Definition at line 75 of file AbstractLJpegDecoder.h.
| rawspeed::AbstractLJpegDecoder::AbstractLJpegDecoder | ( | ByteStream | bs, |
| RawImage | img ) |
Definition at line 49 of file AbstractLJpegDecoder.cpp.
References rawspeed::big, input, mRaw, and ThrowRDE.
Referenced by rawspeed::Cr2LJpegDecoder::Cr2LJpegDecoder(), anonymous_namespace{DummyLJpegDecoder.cpp}::DummyLJpegDecoder::DummyLJpegDecoder(), rawspeed::HasselbladLJpegDecoder::HasselbladLJpegDecoder(), and rawspeed::LJpegDecoder::LJpegDecoder().
|
virtualdefault |
|
privatevirtual |
Definition at line 44 of file AbstractLJpegDecoder.cpp.
|
nodiscardprotectedpure virtual |
Implemented in anonymous_namespace{DummyLJpegDecoder.cpp}::DummyLJpegDecoder, rawspeed::Cr2LJpegDecoder, rawspeed::HasselbladLJpegDecoder, and rawspeed::LJpegDecoder.
Referenced by parseSOS().
|
protected |
Definition at line 65 of file AbstractLJpegDecoder.cpp.
References rawspeed::DHT, rawspeed::DQT, rawspeed::DRI, rawspeed::EOI, erratumImplicitEOIMarkerAfterScan(), frame, getNextMarker(), input, parseDHT(), parseDRI(), parseSOF(), parseSOS(), rawspeed::ByteStream::skipBytes(), rawspeed::SOF3, rawspeed::SOI, rawspeed::SOS, and ThrowRDE.
Referenced by rawspeed::Cr2LJpegDecoder::decode(), rawspeed::HasselbladLJpegDecoder::decode(), and rawspeed::LJpegDecoder::decode().
|
inlinenodiscardprotectedvirtual |
Reimplemented in rawspeed::HasselbladLJpegDecoder.
Definition at line 101 of file AbstractLJpegDecoder.h.
Referenced by decodeSOI().
|
inlinenodiscardprotected |
Definition at line 128 of file AbstractLJpegDecoder.h.
References frame, Pt, and ThrowRDE.
Referenced by rawspeed::Cr2LJpegDecoder::decodeScan(), rawspeed::HasselbladLJpegDecoder::decodeScan(), and rawspeed::LJpegDecoder::decodeScan().
|
protected |
Definition at line 282 of file AbstractLJpegDecoder.cpp.
References rawspeed::advanceToNextMarker(), input, rawspeed::peekMarker(), and ThrowRDE.
Referenced by decodeSOI().
|
inlinenodiscardprotected |
Definition at line 113 of file AbstractLJpegDecoder.h.
References frame, huff, rawspeed::implicit_cast(), and ThrowRDE.
Referenced by rawspeed::Cr2LJpegDecoder::decodeScan(), rawspeed::HasselbladLJpegDecoder::decodeScan(), and rawspeed::LJpegDecoder::decodeScan().
|
inlinenodiscard |
Definition at line 90 of file AbstractLJpegDecoder.h.
References frame.
Referenced by rawspeed::Cr2Decoder::decodeNewFormat(), and rawspeed::Cr2Decoder::decodeOldFormat().
|
protected |
Definition at line 230 of file AbstractLJpegDecoder.cpp.
References assert(), fixDng16Bug, fullDecodeHT, rawspeed::ByteStream::getBuffer(), rawspeed::ByteStream::getByte(), rawspeed::ByteStream::getRemainSize(), huff, huffmanCodeStore, PrefixCodeDecoderStore, rawspeed::HuffmanCode< CodeTag >::setCodeValues(), rawspeed::HuffmanCode< CodeTag >::setNCodesPerLength(), and ThrowRDE.
Referenced by decodeSOI().
|
protected |
Definition at line 276 of file AbstractLJpegDecoder.cpp.
References rawspeed::ByteStream::getRemainSize(), rawspeed::ByteStream::getU16(), numMCUsPerRestartInterval, and ThrowRDE.
Referenced by decodeSOI().
|
protected |
Definition at line 127 of file AbstractLJpegDecoder.cpp.
References rawspeed::SOFInfo::compInfo, rawspeed::SOFInfo::cps, frame, rawspeed::ByteStream::getByte(), rawspeed::ByteStream::getRemainSize(), rawspeed::ByteStream::getU16(), rawspeed::SOFInfo::h, rawspeed::SOFInfo::initialized, mRaw, rawspeed::SOFInfo::prec, ThrowRDE, and rawspeed::SOFInfo::w.
Referenced by decodeSOI().
|
protected |
Definition at line 181 of file AbstractLJpegDecoder.cpp.
References decodeScan(), frame, rawspeed::ByteStream::getByte(), rawspeed::ByteStream::getRemainSize(), huff, input, invariant, predictorMode, Pt, and ThrowRDE.
Referenced by decodeSOI().
|
protected |
Definition at line 95 of file AbstractLJpegDecoder.h.
Referenced by rawspeed::LJpegDecoder::decode(), and parseDHT().
|
protected |
Definition at line 143 of file AbstractLJpegDecoder.h.
Referenced by rawspeed::Cr2LJpegDecoder::decodeScan(), rawspeed::HasselbladLJpegDecoder::decodeScan(), rawspeed::LJpegDecoder::decodeScan(), decodeSOI(), getInitialPredictors(), getPrefixCodeDecoders(), getSamplePrecision(), parseSOF(), and parseSOS().
|
protected |
Definition at line 96 of file AbstractLJpegDecoder.h.
Referenced by rawspeed::HasselbladLJpegDecoder::decode(), and parseDHT().
|
private |
Definition at line 83 of file AbstractLJpegDecoder.h.
Referenced by getPrefixCodeDecoders(), parseDHT(), and parseSOS().
|
private |
Definition at line 78 of file AbstractLJpegDecoder.h.
Referenced by parseDHT().
|
protected |
Definition at line 140 of file AbstractLJpegDecoder.h.
Referenced by AbstractLJpegDecoder(), rawspeed::Cr2LJpegDecoder::decodeScan(), rawspeed::HasselbladLJpegDecoder::decodeScan(), rawspeed::LJpegDecoder::decodeScan(), decodeSOI(), getNextMarker(), and parseSOS().
|
protected |
Definition at line 141 of file AbstractLJpegDecoder.h.
Referenced by AbstractLJpegDecoder(), rawspeed::Cr2LJpegDecoder::Cr2LJpegDecoder(), rawspeed::HasselbladLJpegDecoder::HasselbladLJpegDecoder(), rawspeed::LJpegDecoder::LJpegDecoder(), rawspeed::LJpegDecoder::decode(), rawspeed::Cr2LJpegDecoder::decodeScan(), rawspeed::HasselbladLJpegDecoder::decodeScan(), rawspeed::LJpegDecoder::decodeScan(), and parseSOF().
|
protected |
Definition at line 144 of file AbstractLJpegDecoder.h.
Referenced by rawspeed::Cr2LJpegDecoder::decodeScan(), rawspeed::HasselbladLJpegDecoder::decodeScan(), rawspeed::LJpegDecoder::decodeScan(), and parseDRI().
|
protected |
Definition at line 145 of file AbstractLJpegDecoder.h.
Referenced by rawspeed::Cr2LJpegDecoder::decodeScan(), rawspeed::LJpegDecoder::decodeScan(), and parseSOS().
|
private |
Definition at line 80 of file AbstractLJpegDecoder.h.
Referenced by parseDHT().
|
private |
Definition at line 82 of file AbstractLJpegDecoder.h.
Referenced by getInitialPredictors(), and parseSOS().