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

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

?? vlc.c

?? 能解壓幾乎所有mp3
?? C
字號:
/*
* This source code is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*       
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*
* File Name: vlc.c							
*
* Reference:
*
* Author: Li Feng,  fli_linux@yahoo.com.cn                                                 
*
* Description:
*
* 	
* 
* History:
* 02/23/2005  Li Feng    Created
*  
*
*CodeReview Log:
* 
*/
#include <stdlib.h>
#include <malloc.h>
#include <stdio.h>
#include "vlc.h"

int alloc_table(VLC *vlc, int size)
{
    int index;
    index = vlc->table_size;
    vlc->table_size += size;
    if (vlc->table_size > vlc->table_allocated) 
	{
        vlc->table_allocated += (1 << vlc->bits);
        vlc->table = realloc(vlc->table,
			sizeof(VLC_TYPE) * 2 * vlc->table_allocated);
        if (!vlc->table)
            return -1;
    }
    return index;
}

#define GET_DATA(v, table, i, wrap, size) \
{\
    const uint8_t *ptr = (const uint8_t *)table + i * wrap;\
    switch(size) {\
    case 1:\
	v = *(const uint8_t *)ptr;\
	break;\
    case 2:\
	v = *(const uint16_t *)ptr;\
	break;\
    default:\
	v = *(const uint32_t *)ptr;\
	break;\
	}\
}

int build_table(VLC *vlc, int table_nb_bits,
                       int nb_codes,
                       const void *bits, int bits_wrap, int bits_size,
                       const void *codes, int codes_wrap, int codes_size,
                       uint32_t code_prefix, int n_prefix)
{
    int i, j, k, n, table_size, table_index, nb, n1, index;
    uint32_t code;
    VLC_TYPE (*table)[2];
	
    table_size = 1 << table_nb_bits;
    table_index = alloc_table(vlc, table_size);
    if (table_index < 0)
        return -1;
    table = &vlc->table[table_index];
	
    for(i=0;i<table_size;i++) {
        table[i][1] = 0; //bits
        table[i][0] = -1; //codes
    }
	
    /* first pass: map codes and compute auxillary table sizes */
    for(i=0;i<nb_codes;i++) {
        GET_DATA(n, bits, i, bits_wrap, bits_size);
        GET_DATA(code, codes, i, codes_wrap, codes_size);
        /* we accept tables with holes */
        if (n <= 0)
            continue;
        /* if code matches the prefix, it is in the table */
        n -= n_prefix;
        if (n > 0 && (code >> n) == code_prefix) {
            if (n <= table_nb_bits) {
                /* no need to add another table */
                j = (code << (table_nb_bits - n)) & (table_size - 1);
                nb = 1 << (table_nb_bits - n);
                for(k=0;k<nb;k++) {
                    if (table[j][1] /*bits*/ != 0) 
					{
						printf("Panic\n");
						return 0;
                    }
                    table[j][1] = n; //bits
                    table[j][0] = i; //code
                    j++;
                }
            } else {
                n -= table_nb_bits;
                j = (code >> n) & ((1 << table_nb_bits) - 1);
                /* compute table size */
                n1 = -table[j][1]; //bits
                if (n > n1)
                    n1 = n;
                table[j][1] = -n1; //bits
            }
        }
    }
	
    /* second pass : fill auxillary tables recursively */
    for(i=0;i<table_size;i++) 
	{
        n = table[i][1]; //bits
        if (n < 0) {
            n = -n;
            if (n > table_nb_bits) {
                n = table_nb_bits;
                table[i][1] = -n; //bits
            }
            index = build_table(vlc, n, nb_codes,
				bits, bits_wrap, bits_size,
				codes, codes_wrap, codes_size,
				(code_prefix << table_nb_bits) | i,
				n_prefix + table_nb_bits);
            if (index < 0)
                return -1;
            /* note: realloc has been done, so reload tables */
            table = &vlc->table[table_index];
            table[i][0] = index; //code
        }
    }
    return table_index;
}

int init_vlc(VLC *vlc, int nb_bits, int nb_codes,
             const void *bits, int bits_wrap, int bits_size,
             const void *codes, int codes_wrap, int codes_size)
{
    vlc->bits = nb_bits;
    vlc->table = NULL;
    vlc->table_allocated = 0;
    vlc->table_size = 0;
	
    if (build_table(vlc, nb_bits, nb_codes,
		bits, bits_wrap, bits_size,
		codes, codes_wrap, codes_size,
		0, 0) < 0) 
	{
        free(vlc->table);
        return -1;
    }
    return 0;
}

#define GET_VLC(code, name, gb, table, bits, max_depth)\
{\
    int n, index, nb_bits;\
	\
    index= SHOW_UBITS(name, gb, bits);\
    code = table[index][0];\
    n    = table[index][1];\
	\
    if(max_depth > 1 && n < 0){\
	LAST_SKIP_BITS(name, gb, bits)\
	UPDATE_CACHE(name, gb)\
	\
	nb_bits = -n;\
	\
	index= SHOW_UBITS(name, gb, nb_bits) + code;\
	code = table[index][0];\
	n    = table[index][1];\
	if(max_depth > 2 && n < 0){\
	LAST_SKIP_BITS(name, gb, nb_bits)\
	UPDATE_CACHE(name, gb)\
	\
	nb_bits = -n;\
	\
	index= SHOW_UBITS(name, gb, nb_bits) + code;\
	code = table[index][0];\
	n    = table[index][1];\
	}\
    }\
    SKIP_BITS(name, gb, n)\
}

int get_vlc(GetBitContext *s, VLC *vlc)
{
    int code;
    VLC_TYPE (*table)[2]= vlc->table;
    
    OPEN_READER(re, s)
	UPDATE_CACHE(re, s)
		
	GET_VLC(code, re, s, table, vlc->bits, 3)    
		
	CLOSE_READER(re, s)
	return code;
}

