亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dec_mpc.c

?? Aqualung is an advanced music player primarily targeted for the GNU/Linux operating system, but als
?? C
字號:
/*                                                     -*- linux-c -*-    Copyright (C) 2005 Tom Szilagyi    This program 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 of the License, or    (at your option) any later version.    This program 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 this program; if not, write to the Free Software    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.    $Id: dec_mpc.c,v 1.6 2006/08/11 08:04:09 tszilagyi Exp $*/#include <config.h>#include <stdio.h>#include <stdlib.h>#include "dec_mpc.h"extern size_t sample_size;#ifdef HAVE_MPC/* return 1 if reached end of stream, 0 else */intdecode_mpc(decoder_t * dec) {	mpc_pdata_t * pd = (mpc_pdata_t *)dec->pdata;	file_decoder_t * fdec = dec->fdec;	int n;	float fval;        MPC_SAMPLE_FORMAT buffer[MPC_DECODER_BUFFER_LENGTH];        pd->status = mpc_decoder_decode(&pd->mpc_d, buffer, NULL, NULL);	if (pd->status == (unsigned)(-1)) {		fprintf(stderr, "decode_mpc: mpc decoder reported an error\n");		return 1; /* ignore the rest of the stream */	} else if (pd->status == 0) {		return 1; /* end of stream */	}		for (n = 0; n < pd->status * pd->mpc_i.channels; n++) {#ifdef MPC_FIXED_POINT                fval = buffer[n] / (double)MPC_FIXED_POINT_SCALE * fdec->voladj_lin;#else                fval = buffer[n] * fdec->voladj_lin;#endif /* MPC_FIXED_POINT */		                if (fval < -1.0f) {                        fval = -1.0f;                } else if (fval > 1.0f) {                        fval = 1.0f;                }		                rb_write(pd->rb, (char *)&fval, sample_size);	}	return 0;}decoder_t *mpc_decoder_init(file_decoder_t * fdec) {        decoder_t * dec = NULL;        if ((dec = calloc(1, sizeof(decoder_t))) == NULL) {                fprintf(stderr, "dec_mpc.c: mpc_decoder_new() failed: calloc error\n");                return NULL;        }	dec->fdec = fdec;        if ((dec->pdata = calloc(1, sizeof(mpc_pdata_t))) == NULL) {                fprintf(stderr, "dec_mpc.c: mpc_decoder_new() failed: calloc error\n");                return NULL;        }	dec->init = mpc_decoder_init;	dec->destroy = mpc_decoder_destroy;	dec->open = mpc_decoder_open;	dec->close = mpc_decoder_close;	dec->read = mpc_decoder_read;	dec->seek = mpc_decoder_seek;	return dec;}voidmpc_decoder_destroy(decoder_t * dec) {	free(dec->pdata);	free(dec);}intmpc_decoder_open(decoder_t * dec, char * filename) {	mpc_pdata_t * pd = (mpc_pdata_t *)dec->pdata;	file_decoder_t * fdec = dec->fdec;			if ((pd->mpc_file = fopen(filename, "rb")) == NULL) {		fprintf(stderr, "mpc_decoder_open: fopen() failed for Musepack file\n");		return DECODER_OPEN_FERROR;	}	pd->seekable = 1;	fseek(pd->mpc_file, 0, SEEK_END);	pd->size = ftell(pd->mpc_file);	fseek(pd->mpc_file, 0, SEEK_SET);		mpc_reader_setup_file_reader(&pd->mpc_r_f, pd->mpc_file);		mpc_streaminfo_init(&pd->mpc_i);	if (mpc_streaminfo_read(&pd->mpc_i, &pd->mpc_r_f.reader) != ERROR_CODE_OK) {		fclose(pd->mpc_file);		return DECODER_OPEN_BADLIB;	}		mpc_decoder_setup(&pd->mpc_d, &pd->mpc_r_f.reader);	if (!mpc_decoder_initialize(&pd->mpc_d, &pd->mpc_i)) {		fclose(pd->mpc_file);		return DECODER_OPEN_BADLIB;	}		pd->is_eos = 0;	pd->rb = rb_create(pd->mpc_i.channels * sample_size * RB_MPC_SIZE);		fdec->channels = pd->mpc_i.channels;	fdec->SR = pd->mpc_i.sample_freq;	fdec->file_lib = MPC_LIB;		fdec->fileinfo.total_samples = mpc_streaminfo_get_length_samples(&pd->mpc_i);	fdec->fileinfo.format_major = FORMAT_MPC;	fdec->fileinfo.format_minor = pd->mpc_i.profile;	fdec->fileinfo.bps = pd->mpc_i.average_bitrate;		return DECODER_OPEN_SUCCESS;}voidmpc_decoder_close(decoder_t * dec) {	mpc_pdata_t * pd = (mpc_pdata_t *)dec->pdata;	rb_free(pd->rb);	fclose(pd->mpc_file);}unsigned intmpc_decoder_read(decoder_t * dec, float * dest, int num) {	mpc_pdata_t * pd = (mpc_pdata_t *)dec->pdata;	unsigned int numread = 0;	unsigned int n_avail = 0;	while ((rb_read_space(pd->rb) <		num * pd->mpc_i.channels * sample_size) && (!pd->is_eos)) {		pd->is_eos = decode_mpc(dec);	}	n_avail = rb_read_space(pd->rb) / (pd->mpc_i.channels * sample_size);	if (n_avail > num)		n_avail = num;	rb_read(pd->rb, (char *)dest, n_avail *			     pd->mpc_i.channels * sample_size);	numread = n_avail;	return numread;}voidmpc_decoder_seek(decoder_t * dec, unsigned long long seek_to_pos) {		mpc_pdata_t * pd = (mpc_pdata_t *)dec->pdata;	file_decoder_t * fdec = dec->fdec;	char flush_dest;	if (mpc_decoder_seek_sample(&pd->mpc_d, seek_to_pos)) {		fdec->samples_left = fdec->fileinfo.total_samples - seek_to_pos;		/* empty musepack decoder ringbuffer */		while (rb_read_space(pd->rb))			rb_read(pd->rb, &flush_dest, sizeof(char));	} else {		fprintf(stderr,			"mpc_decoder_seek: warning: mpc_decoder_seek_sample() failed\n");	}}#elsedecoder_t *mpc_decoder_init(file_decoder_t * fdec) {        return NULL;}#endif /* HAVE_MPC */// vim: shiftwidth=8:tabstop=8:softtabstop=8 :  

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品不卡在线| 欧美一卡2卡3卡4卡| 国产成人aaaa| 国产在线日韩欧美| 久久疯狂做爰流白浆xx| 日本少妇一区二区| 日韩国产在线观看一区| 午夜影视日本亚洲欧洲精品| 99热这里都是精品| 成人免费观看视频| 成人午夜视频在线| 99久久99久久精品国产片果冻| 成人综合婷婷国产精品久久免费| 韩国av一区二区三区在线观看| 九一九一国产精品| 狠狠网亚洲精品| 国产精品一区二区在线看| 国内精品在线播放| 高清beeg欧美| 91香蕉视频mp4| 欧美性受xxxx黑人xyx性爽| 欧美日韩日日骚| 91精品国产91久久综合桃花| 日韩午夜在线影院| 26uuu亚洲婷婷狠狠天堂| 欧美国产日本视频| 亚洲欧美成人一区二区三区| 亚洲一区二区精品3399| 日韩高清一区二区| 国产一区在线精品| 波多野结衣在线一区| 色综合亚洲欧洲| 欧美日韩国产三级| 精品sm在线观看| 中文字幕亚洲区| 亚洲最快最全在线视频| 日本在线不卡视频| 国产精品亚洲专一区二区三区 | 亚洲午夜精品网| 丝袜诱惑制服诱惑色一区在线观看| 男女男精品视频| 国v精品久久久网| 欧美在线观看视频在线| 欧美一级高清片在线观看| 国产亚洲一区二区在线观看| 亚洲精品国产精品乱码不99| 蜜桃免费网站一区二区三区| 成人国产免费视频| 欧美一区二区在线免费观看| 欧美国产日韩亚洲一区| 亚洲成人1区2区| 国产福利一区二区| 在线观看网站黄不卡| wwww国产精品欧美| 一级精品视频在线观看宜春院 | 日韩精品一卡二卡三卡四卡无卡| 九色综合国产一区二区三区| 色婷婷精品大在线视频| 欧美大片在线观看| 亚洲色图视频网站| 精品一区二区久久久| 日本韩国精品在线| 久久噜噜亚洲综合| 午夜影院在线观看欧美| 成人免费看视频| 日韩成人精品在线观看| 成人午夜视频在线观看| 日韩亚洲欧美一区| 一区二区三区资源| 国产精品996| 欧美一级淫片007| 亚洲精品第1页| 大白屁股一区二区视频| 日韩西西人体444www| 一区二区三区在线免费观看| 国产成人精品一区二区三区四区| 在线播放91灌醉迷j高跟美女 | 777xxx欧美| 亚洲色图在线播放| 国产经典欧美精品| 日韩三级免费观看| 香蕉av福利精品导航| 91免费版在线看| 国产女主播一区| 韩国成人精品a∨在线观看| 538在线一区二区精品国产| 亚洲六月丁香色婷婷综合久久| 国产精品白丝jk白祙喷水网站| 欧美一级夜夜爽| 亚洲制服欧美中文字幕中文字幕| a在线欧美一区| 国产欧美日本一区二区三区| 激情综合五月天| 日韩免费一区二区| 丝袜亚洲另类丝袜在线| 色天天综合久久久久综合片| 成人v精品蜜桃久久一区| 日韩亚洲欧美在线观看| 日韩电影在线观看一区| 欧美日本免费一区二区三区| 亚洲大片在线观看| 在线观看免费亚洲| 亚洲一区在线视频观看| 日本道色综合久久| 一级女性全黄久久生活片免费| 91美女蜜桃在线| 怡红院av一区二区三区| 色又黄又爽网站www久久| 亚洲视频在线一区| 色婷婷狠狠综合| 夜夜夜精品看看| 欧美视频一区二| 污片在线观看一区二区| 欧美精品在线观看播放| 日本亚洲视频在线| 日韩欧美精品在线| 国产在线一区二区综合免费视频| 精品国产一区久久| 国产成人在线视频网站| 国产精品女同互慰在线看| 岛国av在线一区| 国产精品美女久久久久久2018| www.欧美亚洲| 亚洲激情第一区| 欧美日韩国产成人在线免费| 偷拍自拍另类欧美| 日韩久久精品一区| 精品久久久久久综合日本欧美| 九一久久久久久| 国产精品美女一区二区在线观看| 97成人超碰视| 亚洲成人免费电影| 日韩视频一区在线观看| 国产成人精品www牛牛影视| 国产精品久久久久久久久免费相片 | 色系网站成人免费| 亚洲成人高清在线| 欧美岛国在线观看| 成人白浆超碰人人人人| 亚洲妇女屁股眼交7| 精品国产乱码久久久久久图片| 成人免费观看男女羞羞视频| 一区二区三区丝袜| 日韩精品一区二| 99久久精品免费| 日韩vs国产vs欧美| 欧美高清一级片在线观看| 91福利资源站| 国产一区二区三区精品欧美日韩一区二区三区 | 综合在线观看色| 欧美日韩国产精选| 从欧美一区二区三区| 亚洲图片欧美视频| 国产欧美日韩综合| 精品婷婷伊人一区三区三| 精品一区二区三区日韩| 亚洲黄色小视频| 精品少妇一区二区三区免费观看| av一二三不卡影片| 免费看黄色91| 亚洲免费高清视频在线| 精品福利视频一区二区三区| 色综合天天综合网国产成人综合天 | 99视频超级精品| 免费成人在线播放| 亚洲激情图片小说视频| 久久免费午夜影院| 在线成人高清不卡| 日韩电影在线免费看| 视频一区二区中文字幕| 久久久久青草大香线综合精品| 日本高清视频一区二区| 国产精品一区二区三区网站| 午夜国产精品影院在线观看| 中文字幕日韩一区| 精品美女在线播放| 亚洲图片你懂的| 久久综合久色欧美综合狠狠| 欧美色图12p| www.日韩av| 国产成人亚洲综合a∨猫咪| 日本中文在线一区| 亚洲国产另类精品专区| 一区二区中文视频| 久久精品男人天堂av| 精品久久国产老人久久综合| 欧美日韩一区二区三区不卡| 91啪亚洲精品| 成人国产视频在线观看| 国产精品一级在线| 蜜臀久久99精品久久久画质超高清| 亚洲综合av网| 一区二区三区免费观看| 中文字幕一区二区三区不卡| 国产亚洲精品中文字幕| www国产精品av| 精品少妇一区二区三区视频免付费| 欧美二区在线观看| 欧美色爱综合网| 欧美亚洲高清一区二区三区不卡|