FreeRDP
progressive.c File Reference
#include <freerdp/config.h>
#include <winpr/assert.h>
#include <winpr/crt.h>
#include <winpr/print.h>
#include <winpr/bitstream.h>
#include <freerdp/primitives.h>
#include <freerdp/codec/color.h>
#include <freerdp/codec/progressive.h>
#include <freerdp/codec/region.h>
#include <freerdp/log.h>
#include "rfx_differential.h"
#include "rfx_quantization.h"
#include "rfx_dwt.h"
#include "rfx_rlgr.h"
#include "rfx_constants.h"
#include "rfx_types.h"
#include "progressive.h"

Macros

#define TAG   FREERDP_TAG("codec.progressive")
 

Functions

static INLINE void progressive_component_codec_quant_read (wStream *WINPR_RESTRICT s, RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT quantVal)
 
static INLINE void progressive_rfx_quant_ladd (RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT q, int val)
 
static INLINE void progressive_rfx_quant_add (const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT q1, const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT q2, RFX_COMPONENT_CODEC_QUANT *dst)
 
static INLINE void progressive_rfx_quant_lsub (RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT q, int val)
 
static INLINE void progressive_rfx_quant_sub (const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT q1, const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT q2, RFX_COMPONENT_CODEC_QUANT *dst)
 
static INLINE BOOL progressive_rfx_quant_lcmp_less_equal (const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT q, int val)
 
static INLINE BOOL progressive_rfx_quant_cmp_less_equal (const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT q1, const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT q2)
 
static INLINE BOOL progressive_rfx_quant_lcmp_greater_equal (const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT q, int val)
 
static INLINE BOOL progressive_rfx_quant_cmp_greater_equal (const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT q1, const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT q2)
 
static INLINE BOOL progressive_rfx_quant_cmp_equal (const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT q1, const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT q2)
 
static INLINE BOOL progressive_set_surface_data (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, UINT16 surfaceId, PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT pData)
 
static INLINE PROGRESSIVE_SURFACE_CONTEXTprogressive_get_surface_data (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, UINT16 surfaceId)
 
static void progressive_tile_free (RFX_PROGRESSIVE_TILE *WINPR_RESTRICT tile)
 
static void progressive_surface_context_free (void *ptr)
 
static INLINE RFX_PROGRESSIVE_TILEprogressive_tile_new (void)
 
static INLINE BOOL progressive_allocate_tile_cache (PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT surface, size_t min)
 
static PROGRESSIVE_SURFACE_CONTEXTprogressive_surface_context_new (UINT16 surfaceId, UINT32 width, UINT32 height)
 
static INLINE BOOL progressive_surface_tile_replace (PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT surface, PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT region, const RFX_PROGRESSIVE_TILE *WINPR_RESTRICT tile, BOOL upgrade)
 
INT32 progressive_create_surface_context (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, UINT16 surfaceId, UINT32 width, UINT32 height)
 
int progressive_delete_surface_context (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, UINT16 surfaceId)
 
static INLINE void progressive_rfx_idwt_x (const INT16 *WINPR_RESTRICT pLowBand, size_t nLowStep, const INT16 *WINPR_RESTRICT pHighBand, size_t nHighStep, INT16 *WINPR_RESTRICT pDstBand, size_t nDstStep, size_t nLowCount, size_t nHighCount, size_t nDstCount)
 
static INLINE void progressive_rfx_idwt_y (const INT16 *WINPR_RESTRICT pLowBand, size_t nLowStep, const INT16 *WINPR_RESTRICT pHighBand, size_t nHighStep, INT16 *WINPR_RESTRICT pDstBand, size_t nDstStep, size_t nLowCount, size_t nHighCount, size_t nDstCount)
 
static INLINE size_t progressive_rfx_get_band_l_count (size_t level)
 
static INLINE size_t progressive_rfx_get_band_h_count (size_t level)
 
static INLINE void progressive_rfx_dwt_2d_decode_block (INT16 *WINPR_RESTRICT buffer, INT16 *WINPR_RESTRICT temp, size_t level)
 
void rfx_dwt_2d_extrapolate_decode (INT16 *WINPR_RESTRICT buffer, INT16 *WINPR_RESTRICT temp)
 
static INLINE int progressive_rfx_dwt_2d_decode (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, INT16 *WINPR_RESTRICT buffer, INT16 *WINPR_RESTRICT current, BOOL coeffDiff, BOOL extrapolate, BOOL reverse)
 
static INLINE void progressive_rfx_decode_block (const primitives_t *prims, INT16 *WINPR_RESTRICT buffer, UINT32 length, UINT32 shift)
 
static INLINE int progressive_rfx_decode_component (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT shift, const BYTE *WINPR_RESTRICT data, UINT32 length, INT16 *WINPR_RESTRICT buffer, INT16 *WINPR_RESTRICT current, INT16 *WINPR_RESTRICT sign, BOOL coeffDiff, BOOL subbandDiff, BOOL extrapolate)
 
static INLINE int progressive_decompress_tile_first (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, RFX_PROGRESSIVE_TILE *WINPR_RESTRICT tile, PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT region, const PROGRESSIVE_BLOCK_CONTEXT *WINPR_RESTRICT context)
 
static INLINE INT16 progressive_rfx_srl_read (RFX_PROGRESSIVE_UPGRADE_STATE *WINPR_RESTRICT state, UINT32 numBits)
 
static INLINE int progressive_rfx_upgrade_state_finish (RFX_PROGRESSIVE_UPGRADE_STATE *WINPR_RESTRICT state)
 
static INLINE int progressive_rfx_upgrade_block (RFX_PROGRESSIVE_UPGRADE_STATE *WINPR_RESTRICT state, INT16 *WINPR_RESTRICT buffer, INT16 *WINPR_RESTRICT sign, UINT32 length, UINT32 shift, UINT32 bitPos, UINT32 numBits)
 
static INLINE int progressive_rfx_upgrade_component (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT shift, const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT bitPos, const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT numBits, INT16 *WINPR_RESTRICT buffer, INT16 *WINPR_RESTRICT current, INT16 *WINPR_RESTRICT sign, const BYTE *WINPR_RESTRICT srlData, UINT32 srlLen, const BYTE *WINPR_RESTRICT rawData, UINT32 rawLen, BOOL coeffDiff, BOOL subbandDiff, BOOL extrapolate)
 
static INLINE int progressive_decompress_tile_upgrade (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, RFX_PROGRESSIVE_TILE *WINPR_RESTRICT tile, PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT region, const PROGRESSIVE_BLOCK_CONTEXT *WINPR_RESTRICT context)
 
static INLINE BOOL progressive_tile_read_upgrade (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, wStream *WINPR_RESTRICT s, UINT16 blockType, UINT32 blockLen, PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT surface, PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT region, const PROGRESSIVE_BLOCK_CONTEXT *WINPR_RESTRICT context)
 
static INLINE BOOL progressive_tile_read (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, BOOL simple, wStream *WINPR_RESTRICT s, UINT16 blockType, UINT32 blockLen, PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT surface, PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT region, const PROGRESSIVE_BLOCK_CONTEXT *WINPR_RESTRICT context)
 
static void CALLBACK progressive_process_tiles_tile_work_callback (PTP_CALLBACK_INSTANCE instance, void *context, PTP_WORK work)
 
static INLINE SSIZE_T progressive_process_tiles (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, wStream *WINPR_RESTRICT s, PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT region, PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT surface, const PROGRESSIVE_BLOCK_CONTEXT *WINPR_RESTRICT context)
 
static INLINE SSIZE_T progressive_wb_sync (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, wStream *WINPR_RESTRICT s, UINT16 blockType, UINT32 blockLen)
 
static INLINE SSIZE_T progressive_wb_frame_begin (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, wStream *WINPR_RESTRICT s, UINT16 blockType, UINT32 blockLen)
 
static INLINE SSIZE_T progressive_wb_frame_end (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, wStream *WINPR_RESTRICT s, UINT16 blockType, UINT32 blockLen)
 
static INLINE SSIZE_T progressive_wb_context (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, wStream *WINPR_RESTRICT s, UINT16 blockType, UINT32 blockLen)
 
static INLINE SSIZE_T progressive_wb_read_region_header (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, wStream *WINPR_RESTRICT s, UINT16 blockType, UINT32 blockLen, PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT region)
 
static INLINE SSIZE_T progressive_wb_skip_region (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, wStream *WINPR_RESTRICT s, UINT16 blockType, UINT32 blockLen)
 
static INLINE SSIZE_T progressive_wb_region (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, wStream *WINPR_RESTRICT s, UINT16 blockType, UINT32 blockLen, PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT surface, PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT region)
 
static INLINE SSIZE_T progressive_parse_block (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, wStream *WINPR_RESTRICT s, PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT surface, PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT region)
 
static INLINE BOOL update_tiles (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT surface, BYTE *WINPR_RESTRICT pDstData, UINT32 DstFormat, UINT32 nDstStep, UINT32 nXDst, UINT32 nYDst, PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT region, REGION16 *WINPR_RESTRICT invalidRegion)
 
INT32 progressive_decompress (PROGRESSIVE_CONTEXT *WINPR_RESTRICT progressive, const BYTE *WINPR_RESTRICT pSrcData, UINT32 SrcSize, BYTE *WINPR_RESTRICT pDstData, UINT32 DstFormat, UINT32 nDstStep, UINT32 nXDst, UINT32 nYDst, REGION16 *WINPR_RESTRICT invalidRegion, UINT16 surfaceId, UINT32 frameId)
 
BOOL progressive_rfx_write_message_progressive_simple (PROGRESSIVE_CONTEXT *progressive, wStream *s, const RFX_MESSAGE *msg)
 
int progressive_compress (PROGRESSIVE_CONTEXT *progressive, const BYTE *pSrcData, UINT32 SrcSize, UINT32 SrcFormat, UINT32 Width, UINT32 Height, UINT32 ScanLine, const REGION16 *invalidRegion, BYTE **ppDstData, UINT32 *pDstSize)
 
BOOL progressive_context_reset (PROGRESSIVE_CONTEXT *progressive)
 
PROGRESSIVE_CONTEXT * progressive_context_new (BOOL Compressor)
 
PROGRESSIVE_CONTEXT * progressive_context_new_ex (BOOL Compressor, UINT32 ThreadingFlags)
 
void progressive_context_free (PROGRESSIVE_CONTEXT *progressive)
 

Macro Definition Documentation

◆ TAG

#define TAG   FREERDP_TAG("codec.progressive")

FreeRDP: A Remote Desktop Protocol Implementation Progressive Codec Bitmap Compression

Copyright 2014 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com Copyright 2019 Armin Novak armin.nosp@m..nov.nosp@m.ak@th.nosp@m.inca.nosp@m.st.co.nosp@m.m Copyright 2019 Thincast Technologies GmbH

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Function Documentation

◆ progressive_allocate_tile_cache()

static INLINE BOOL progressive_allocate_tile_cache ( PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT  surface,
size_t  min 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_component_codec_quant_read()

static INLINE void progressive_component_codec_quant_read ( wStream *WINPR_RESTRICT  s,
RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  quantVal 
)
static
Here is the caller graph for this function:

◆ progressive_compress()

int progressive_compress ( PROGRESSIVE_CONTEXT *  progressive,
const BYTE pSrcData,
UINT32  SrcSize,
UINT32  SrcFormat,
UINT32  Width,
UINT32  Height,
UINT32  ScanLine,
const REGION16 invalidRegion,
BYTE **  ppDstData,
UINT32 *  pDstSize 
)
Here is the call graph for this function:

◆ progressive_context_free()

void progressive_context_free ( PROGRESSIVE_CONTEXT *  progressive)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_context_new()

PROGRESSIVE_CONTEXT* progressive_context_new ( BOOL  Compressor)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_context_new_ex()

PROGRESSIVE_CONTEXT* progressive_context_new_ex ( BOOL  Compressor,
UINT32  ThreadingFlags 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_context_reset()

BOOL progressive_context_reset ( PROGRESSIVE_CONTEXT *  progressive)

◆ progressive_create_surface_context()

INT32 progressive_create_surface_context ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
UINT16  surfaceId,
UINT32  width,
UINT32  height 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_decompress()

INT32 progressive_decompress ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
const BYTE *WINPR_RESTRICT  pSrcData,
UINT32  SrcSize,
BYTE *WINPR_RESTRICT  pDstData,
UINT32  DstFormat,
UINT32  nDstStep,
UINT32  nXDst,
UINT32  nYDst,
REGION16 *WINPR_RESTRICT  invalidRegion,
UINT16  surfaceId,
UINT32  frameId 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_decompress_tile_first()

static INLINE int progressive_decompress_tile_first ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
RFX_PROGRESSIVE_TILE *WINPR_RESTRICT  tile,
PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT  region,
const PROGRESSIVE_BLOCK_CONTEXT *WINPR_RESTRICT  context 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_decompress_tile_upgrade()

static INLINE int progressive_decompress_tile_upgrade ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
RFX_PROGRESSIVE_TILE *WINPR_RESTRICT  tile,
PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT  region,
const PROGRESSIVE_BLOCK_CONTEXT *WINPR_RESTRICT  context 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_delete_surface_context()

int progressive_delete_surface_context ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
UINT16  surfaceId 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_get_surface_data()

static INLINE PROGRESSIVE_SURFACE_CONTEXT* progressive_get_surface_data ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
UINT16  surfaceId 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_parse_block()

static INLINE SSIZE_T progressive_parse_block ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
wStream *WINPR_RESTRICT  s,
PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT  surface,
PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT  region 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_process_tiles()

static INLINE SSIZE_T progressive_process_tiles ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
wStream *WINPR_RESTRICT  s,
PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT  region,
PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT  surface,
const PROGRESSIVE_BLOCK_CONTEXT *WINPR_RESTRICT  context 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_process_tiles_tile_work_callback()

static void CALLBACK progressive_process_tiles_tile_work_callback ( PTP_CALLBACK_INSTANCE  instance,
void *  context,
PTP_WORK  work 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_rfx_decode_block()

static INLINE void progressive_rfx_decode_block ( const primitives_t prims,
INT16 *WINPR_RESTRICT  buffer,
UINT32  length,
UINT32  shift 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_rfx_decode_component()

static INLINE int progressive_rfx_decode_component ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  shift,
const BYTE *WINPR_RESTRICT  data,
UINT32  length,
INT16 *WINPR_RESTRICT  buffer,
INT16 *WINPR_RESTRICT  current,
INT16 *WINPR_RESTRICT  sign,
BOOL  coeffDiff,
BOOL  subbandDiff,
BOOL  extrapolate 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_rfx_dwt_2d_decode()

static INLINE int progressive_rfx_dwt_2d_decode ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
INT16 *WINPR_RESTRICT  buffer,
INT16 *WINPR_RESTRICT  current,
BOOL  coeffDiff,
BOOL  extrapolate,
BOOL  reverse 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_rfx_dwt_2d_decode_block()

static INLINE void progressive_rfx_dwt_2d_decode_block ( INT16 *WINPR_RESTRICT  buffer,
INT16 *WINPR_RESTRICT  temp,
size_t  level 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_rfx_get_band_h_count()

static INLINE size_t progressive_rfx_get_band_h_count ( size_t  level)
static
Here is the caller graph for this function:

◆ progressive_rfx_get_band_l_count()

static INLINE size_t progressive_rfx_get_band_l_count ( size_t  level)
static
Here is the caller graph for this function:

◆ progressive_rfx_idwt_x()

static INLINE void progressive_rfx_idwt_x ( const INT16 *WINPR_RESTRICT  pLowBand,
size_t  nLowStep,
const INT16 *WINPR_RESTRICT  pHighBand,
size_t  nHighStep,
INT16 *WINPR_RESTRICT  pDstBand,
size_t  nDstStep,
size_t  nLowCount,
size_t  nHighCount,
size_t  nDstCount 
)
static
Here is the caller graph for this function:

◆ progressive_rfx_idwt_y()

static INLINE void progressive_rfx_idwt_y ( const INT16 *WINPR_RESTRICT  pLowBand,
size_t  nLowStep,
const INT16 *WINPR_RESTRICT  pHighBand,
size_t  nHighStep,
INT16 *WINPR_RESTRICT  pDstBand,
size_t  nDstStep,
size_t  nLowCount,
size_t  nHighCount,
size_t  nDstCount 
)
static
Here is the caller graph for this function:

◆ progressive_rfx_quant_add()

static INLINE void progressive_rfx_quant_add ( const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  q1,
const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  q2,
RFX_COMPONENT_CODEC_QUANT dst 
)
static
Here is the caller graph for this function:

◆ progressive_rfx_quant_cmp_equal()

static INLINE BOOL progressive_rfx_quant_cmp_equal ( const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  q1,
const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  q2 
)
static
Here is the caller graph for this function:

◆ progressive_rfx_quant_cmp_greater_equal()

static INLINE BOOL progressive_rfx_quant_cmp_greater_equal ( const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  q1,
const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  q2 
)
static

◆ progressive_rfx_quant_cmp_less_equal()

static INLINE BOOL progressive_rfx_quant_cmp_less_equal ( const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  q1,
const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  q2 
)
static

◆ progressive_rfx_quant_ladd()

static INLINE void progressive_rfx_quant_ladd ( RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  q,
int  val 
)
static

◆ progressive_rfx_quant_lcmp_greater_equal()

static INLINE BOOL progressive_rfx_quant_lcmp_greater_equal ( const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  q,
int  val 
)
static
Here is the caller graph for this function:

◆ progressive_rfx_quant_lcmp_less_equal()

static INLINE BOOL progressive_rfx_quant_lcmp_less_equal ( const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  q,
int  val 
)
static
Here is the caller graph for this function:

◆ progressive_rfx_quant_lsub()

static INLINE void progressive_rfx_quant_lsub ( RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  q,
int  val 
)
static
Here is the caller graph for this function:

◆ progressive_rfx_quant_sub()

static INLINE void progressive_rfx_quant_sub ( const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  q1,
const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  q2,
RFX_COMPONENT_CODEC_QUANT dst 
)
static
Here is the caller graph for this function:

◆ progressive_rfx_srl_read()

static INLINE INT16 progressive_rfx_srl_read ( RFX_PROGRESSIVE_UPGRADE_STATE *WINPR_RESTRICT  state,
UINT32  numBits 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_rfx_upgrade_block()

static INLINE int progressive_rfx_upgrade_block ( RFX_PROGRESSIVE_UPGRADE_STATE *WINPR_RESTRICT  state,
INT16 *WINPR_RESTRICT  buffer,
INT16 *WINPR_RESTRICT  sign,
UINT32  length,
UINT32  shift,
UINT32  bitPos,
UINT32  numBits 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_rfx_upgrade_component()

static INLINE int progressive_rfx_upgrade_component ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  shift,
const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  bitPos,
const RFX_COMPONENT_CODEC_QUANT *WINPR_RESTRICT  numBits,
INT16 *WINPR_RESTRICT  buffer,
INT16 *WINPR_RESTRICT  current,
INT16 *WINPR_RESTRICT  sign,
const BYTE *WINPR_RESTRICT  srlData,
UINT32  srlLen,
const BYTE *WINPR_RESTRICT  rawData,
UINT32  rawLen,
BOOL  coeffDiff,
BOOL  subbandDiff,
BOOL  extrapolate 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_rfx_upgrade_state_finish()

static INLINE int progressive_rfx_upgrade_state_finish ( RFX_PROGRESSIVE_UPGRADE_STATE *WINPR_RESTRICT  state)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_rfx_write_message_progressive_simple()

BOOL progressive_rfx_write_message_progressive_simple ( PROGRESSIVE_CONTEXT *  progressive,
wStream s,
const RFX_MESSAGE *  msg 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_set_surface_data()

static INLINE BOOL progressive_set_surface_data ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
UINT16  surfaceId,
PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT  pData 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_surface_context_free()

static void progressive_surface_context_free ( void *  ptr)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_surface_context_new()

static PROGRESSIVE_SURFACE_CONTEXT* progressive_surface_context_new ( UINT16  surfaceId,
UINT32  width,
UINT32  height 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_surface_tile_replace()

static INLINE BOOL progressive_surface_tile_replace ( PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT  surface,
PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT  region,
const RFX_PROGRESSIVE_TILE *WINPR_RESTRICT  tile,
BOOL  upgrade 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_tile_free()

static void progressive_tile_free ( RFX_PROGRESSIVE_TILE *WINPR_RESTRICT  tile)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_tile_new()

static INLINE RFX_PROGRESSIVE_TILE* progressive_tile_new ( void  )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_tile_read()

static INLINE BOOL progressive_tile_read ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
BOOL  simple,
wStream *WINPR_RESTRICT  s,
UINT16  blockType,
UINT32  blockLen,
PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT  surface,
PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT  region,
const PROGRESSIVE_BLOCK_CONTEXT *WINPR_RESTRICT  context 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_tile_read_upgrade()

static INLINE BOOL progressive_tile_read_upgrade ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
wStream *WINPR_RESTRICT  s,
UINT16  blockType,
UINT32  blockLen,
PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT  surface,
PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT  region,
const PROGRESSIVE_BLOCK_CONTEXT *WINPR_RESTRICT  context 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_wb_context()

static INLINE SSIZE_T progressive_wb_context ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
wStream *WINPR_RESTRICT  s,
UINT16  blockType,
UINT32  blockLen 
)
static
Here is the caller graph for this function:

◆ progressive_wb_frame_begin()

static INLINE SSIZE_T progressive_wb_frame_begin ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
wStream *WINPR_RESTRICT  s,
UINT16  blockType,
UINT32  blockLen 
)
static

If the number of elements specified by the regionCount field is larger than the actual number of elements in the regions field, the decoder SHOULD ignore this inconsistency.

Here is the caller graph for this function:

◆ progressive_wb_frame_end()

static INLINE SSIZE_T progressive_wb_frame_end ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
wStream *WINPR_RESTRICT  s,
UINT16  blockType,
UINT32  blockLen 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_wb_read_region_header()

static INLINE SSIZE_T progressive_wb_read_region_header ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
wStream *WINPR_RESTRICT  s,
UINT16  blockType,
UINT32  blockLen,
PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT  region 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_wb_region()

static INLINE SSIZE_T progressive_wb_region ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
wStream *WINPR_RESTRICT  s,
UINT16  blockType,
UINT32  blockLen,
PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT  surface,
PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT  region 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_wb_skip_region()

static INLINE SSIZE_T progressive_wb_skip_region ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
wStream *WINPR_RESTRICT  s,
UINT16  blockType,
UINT32  blockLen 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ progressive_wb_sync()

static INLINE SSIZE_T progressive_wb_sync ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
wStream *WINPR_RESTRICT  s,
UINT16  blockType,
UINT32  blockLen 
)
static
Here is the caller graph for this function:

◆ rfx_dwt_2d_extrapolate_decode()

void rfx_dwt_2d_extrapolate_decode ( INT16 *WINPR_RESTRICT  buffer,
INT16 *WINPR_RESTRICT  temp 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_tiles()

static INLINE BOOL update_tiles ( PROGRESSIVE_CONTEXT *WINPR_RESTRICT  progressive,
PROGRESSIVE_SURFACE_CONTEXT *WINPR_RESTRICT  surface,
BYTE *WINPR_RESTRICT  pDstData,
UINT32  DstFormat,
UINT32  nDstStep,
UINT32  nXDst,
UINT32  nYDst,
PROGRESSIVE_BLOCK_REGION *WINPR_RESTRICT  region,
REGION16 *WINPR_RESTRICT  invalidRegion 
)
static
Here is the call graph for this function:
Here is the caller graph for this function: