RawSpeed
fast raw decoding library
Loading...
Searching...
No Matches
rawspeed::BitStreamer< Tag > Class Template Reference

#include "bitstreams/BitStreamer.h"

Inheritance diagram for rawspeed::BitStreamer< Tag >:
[legend]
Collaboration diagram for rawspeed::BitStreamer< Tag >:
[legend]

Public Types

using size_type = int32_t
using Traits = BitStreamerTraits<Derived>
using StreamTraits = BitStreamTraits<Traits::Tag>
using Cache = typename StreamTraits::StreamFlow

Public Member Functions

void establishClassInvariants () const noexcept
 BitStreamer ()=delete
 BitStreamer (Array1DRef< const std::byte > input)
void reload ()
void fill (int nbits=Cache::MaxGetBits)
size_type RAWSPEED_READONLY getInputPosition () const
size_type getStreamPosition () const
size_type getRemainingSize () const
size_type RAWSPEED_READONLY getFillLevel () const
uint32_t RAWSPEED_READONLY peekBitsNoFill (int nbits)
void skipBitsNoFill (int nbits)
uint32_t getBitsNoFill (int nbits)
uint32_t peekBits (int nbits)
void skipBits (int nbits)
uint32_t getBits (int nbits)
void skipManyBits (int nbits)
void skipBytes (int nbytes)

Protected Attributes

Cache cache

Private Member Functions

size_type fillCache (std::array< std::byte, BitStreamerTraits< Derived >::MaxProcessBytes > inputStorage)

Private Attributes

Replenisher replenisher

Detailed Description

template<typename Tag>
class rawspeed::BitStreamer< Tag >

Definition at line 138 of file BitStreamer.h.

Member Typedef Documentation

◆ Cache

template<typename Tag>
using rawspeed::BitStreamer< Tag >::Cache = typename StreamTraits::StreamFlow

Definition at line 144 of file BitStreamer.h.

◆ size_type

template<typename Tag>
using rawspeed::BitStreamer< Tag >::size_type = int32_t

Definition at line 140 of file BitStreamer.h.

◆ StreamTraits

template<typename Tag>
using rawspeed::BitStreamer< Tag >::StreamTraits = BitStreamTraits<Traits::Tag>

Definition at line 142 of file BitStreamer.h.

◆ Traits

template<typename Tag>
using rawspeed::BitStreamer< Tag >::Traits = BitStreamerTraits<Derived>

Definition at line 141 of file BitStreamer.h.

Constructor & Destructor Documentation

◆ BitStreamer() [1/2]

template<typename Tag>
rawspeed::BitStreamer< Tag >::BitStreamer ( )
delete

Referenced by rawspeed::BitStreamer< BitStreamerJPEG >::reload().

Here is the caller graph for this function:

◆ BitStreamer() [2/2]

template<typename Tag>
rawspeed::BitStreamer< Tag >::BitStreamer ( Array1DRef< const std::byte > input)
inlineexplicit

Definition at line 192 of file BitStreamer.h.

Member Function Documentation

◆ establishClassInvariants()

◆ fill()

◆ fillCache()

template<typename Tag>
size_type rawspeed::BitStreamer< Tag >::fillCache ( std::array< std::byte, BitStreamerTraits< Derived >::MaxProcessBytes > inputStorage)
inlineprivate

Definition at line 156 of file BitStreamer.h.

Referenced by rawspeed::BitStreamer< BitStreamerJPEG >::fill().

Here is the caller graph for this function:

◆ getBits()

◆ getBitsNoFill()

◆ getFillLevel()

template<typename Tag>
size_type RAWSPEED_READONLY rawspeed::BitStreamer< Tag >::getFillLevel ( ) const
inlinenodiscard

Definition at line 248 of file BitStreamer.h.

Referenced by rawspeed::PanasonicV5Decompressor::processPixelPacket(), and rawspeed::BitStreamer< BitStreamerJPEG >::reload().

Here is the caller graph for this function:

◆ getInputPosition()

template<typename Tag>
size_type RAWSPEED_READONLY rawspeed::BitStreamer< Tag >::getInputPosition ( ) const
inlinenodiscard

Definition at line 232 of file BitStreamer.h.

Referenced by rawspeed::SamsungV2Decompressor::SamsungV2Decompressor(), rawspeed::BitStreamer< BitStreamerJPEG >::getStreamPosition(), and rawspeed::BitStreamer< BitStreamerJPEG >::reload().

Here is the caller graph for this function:

◆ getRemainingSize()

template<typename Tag>
size_type rawspeed::BitStreamer< Tag >::getRemainingSize ( ) const
inlinenodiscard

Definition at line 243 of file BitStreamer.h.

Referenced by rawspeed::SamsungV2Decompressor::SamsungV2Decompressor(), and rawspeed::NefDecoder::readCoolpixSplitRaw().

Here is the caller graph for this function:

◆ getStreamPosition()

template<typename Tag>
size_type rawspeed::BitStreamer< Tag >::getStreamPosition ( ) const
inlinenodiscard

Definition at line 238 of file BitStreamer.h.

Referenced by rawspeed::HasselbladDecompressor::decompress(), and rawspeed::SamsungV2Decompressor::decompressRow().

Here is the caller graph for this function:

◆ peekBits()

template<typename Tag>
uint32_t rawspeed::BitStreamer< Tag >::peekBits ( int nbits)
inline

Definition at line 279 of file BitStreamer.h.

Referenced by rawspeed::NikonDecompressor::decompress(), and rawspeed::SonyArw2Decompressor::decompressRow().

Here is the caller graph for this function:

◆ peekBitsNoFill()

template<typename Tag>
uint32_t RAWSPEED_READONLY rawspeed::BitStreamer< Tag >::peekBitsNoFill ( int nbits)
inline

◆ reload()

template<typename Tag>
void rawspeed::BitStreamer< Tag >::reload ( )
inline

Definition at line 196 of file BitStreamer.h.

◆ skipBits()

template<typename Tag>
void rawspeed::BitStreamer< Tag >::skipBits ( int nbits)
inline

Definition at line 288 of file BitStreamer.h.

◆ skipBitsNoFill()

◆ skipBytes()

template<typename Tag>
void rawspeed::BitStreamer< Tag >::skipBytes ( int nbytes)
inline

Definition at line 321 of file BitStreamer.h.

◆ skipManyBits()

template<typename Tag>
void rawspeed::BitStreamer< Tag >::skipManyBits ( int nbits)
inline

Definition at line 305 of file BitStreamer.h.

Referenced by rawspeed::BitStreamer< BitStreamerJPEG >::skipBytes().

Here is the caller graph for this function:

Member Data Documentation

◆ cache

template<typename Tag>
Cache rawspeed::BitStreamer< Tag >::cache
protected

Definition at line 147 of file BitStreamer.h.

◆ replenisher

template<typename Tag>
Replenisher rawspeed::BitStreamer< Tag >::replenisher
private

Definition at line 150 of file BitStreamer.h.


The documentation for this class was generated from the following file: