Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
folium-app
GitHub Repository: folium-app/Folium
Path: blob/a-new-beginning/SharedDependencies/Sources/libchdr/include/bitstream.h
2 views
1
/* license:BSD-3-Clause
2
* copyright-holders:Aaron Giles
3
***************************************************************************
4
5
bitstream.h
6
7
Helper classes for reading/writing at the bit level.
8
9
***************************************************************************/
10
11
#pragma once
12
13
#ifndef __BITSTREAM_H__
14
#define __BITSTREAM_H__
15
16
#include <stdint.h>
17
18
/***************************************************************************
19
* TYPE DEFINITIONS
20
***************************************************************************
21
*/
22
23
/* helper class for reading from a bit buffer */
24
struct bitstream
25
{
26
uint32_t buffer; /* current bit accumulator */
27
int bits; /* number of bits in the accumulator */
28
const uint8_t * read; /* read pointer */
29
uint32_t doffset; /* byte offset within the data */
30
uint32_t dlength; /* length of the data */
31
};
32
33
struct bitstream* create_bitstream(const void *src, uint32_t srclength);
34
int bitstream_overflow(struct bitstream* bitstream);
35
uint32_t bitstream_read_offset(struct bitstream* bitstream);
36
37
uint32_t bitstream_read(struct bitstream* bitstream, int numbits);
38
uint32_t bitstream_peek(struct bitstream* bitstream, int numbits);
39
void bitstream_remove(struct bitstream* bitstream, int numbits);
40
uint32_t bitstream_flush(struct bitstream* bitstream);
41
42
43
#endif
44
45