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

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

?? corrupt_mpeg2.c

?? mpeg2 decoder filter過濾服務(wù)端
?? C
字號:
/* * corrupt_mpeg2.c * Copyright (C) 2000-2002 Michel Lespinasse <walken@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 "config.h"#include <stdio.h>#include <stdlib.h>#include <time.h>#include <string.h>#include <errno.h>#include <getopt.h>#include <ctype.h>#ifdef HAVE_IO_H#include <fcntl.h>#include <io.h>#endif#include <inttypes.h>static FILE * in_file;static FILE * seed_file;static int seed_loaded = 0;static uint32_t rsl[55];static int rsl_i = -1;typedef struct {    uint32_t p, q[8], r;} randbyte_t;#define CORRUPT_RANDOM 0#define CORRUPT_VALUE 1typedef struct corrupt_s {    int type;    int chunk_start, chunk_stop;    int bit_start, bit_stop;    union {	randbyte_t prob;    } u;    struct corrupt_s * next;    uint8_t mask;} corrupt_t;#define CORRUPT_LIST_SIZE 10static corrupt_t corrupt_list[10];static int corrupt_list_index = 0;static corrupt_t * corrupt_head = NULL;static int current_chunk = -1, current_bit = 0, target_bit = 0x7fffffff;static inline uint32_t fastrand (void){    if (++rsl_i == 55) rsl_i = 0;    return rsl[rsl_i] += rsl[(rsl_i < 31) ? rsl_i + 24 : rsl_i - 31];}static uint32_t clip (double p){    return (p < 0) ? 0 : ((p >= 1) ? 0xffffffff : (uint32_t)(p*4294967296.0));}static void randbyte_init (double p, randbyte_t * rand){    double q, r;    int i;    rand->p = clip (p);    r = 1;    for (i = 0; i < 8; i++) {	r *= 1 - p;	q = p / (1 - r);	rand->q[i] = clip (q);    }    rand->r = clip (1 - r);}static inline uint8_t randbyte (const randbyte_t * const rand){    int i, j;    if (fastrand () > rand->r || rand->r == 0)	return 0;    i = 7; j = 0;    do	if (fastrand () <= (j ? rand->p : rand->q[i]))	    j |= 1 << i;    while (i--);    return j;}static void print_usage (char ** argv){    fprintf (stderr, "usage: %s [-h] [-l <seed>] [-s <seedfile>] \\\n"	     "\t\t[-r prob[,restrict] [-v prob[,restrict]] <file>\n"	     "\t-h\tdisplay help\n"	     "\t-l load seed\n"	     "\t-s save seed file\n"	     "\t-r random corruption\n"	     "\t-v random value\n"	     "restrict: chunk[-endchunk][,bit[-endbit]]\n", argv[0]);    exit (1);}static void corrupt_arg (corrupt_t * corrupt, int type, char * s, char ** argv){    corrupt->type = type;    if (! *s)	s = ",0-0xff,0-";    else if (*s != ',' || !isdigit (s[1]))	print_usage (argv);    corrupt->chunk_start = strtol (s + 1, &s, 0);    if (*s != '-')	corrupt->chunk_stop = corrupt->chunk_start;    else if (isdigit (* ++s))	corrupt->chunk_stop = strtol (s, &s, 0);    else	print_usage (argv);    if (! *s)	s = ",32-";    else if (*s != ',' || !isdigit (s[1]))	print_usage (argv);    corrupt->bit_start = strtol (s + 1, &s, 0);    if (*s != '-')	corrupt->bit_stop = corrupt->bit_start;    else if (isdigit (* ++s))	corrupt->bit_stop = strtol (s, &s, 0);    else	corrupt->bit_stop = 0x7ffffffe;    if (corrupt->chunk_start < 0 ||	corrupt->chunk_start > corrupt->chunk_stop ||	corrupt->chunk_stop >= 0x1000 ||	corrupt->bit_start < 0 || corrupt->bit_start > corrupt->bit_stop || *s)	print_usage (argv);    if (corrupt->chunk_stop < 0x100) {	corrupt->chunk_start <<= 4;	corrupt->chunk_stop = (corrupt->chunk_stop << 4) | 0xf;    }}static void handle_args (int argc, char ** argv){    int c;    double prob;    char * s;    corrupt_t * corrupt;    while ((c = getopt (argc, argv, "hl:s:r:v:")) != -1)	switch (c) {	case 'l':	    if (seed_file || seed_loaded)		print_usage (argv);	    if (sscanf (optarg, "%08x%08x%08x%08x",			rsl, rsl+1, rsl+2, rsl+3) != 4)		print_usage (argv);	    seed_loaded = 1;	    break;	case 's':	    if (seed_file || seed_loaded)		print_usage (argv);	    seed_file = fopen (optarg, "wt");	    if (!seed_file)		print_usage (argv);	    break;	case 'r':	    prob = strtod (optarg, &s);	    if (prob < 0 || prob > 1 || 		corrupt_list_index == CORRUPT_LIST_SIZE)		print_usage (argv);	    corrupt = corrupt_list + corrupt_list_index++;	    corrupt_arg (corrupt, CORRUPT_RANDOM, s, argv);	    randbyte_init (prob, &corrupt->u.prob);	    break;	case 'v':	    prob = strtod (optarg, &s);	    if (prob < 0 || prob > 1 || 		corrupt_list_index == CORRUPT_LIST_SIZE)		print_usage (argv);	    corrupt = corrupt_list + corrupt_list_index++;	    corrupt_arg (corrupt, CORRUPT_VALUE, s, argv);	    randbyte_init (prob, &corrupt->u.prob);	    break;	default:	    print_usage (argv);	}    if (optind < argc) {	in_file = fopen (argv[optind], "rb");	if (!in_file) {	    fprintf (stderr, "%s - could not open file %s\n", strerror (errno),		     argv[optind]);	    exit (1);	}    } else	in_file = stdin;    if (!seed_file && !seed_loaded)	seed_file = fopen ("seed", "wt");}static void update_corrupt_list (void){    corrupt_t * corrupt;    corrupt_t ** corrupt_link;    corrupt_link = &corrupt_head;    target_bit = 0x7fffffff;    for (corrupt = corrupt_list;	 corrupt < corrupt_list + corrupt_list_index; corrupt++)	if (corrupt->chunk_start <= current_chunk &&	    corrupt->chunk_stop >= current_chunk &&	    corrupt->bit_stop >= current_bit) {	    if (corrupt->bit_start >= current_bit + 8) {		if (corrupt->bit_start <= target_bit)		    target_bit = corrupt->bit_start & ~7;	    } else {		*corrupt_link = corrupt;		corrupt_link = &corrupt->next;		if (corrupt->bit_stop >= current_bit + 7) {		    corrupt->mask = 0xff;		    if (corrupt->bit_stop <= target_bit)			target_bit = (corrupt->bit_stop + 1) & ~7;		} else {		    corrupt->mask = -1 << (7 - (corrupt->bit_stop & 7));		    target_bit = current_bit + 8;		}		if (corrupt->bit_start > current_bit) {		    corrupt->mask &= 0xff >> (corrupt->bit_start & 7);		    target_bit = current_bit + 8;		}	    }	}    *corrupt_link = NULL;}static void corrupt (uint8_t * ptr){    corrupt_t * corrupt;    if (ptr[0] == 0 && ptr[1] == 0 && ptr[2] == 1) {	current_chunk = (ptr[3] << 4) | (ptr[4] >> 4);	current_bit = 0;	update_corrupt_list ();    } else if (current_bit == target_bit)	update_corrupt_list ();    current_bit += 8;    for (corrupt = corrupt_head; corrupt; corrupt = corrupt->next)	switch (corrupt->type) {	case CORRUPT_RANDOM:	    *ptr ^= randbyte (&corrupt->u.prob) & corrupt->mask;	    break;	case CORRUPT_VALUE:	    *ptr = ((*ptr & ~corrupt->mask) |		    (randbyte (&corrupt->u.prob) & corrupt->mask));	    break;	}}static void corrupt_loop (void){#define BUFFER_SIZE 4096    static uint8_t buffer1[BUFFER_SIZE + 4];    static uint8_t buffer2[BUFFER_SIZE + 4];    static uint8_t terminator[4] = {0xff, 0xff, 0xff, 0xff};    uint8_t * buf;    uint8_t * end;    uint8_t * current;    buf = buffer1;    end = buf + fread (buf, 1, BUFFER_SIZE, in_file);    while (end == buf + BUFFER_SIZE) {	uint8_t * lastbuf;	uint8_t * lastbuf_end;	lastbuf = buf;	lastbuf_end = buf + BUFFER_SIZE;	buf = (buf == buffer1) ? buffer2 : buffer1;	memcpy (buf, terminator, 4);	end = buf + fread (buf, 1, BUFFER_SIZE, in_file);	memcpy (lastbuf_end, buf, 4);	for (current = lastbuf; current < lastbuf_end; current++)	    corrupt (current);	fwrite (lastbuf, BUFFER_SIZE, 1, stdout);    }    memcpy (end, terminator, 4);    for (current = buf; current < end; current++)	corrupt (current);    fwrite (buf, end - buf, 1, stdout);}int main (int argc, char ** argv){    int i;#ifdef HAVE_IO_H    setmode (fileno (stdin), O_BINARY);    setmode (fileno (stdout), O_BINARY);#endif    handle_args (argc, argv);    if (!seed_loaded) {	srand (time (NULL));	for (i = 0; i < 4; i++)	    rsl[i] = rand ();	fprintf (seed_file, "%08x%08x%08x%08x\n",		 rsl[0], rsl[1], rsl[2], rsl[3]);	fclose (seed_file);    }    for (i = 4; i < 55; i++)	rsl[i] = 0;    for (i = 0; i < 1000; i++)	fastrand ();    corrupt_loop ();    return 0;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本少妇一区二区| 首页欧美精品中文字幕| 国产高清视频一区| 久久久不卡网国产精品一区| 国产成人精品午夜视频免费| 日本一区二区高清| aaa欧美日韩| 亚洲综合在线视频| 91精品综合久久久久久| 美女视频网站黄色亚洲| 久久精品夜色噜噜亚洲aⅴ| 国产成人精品午夜视频免费| 国产精品久久久久久亚洲毛片| 99精品欧美一区二区三区小说| 一区二区三区精品久久久| 欧美群妇大交群的观看方式 | 国产精品人成在线观看免费| 成人av在线资源网站| 一区二区三区欧美日| 91精品国产欧美日韩| 国产69精品一区二区亚洲孕妇| 综合久久一区二区三区| 欧美另类高清zo欧美| 精品无码三级在线观看视频| 中文字幕亚洲视频| 91精品国产入口在线| 国产成人精品一区二区三区网站观看| 亚洲欧美二区三区| 日韩视频一区二区在线观看| 国产不卡高清在线观看视频| 亚洲国产综合在线| 国产女人18毛片水真多成人如厕| 91色在线porny| 美女一区二区在线观看| 国产精品不卡在线| 欧美大片在线观看| 91丨porny丨国产| 免费观看久久久4p| 亚洲天堂2016| 国产偷v国产偷v亚洲高清| 欧美专区日韩专区| 成人a区在线观看| 青青国产91久久久久久| 亚洲欧美一区二区三区国产精品 | 国产成人在线免费观看| 亚洲第一主播视频| 国产精品久久久久久久久动漫| 欧美一级黄色片| 欧美自拍偷拍一区| av在线不卡网| 国产成人免费在线| 精品一区二区免费在线观看| 一区二区三区高清| 欧美国产成人在线| 日韩美女在线视频| 欧美另类高清zo欧美| 91国在线观看| 99re8在线精品视频免费播放| 久久99久久久欧美国产| 五月综合激情日本mⅴ| 亚洲欧美日韩在线播放| 国产色婷婷亚洲99精品小说| 91精品久久久久久久久99蜜臂| 在线观看网站黄不卡| 91免费看片在线观看| 成人黄色在线看| 国产成人在线视频网站| 国产老女人精品毛片久久| 免费观看30秒视频久久| 天天操天天综合网| 亚洲成人av中文| 亚洲高清视频的网址| 亚洲精品国产品国语在线app| 中文字幕乱码一区二区免费| 久久久久久毛片| 久久精品一区二区三区不卡牛牛| 久久综合av免费| 久久久久久久综合色一本| 一本大道综合伊人精品热热| 日本国产一区二区| 欧美在线短视频| 欧美日韩极品在线观看一区| 欧美巨大另类极品videosbest| 欧美日韩视频在线第一区 | 国产一区视频在线看| 精品亚洲国内自在自线福利| 精品一区二区三区视频| 国内精品久久久久影院一蜜桃| 国产一区二区三区免费在线观看| 国产不卡视频一区| 波多野结衣中文字幕一区| 91亚洲男人天堂| 欧美性大战久久| 91精品国产欧美一区二区| 欧美成人精品福利| 欧美激情一区二区三区在线| 国产精品第四页| 亚洲一区二区三区视频在线| 日韩中文字幕不卡| 久久成人免费电影| 丰满岳乱妇一区二区三区 | 在线视频中文字幕一区二区| 欧美三区在线观看| 日韩欧美中文一区| 国产精品丝袜久久久久久app| 亚洲免费成人av| 日本一道高清亚洲日美韩| 国产乱码精品一区二区三区av | 欧美精品一区二区三区在线| 亚洲国产精品二十页| 一区二区成人在线视频| 蜜臀精品一区二区三区在线观看 | 男人的天堂久久精品| 丁香天五香天堂综合| 日本精品一区二区三区高清| 日韩一区二区三区视频在线观看| www成人在线观看| 一区二区在线观看视频| 久久99深爱久久99精品| 99久久免费国产| 欧美一二区视频| 中文字幕亚洲一区二区va在线| 三级精品在线观看| 成人午夜av电影| 91精品国产欧美一区二区18| 国产精品久久久久影院老司| 日日摸夜夜添夜夜添精品视频| 国产91精品精华液一区二区三区| 欧美日韩美少妇| 国产精品久久午夜| 久热成人在线视频| 欧美做爰猛烈大尺度电影无法无天| 精品久久免费看| 亚洲国产另类av| 成人av午夜电影| 精品久久人人做人人爽| 亚洲成人第一页| 99国产精品久久| 久久精品无码一区二区三区| 日韩和欧美的一区| 色婷婷国产精品| 亚洲国产经典视频| 国产一区二区精品久久99| 欧美妇女性影城| 亚洲综合激情另类小说区| 粉嫩久久99精品久久久久久夜| 欧美一区二区在线视频| 亚洲制服丝袜在线| 色综合天天综合网天天狠天天| 国产天堂亚洲国产碰碰| 麻豆91精品91久久久的内涵| 欧美三级三级三级爽爽爽| 亚洲免费av在线| av亚洲精华国产精华精| 国产欧美日韩精品一区| 韩国女主播一区二区三区| 欧美一级爆毛片| 天天av天天翘天天综合网| 欧美色综合网站| 亚洲一区二区三区在线播放| 色一区在线观看| 亚洲视频综合在线| 97精品国产97久久久久久久久久久久| 久久久精品黄色| 国产精品一二二区| 国产三级欧美三级| 国产传媒日韩欧美成人| 国产亚洲欧美一区在线观看| 激情综合网天天干| 精品国产一二三| 国产精品自在在线| 国产拍欧美日韩视频二区| 一本久久精品一区二区| 亚洲乱码中文字幕| 在线观看欧美黄色| 亚洲午夜电影在线观看| 欧美情侣在线播放| 蜜臀av性久久久久蜜臀aⅴ| 91精品国产色综合久久久蜜香臀| 青青国产91久久久久久| 日韩精品专区在线影院观看 | 国产综合色产在线精品| 2021国产精品久久精品| 国产91精品露脸国语对白| 中文字幕一区二区三区在线观看| av中文字幕亚洲| 亚洲主播在线播放| 日韩一区二区三区在线| 国产精品一色哟哟哟| 国产精品久久久久影院色老大| 一本色道**综合亚洲精品蜜桃冫| 亚洲国产视频一区| 日韩你懂的在线观看| 风间由美性色一区二区三区| 亚洲天堂福利av| 日韩一区二区在线观看视频| 国产九九视频一区二区三区| 亚洲欧美日韩国产成人精品影院| 欧美美女喷水视频| 国产精品一区在线观看你懂的|