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

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

?? mpeg2dataparser.h

?? * This file is part of DigitalWatch, a free DTV watching and recording * program for the VisionPlu
?? H
字號:
/**
 *	Mpeg2DataParser.h
 *	Copyright (C) 2004 Nate
 *  Copyright (C) 2004 JoeyBloggs
 *
 *	This file is part of DigitalWatch, a free DTV watching and recording
 *	program for the VisionPlus DVB-T.
 *
 *	DigitalWatch 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.
 *
 *	DigitalWatch 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 DigitalWatch; if not, write to the Free Software
 *	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#ifndef MPEG2DATAPARSER_H
#define MPEG2DATAPARSER_H

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <mpeg2data.h>
#include <mpeg2bits.h>
#include <vector>
#include "LogMessage.h"
#include "LogMessageWriter.h"

#define AUDIO_CHAN_MAX (32)
#define CA_SYSTEM_ID_MAX (16)

enum running_mode {
	RM_NOT_RUNNING = 0x01,
	RM_STARTS_SOON = 0x02,
	RM_PAUSING     = 0x03,
	RM_RUNNING     = 0x04
};

struct section_buf
{
	unsigned int run_once  : 1;
	unsigned int segmented : 1;	/* segmented by table_id_ext */
	int fd;
	int pid;
	int table_id;
	int table_id_ext;
	int section_version_number;
	__int8 section_done[32];
	int sectionfilter_done;
	unsigned char *buf;
	time_t timeout;
	time_t start_time;
	time_t running_time;
	struct section_buf *next_seg;	/* this is used to handle
									 * segmented tables (like NIT-other)
									 */
};

struct service
{
	int transport_stream_id;
	int service_id;
	unsigned char *provider_name;
	unsigned char *service_name;
	__int16 pmt_pid;
	__int16 pcr_pid;
	__int16 video_pid;
	__int16 audio_pid[AUDIO_CHAN_MAX];
	char audio_lang[AUDIO_CHAN_MAX][4];
	int audio_num;
	__int16 ca_id[CA_SYSTEM_ID_MAX];
	int ca_num;
	__int16 teletext_pid;
	__int16 subtitling_pid;
	__int16 ac3_pid;
	unsigned int type         : 8;
	unsigned int scrambled	  : 1;
	enum running_mode running;
	struct section_buf *priv;
	int channel_num;
};

struct transponder {
	vector<service *> services;
	int network_id;
	int transport_stream_id;
	int original_network_id;
	enum fe_type type;
	//struct dvb_frontend_parameters param;
	enum polarisation polarisation;		/* only for DVB-S */
	int orbital_pos;			/* only for DVB-S */
	unsigned int we_flag		  : 1;	/* West/East Flag - only for DVB-S */
	unsigned int scan_done		  : 1;
	unsigned int last_tuning_failed	  : 1;
	unsigned int other_frequency_flag : 1;	/* DVB-T */
	int n_other_f;
	__int32 *other_f;			/* DVB-T freqeuency-list descriptor */
	unsigned char *network_name;
	int frequency;
	int bandwidth;
};

static int get_bit (__int8 *bitfield, int bit)
{
	return (bitfield[bit/8] >> (bit % 8)) & 1;
}

static void set_bit (__int8 *bitfield, int bit)
{
	bitfield[bit/8] |= 1 << (bit % 8);
}


class Mpeg2DataParser : public LogMessageCaller
{
public:
	Mpeg2DataParser();
	virtual ~Mpeg2DataParser();

	void SetNetworkNumber(int network);
	void SetFilter(CComPtr <IBaseFilter> pBDASecTab);
	void ReleaseFilter();

	void StartMpeg2DataScan();
	void StartMpeg2DataScanThread();

	void Reset();
	DWORD WaitForScanToFinish();

	void PrintDigitalWatchChannelsIni();

	LogMessage * VerboseOutput() { return &verbose; }
	LogMessage * Output() { return &output; }


private:
	void SetupFilter (struct section_buf* s, int pid, int tid, int run_once, int segmented, int timeout);
	void AddFilter (struct section_buf *s);
	void ReadFilters(void);
	void ReadSection(struct section_buf *s);

	struct transponder *alloc_transponder(int transport_stream_id);
	struct transponder *find_transponder(int transport_stream_id);
	struct service *alloc_service(struct transponder *tp, int service_id);
	struct service *find_service(struct transponder *tp, int service_id);

	int parse_section (struct section_buf *s);
	void parse_pat(const unsigned char *buf, int section_length, int transport_stream_id);
	void parse_pmt (const unsigned char *buf, int section_length, int service_id);
	void parse_nit (const unsigned char *buf, int section_length, int network_id);
	void parse_sdt (const unsigned char *buf, int section_length, int transport_stream_id);
	
	void parse_descriptorsPMT(const unsigned char *buf, int remaining_length, struct service *s);
	void parse_descriptorsNIT(const unsigned char *buf, int remaining_length, struct transponder *tp);
	void parse_descriptorsSDT(const unsigned char *buf, int remaining_length, struct service *s);

	void parse_iso639_language_descriptor (const unsigned char *buf, struct service *s);
	void parse_network_name_descriptor (const unsigned char *buf, struct transponder *tp);
	void print_unknown_descriptor(const unsigned char *buf, int descriptor_len);
	void parse_terrestrial_delivery_system_descriptor (const unsigned char *buf, struct transponder *t);
	void parse_frequency_list_descriptor (const unsigned char *buf, struct transponder *t);
	void parse_terrestrial_uk_channel_number (const unsigned char *buf, struct transponder *t);
	void parse_service_descriptor (const unsigned char *buf, struct service *s);
	int find_descriptor(__int8 tag, const unsigned char *buf, int remaining_length, const unsigned char **desc, int *desc_len);

	
	void ParseMpeg2Section(SECTION *pSection, DWORD dwPacketLength);
	void ParsePAT(const BYTE *buf, int remainingLength);
	void ParsePMT(const BYTE *buf, int remainingLength);
	
	void PrintByteArray(const BYTE *pData, long cbSize);
	void PrintWordArray(const BYTE *pData, long cbSize);
	void PaddingForNumber(long number, long totalWidth);

	void DeleteTransponder(struct transponder *t);
	void DeleteService(struct service *s);

	CComPtr <IMpeg2Data> m_piIMpeg2Data;

	HANDLE m_hScanningDoneEvent;

	int long_timeout;
	int m_networkNumber;

	BOOL m_bThreadStarted;
	BOOL m_bActivity;

	struct transponder *  current_tp;
	vector<transponder *> transponders;

	vector<section_buf *> waiting_filters;

	LogMessage verbose;
	LogMessage output;
};

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久噜噜噜久噜久久综合| 亚洲午夜久久久久久久久电影网 | 亚洲精品一区二区三区在线观看| 国产精品久久久久影视| 日本美女一区二区三区视频| caoporen国产精品视频| 欧美一级淫片007| 亚洲无线码一区二区三区| 成人在线视频一区| 日韩美女视频在线| 性久久久久久久| 色88888久久久久久影院野外| 久久精品欧美一区二区三区麻豆| 性久久久久久久久久久久| 91污在线观看| **欧美大码日韩| 成人永久免费视频| 久久久精品欧美丰满| 久久69国产一区二区蜜臀 | 91亚洲午夜精品久久久久久| 亚洲精品一线二线三线无人区| 婷婷中文字幕综合| 欧美色图免费看| 亚洲一区二区欧美激情| 91女厕偷拍女厕偷拍高清| 国产精品国产三级国产普通话三级| 激情综合色播五月| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 久久亚洲一区二区三区四区| 男女男精品网站| 日韩视频一区二区三区| 日本不卡123| 日韩欧美一区二区不卡| 日韩av网站免费在线| 制服丝袜激情欧洲亚洲| 日韩av中文在线观看| 日韩欧美国产一二三区| 激情亚洲综合在线| 国产校园另类小说区| 粉嫩av一区二区三区粉嫩| 中文无字幕一区二区三区| 成人午夜看片网址| 亚洲欧美日韩国产中文在线| 91久久精品一区二区二区| 亚洲综合激情另类小说区| 欧美日韩国产区一| 久久草av在线| 欧美高清在线一区| 日本韩国欧美一区| 日本大胆欧美人术艺术动态 | 欧美无乱码久久久免费午夜一区 | 亚洲国产成人在线| 91在线视频在线| 亚洲一区二区三区在线| 51久久夜色精品国产麻豆| 精品一区二区久久久| 国产精品网站在线| 欧美熟乱第一页| 激情图区综合网| 丝袜美腿亚洲一区二区图片| 精品久久久久久久久久久久久久久| 国产精品小仙女| 亚洲精品精品亚洲| 日韩免费视频一区| 色婷婷综合视频在线观看| 五月婷婷久久丁香| 国产欧美一区二区精品秋霞影院| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲.国产.中文慕字在线| 26uuu精品一区二区| 色综合久久久久久久久| 另类中文字幕网| 亚洲啪啪综合av一区二区三区| 欧美一区二区性放荡片| 波多野结衣中文一区| 日韩高清不卡一区二区| 国产精品高潮呻吟久久| 日韩一区二区三区免费看| 91美女在线观看| 国产美女在线观看一区| 亚洲成av人片在线观看无码| 国产欧美一区二区三区网站| 欧美剧情片在线观看| 不卡视频在线观看| 国产一区二区三区黄视频 | 欧美日韩中文字幕精品| 国产精品99久久久久久久vr| 午夜精品一区二区三区三上悠亚| 日本一区二区免费在线观看视频| 8x福利精品第一导航| 91视频在线观看免费| 国产乱理伦片在线观看夜一区| 亚洲va中文字幕| 一区二区三区在线免费视频| 日本一区二区电影| 精品国产在天天线2019| 欧美一区二区三区性视频| 99久久99久久精品免费看蜜桃| 国产麻豆精品一区二区| 免费成人深夜小野草| 午夜视频在线观看一区| 亚洲精品一卡二卡| 久久av中文字幕片| 午夜成人免费视频| 亚洲一区二三区| 亚洲精品亚洲人成人网| 国产精品黄色在线观看| 国产精品欧美久久久久无广告| 久久无码av三级| 亚洲精品一区二区三区蜜桃下载 | 国产欧美日韩在线视频| 久久免费偷拍视频| 久久久久久亚洲综合| 久久女同性恋中文字幕| 久久午夜电影网| 国产欧美一区在线| 欧美激情综合在线| 中文字幕一区日韩精品欧美| 亚洲国产精品99久久久久久久久 | 成人av资源在线| 成人久久视频在线观看| 99精品欧美一区二区蜜桃免费| 99久久精品免费观看| 一本色道亚洲精品aⅴ| 欧美性感一区二区三区| 欧美精品久久一区二区三区| 91精品一区二区三区久久久久久 | 国产精品乱码人人做人人爱| 久久久国产一区二区三区四区小说| 久久久久国产精品人| 国产精品久久久久久户外露出 | 亚洲一区免费在线观看| 午夜a成v人精品| 精品综合久久久久久8888| 国产一区二区h| 不卡电影免费在线播放一区| 色婷婷久久一区二区三区麻豆| 欧美日韩国产小视频| 精品国产乱码久久久久久图片 | 久久久久一区二区三区四区| 欧美激情综合网| 亚洲一区av在线| 久久国产精品无码网站| 成人听书哪个软件好| 91福利精品第一导航| 欧美一区二区三区在线电影| 亚洲国产精品国自产拍av| 一区二区国产视频| 精品一区二区三区在线视频| aaa国产一区| 91精品国产高清一区二区三区蜜臀| 久久精品欧美一区二区三区不卡| 亚洲乱码中文字幕综合| 激情文学综合插| 在线观看国产精品网站| 久久蜜桃av一区二区天堂| 一区二区三区中文在线| 久久精品国产**网站演员| 不卡区在线中文字幕| 日韩欧美国产小视频| 一区二区三区资源| 国产成人aaaa| 日韩一区二区视频| 一区二区三区精品| 国产成都精品91一区二区三| 欧美日韩dvd在线观看| 国产精品久线观看视频| 日产国产高清一区二区三区| 99re在线精品| 久久久精品日韩欧美| 亚洲成人在线网站| 91视频观看视频| 欧美国产1区2区| 欧美最新大片在线看| 久久午夜老司机| 蜜桃视频在线观看一区| 在线观看免费视频综合| 中文字幕免费不卡| 国内成人免费视频| 欧美一区二区视频在线观看2020| 日韩理论在线观看| 成人自拍视频在线| wwwwxxxxx欧美| 美女视频免费一区| 欧美一区二区三区啪啪| 一区二区免费视频| 色菇凉天天综合网| 亚洲免费观看在线观看| 成人av在线播放网址| 久久精品男人的天堂| 激情欧美一区二区| 欧美不卡一区二区| 精品一区二区三区在线观看| 在线成人免费观看| 日韩电影在线一区二区三区| 在线国产亚洲欧美| 午夜精品一区二区三区电影天堂| 欧美中文字幕一区二区三区| 艳妇臀荡乳欲伦亚洲一区| 91浏览器在线视频|