⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jdbuffer.c

📁 void III_hufman_decode(struct Granule *gr,int part2_start, int freqline[SBLIMIT][SSLIMIT]) {
💻 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 + -