|
RawSpeed
fast raw decoding library
|
#include "decompressors/HasselbladLJpegDecoder.h"
Public Member Functions | |
| HasselbladLJpegDecoder (ByteStream bs, const RawImage &img) | |
| void | decode () |
| int | getSamplePrecision () const |
Protected Member Functions | |
| 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 |
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 | |
| bool | erratumImplicitEOIMarkerAfterScan () const override |
| ByteStream::size_type | decodeScan () override |
| 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 31 of file HasselbladLJpegDecoder.h.
| rawspeed::HasselbladLJpegDecoder::HasselbladLJpegDecoder | ( | ByteStream | bs, |
| const RawImage & | img ) |
Definition at line 35 of file HasselbladLJpegDecoder.cpp.
References rawspeed::AbstractLJpegDecoder::AbstractLJpegDecoder(), rawspeed::AbstractLJpegDecoder::mRaw, ThrowRDE, and rawspeed::UINT16.
|
privatevirtualinherited |
Definition at line 44 of file AbstractLJpegDecoder.cpp.
| void rawspeed::HasselbladLJpegDecoder::decode | ( | ) |
Definition at line 68 of file HasselbladLJpegDecoder.cpp.
References rawspeed::AbstractLJpegDecoder::decodeSOI(), and rawspeed::AbstractLJpegDecoder::fullDecodeHT.
Referenced by rawspeed::ThreefrDecoder::decodeRawInternal(), and LLVMFuzzerTestOneInput().
|
nodiscardoverrideprivatevirtual |
Implements rawspeed::AbstractLJpegDecoder.
Definition at line 50 of file HasselbladLJpegDecoder.cpp.
References rawspeed::HasselbladDecompressor::decompress(), rawspeed::AbstractLJpegDecoder::frame, rawspeed::AbstractLJpegDecoder::getInitialPredictors(), rawspeed::AbstractLJpegDecoder::getPrefixCodeDecoders(), rawspeed::AbstractLJpegDecoder::input, rawspeed::AbstractLJpegDecoder::mRaw, rawspeed::AbstractLJpegDecoder::numMCUsPerRestartInterval, and ThrowRDE.
|
protectedinherited |
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().
|
inlinenodiscardoverrideprivatevirtual |
Reimplemented from rawspeed::AbstractLJpegDecoder.
Definition at line 34 of file HasselbladLJpegDecoder.h.
|
inlinenodiscardprotectedinherited |
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().
|
protectedinherited |
Definition at line 282 of file AbstractLJpegDecoder.cpp.
References rawspeed::advanceToNextMarker(), input, rawspeed::peekMarker(), and ThrowRDE.
Referenced by decodeSOI().
|
inlinenodiscardprotectedinherited |
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().
|
inlinenodiscardinherited |
Definition at line 90 of file AbstractLJpegDecoder.h.
References frame.
Referenced by rawspeed::Cr2Decoder::decodeNewFormat(), and rawspeed::Cr2Decoder::decodeOldFormat().
|
protectedinherited |
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().
|
protectedinherited |
Definition at line 276 of file AbstractLJpegDecoder.cpp.
References rawspeed::ByteStream::getRemainSize(), rawspeed::ByteStream::getU16(), numMCUsPerRestartInterval, and ThrowRDE.
Referenced by decodeSOI().
|
protectedinherited |
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().
|
protectedinherited |
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().
|
protectedinherited |
Definition at line 95 of file AbstractLJpegDecoder.h.
Referenced by rawspeed::LJpegDecoder::decode(), and parseDHT().
|
protectedinherited |
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().
|
protectedinherited |
Definition at line 96 of file AbstractLJpegDecoder.h.
Referenced by rawspeed::HasselbladLJpegDecoder::decode(), and parseDHT().
|
privateinherited |
Definition at line 83 of file AbstractLJpegDecoder.h.
Referenced by getPrefixCodeDecoders(), parseDHT(), and parseSOS().
|
privateinherited |
Definition at line 78 of file AbstractLJpegDecoder.h.
Referenced by parseDHT().
|
protectedinherited |
Definition at line 140 of file AbstractLJpegDecoder.h.
Referenced by AbstractLJpegDecoder(), rawspeed::Cr2LJpegDecoder::decodeScan(), rawspeed::HasselbladLJpegDecoder::decodeScan(), rawspeed::LJpegDecoder::decodeScan(), decodeSOI(), getNextMarker(), and parseSOS().
|
protectedinherited |
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().
|
protectedinherited |
Definition at line 144 of file AbstractLJpegDecoder.h.
Referenced by rawspeed::Cr2LJpegDecoder::decodeScan(), rawspeed::HasselbladLJpegDecoder::decodeScan(), rawspeed::LJpegDecoder::decodeScan(), and parseDRI().
|
protectedinherited |
Definition at line 145 of file AbstractLJpegDecoder.h.
Referenced by rawspeed::Cr2LJpegDecoder::decodeScan(), rawspeed::LJpegDecoder::decodeScan(), and parseSOS().
|
privateinherited |
Definition at line 80 of file AbstractLJpegDecoder.h.
Referenced by parseDHT().
|
privateinherited |
Definition at line 82 of file AbstractLJpegDecoder.h.
Referenced by getInitialPredictors(), and parseSOS().