⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rmasfdemux.h

📁 Sigma SMP8634 Mrua v. 2.8.2.0
💻 H
📖 第 1 页 / 共 2 页
字号:
/***************************************** Copyright © 2001-2003   Sigma Designs, Inc. All Rights Reserved Proprietary and Confidential *****************************************//**  @file   rmasfdemux.h  @brief  Interface to an ASF demux.  Typical use will be like this:    1. declare and allocate (struct asf_demux_state_t*)    2. call asf_demux_init    3. register the callbacks    4. call asf_demux as many times as you need to  @author Pascal Cannenterre  @date   2004-01-20*/#ifndef __RMASFDEMUX_H__#define __RMASFDEMUX_H__#include "../../rmcore/include/rmcore.h"#include "../../rmproperties/include/rmexternalproperties.h"#include "../../rmlibcw/include/rmfile.h"#ifndef RMVDEMUX_LOCAL_RMOBJECT#include "../../rmmpeg2_framework/include/rmdemuxbase.h"#endif // RMVDEMUX_LOCAL_RMOBJECT#include "../../rmcpputils/include/rmobject.h"#ifndef __ENUM_PAYLOADEXTENSIONSYSTEMID__#define __ENUM_PAYLOADEXTENSIONSYSTEMID__enum RMStandardASFPayloadExtensionSytemID {	RMASFPayloadExtensionSystemPixelAspectRatio   = 0x0001,	RMASFPayloadExtensionSystemEncryptionSampleID = 0x0002,	RMASFPayloadExtensionSystemTimecode           = 0x0004,	RMASFPayloadExtensionSystemFileName           = 0x0008,	RMASFPayloadExtensionSystemContentType        = 0x0010,	RMASFPayloadExtensionSystemSampleDuration     = 0x0020,	RMASFPayloadExtensionSystemDVRMSpts           = 0x0040};#endif // __ENUM_PAYLOADEXTENSIONSYSTEMID__typedef void (*RMasfdemuxApplicationSpecificObjectCallback)     (      void *context,      RMuint8 GUID[16],      RMuint8 *Name,      RMuint8 *Data,      RMuint64 Partial_Size,              // bytes      RMuint64 Size                       // bytes      );typedef void (*RMasfdemuxFilePropertiesCallback)     (      void *context,      RMuint64 File_Size,                 // bytes (invalid if Broadcast)      RMuint64 Creation_Date,             // See MSDN Library      RMuint64 Data_Packets_Count,        // (invalid if Broadcast)      RMuint64 Play_Duration,             // 100-ns units (invalid if Broadcast)      RMuint64 Send_Duration,             // 100-ns units (invalid if Broadcast)      RMuint64 Preroll,                   // milliseconds      RMuint32 Minimum_Data_Packet_Size,  // bytes      RMuint32 Maximum_Data_Packet_Size,  // bytes      RMuint32 Maximum_Bitrate,           // bits/s      RMuint8 Broadcast,                  // boolean      RMuint8 Seekable                    // boolean      );typedef void (*RMasfdemuxStreamBitratePropertiesCallback)     (      void *context,      RMuint8 Stream_Number,                  // 1..127      RMuint32 Average_Bitrate                 // bits/s      );typedef void (*RMasfdemuxVideoStreamPropertiesCallback)     (      void *context,      RMuint8 Stream_Number,                  // 1..127      RMuint32 Compression_ID,                 // See MSDN Library      RMuint32 Image_Width,                    // pixels      RMuint32 Image_Height,                   // pixels      RMuint8 *Codec_Specific_Data,      RMuint32 Partial_Codec_Specific_Data_Size,      RMuint32 Codec_Specific_Data_Size        // bytes      );typedef void (*RMasfdemuxAudioStreamPropertiesCallback)     (      void *context,      RMuint8 Stream_Number,                  // 1..127      RMuint16 Codec_ID,                      // see MSDN Library      RMuint16 Number_of_Channels,      RMuint32 Samples_Per_Second,      RMuint32 Average_Number_of_Bytes_Per_Second,      RMuint16 Block_Alignment,      RMuint16 Bits_Per_Sample,      RMuint8 *Codec_Specific_Data,      RMuint32 Partial_Codec_Specific_Data_Size,      RMuint32 Codec_Specific_Data_Size        // bytes      );typedef void (*RMasfdemuxBitrateMutualExclusionCallback)     (      void *context,      RMuint32 mutex_index,      RMuint16 Stream_Numbers_Count,      RMuint8 bitrate_exclusion,              // boolean      RMuint8 Stream_Number                   // 1..127      );typedef void (*RMasfdemuxContentEncryptionCallback)     (      void *context,      RMuint8 *Secret_Data,      RMuint32 Partial_Secret_Data_Length,      RMuint32  Secret_Data_Length,      RMuint8 *Key_ID,                                // ASCII char      RMuint32 Partial_Key_ID_Length,      RMuint32 Key_ID_Length,      RMuint8 *License_URL,                           // ASCII char      RMuint32 Partial_License_URL_Length,      RMuint32 License_URL_Length      );typedef void (*RMasfdemuxExtendedContentEncryptionCallback)     (      void *context,      RMuint8 *Data,      RMuint32 Partial_Data_Size,      RMuint32 Data_Size      );typedef void (*RMasfdemuxPayloadExtensionSystemCallback)     (      void *context,      RMuint16 Stream_Number,      RMuint32 Media_Object_Number,      RMuint8 Media_Object_Number_valid,      // boolean      RMuint16 Payload_Extension_System_ID,   // refers to enum RMStandardASFPayloadExtensionSystemID      RMuint8 *Payload_Extension_System_Data,      RMuint16 Partial_Payload_Extension_System_Data_Size,      RMuint16 Payload_Extension_System_Data_Size,      RMuint16 bytes_left      );typedef void (*RMasfdemuxDigitalSignatureCallback)     (      void *context,      RMuint8 *Signature_Data,      RMuint32 Partial_Signature_Data_Length,      RMuint32 Signature_Data_Length      );typedef void (*RMasfdemuxLanguageListCallback)     (      void *context,      RMuint16 Language_ID_Records_Count,      RMuint16 Language_ID_Records_Index,      RMuint8 *Language_ID,                   // handle as a WCHAR string      RMuint8 Partial_Language_ID_Length,      RMuint8 Language_ID_Length      );typedef void (*RMasfdemuxExtendedStreamPropertiesCallback)     (      void *context,      RMuint16 Stream_Number,                 // 1..127      RMuint16 Stream_Language_ID_Index,      RMuint16 Stream_Name_Count,             // if 0 ignore all the following parameters      RMuint16 Stream_Name_Count_Index,      RMuint16 Language_ID_Index,             // the "name" of the stream is also localized      RMuint8 *Stream_Name,                   // handle as a WCHAR string      RMuint16 Partial_Stream_Name_Length,      RMuint16 Stream_Name_Length,      RMuint16 Payload_Extension_System_Count,// number of payload extension systems for Stream_Number      RMuint16 Payload_Extension_System_ID    // refers to enum RMStandardASFPayloadExtensionSystemID      );typedef void (*RMasfdemuxPayloadCallback)     (      void *context,      RMuint8 Stream_Number,                  // 1..127      RMuint8 *buf,      RMuint32 size,                          // bytes      RMuint32 bytes_left,                    // bytes of payload remaining      RMuint8 Is_Key_Frame,                   // boolean      RMuint32 Media_Object_Number,      RMuint8 Media_Object_Number_valid,      // boolean      RMuint32 Presentation_Time,              // milliseconds      RMuint8 Presentation_Time_valid,         // boolean      RMuint32 Offset_Into_Media_Object       // RMuint32      );typedef void (*RMasfdemuxSimpleIndexEntryCallback)     (      void *context,      RMuint8 simple_index_number,      RMuint32 index_index,      RMuint32 Index_Entries_Count,      RMuint64 Index_Entry_Time_Interval, // 100-ns units      RMuint32 Packet_Number,      RMuint16 Packet_Count      );typedef void (*RMasfdemuxIndexEntryCallback)     (      void *context,      RMuint8 phase_num,      RMuint16 specifier_number,      RMuint32 block_number,      RMuint32 entry_number,      RMuint32 index_entry_time_interval, // 100-ns units      RMuint16 index_specifiers_count,      RMuint32 index_block_count,      RMuint16 stream_number,      RMuint16 index_type,      RMuint32 index_entry_count,      RMuint64 position,      RMuint32 offset      );typedef void (*RMasfdemuxAspectRatioCallback)     (      void *context,      RMuint16 Stream_Num,      RMuint32 aspectRatioX,      RMuint32 aspectRatioY      );typedef struct{	RMuint32 Packet_Number;	RMuint16 Packet_Count;}typeSimpleIndexEntry;typedef struct {	RMuint32 index_Entries_Count;	RMuint64 index_Entry_Time_Interval; // 100-ns units	typeSimpleIndexEntry *entry;}typeSimpleIndex;typedef struct{	RMuint16 stream_number;	RMuint16 index_type;}typeIndexSpecifier;typedef struct{	RMuint32 entry_count;	RMuint64 *position;	RMuint32 **offset;}typedIndexBlock;typedef struct{	RMuint32 time_interval;	RMuint16 specifier_count;	RMuint32 block_count;	typeIndexSpecifier *specifier;	typedIndexBlock *block;}typeIndex;#define _INDEXTYPE_DEFINED_ 1#define MAX_INDEX_NUMBER 10#define APP_SPEC_OBJ_CB        1#define FILE_PROP_CB           (1<<1)#define STREAM_BITRATE_PROP_CB (1<<2)#define VIDEO_PROP_CB          (1<<3)#define AUDIO_PROP_CB          (1<<4)#define BITRATE_MUTEX_CB       (1<<5)#define DRM_CB                 (1<<6)#define EXT_DRM_CB             (1<<7)#define PAYLOAD_EXT_CB         (1<<8)#define DIGITAL_SIGNATURE_CB   (1<<9)#define LANG_LIST_CB           (1<<10)#define EXT_PROP_CB            (1<<11)#define PAYLOAD_CB             (1<<12)#define SIMPLE_INDEX_CB        (1<<13)#define INDEX_CB               (1<<14)#define ASPECT_RATIO_CB        (1<<15)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -