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

📄 bitstream.c

📁 Sigma EM8300片(机顶盒上音视频编解码芯片)SDK
💻 C
字号:
/*  *  bitstream.c * *	Copyright (C) Aaron Holtzman - Dec 1999 * *  This file is part of ac3dec, a free AC-3 audio decoder *	 *  ac3dec is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2, or (at your option) *  any later version. *    *  ac3dec is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. *    *  You should have received a copy of the GNU General Public License *  along with GNU Make; see the file COPYING.  If not, write to *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  * */#include <stdlib.h>#include <stdio.h>#include <inttypes.h>#include <bswap.h>#ifdef HAVE_CONFIG_H#include "config.h"#endif#include "ac3.h"#include "ac3_internal.h"#include "bitstream.h"uint32_t ac3bits_left = 0;uint64_t ac3current_word;uint64_t *buffer_start = 0;static inline uint64_t getdword (void){	return be2me_64 (*buffer_start++);}static inline void bitstream_fill_current (void){	//ac3current_word = bswap_64 (*buffer_start++);	ac3current_word = getdword ();}uint32_t bitstream_get_bh (uint32_t num_bits){	uint32_t result;	num_bits -= ac3bits_left;	result = (ac3current_word << (64 - ac3bits_left)) >> (64 - ac3bits_left);	bitstream_fill_current();	if(num_bits != 0)		result = (result << num_bits) | (ac3current_word >> (64 - num_bits));		ac3bits_left = 64 - num_bits;	return result;}void bitstream_init (uint8_t *start){	//initialize the start of the buffer	buffer_start = (uint64_t *) start;	ac3bits_left = 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -