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

📄 dvdmedia.h

📁 从FFMPEG转换而来的H264解码程序,VC下编译..
💻 H
📖 第 1 页 / 共 2 页
字号:
//------------------------------------------------------------------------------
// File: DVDMedia.h
//
// Desc: Contains typedefs and defines necessary for user mode (ring 3) DVD
//       filters and applications.
//
//       This should be included in the DirectShow SDK for user mode filters.
//       The types defined here should be kept in synch with ksmedia.h WDM
//       DDK for kernel mode filters.
//
// Copyright (c) 1997 - 2001, Microsoft Corporation.  All rights reserved.
//------------------------------------------------------------------------------


#ifndef __DVDMEDIA_H__
#define __DVDMEDIA_H__

#ifdef __cplusplus
extern "C"
  {
#endif // __cplusplus

    // -----------------------------------------------------------------------
    // AC-3 definition for the AM_KSPROPSETID_AC3 property set
    // -----------------------------------------------------------------------

    typedef enum {
      AM_PROPERTY_AC3_ERROR_CONCEALMENT = 1,
      AM_PROPERTY_AC3_ALTERNATE_AUDIO = 2,
      AM_PROPERTY_AC3_DOWNMIX = 3,
      AM_PROPERTY_AC3_BIT_STREAM_MODE = 4,
      AM_PROPERTY_AC3_DIALOGUE_LEVEL = 5,
      AM_PROPERTY_AC3_LANGUAGE_CODE = 6,
      AM_PROPERTY_AC3_ROOM_TYPE = 7
    } AM_PROPERTY_AC3;

    typedef struct
      {
        BOOL        fRepeatPreviousBlock;
        BOOL        fErrorInCurrentBlock;
      }
    AM_AC3_ERROR_CONCEALMENT, *PAM_AC3_ERROR_CONCEALMENT;

    typedef struct
      {
        BOOL    fStereo;
        ULONG   DualMode;
      }
    AM_AC3_ALTERNATE_AUDIO, *PAM_AC3_ALTERNATE_AUDIO;

#define AM_AC3_ALTERNATE_AUDIO_1     1
#define AM_AC3_ALTERNATE_AUDIO_2     2
#define AM_AC3_ALTERNATE_AUDIO_BOTH  3

    typedef struct
      {
        BOOL        fDownMix;
        BOOL        fDolbySurround;
      }
    AM_AC3_DOWNMIX, *PAM_AC3_DOWNMIX;

    typedef struct
      {
        LONG        BitStreamMode;
      }
    AM_AC3_BIT_STREAM_MODE, *PAM_AC3_BIT_STREAM_MODE;

#define AM_AC3_SERVICE_MAIN_AUDIO            0
#define AM_AC3_SERVICE_NO_DIALOG             1
#define AM_AC3_SERVICE_VISUALLY_IMPAIRED     2
#define AM_AC3_SERVICE_HEARING_IMPAIRED      3
#define AM_AC3_SERVICE_DIALOG_ONLY           4
#define AM_AC3_SERVICE_COMMENTARY            5
#define AM_AC3_SERVICE_EMERGENCY_FLASH       6
#define AM_AC3_SERVICE_VOICE_OVER            7

    typedef struct
      {
        ULONG   DialogueLevel;
      }
    AM_AC3_DIALOGUE_LEVEL, *PAM_AC3_DIALOGUE_LEVEL;

    typedef struct
      {
        BOOL    fLargeRoom;
      }
    AM_AC3_ROOM_TYPE, *PAM_AC3_ROOM_TYPE;


    // -----------------------------------------------------------------------
    // subpicture definition for the AM_KSPROPSETID_DvdSubPic property set
    // -----------------------------------------------------------------------

    typedef enum {
      AM_PROPERTY_DVDSUBPIC_PALETTE = 0,
      AM_PROPERTY_DVDSUBPIC_HLI = 1,
      AM_PROPERTY_DVDSUBPIC_COMPOSIT_ON = 2  // TRUE for subpicture is displayed
    } AM_PROPERTY_DVDSUBPIC;

    typedef struct _AM_DVD_YUV
      {
        UCHAR   Reserved;
        UCHAR   Y;
        UCHAR   U;
        UCHAR   V;
      }
    AM_DVD_YUV, *PAM_DVD_YUV;

    typedef struct _AM_PROPERTY_SPPAL
      {
        AM_DVD_YUV sppal[16];
      }
    AM_PROPERTY_SPPAL, *PAM_PROPERTY_SPPAL;

    typedef struct _AM_COLCON
      {
UCHAR emph1col:
        4;
UCHAR emph2col:
        4;
UCHAR backcol:
        4;
UCHAR patcol:
        4;
UCHAR emph1con:
        4;
UCHAR emph2con:
        4;
UCHAR backcon:
        4;
UCHAR patcon:
        4;

      }
    AM_COLCON, *PAM_COLCON;

    typedef struct _AM_PROPERTY_SPHLI
      {
        USHORT     HLISS;      //
        USHORT     Reserved;
        ULONG      StartPTM;   // start presentation time in x/90000
        ULONG      EndPTM;     // end PTM in x/90000
        USHORT     StartX;
        USHORT     StartY;
        USHORT     StopX;
        USHORT     StopY;
        AM_COLCON  ColCon;     // color contrast description (4 bytes as given in HLI)
      }
    AM_PROPERTY_SPHLI, *PAM_PROPERTY_SPHLI;

    typedef BOOL AM_PROPERTY_COMPOSIT_ON, *PAM_PROPERTY_COMPOSIT_ON;



    // -----------------------------------------------------------------------
    // copy protection definitions
    // -----------------------------------------------------------------------

    // AM_UseNewCSSKey for the dwTypeSpecificFlags in IMediaSample2 to indicate
    // the exact point in a stream after which to start applying a new CSS key.
    // This is typically sent on an empty media sample just before attempting
    // to renegotiate a CSS key.
#define AM_UseNewCSSKey    0x1

    //
    // AM_KSPROPSETID_CopyProt property set definitions
    //
    typedef enum {
      AM_PROPERTY_DVDCOPY_CHLG_KEY = 0x01,
      AM_PROPERTY_DVDCOPY_DVD_KEY1 = 0x02,
      AM_PROPERTY_DVDCOPY_DEC_KEY2 = 0x03,
      AM_PROPERTY_DVDCOPY_TITLE_KEY = 0x04,
      AM_PROPERTY_COPY_MACROVISION = 0x05,
      AM_PROPERTY_DVDCOPY_REGION = 0x06,
      AM_PROPERTY_DVDCOPY_SET_COPY_STATE = 0x07,
      AM_PROPERTY_DVDCOPY_DISC_KEY = 0x80
    } AM_PROPERTY_DVDCOPYPROT;

    typedef struct _AM_DVDCOPY_CHLGKEY
      {
        BYTE ChlgKey[10];
        BYTE Reserved[2];
      }
    AM_DVDCOPY_CHLGKEY, *PAM_DVDCOPY_CHLGKEY;

    typedef struct _AM_DVDCOPY_BUSKEY
      {
        BYTE BusKey[5];
        BYTE Reserved[1];
      }
    AM_DVDCOPY_BUSKEY, *PAM_DVDCOPY_BUSKEY;

    typedef struct _AM_DVDCOPY_DISCKEY
      {
        BYTE DiscKey[2048];
      }
    AM_DVDCOPY_DISCKEY, *PAM_DVDCOPY_DISCKEY;

    typedef struct AM_DVDCOPY_TITLEKEY
      {
        ULONG KeyFlags;
        ULONG Reserved1[2];
        UCHAR TitleKey[6];
        UCHAR Reserved2[2];
      }
    AM_DVDCOPY_TITLEKEY, *PAM_DVDCOPY_TITLEKEY;

    typedef struct _AM_COPY_MACROVISION
      {
        ULONG MACROVISIONLevel;
      }
    AM_COPY_MACROVISION, *PAM_COPY_MACROVISION;

    typedef struct AM_DVDCOPY_SET_COPY_STATE
      {
        ULONG DVDCopyState;
      }
    AM_DVDCOPY_SET_COPY_STATE, *PAM_DVDCOPY_SET_COPY_STATE;

    typedef enum {
      AM_DVDCOPYSTATE_INITIALIZE = 0,
      AM_DVDCOPYSTATE_INITIALIZE_TITLE = 1,   // indicates we are starting a title
      // key copy protection sequence
      AM_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED = 2,
      AM_DVDCOPYSTATE_AUTHENTICATION_REQUIRED = 3,
      AM_DVDCOPYSTATE_DONE = 4
    } AM_DVDCOPYSTATE;

    typedef enum {
      AM_MACROVISION_DISABLED = 0,
      AM_MACROVISION_LEVEL1 = 1,
      AM_MACROVISION_LEVEL2 = 2,
      AM_MACROVISION_LEVEL3 = 3
    } AM_COPY_MACROVISION_LEVEL, *PAM_COPY_MACROVISION_LEVEL;


    // CSS region stucture

⌨️ 快捷键说明

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