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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? header.c

?? linux下實(shí)現(xiàn)視頻播放的播放器
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/* * header.c * Copyright (C) 2000-2003 Michel Lespinasse <walken@zoy.org> * Copyright (C) 2003      Regis Duchesne <hpreg@zoy.org> * Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca> * * This file is part of mpeg2dec, a free MPEG-2 video stream decoder. * See http://libmpeg2.sourceforge.net/ for updates. * * mpeg2dec 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. * * mpeg2dec 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#include <stdlib.h>	/* defines NULL */#include <string.h>	/* memcmp */#include <inttypes.h>#include "config.h"#include "mpeg2.h"#include "attributes.h"#include "mpeg2_internal.h"#define SEQ_EXT 2#define SEQ_DISPLAY_EXT 4#define QUANT_MATRIX_EXT 8#define COPYRIGHT_EXT 0x10#define PIC_DISPLAY_EXT 0x80#define PIC_CODING_EXT 0x100/* default intra quant matrix, in zig-zag order */static __align16(const uint8_t,default_intra_quantizer_matrix[64]) = {    8,    16, 16,    19, 16, 19,    22, 22, 22, 22,    22, 22, 26, 24, 26,    27, 27, 27, 26, 26, 26,    26, 27, 27, 27, 29, 29, 29,    34, 34, 34, 29, 29, 29, 27, 27,    29, 29, 32, 32, 34, 34, 37,    38, 37, 35, 35, 34, 35,    38, 38, 40, 40, 40,    48, 48, 46, 46,    56, 56, 58,    69, 69,    83};__align16(uint8_t,mpeg2_scan_norm[64]) = {    /* Zig-Zag scan pattern */     0,  1,  8, 16,  9,  2,  3, 10, 17, 24, 32, 25, 18, 11,  4,  5,    12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13,  6,  7, 14, 21, 28,    35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51,    58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63};__align16(uint8_t,mpeg2_scan_alt[64]) = {    /* Alternate scan pattern */     0, 8,  16, 24,  1,  9,  2, 10, 17, 25, 32, 40, 48, 56, 57, 49,    41, 33, 26, 18,  3, 11,  4, 12, 19, 27, 34, 42, 50, 58, 35, 43,    51, 59, 20, 28,  5, 13,  6, 14, 21, 29, 36, 44, 52, 60, 37, 45,    53, 61, 22, 30,  7, 15, 23, 31, 38, 46, 54, 62, 39, 47, 55, 63};void mpeg2_header_state_init (mpeg2dec_t * mpeg2dec){    if (mpeg2dec->sequence.width != (unsigned)-1) {	int i;	mpeg2dec->sequence.width = (unsigned)-1;	if (!mpeg2dec->custom_fbuf)	    for (i = mpeg2dec->alloc_index_user;		 i < mpeg2dec->alloc_index; i++) {		mpeg2_free (mpeg2dec->fbuf_alloc[i].fbuf.buf[0]);		mpeg2_free (mpeg2dec->fbuf_alloc[i].fbuf.buf[1]);		mpeg2_free (mpeg2dec->fbuf_alloc[i].fbuf.buf[2]);	    }	if (mpeg2dec->convert_start)	    for (i = 0; i < 3; i++) {		mpeg2_free (mpeg2dec->yuv_buf[i][0]);		mpeg2_free (mpeg2dec->yuv_buf[i][1]);		mpeg2_free (mpeg2dec->yuv_buf[i][2]);    }	if (mpeg2dec->decoder.convert_id)	    mpeg2_free (mpeg2dec->decoder.convert_id);    }    mpeg2dec->decoder.coding_type = I_TYPE;    mpeg2dec->decoder.convert = NULL;    mpeg2dec->decoder.convert_id = NULL;    mpeg2dec->picture = mpeg2dec->pictures;    mpeg2dec->fbuf[0] = &mpeg2dec->fbuf_alloc[0].fbuf;    mpeg2dec->fbuf[1] = &mpeg2dec->fbuf_alloc[1].fbuf;    mpeg2dec->fbuf[2] = &mpeg2dec->fbuf_alloc[2].fbuf;    mpeg2dec->first = 1;    mpeg2dec->alloc_index = 0;    mpeg2dec->alloc_index_user = 0;    mpeg2dec->first_decode_slice = 1;    mpeg2dec->nb_decode_slices = 0xb0 - 1;    mpeg2dec->convert = NULL;    mpeg2dec->convert_start = NULL;    mpeg2dec->custom_fbuf = 0;    mpeg2dec->yuv_index = 0;}void mpeg2_reset_info (mpeg2_info_t * info){    info->current_picture = info->current_picture_2nd = NULL;    info->display_picture = info->display_picture_2nd = NULL;    info->current_fbuf = info->display_fbuf = info->discard_fbuf = NULL;}static void info_user_data (mpeg2dec_t * mpeg2dec){    if (mpeg2dec->user_data_len) {	mpeg2dec->info.user_data = mpeg2dec->chunk_buffer;	mpeg2dec->info.user_data_len = mpeg2dec->user_data_len - 3;    }}int mpeg2_header_sequence (mpeg2dec_t * mpeg2dec){    uint8_t * buffer = mpeg2dec->chunk_start;    mpeg2_sequence_t * sequence = &(mpeg2dec->new_sequence);    static unsigned int frame_period[16] = {	0, 1126125, 1125000, 1080000, 900900, 900000, 540000, 450450, 450000,	/* unofficial: xing 15 fps */	1800000,	/* unofficial: libmpeg3 "Unofficial economy rates" 5/10/12/15 fps */	5400000, 2700000, 2250000, 1800000, 0, 0    };    int i;    if ((buffer[6] & 0x20) != 0x20)	/* missing marker_bit */	return 1;    i = (buffer[0] << 16) | (buffer[1] << 8) | buffer[2];    if (! (sequence->display_width = sequence->picture_width = i >> 12))	return 1;    if (! (sequence->display_height = sequence->picture_height = i & 0xfff))	return 1;    sequence->width = (sequence->picture_width + 15) & ~15;    sequence->height = (sequence->picture_height + 15) & ~15;    sequence->chroma_width = sequence->width >> 1;    sequence->chroma_height = sequence->height >> 1;    sequence->flags = (SEQ_FLAG_PROGRESSIVE_SEQUENCE |		       SEQ_VIDEO_FORMAT_UNSPECIFIED);    sequence->pixel_width = buffer[3] >> 4;	/* aspect ratio */    sequence->frame_period = frame_period[buffer[3] & 15];    sequence->aspect = 4.0/3.0;    sequence->byte_rate = (buffer[4]<<10) | (buffer[5]<<2) | (buffer[6]>>6);    sequence->vbv_buffer_size = ((buffer[6]<<16)|(buffer[7]<<8))&0x1ff800;    if (buffer[7] & 4)	sequence->flags |= SEQ_FLAG_CONSTRAINED_PARAMETERS;    mpeg2dec->copy_matrix = 3;    if (buffer[7] & 2) {	for (i = 0; i < 64; i++)	    mpeg2dec->new_quantizer_matrix[0][mpeg2_scan_norm[i]] =		(buffer[i+7] << 7) | (buffer[i+8] >> 1);	buffer += 64;    } else	for (i = 0; i < 64; i++)	    mpeg2dec->new_quantizer_matrix[0][mpeg2_scan_norm[i]] =		default_intra_quantizer_matrix [i];    if (buffer[7] & 1)	for (i = 0; i < 64; i++)	    mpeg2dec->new_quantizer_matrix[1][mpeg2_scan_norm[i]] =		buffer[i+8];    else	memset (mpeg2dec->new_quantizer_matrix[1], 16, 64);    sequence->profile_level_id = 0x80;    sequence->colour_primaries = 0;    sequence->transfer_characteristics = 0;    sequence->matrix_coefficients = 0;    mpeg2dec->ext_state = SEQ_EXT;    mpeg2dec->state = STATE_SEQUENCE;    mpeg2dec->display_offset_x = mpeg2dec->display_offset_y = 0;    return 0;}static int sequence_ext (mpeg2dec_t * mpeg2dec){    uint8_t * buffer = mpeg2dec->chunk_start;    mpeg2_sequence_t * sequence = &(mpeg2dec->new_sequence);    uint32_t flags;    if (!(buffer[3] & 1))	return 1;    sequence->profile_level_id = (buffer[0] << 4) | (buffer[1] >> 4);    sequence->display_width = sequence->picture_width +=	((buffer[1] << 13) | (buffer[2] << 5)) & 0x3000;    sequence->display_height = sequence->picture_height +=	(buffer[2] << 7) & 0x3000;    sequence->width = (sequence->picture_width + 15) & ~15;    sequence->height = (sequence->picture_height + 15) & ~15;    flags = sequence->flags | SEQ_FLAG_MPEG2;    if (!(buffer[1] & 8)) {	flags &= ~SEQ_FLAG_PROGRESSIVE_SEQUENCE;	sequence->height = (sequence->height + 31) & ~31;    }    if (buffer[5] & 0x80)	flags |= SEQ_FLAG_LOW_DELAY;    sequence->flags = flags;    sequence->chroma_width = sequence->width;    sequence->chroma_height = sequence->height;    switch (buffer[1] & 6) {    case 0:	/* invalid */	return 1;    case 2:	/* 4:2:0 */	sequence->chroma_height >>= 1;    case 4:	/* 4:2:2 */	sequence->chroma_width >>= 1;    }    sequence->byte_rate += ((buffer[2]<<25) | (buffer[3]<<17)) & 0x3ffc0000;    sequence->vbv_buffer_size |= buffer[4] << 21;    sequence->frame_period =	sequence->frame_period * ((buffer[5]&31)+1) / (((buffer[5]>>2)&3)+1);    mpeg2dec->ext_state = SEQ_DISPLAY_EXT;    return 0;}static int sequence_display_ext (mpeg2dec_t * mpeg2dec){    uint8_t * buffer = mpeg2dec->chunk_start;    mpeg2_sequence_t * sequence = &(mpeg2dec->new_sequence);    sequence->flags = ((sequence->flags & ~SEQ_MASK_VIDEO_FORMAT) |	     ((buffer[0]<<4) & SEQ_MASK_VIDEO_FORMAT));    if (buffer[0] & 1) {	sequence->flags |= SEQ_FLAG_COLOUR_DESCRIPTION;	sequence->colour_primaries = buffer[1];	sequence->transfer_characteristics = buffer[2];	sequence->matrix_coefficients = buffer[3];	buffer += 3;    }    if (!(buffer[2] & 2))	/* missing marker_bit */	return 1;    sequence->display_width = (buffer[1] << 6) | (buffer[2] >> 2);    sequence->display_height =	((buffer[2]& 1 ) << 13) | (buffer[3] << 5) | (buffer[4] >> 3);    return 0;}static inline void simplify (unsigned int * u, unsigned int * v){    unsigned int a, b, tmp;    a = *u;	b = *v;    while (a) {	/* find greatest common divisor */	tmp = a;	a = b % tmp;	b = tmp;    }    *u /= b;	*v /= b;}static inline void finalize_sequence (mpeg2_sequence_t * sequence){    int width;    int height;    sequence->byte_rate *= 50;    sequence->aspect = 4.0/3.0;    if (sequence->flags & SEQ_FLAG_MPEG2) {	switch (sequence->pixel_width) {	case 1:		/* square pixels */	    sequence->aspect = 1.0;	    sequence->pixel_width = sequence->pixel_height = 1;	return;	case 2:		/* 4:3 aspect ratio */	    sequence->aspect = 4.0/3.0;	    width = 4; height = 3;	break;	case 3:		/* 16:9 aspect ratio */	    sequence->aspect = 16.0/9.0;	    width = 16; height = 9;	break;	case 4:		/* 2.21:1 aspect ratio */	    sequence->aspect = 221.0/100.0;	    width = 221; height = 100;	break;	default:	/* illegal */	    sequence->pixel_width = sequence->pixel_height = 0;	return;	}	width *= sequence->display_height;	height *= sequence->display_width;    } else {	if (sequence->byte_rate == 50 * 0x3ffff) 	    sequence->byte_rate = 0;        /* mpeg-1 VBR */ 	switch (sequence->pixel_width) {	case 0:	case 15:	/* illegal */	    sequence->pixel_width = sequence->pixel_height = 0;		return;	case 1:	/* square pixels */	    sequence->aspect = 1.0;	    sequence->pixel_width = sequence->pixel_height = 1;		return;	case 3:	/* 720x576 16:9 */	    sequence->aspect = 16.0/9.0;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区不卡在线| 精品女同一区二区| 日韩精品免费专区| 日韩一区二区免费高清| 国产麻豆精品一区二区| 久久蜜桃av一区精品变态类天堂| 国精品**一区二区三区在线蜜桃| 国产精品国产三级国产三级人妇| 99精品国产91久久久久久| 亚洲免费色视频| 26uuu另类欧美亚洲曰本| 91看片淫黄大片一级在线观看| 男男成人高潮片免费网站| 欧美日本不卡视频| 久久成人免费网| av一区二区不卡| 日韩欧美亚洲国产精品字幕久久久 | 精品午夜久久福利影院| 色综合久久久久综合体桃花网| 麻豆精品视频在线观看视频| 亚洲乱码一区二区三区在线观看| 精品日韩一区二区三区免费视频| 欧美中文字幕亚洲一区二区va在线 | 亚洲成人激情综合网| 欧美三级韩国三级日本一级| 一区av在线播放| 亚洲三级在线播放| 欧美大片顶级少妇| 69久久夜色精品国产69蝌蚪网| 99国产精品久久| 国产一区二区免费在线| 蜜臀av一区二区| 亚洲综合一区二区精品导航| 亚洲国产精品成人久久综合一区 | 国产精品 日产精品 欧美精品| 偷拍自拍另类欧美| 日韩精品亚洲一区| 亚洲成人激情自拍| 亚洲v日本v欧美v久久精品| 亚洲一级电影视频| 亚洲一区二区三区四区在线| 国产精品久久久久久福利一牛影视| 91精品福利在线一区二区三区| 欧美另类高清zo欧美| 欧美色中文字幕| 色哟哟一区二区三区| 欧美日韩高清一区二区三区| 26uuu国产日韩综合| 亚洲高清一区二区三区| 风间由美一区二区av101 | 亚洲超碰精品一区二区| 国产黄人亚洲片| 欧美福利一区二区| 一区二区在线电影| 成人久久视频在线观看| 欧美大黄免费观看| 亚洲成人激情综合网| 国产精品18久久久久| 欧美一区二区免费| 亚洲一区二区三区美女| 岛国一区二区在线观看| 26uuu国产一区二区三区| 水蜜桃久久夜色精品一区的特点| thepron国产精品| 久久日韩粉嫩一区二区三区| 天堂精品中文字幕在线| 91精品办公室少妇高潮对白| 综合在线观看色| 床上的激情91.| 久久精品一区四区| 国产美女视频91| 337p粉嫩大胆色噜噜噜噜亚洲 | 91精品国产高清一区二区三区蜜臀 | 国产东北露脸精品视频| 日韩欧美二区三区| 日本麻豆一区二区三区视频| 欧美精品国产精品| 午夜精品久久久| 欧美日韩电影在线播放| 日韩精品1区2区3区| 欧美视频自拍偷拍| 日韩有码一区二区三区| 宅男噜噜噜66一区二区66| 亚洲国产你懂的| 欧美日韩成人一区二区| 天堂一区二区在线| 日韩欧美视频在线| 激情六月婷婷综合| 国产午夜亚洲精品理论片色戒| 国产福利一区二区三区视频 | 欧洲亚洲国产日韩| 亚洲精品成人少妇| 欧美裸体一区二区三区| 蜜桃视频在线观看一区| 精品国产91亚洲一区二区三区婷婷| 极品瑜伽女神91| 国产精品色在线观看| 日本乱人伦aⅴ精品| 丝袜诱惑制服诱惑色一区在线观看| 69堂成人精品免费视频| 国产一区二区导航在线播放| 综合激情成人伊人| 欧美人xxxx| 国产麻豆91精品| 亚洲三级在线免费观看| 91精品国产色综合久久ai换脸 | 成人黄页在线观看| 亚洲丝袜制服诱惑| 欧美精品一二三| 国产一区二区调教| 亚洲精品伦理在线| 精品久久久久久最新网址| 成人激情动漫在线观看| 午夜精品福利久久久| 国产欧美日产一区| 欧美三级资源在线| 国产精品影视在线观看| 亚洲一区二区视频| 国产精品系列在线| 91精品国产色综合久久不卡蜜臀| 寂寞少妇一区二区三区| 一区二区三区四区五区视频在线观看 | 不卡一卡二卡三乱码免费网站| 亚洲综合激情另类小说区| 久久久亚洲精品石原莉奈| 欧美日韩一级视频| 成人高清视频在线| 美女mm1313爽爽久久久蜜臀| 中文字幕一区在线观看视频| 欧美一区二区视频在线观看2020 | 亚洲高清视频在线| 国产欧美日韩另类视频免费观看| 欧美色电影在线| 91亚洲午夜精品久久久久久| 美女视频一区二区| 亚洲欧美另类小说| 日韩欧美的一区二区| 欧美丰满少妇xxxxx高潮对白| 国产麻豆精品久久一二三| 亚洲h动漫在线| 亚洲人成伊人成综合网小说| 久久综合久久鬼色| 精品国产伦一区二区三区观看方式| 在线观看国产一区二区| 成人小视频在线| 国内精品不卡在线| 久久成人免费网| 精品一区二区三区在线播放视频| 日日骚欧美日韩| 亚洲成人7777| 亚洲电影第三页| 亚洲超碰97人人做人人爱| 亚洲午夜精品17c| 一级女性全黄久久生活片免费| 亚洲同性同志一二三专区| 国产精品国产三级国产普通话蜜臀| 久久女同性恋中文字幕| 国产女人aaa级久久久级| 国产日韩三级在线| 欧美韩日一区二区三区四区| 国产亚洲精品免费| 国产人伦精品一区二区| 欧美韩国日本综合| 国产精品电影一区二区三区| 国产精品久久久久久久久图文区 | 亚洲成人777| 青青草国产成人av片免费| 日本一不卡视频| 国产精品自拍在线| av成人免费在线观看| 99国产精品久久久久久久久久| 91麻豆国产福利在线观看| 色就色 综合激情| 欧美久久久一区| 精品黑人一区二区三区久久| 久久久亚洲精华液精华液精华液| 亚洲国产精品黑人久久久| 亚洲视频狠狠干| 天天影视色香欲综合网老头| 美国毛片一区二区三区| 国内精品写真在线观看| 成人少妇影院yyyy| 欧美三级视频在线| 欧美精品一区二区三区视频| 中文字幕亚洲区| 免费视频一区二区| 成人久久18免费网站麻豆| 91久久久免费一区二区| 欧美本精品男人aⅴ天堂| 国产精品久久久久久妇女6080| 亚洲成人免费视频| 国产精品中文欧美| 欧美性大战久久久久久久蜜臀| 日韩手机在线导航| 最新国产の精品合集bt伙计| 美女免费视频一区二区| 99re成人在线| 亚洲精品一线二线三线无人区| 一区二区三区蜜桃| 国产一区二区0|