void free_vlc(VLC *vlc)
{
	if(vlc->table)
		free(vlc->table);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品萝li| 亚洲欧洲99久久| 91网站视频在线观看| 免费成人在线观看视频| 亚洲欧洲国产专区| 久久青草欧美一区二区三区| 欧美日韩精品一区二区三区蜜桃 | 26uuu成人网一区二区三区| gogogo免费视频观看亚洲一| 麻豆成人av在线| 午夜精品久久久久久久蜜桃app| 国产精品青草综合久久久久99| 日韩免费视频线观看| 欧美午夜理伦三级在线观看| 福利电影一区二区| 精品一区二区三区免费毛片爱| 天天综合天天综合色| 亚洲欧美日韩成人高清在线一区| 26uuu另类欧美| 日韩一级片网站| 在线不卡免费av| 欧美午夜一区二区三区免费大片| 不卡av免费在线观看| 国产精品自产自拍| 久久 天天综合| 青娱乐精品视频在线| 天天色综合成人网| 午夜成人免费电影| 午夜一区二区三区在线观看| 一区二区三区精品| 一区二区三区成人在线视频| 亚洲三级在线观看| 成人欧美一区二区三区黑人麻豆| 国产精品毛片久久久久久久| 欧美韩国日本不卡| 国产精品久久久久7777按摩| 日本一区二区三区四区在线视频| 久久九九久久九九| 亚洲国产精华液网站w| 国产亚洲精品aa| 国产精品乱子久久久久| 中文字幕一区二区三中文字幕| 国产精品日韩精品欧美在线| 日本在线不卡一区| 五月婷婷综合在线| 日本不卡一区二区三区| 国内精品伊人久久久久av影院 | 国产精品中文字幕日韩精品| 国产精品一级在线| 国产91精品入口| 91麻豆swag| 欧美日韩国产一二三| 日韩一级大片在线| 久久久精品蜜桃| 一色屋精品亚洲香蕉网站| 亚洲欧洲综合另类| 午夜精品福利在线| 激情av综合网| 91免费版在线| 欧美日韩国产高清一区二区三区| 日韩美女在线视频| 国产精品伦理一区二区| 亚洲一区二区视频在线观看| 久久精品国产99| 成人av在线资源网站| 欧美午夜免费电影| 精品国产免费一区二区三区四区 | 日韩一级大片在线观看| 久久综合久久鬼色| 亚洲男人天堂av| 麻豆91免费观看| 99re热视频这里只精品| 7777精品伊人久久久大香线蕉经典版下载| 欧美大片国产精品| 亚洲嫩草精品久久| 国内外成人在线视频| 91天堂素人约啪| 日韩精品一区二区三区四区| 中文字幕一区二区三区乱码在线 | 北条麻妃国产九九精品视频| 色先锋资源久久综合| 欧美一级淫片007| 国产精品日韩精品欧美在线| 午夜精品福利一区二区蜜股av | 亚洲欧美日韩国产成人精品影院 | 99久久精品免费观看| 欧美日本韩国一区| 国产精品毛片高清在线完整版| 亚洲午夜免费电影| 国产91在线观看丝袜| 欧美日韩国产一二三| 中文字幕av一区 二区| 免费看欧美美女黄的网站| 91在线视频官网| 久久久综合网站| 日本中文字幕不卡| 色婷婷av一区二区三区gif | 国产亚洲一区二区三区四区| 亚洲电影视频在线| 中文字幕不卡在线播放| 婷婷国产在线综合| 97久久久精品综合88久久| 久久综合狠狠综合久久综合88| 亚洲成人综合视频| 色狠狠av一区二区三区| 欧美国产精品v| 国产一区二区视频在线播放| 69堂成人精品免费视频| 亚洲一区二区不卡免费| 99国产精品国产精品久久| 久久先锋资源网| 看电影不卡的网站| 日韩一区二区三区免费观看| 亚洲午夜久久久久久久久电影网| 91色porny在线视频| 久久精品视频在线看| 精品一区二区三区在线观看国产| 欧美日韩极品在线观看一区| 一区二区三区鲁丝不卡| 91网上在线视频| 亚洲欧洲在线观看av| 成人福利视频网站| 国产欧美精品一区| 国产91色综合久久免费分享| 久久久久青草大香线综合精品| 看片的网站亚洲| 精品卡一卡二卡三卡四在线| 久久国产视频网| 精品国精品国产| 黄色资源网久久资源365| 欧美成人vps| 国产最新精品精品你懂的| 2021国产精品久久精品| 国产一区二区伦理| 国产欧美一区二区三区网站| 成人中文字幕在线| 中文字幕一区二区不卡| 91在线观看一区二区| 亚洲视频一区在线| 欧美性高清videossexo| 亚洲成人动漫在线观看| 宅男在线国产精品| 久久av老司机精品网站导航| 久久久五月婷婷| 大桥未久av一区二区三区中文| 国产精品每日更新| 91国偷自产一区二区使用方法| 一区二区三区国产精华| 欧美巨大另类极品videosbest | jlzzjlzz亚洲女人18| 成人免费视频在线观看| 日本二三区不卡| 日韩vs国产vs欧美| 久久久精品一品道一区| 成人永久看片免费视频天堂| 国产精品久久网站| 亚洲美女区一区| 欧美福利视频一区| 国产麻豆91精品| 亚洲精品国产一区二区三区四区在线| 欧美少妇bbb| 久久电影网电视剧免费观看| 国产欧美精品区一区二区三区 | 精品捆绑美女sm三区| 成人精品国产福利| 亚洲国产cao| 精品国产凹凸成av人导航| 成人动漫中文字幕| 亚洲一区在线电影| 欧美成人精品1314www| 99精品视频一区二区| 青青草一区二区三区| 国产精品毛片a∨一区二区三区| 欧美视频一区二区三区四区| 精品亚洲欧美一区| 一区二区三区在线不卡| 日韩一区二区免费在线观看| av电影一区二区| 美女尤物国产一区| 亚洲卡通欧美制服中文| 精品国产一区二区亚洲人成毛片 | 久久亚洲私人国产精品va媚药| 91日韩一区二区三区| 麻豆精品在线播放| 亚洲精品videosex极品| 26uuu亚洲综合色欧美 | 日韩一区二区三区四区| 91亚洲精品久久久蜜桃网站| 青青国产91久久久久久| 亚洲男女一区二区三区| 精品国产免费人成电影在线观看四季 | 欧美一级夜夜爽| 日本精品免费观看高清观看| 国产在线精品一区二区夜色 | 蜜芽一区二区三区| 2014亚洲片线观看视频免费| 欧美日韩一二三| 99热这里都是精品| 狠狠久久亚洲欧美| 日韩中文字幕区一区有砖一区 |