ROHC compression/decompression library
Data Structures | Defines | Enumerations | Functions | Variables
rohc_decomp.h File Reference

ROHC decompression routines. More...

#include "rohc.h"
#include "rohc_comp.h"
Include dependency graph for rohc_decomp.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  d_statistics
 Some compressor statistics. More...
struct  rohc_decomp
 The ROHC decompressor. More...
struct  d_context
 The ROHC decompression context. More...
struct  d_profile
 The ROHC decompression profile. More...

Defines

#define D_NUM_PROFILES   6
 The number of ROHC profiles ready to be used.

Enumerations

enum  rohc_d_state { NO_CONTEXT = 1, STATIC_CONTEXT = 2, FULL_CONTEXT = 3 }
 ROHC decompressor states (see 4.3.2 in the RFC 3095) More...

Functions

struct rohc_decomprohc_alloc_decompressor (struct rohc_comp *compressor)
 Create one ROHC decompressor.
void rohc_free_decompressor (struct rohc_decomp *decomp)
 Destroy one ROHC decompressor.
int rohc_decompress (struct rohc_decomp *decomp, unsigned char *ibuf, int isize, unsigned char *obuf, int osize)
 Decompress a ROHC packet.
int rohc_decompress_both (struct rohc_decomp *decomp, unsigned char *ibuf, int isize, unsigned char *obuf, int osize, int large) ROHC_DEPRECATED("please do not use this function anymore
int use rohc_decomp_set_cid_type () and rohc_decomp_set_max_cid()" "instead")
struct d_contextfind_context (struct rohc_decomp *decomp, int cid)
 Find one decompression context thanks to its CID.
struct d_contextcontext_create (struct rohc_decomp *decomp, int with_cid, struct d_profile *profile)
 Create one new decompression context with profile specific data.
void context_free (struct d_context *context)
 Destroy one decompression context and the profile specific data associated with it.
void d_change_mode_feedback (struct rohc_decomp *decomp, struct d_context *context)
 Create a feedback ACK packet telling the compressor to change state.
int rohc_d_statistics (struct rohc_decomp *decomp, unsigned int indent, char *buffer)
 Output the decompression statistics of one decompressor to a buffer. The buffer must be large enough to store all the statistics.
int rohc_d_context (struct rohc_decomp *decomp, int index, unsigned int indent, char *buffer)
 Output the statistics of one decompression context to a buffer.
void clear_statistics (struct rohc_decomp *decomp)
 Clear all the statistics.
const char * rohc_decomp_get_state_descr (const rohc_d_state state)
 Give a description for the given ROHC decompression context state.
void user_interactions (struct rohc_decomp *decomp, int feedback_maxval)
 Update feedback interval by the user.
bool rohc_decomp_set_cid_type (struct rohc_decomp *const decomp, const rohc_cid_type_t cid_type) __attribute__((nonnull(1)
bool rohc_decomp_set_max_cid (struct rohc_decomp *const decomp, const size_t max_cid) __attribute__((nonnull(1)

Variables

bool warn_unused_result

Detailed Description

ROHC decompression routines.

Author:
Didier Barvaux <didier.barvaux@toulouse.viveris.com>
The hackers from ROHC for Linux
David Moreau from TAS

Define Documentation

#define D_NUM_PROFILES   6

The number of ROHC profiles ready to be used.

Referenced by rohc_d_statistics().


Enumeration Type Documentation

ROHC decompressor states (see 4.3.2 in the RFC 3095)

Enumerator:
NO_CONTEXT 

The No Context state.

STATIC_CONTEXT 

The Static Context state.

FULL_CONTEXT 

The Full Context state.


Function Documentation

struct d_context* context_create ( struct rohc_decomp decomp,
int  with_cid,
struct d_profile profile 
) [read]
void context_free ( struct d_context context)

Destroy one decompression context and the profile specific data associated with it.

Parameters:
contextThe context to destroy

References c_destroy_wlsb(), d_profile::free_decode_data, d_context::header_16_compressed, d_context::header_16_uncompressed, d_context::profile, d_context::specific, d_context::total_16_compressed, and d_context::total_16_uncompressed.

Referenced by d_decode_header(), and rohc_free_decompressor().

struct d_context* find_context ( struct rohc_decomp decomp,
int  cid 
) [read]

Find one decompression context thanks to its CID.

Parameters:
decompThe ROHC decompressor
cidThe CID of the context to find out
Returns:
The context if found, NULL otherwise

References rohc_decomp::contexts, and medium::max_cid.

Referenced by d_decode_header().

int rohc_d_context ( struct rohc_decomp decomp,
int  index,
unsigned int  indent,
char *  buffer 
)

Output the statistics of one decompression context to a buffer.

The buffer must be large enough to store the statistics of one context.

Parameters:
decompThe ROHC decompressor
indexThe index of the decompression context in the contexts array
indentThe level of indentation to add during output
bufferThe buffer where to outputs the statistics
Returns:
The length of data written to the buffer

References c_mean_wlsb(), c_sum_wlsb(), rohc_decomp::contexts, d_profile::description, d_context::first_used, d_context::header_16_compressed, d_context::header_16_uncompressed, d_context::header_compressed_size, d_context::header_uncompressed_size, d_context::latest_used, medium::max_cid, rohc_decomp::medium, d_context::mode, d_context::num_decomp_failures, d_context::num_decomp_repairs, d_context::num_recv_ir, d_context::num_recv_ir_dyn, d_context::num_recv_packets, d_context::num_sent_feedbacks, d_context::profile, rohc_decomp_get_state_descr(), rohc_get_mode_descr(), d_context::state, d_context::total_16_compressed, d_context::total_16_uncompressed, d_context::total_compressed_size, and d_context::total_uncompressed_size.

Referenced by rohc_d_statistics().

bool rohc_decomp_set_cid_type ( struct rohc_decomp *const  decomp,
const rohc_cid_type_t  cid_type 
)
bool rohc_decomp_set_max_cid ( struct rohc_decomp *const  decomp,
const size_t  max_cid 
)
int rohc_decompress_both ( struct rohc_decomp decomp,
unsigned char *  ibuf,
int  isize,
unsigned char *  obuf,
int  osize,
int  large 
)

Variable Documentation