📄 jdbuffer.c
字号:
#include "jddatatype.h"
UINT16 read_8_bits (JPEG_DECODER_STRUCTURE *jpeg_decoder_structure)
{
return *jpeg_decoder_structure->input_ptr++;
}
UINT16 read_16_bits (JPEG_DECODER_STRUCTURE *jpeg_decoder_structure)
{
UINT16 value;
value = *jpeg_decoder_structure->input_ptr++;
return ((value << 8) | *jpeg_decoder_structure->input_ptr++);
}
UINT16 read_16huff_bits (JPEG_DECODER_STRUCTURE * jpeg_decoder_structure)
{
UINT16 val1, val2;
if ((val1 = *jpeg_decoder_structure->input_ptr++) == 0xff)
jpeg_decoder_structure->input_ptr++;
if ((val2 = *jpeg_decoder_structure->input_ptr++) == 0xff)
jpeg_decoder_structure->input_ptr++;
return (val1 << 8) | val2;
}
void wind_buffer (JPEG_DECODER_STRUCTURE * jpeg_decoder_structure)
{
UINT16 lsize;
UINT32 lcode;
lcode = jpeg_decoder_structure -> lcode;
lsize = jpeg_decoder_structure -> lsize;
lcode <<= lsize & 0x7;
lsize &= 0xf8;
if (lsize != 0)
lcode >>= (32 - lsize);
else
lcode = 0;
while (lsize)
{
if ((lcode & 0xff) != 0xff)
jpeg_decoder_structure -> input_ptr --;
else
{
jpeg_decoder_structure -> input_ptr --;
jpeg_decoder_structure -> input_ptr --;
}
lcode >>= 8;
lsize -= 8;
}
jpeg_decoder_structure -> lcode = 0;
jpeg_decoder_structure -> lsize = 0;
}
void clear_buffer (INT16 * buffer, UINT16 size)
{
UINT16 i;
for (i = size; i > 0; i --)
* buffer ++ = 0;
}
void copy_data (INT16 * input_buffer, INT16 * output_buffer, UINT16 size)
{
UINT16 i;
for (i=size; i>0; i--)
* output_buffer++ = *input_buffer++;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -