OGG.h
上传用户:super_houu
上传日期:2008-09-21
资源大小:4099k
文件大小:3k
源码类别:

DVD

开发平台:

Others

  1. //<<<Sean_1213_2004
  2. /****************************************************************************************
  3.  *  Copyright (c) 2000 ZORAN Corporation, All Rights Reserved
  4.  *  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
  5.  *
  6.  *  File: $Workfile: WMA.h $             
  7.  *
  8.  * Description:
  9.  * ============
  10.  * Management of WMA Clips
  11.  *
  12.  * Log:
  13.  * ====
  14.   ****************************************************************************************
  15.  * Updates:
  16.  ****************************************************************************************
  17.  * 2004/09/05 : created by SeanLiu to support Vorbis OGG bitstream.
  18.  * 
  19.  ****************************************************************************************/
  20. #include "Config.h" // Global Configuration - do not remove!
  21. #ifdef IS_OGG_VORBIS_CAPABLE
  22. #ifndef __OGG_H_
  23. #define __OGG_H_
  24. #include "IncludeSysDefs.h"
  25. #include "PlaycoreFileSysFileSystem.h"
  26. #define OGG_HEADER_TAG_SIZE 6
  27. #define OGG_HEADER_TAG "vorbis"
  28. #define VORBIS_COMMENT_TITLE_TAG "TITLE="
  29. #define VORBIS_COMMENT_TITLE_LEN 6
  30. #define VORBIS_COMMENT_ALBUM_TAG "ALBUM="
  31. #define VORBIS_COMMENT_ALBUM_LEN 6
  32. #define VORBIS_COMMENT_TRACKNUMBER_TAG "TRACKNUMBER="
  33. #define VORBIS_COMMENT_TRACKNUMBER_LEN 12
  34. #define VORBIS_COMMENT_ARTIST_TAG "ARTIST="
  35. #define VORBIS_COMMENT_ARTIST_LEN 7
  36. #define VORBIS_COMMENT_COPYRIGHT_TAG "COPYRIGHT="
  37. #define VORBIS_COMMENT_COPYRIGHT_LEN 10
  38. #define VORBIS_COMMENT_DESCRIPTION_TAG "DESCRIPTION="
  39. #define VORBIS_COMMENT_DESCRIPTION_LEN 12
  40. #define VORBIS_COMMENT_GENRE_TAG "GENRE="
  41. #define VORBIS_COMMENT_GENRE_LEN 6
  42. #define VORBIS_COMMENT_MAX_LEN 12
  43. #define GET_MINIMUM(x,y) ((x > y) ? y : x)
  44. #define OGG_PACKET_TYPE_IDENTIFICATION 0x01
  45. #define OGG_PACKET_TYPE_COMMENT 0x03
  46. #define OGG_PACKET_TYPE_SETUP 0x05
  47. typedef BYTE OGG_PACKET_TYPE;
  48. typedef struct {
  49. UINT32 vorbis_version;
  50. UINT8 audio_channels;
  51. UINT32 audio_sample_rate;
  52. UINT32 bitrate_maximum;
  53. UINT32 bitrate_nominal;
  54. UINT32 bitrate_minimum;
  55. UINT16 blocksize_0:4;
  56. UINT16 blocksize_1:4;
  57. UINT16 framing_flag:1;
  58. } VORBIS_OGG_IDENTIFICATION_HEADER;
  59. #define OGG_TEXT_LENGTH 32
  60. typedef struct  
  61. {
  62. WCHAR szTitle[OGG_TEXT_LENGTH+1];
  63. WCHAR szArtist[OGG_TEXT_LENGTH+1];
  64. WCHAR szAlbum[OGG_TEXT_LENGTH+1];
  65. WCHAR szCopyright[OGG_TEXT_LENGTH+1];
  66. WCHAR szDescription[OGG_TEXT_LENGTH+1];
  67. WCHAR szGenre[OGG_TEXT_LENGTH+1];
  68. } OGG_ExtendInfo;
  69. /////////////////////////////////////////////////////////////////////////////
  70. // Public Services
  71. void OGG_setPresentationTime(UINT8 uPresentationTime);
  72. BOOL OGG_GetOGGInfo(DWORD dwClipStartAddr, WORD i_pExtInfo_sc_handle);
  73. /////////////////////////////////////////////////////////////////////////////
  74. // OGG Clip
  75. /////////////////////////////////////////////////////////////////////////////
  76. /////////////////////////////////////////////////////////////////////////////
  77. // Public Services
  78. BOOL OGGClip_isKindOf(LPCWSTR i_pszFilename);
  79. void OGGClip_construct(struct Clip_TAG *o_pThis, const FindData *i_pFileInfo);
  80. #endif //__OGG_H_
  81. #endif //IS_OGG_VORBIS_CAPABLE
  82. //<<<Sean_1213_2004