uint8_t* byte_read_ptr;
unsigned bytes_available;
+ // Some clients will purposedly read a bit ahead of the stream, causing
+ // problems at EOF. Thus, the client is allowed to request that we pad
+ // the end stream with a few bytes after the source reports EOF.
+ int padding_bytes_available;
+
// Data source.
input_func_t* input_func;
void* userdata;
};
-void init_bit_source(struct bit_source* source, input_func_t* input_func, void* userdata);
+void init_bit_source(struct bit_source* source, input_func_t* input_func,
+ unsigned padding_bytes, void* userdata);
// Internal function. Do not use.
void possibly_refill_slow_path(struct bit_source* source, unsigned num_bits);