📄 input.c
字号:
#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/mman.h>#include <fcntl.h>#include "common.h"#include "input.h"unsigned char nal_buf[NAL_BUF_SIZE];unsigned char ring_buf[RING_BUF_SIZE];int input_size;int input_remain;int ring_pos;int nal_pos;int nal_bit;static inline int __peek_bits(int bit_count) { register unsigned int x= (nal_buf[nal_pos]<<24)| (nal_buf[nal_pos+1]<<16)| (nal_buf[nal_pos+2]<<8)| nal_buf[nal_pos+3]; return (x>>(32-bit_count-nal_bit))&((1<<bit_count)-1);}static inline void __step_bits(int bit_count) { nal_bit+=bit_count; nal_pos+=nal_bit>>3; nal_bit&=7;}int input_peek_bits(int bit_count) { return __peek_bits(bit_count);}void input_step_bits(int bit_count) { __step_bits(bit_count);}int input_get_bits(int bit_count) { int res=__peek_bits(bit_count); __step_bits(bit_count); return res;}int input_get_one_bit() { int res=(nal_buf[nal_pos]>>(7-nal_bit))&1; if(++nal_bit>7) { ++nal_pos; nal_bit=0; } return res;}int input_byte_aligned() { return (!nal_bit);}void input_align_to_next_byte() { if(input_byte_aligned()) return; ++nal_pos; nal_bit=0;}int input_get_byte() { return nal_buf[nal_pos++];}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -