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

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

?? mpeg2.h

?? Sun公司Dream項(xiàng)目
?? H
字號:
/*
 * The contents of this file are subject to the terms
 * of the Common Development and Distribution License
 * (the "License").  You may not use this file except
 * in compliance with the License.
 *
 * You can obtain a copy of the license at
 * http://www.opensource.org/licenses/cddl1.php
 * See the License for the specific language governing
 * permissions and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL
 * HEADER in each file and include the License file at
 * http://www.opensource.org/licenses/cddl1.php.  If 
 * applicable, add the following below this CDDL HEADER, 
 * with the fields enclosed by brackets "[]" replaced 
 * with your own identifying information: 
 * Portions Copyright [yyyy]
 * [name of copyright owner]
 */ 

/*
 * $(@)Mpeg2.h $Revision: 1.1.1.1 $ $Date: 2006/04/17 22:47:31 $
 * 
 * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
 */
/*
 * Copyright (c) 1996 by Sun Microsystems, Inc.
 */

/*
 * Mpeg2.h
 * 
 * Mpeg2.h is the definition of Mpeg2 descriptors and other common
 * Mpeg2 types.
 */

#ifndef	_MMP_MPEG2_H
#define	_MMP_MPEG2_H

#pragma ident "@(#)Mpeg2.h 1.1	96/09/18 SMI"

/***********************************************************************
 * Includes
 ***********************************************************************/

#include "cobjs/Foreign.h"
#include "cobjs/Macros.h"
#include "cobjs/Types.h"

_FOREIGN_START

#define	MPEG2_DESCRIPTOR_MAX_LEN	255

/***********************************************************************
 * Mpeg2 Stream Types
 ***********************************************************************/

typedef enum Mpeg2StreamType {
    MPEG2_STREAM_TYPE_MPEG1_VIDEO = 1,
    MPEG2_STREAM_TYPE_MPEG2_VIDEO = 2,
    MPEG2_STREAM_TYPE_MPEG1_AUDIO = 3,
    MPEG2_STREAM_TYPE_MPEG2_AUDIO = 4,
    MPEG2_STREAM_TYPE_PRIVATE_SECTION = 5,
    MPEG2_STREAM_TYPE_PRIVATE_STREAM = 6,
    MPEG2_STREAM_TYPE_MHEG = 7,
    MPEG2_STREAM_TYPE_DSMCC = 8,
    MPEG2_STREAM_TYPE_AUXILIARY = 9
} Mpeg2StreamType;

/***********************************************************************
 * Mpeg2 Descriptor Types
 ***********************************************************************/

typedef enum Mpeg2DescriptorTag {
    MPEG2_DESCRIPTOR_TAG_VIDEO_STREAM = 2,
    MPEG2_DESCRIPTOR_TAG_AUDIO_STREAM = 3,
    MPEG2_DESCRIPTOR_TAG_HIERARCHY = 4,
    MPEG2_DESCRIPTOR_TAG_REGISTRATION = 5,
    MPEG2_DESCRIPTOR_TAG_DATA_STREAM_ALIGNMENT = 6,
    MPEG2_DESCRIPTOR_TAG_TARGET_BACKGROUND_GRID = 7,
    MPEG2_DESCRIPTOR_TAG_VIDEO_WINDOW = 8,
    MPEG2_DESCRIPTOR_TAG_CA = 9,
    MPEG2_DESCRIPTOR_TAG_LANGUAGE = 10,
    MPEG2_DESCRIPTOR_TAG_SYSTEM_CLOCK = 11,
    MPEG2_DESCRIPTOR_TAG_MULTIPLEX_BUFFER_UTILIZATION = 12,
    MPEG2_DESCRIPTOR_TAG_COPYRIGHT = 13,
    MPEG2_DESCRIPTOR_TAG_MAXIMUM_BITRATE = 14,
    MPEG2_DESCRIPTOR_TAG_PRIVATE_DATA_INDICATOR = 15
} Mpeg2DescriptorTag;

typedef struct Mpeg2VideoStreamDescriptor {
    BIT5(multipleFrameRateFlag:1,
	 frameRateCode:4,
	 mpeg2Flag:1,
	 constrainedParameterFlag:1,
	 stillPictureFlag:1);
    /* if m2f == 1 */
    BIT3(profileLevelEscape:1,
	 profile:3,
	 level:4);
    BIT3(chromaFormat:2,
	 frameRateExtensionFlag:1,
	 reserved:5);
} Mpeg2VideoStreamDescriptor;

typedef enum Mpeg2FrameRateCode {
    MPEG2_FRAME_RATE_CODE_23_976 = 1,
    MPEG2_FRAME_RATE_CODE_24 = 2,
    MPEG2_FRAME_RATE_CODE_25 = 3,
    MPEG2_FRAME_RATE_CODE_29_97 = 4,
    MPEG2_FRAME_RATE_CODE_30 = 5,
    MPEG2_FRAME_RATE_CODE_50 = 6,
    MPEG2_FRAME_RATE_CODE_59_94 = 7,
    MPEG2_FRAME_RATE_CODE_60 = 8
} Mpeg2FrameRateCode;

typedef enum Mpeg2Profile {
    MPEG2_PROFILE_HIGH = 1,
    MPEG2_PROFILE_SPATIALLY_SCALABLE = 2,
    MPEG2_PROFILE_SNR_SCALABLE = 3,
    MPEG2_PROFILE_MAIN = 4,
    MPEG2_PROFILE_SIMPLE = 5
} Mpeg2Profile;

typedef enum Mpeg2Level {
    MPEG2_LEVEL_HIGH = 4,
    MPEG2_LEVEL_HIGH_1440 = 6,
    MPEG2_LEVEL_MAIN = 8,
    MPEG2_LEVEL_LOW = 10
} Mpeg2Level;

typedef enum Mpeg2ChromaFormat {
    MPEG2_CHROMA_FORMAT_4_2_0 = 1,
    MPEG2_CHROMA_FORMAT_4_2_2 = 2,
    MPEG2_CHROMA_FORMAT_4_4_4 = 3
} Mpeg2ChromaFormat;

typedef struct Mpeg2AudioStreamDescriptor {
    BIT4(freeFormatFlag:1,
	 id:1,
	 layer:2,
	 reserved:4);
} Mpeg2AudioStreamDescriptor;

typedef struct Mpeg2HierarchyDescriptor {
    BIT2(reserved_1:4,
	 hierarchyType:4);
    BIT2(reserved_2:2,
	 hierarchyLayerIndex:6);
    BIT2(reserved_3:2,
	 hierarchyEmbeddedLayer:6);
    BIT2(reserved_4:2,
	 hierarchyPriority:6);
} Mpeg2HierarchyDescriptor;

typedef enum Mpeg2HierarchyType {
    MPEG2_HIERARCHY_TYPE_VIDEO_SPATIAL = 1,
    MPEG2_HIERARCHY_TYPE_VIDEO_SNR = 2,
    MPEG2_HIERARCHY_TYPE_VIDEO_TEMPORAL = 3,
    MPEG2_HIERARCHY_TYPE_VIDEO_DATA = 4,
    MPEG2_HIERARCHY_TYPE_AUDIO_EXTENSION = 5,
    MPEG2_HIERARCHY_TYPE_BASE_LAYER = 15
} Mpeg2HierarchyType;

typedef struct Mpeg2RegistrationDescriptor {
    BIT1(formatIdentifier31_24:8);
    BIT1(formatIdentifier23_16:8);
    BIT1(formatIdentifier15_8:8);
    BIT1(formatIdentifier7_0:8);
    /*
     * Followed by additional identification info for rest of descriptor
     */
} Mpeg2RegistrationDescriptor;

#define	MPEG2_REGISTRATION_FORMAT_IDENTIFIER(p)			\
	(   ((p)->formatIdentifier31_24 << 24)			\
	  | ((p)->formatIdentifier23_16 << 16)			\
	  | ((p)->formatIdentifier15_8 << 8)			\
	  |  (p)->formatIdentifier7_0				\
	)

typedef struct Mpeg2DataAlignmentDescriptor {
    BIT1(alignmentType:8);
} Mpeg2DataAlignmentDescriptor;

typedef enum Mpeg2DataAlignmentTypeVideo {
    MPEG2_DATA_ALIGNMENT_TYPE_VIDEO_SLICE = 1, /* slice, picture, GOP, or SEQ */
    MPEG2_DATA_ALIGNMENT_TYPE_VIDEO_PICTURE = 2,/* picture, GOP, or SEQ */
    MPEG2_DATA_ALIGNMENT_TYPE_VIDEO_GOP = 3,   /* GOP, or SEQ */
    MPEG2_DATA_ALIGNMENT_TYPE_VIDEO_SEQ = 4    /* SEQ */
} Mpeg2DataAlignmentTypeVideo;

typedef enum Mpeg2DataAlignmentTypeAudio {
    MPEG2_DATA_ALIGNMENT_TYPE_AUDIO_FRAME = 1  /* audio frame */
} Mpeg2DataAlignmentTypeAudio;

typedef struct Mpeg2TargetBackgroundGridDescriptor {
    BIT1(horizontalSize13_6:8);
    BIT2(horizontalSize5_0:6,
	 verticalSize13_12:2);
    BIT1(verticalSize11_4:8);
    BIT2(verticalSize3_0:4,
	 pelAspectRatio:4);
} Mpeg2TargetBackgroundGridDescriptor;

#define	MPEG2_TARGET_BACKGROUND_GRID_HORIZONTAL_SIZE(p)		\
			( ((p)->horizontalSize13_6 << 6)	\
			 | (p)->horizontalSize5_0)

#define	MPEG2_TARGET_BACKGROUND_GRID_VERTICAL_SIZE(p)		\
			(  ((p)->verticalSize13_12 << 12) 	\
			 | ((p)->verticalSize11_4 << 4)		\
			 | (p)->verticalSize3_0)

typedef enum Mpeg2AspectRatio {
    MPEG2_ASPECT_RATIO_1_1 = 1,
    MPEG2_ASPECT_RATIO_3_4 = 2,
    MPEG2_ASPECT_RATIO_9_16 = 3,
    MPEG2_ASPECT_RATIO_1_2_21 = 4
} Mpeg2AspectRatio;

typedef struct Mpeg2VideoWindowDescriptor {
    BIT1(horizontalOffset13_6:8);
    BIT2(horizontalOffset5_0:6,
	 verticalOffset13_12:2);
    BIT1(verticalOffset11_4:8);
    BIT2(verticalOffset3_0:4,
	 windowPriority:4);
} Mpeg2VideoWindowDescriptor;

#define	MPEG2_VIDEO_WINDOW_HORIZONTAL_OFFSET(p)			\
			( ((p)->horizontalOffset13_6 << 6)	\
			 | (p)->horizontalOffset5_0)

#define	MPEG2_VIDEO_WINDOW_VERTICAL_OFFSET(p)			\
			(  ((p)->verticalOffset13_12 << 12) 	\
			 | ((p)->verticalOffset11_4 << 4)	\
			 | (p)->verticalOffset3_0)

typedef struct Mpeg2CaDescriptor {
    BIT1(caSystemId15_8:8);
    BIT1(caSystemId7_0:8);
    BIT2(resv:3,
	 caPid12_8:5);
    BIT1(caPid7_0:8);
    /*
     * Followed by private data for rest of descriptor
     */
} Mpeg2CaDescriptor;

#define	MPEG2_CA_SYSTEM_ID(p)					\
			( ((p)->caSystemId15_8 << 8)		\
			 | (p)->caSystemId7_0)

#define	MPEG2_CA_PID(p)						\
			( ((p)->caPid12_8 << 8) | (p)->caPid7_0)

/*
 * Mpeg2Iso639LanguageDescriptor
 *	As many 3 byte language descriptors as will fit in descriptor
 *	Followed by 8-bits of Audio Type
 */
typedef enum Mpeg2AudioType {
    MPEG2_AUDIO_TYPE_CLEAN_EFFECTS = 1,
    MPEG2_AUDIO_TYPE_HEARING_IMPAIRED = 2,
    MPEG2_AUDIO_TYPE_VISUAL_IMPAIRED_COMMENTARY = 3
} Mpeg2AudioType;

typedef struct Mpeg2SystemClockDescriptor {
    BIT3(externalClockReferenceIndicator:1,
	 reserved_1:1,
	 clockAccuracyInteger:6);
    BIT2(clockAccuracyExponent:3,
	 reserved_2:5);
} Mpeg2SystemClockDescriptor;

typedef struct Mpeg2MultiplexBufferUtilizationDescriptor {
    BIT2(mdvValidFlag:1,
	 multiplexDelayVariation15_8:7);
    BIT1(multiplexDelayVariation7_0:8);
    BIT2(multiplexStrategy:3,
	 reserved:5);
} Mpeg2MultiplexBufferUtilizationDescriptor;

#define	MPEG2_MULTIPLEX_BUFFER_UTILIZATION_MULTIPLEX_DELAY_VARIATION(p)	\
			( ((p)->multiplexDelayVariation15_8 << 8)	\
			 | (p)->multiplexDelayVariation7_0)

typedef enum Mpeg2MultiplexStrategy {
    MPEG2_MULTIPLEX_STRATEGY_EARLY = 1,
    MPEG2_MULTIPLEX_STRATEGY_LATE = 2,
    MPEG2_MULTIPLEX_STRATEGY_MIDDLE = 3
} Mpeg2MultiplexStrategy;

typedef struct Mpeg2CopyrightDescriptor {
    BIT1(copyrightIdentifier31_24:8);
    BIT1(copyrightIdentifier23_16:8);
    BIT1(copyrightIdentifier15_8:8);
    BIT1(copyrightIdentifier7_0:8);
    /*
     * Followed by additional copyright info for rest of descriptor
     */
} Mpeg2CopyrightDescriptor;

#define	MPEG2_COPYRIGHT_IDENTIFIER(p)					\
	(   ((p)->copyrightIdentifier31_24 << 24)			\
	  | ((p)->copyrightIdentifier23_16 << 16)			\
	  | ((p)->copyrightIdentifier15_8 << 8)				\
	  |  (p)->copyrightIdentifier7_0				\
	)

typedef struct Mpeg2MaximumBitrateDescriptor {
    BIT2(reserved:2,
	 maximumBitrate21_16:6);
    BIT1(maximumBitrate15_8:8);
    BIT1(maximumBitrate7_0:8);
} Mpeg2MaximumBitrateDescriptor;

#define	MPEG2_MAXIMUM_BITRATE(p)					\
			( ((p)->maximumBitrate21_16 << 16)		\
			 | ((p)->maximumBitrate15_8 << 8)		\
			 | (p)->maximumBitrate7_0)

typedef struct Mpeg2Descriptor {
    u8                  descriptorTag;
    u8                  descriptorLen;
    union {
        char                descriptor[MPEG2_DESCRIPTOR_MAX_LEN];
        Mpeg2VideoStreamDescriptor videoStreamDescriptor;
        Mpeg2AudioStreamDescriptor audioStreamDescriptor;
        Mpeg2HierarchyDescriptor hierarchyDescriptor;
        Mpeg2RegistrationDescriptor registrationDescriptor;
        Mpeg2DataAlignmentDescriptor dataAlignmentDescriptor;
        Mpeg2TargetBackgroundGridDescriptor targetBackgroundGridDescriptor;
        Mpeg2VideoWindowDescriptor videoWindowDescriptor;
        Mpeg2CaDescriptor   caDescriptor;
        Mpeg2SystemClockDescriptor systemClockDescriptor;
        Mpeg2MultiplexBufferUtilizationDescriptor
			    multiplexBufferUtilizationDescriptor;
        Mpeg2CopyrightDescriptor copyrightDescriptor;
        Mpeg2MaximumBitrateDescriptor maximumBitrateDescriptor;
    } un;
} Mpeg2Descriptor;

_FOREIGN_END

#endif	/* _MMP_MPEG2_H */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91猫先生在线| 亚洲精品午夜久久久| 国产精品灌醉下药二区| 亚洲精品国产高清久久伦理二区| 婷婷久久综合九色综合绿巨人 | 91免费看片在线观看| 欧美在线制服丝袜| 精品久久国产老人久久综合| 精品亚洲porn| 99精品欧美一区二区三区小说| 欧美亚洲自拍偷拍| 精品99一区二区| 亚洲另类中文字| 免费观看一级特黄欧美大片| 粉嫩一区二区三区性色av| 欧美性videosxxxxx| 久久久久久一二三区| 夜夜操天天操亚洲| 国产高清久久久| 欧美丰满一区二区免费视频| 国产精品视频麻豆| 美女在线一区二区| 一本久久a久久精品亚洲| 26uuu精品一区二区在线观看| 亚洲三级小视频| 国产精品中文字幕日韩精品| 欧美三级视频在线| 国产午夜亚洲精品午夜鲁丝片| 麻豆精品视频在线观看免费| 中文字幕一区av| 日韩成人免费电影| av不卡免费在线观看| 日韩精品一区二区三区中文不卡 | 性做久久久久久久久| 成人激情视频网站| 日韩午夜精品视频| 夜夜嗨av一区二区三区| 成+人+亚洲+综合天堂| 欧美一区二区三区四区在线观看| 亚洲欧美日韩精品久久久久| 国产激情偷乱视频一区二区三区| 91麻豆精品国产91久久久使用方法 | 五月天激情小说综合| 成人午夜视频网站| 日韩免费一区二区| 亚洲午夜久久久久久久久电影院| 不卡的av在线播放| 久久久蜜桃精品| 激情久久五月天| 91精品国产免费久久综合| 一区二区三区中文字幕| av在线一区二区三区| 欧美经典三级视频一区二区三区| 免费视频最近日韩| 欧美剧情片在线观看| 亚洲老司机在线| 99re热这里只有精品视频| 国产日韩高清在线| 国产精品一区二区在线观看网站| 日韩三级在线观看| 日本午夜精品视频在线观看| 欧美日韩国产免费一区二区| 一级精品视频在线观看宜春院| 99精品热视频| 亚洲免费在线观看视频| jvid福利写真一区二区三区| 中文字幕+乱码+中文字幕一区| 国产精品2024| 国产欧美日韩三区| 国产91对白在线观看九色| 久久久久久久久久电影| 国产美女娇喘av呻吟久久| 久久精品日韩一区二区三区| 国产精品一区在线观看乱码| 久久久蜜桃精品| 国产宾馆实践打屁股91| 国产精品视频麻豆| 91在线高清观看| 亚洲精品日韩专区silk| 欧美伊人久久久久久久久影院| 亚洲国产乱码最新视频| 欧美三级日本三级少妇99| 午夜免费久久看| 日韩欧美你懂的| 韩国精品主播一区二区在线观看| 久久综合九色综合97婷婷| 国产成人在线色| 中文字幕在线不卡国产视频| 在线观看一区二区精品视频| 亚洲一本大道在线| 欧美疯狂做受xxxx富婆| 精品一区二区av| 久久色视频免费观看| 国产传媒久久文化传媒| 中文字幕在线不卡一区| 欧美亚洲精品一区| 日本成人中文字幕在线视频| 日韩视频永久免费| 国产一区二区三区在线观看精品| 日本一区二区成人| 欧美中文字幕亚洲一区二区va在线 | 极品尤物av久久免费看| 中文字幕乱码亚洲精品一区| 色综合久久88色综合天天6| 亚洲成av人综合在线观看| 欧美久久久久久蜜桃| 精品一二三四区| 亚洲天堂网中文字| 欧美一区二区三区性视频| 91精品国产综合久久香蕉的特点 | 久久久久久夜精品精品免费| 99re视频精品| 免费观看91视频大全| 欧美国产一区二区| 欧美日韩一级黄| 国产一区二区三区四| 亚洲精品美腿丝袜| 欧美一级日韩免费不卡| 高清国产一区二区| 亚洲1区2区3区视频| 欧美韩国日本不卡| 91麻豆精品国产| 99re热视频这里只精品| 久久国产夜色精品鲁鲁99| 亚洲欧洲美洲综合色网| 欧美日韩国产另类不卡| 成人一区二区三区中文字幕| 亚洲一区二区五区| 欧美国产禁国产网站cc| 5858s免费视频成人| jlzzjlzz欧美大全| 蜜臀av一区二区三区| 国产精品第四页| 精品国产网站在线观看| 91国内精品野花午夜精品| 国产精品一二三区在线| 性欧美大战久久久久久久久| 国产精品无遮挡| 日韩三级视频在线观看| 91精品1区2区| 丁香五精品蜜臀久久久久99网站 | 久久综合九色综合欧美98| 欧美无人高清视频在线观看| 国产不卡视频在线观看| 人人精品人人爱| 亚洲综合在线视频| 国产精品每日更新在线播放网址| 欧美一区二区三区在线看| 欧洲人成人精品| 91亚洲永久精品| 国产高清不卡二三区| 蜜乳av一区二区| 亚洲成人第一页| 一个色在线综合| 国产精品成人网| 国产日韩欧美激情| 久久中文字幕电影| 精品三级在线看| 日韩视频永久免费| 91精品国产综合久久香蕉麻豆 | 日韩国产欧美三级| 亚洲一二三级电影| 一区二区在线看| 亚洲丝袜精品丝袜在线| 中文在线免费一区三区高中清不卡| 精品福利一二区| 日韩午夜av电影| 91精品国产福利| 欧美猛男gaygay网站| 欧美在线观看一区| 欧美中文字幕不卡| 日本韩国欧美国产| 一本大道久久a久久精二百| 成人高清免费观看| 丁香婷婷综合激情五月色| 国产不卡免费视频| 福利一区福利二区| 成人夜色视频网站在线观看| 国产凹凸在线观看一区二区| 国产iv一区二区三区| 国产.欧美.日韩| 成a人片国产精品| 91蜜桃在线免费视频| 一本久道久久综合中文字幕| 欧美主播一区二区三区美女| 欧美在线观看禁18| 欧美日本在线视频| 欧美一级理论性理论a| 欧美一区二区日韩一区二区| 日韩欧美在线网站| 精品久久久久久久久久久久久久久 | 亚洲人成电影网站色mp4| 亚洲视频小说图片| 亚洲激情图片qvod| 亚洲成人久久影院| 丝袜美腿亚洲综合| 六月婷婷色综合| 国产乱国产乱300精品| 国产精一品亚洲二区在线视频| 成人午夜激情在线|