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

📄 files_private.h

📁 linux下的MPEG1
💻 H
📖 第 1 页 / 共 2 页
字号:
#endif  } GNUC_PACKED PsdSelectionListFlags;#define PsdSelectionListFlags_SIZEOF 1typedef struct _PsdSelectionListDescriptor_tag {  uint8_t type;  PsdSelectionListFlags flags;  uint8_t nos;  uint8_t bsn;  uint16_t lid;  uint16_t prev_ofs;  uint16_t next_ofs;  uint16_t return_ofs;  uint16_t default_ofs;  uint16_t timeout_ofs;  uint8_t totime;  uint8_t loop;  uint16_t itemid;  uint16_t ofs[EMPTY_ARRAY_SIZE]; /* variable length */  /* PsdSelectionListDescriptorExtended */} GNUC_PACKED _PsdSelectionListDescriptor;#define PsdSelectionListDescriptor_SIZEOF 20typedef struct {  struct psd_area_t prev_area;  struct psd_area_t next_area;  struct psd_area_t return_area;  struct psd_area_t default_area;  struct psd_area_t area[EMPTY_ARRAY_SIZE]; /* variable length */} GNUC_PACKED PsdSelectionListDescriptorExtended;#define PsdSelectionListDescriptorExtended_SIZEOF 16typedef struct {  uint8_t type;  uint16_t command_count;  uint16_t lid;  uint16_t command[EMPTY_ARRAY_SIZE]; /* variable length */} GNUC_PACKED PsdCommandListDescriptor;#define PsdCommandListDescriptor_SIZEOF 5typedef struct  _PsdPlayListDescriptor_tag {  uint8_t type;  uint8_t noi;  /* number of items */  uint16_t lid; /* list id: high-bit means this list is rejected in                   the LOT (also, can't use 0) */  uint16_t prev_ofs; /* previous list offset (0xffff disables) */  uint16_t next_ofs; /* next list offset (0xffff disables) */  uint16_t return_ofs; /* return list offset (0xffff disables) */  uint16_t ptime; /* play time in 1/15 s, 0x0000 meaning full item */  uint8_t  wtime; /* delay after, in seconds, if 1 <= wtime <= 60 wait                     is wtime else if 61 <= wtime <= 254 wait is                     (wtime-60) * 10 + 60 else wtime == 255 wait is                     infinite  */  uint8_t  atime; /* auto pause wait time calculated same as wtime,                     used for each item in list if the auto pause flag                     in a sector is true */  uint16_t itemid[EMPTY_ARRAY_SIZE]; /* item number                                           0 <= n <= 1      - play nothing                                           2 <= n <= 99     - play track n                                         100 <= n <= 599    - play entry                                                       (n - 99) from entries                                                       table to end of track                                         600 <= n <= 999    - reserved                                        1000 <= n <= 2979   - play segment                                                       play item (n - 999)                                        2980 <= n <= 0xffff - reserved */} GNUC_PACKED _PsdPlayListDescriptor;#define PsdPlayListDescriptor_SIZEOF 14/* TRACKS.SVD   SVCD\TRACKS.SVD is a mandatory file which describes the numbers and types   of MPEG tracks on the disc. *//* SVDTrackContent indicates the audio/video content of an MPEG Track */typedef struct {#if defined(BITFIELD_LSBF)  bitfield_t audio : 2;                      /* Audio Content                                             0x00 : No MPEG audio stream                                             0x01 : One MPEG{1|2} audio stream                                             0x02 : Two MPEG{1|2} streams                                             0x03 : One MPEG2 multi-channel                                                    audio stream with                                                    extension */  bitfield_t video : 3;                      /* Video Content                                             0x00 : No MPEG video                                             0x03 : NTSC video                                             0x07 : PAL video */  bool       reserved1 : 1;                  /* Reserved, must be zero */  bitfield_t ogt : 2;                        /* 0x0 - no OGT substream                                              0x1 - sub-stream 0 available                                             0x2 - sub-stream 0 & 1 available                                             0x3 - all OGT sub-substreams                                                    available */#else  bitfield_t ogt : 2;  bool       reserved1 : 1;  bitfield_t video : 3;  bitfield_t audio : 2;#endif} GNUC_PACKED SVDTrackContent;#define SVDTrackContent_SIZEOF 1/* The file contains a series of structures, one for each   track, which indicates the track's playing time (in sectors, not actually   real time) and contents. */#define TRACKS_SVD_FILE_ID  "TRACKSVD"#define TRACKS_SVD_VERSION  0x01typedef struct {  char file_id[sizeof(TRACKS_SVD_FILE_ID)-1];  /* == "TRACKSVD" */  uint8_t version;  /* == 0x01 */  uint8_t reserved; /* Reserved, must be zero */  uint8_t tracks; /* number of MPEG tracks */  msf_t playing_time[EMPTY_ARRAY_SIZE]; /* per track, BCD coded                                           mm:ss:ff */} GNUC_PACKED TracksSVD;#define TracksSVD_SIZEOF 11typedef struct {  /* TracksSVD tracks_svd; */  SVDTrackContent contents[1]; /* should be [], but C99 doesn't allow it                                  indicates track contents */} GNUC_PACKED TracksSVD2;#define TracksSVD2_SIZEOF SVDTrackContent_SIZEOF/* VCD30 tracks svd */typedef struct {  char file_id[sizeof(TRACKS_SVD_FILE_ID)-1]; /* == "TRACKSVD" */  uint8_t version; /* == 0x01 */  uint8_t reserved; /* Reserved, must be zero */  uint8_t tracks; /* number of MPEG tracks */  struct {    msf_t cum_playing_time; /* BCD coded mm:ss:ff */    uint8_t ogt_info;    uint8_t audio_info;  } GNUC_PACKED track[EMPTY_ARRAY_SIZE];} GNUC_PACKED TracksSVD_v30;#define TracksSVD_v30_SIZEOF 11/* SEARCH.DAT   This file defines where the scan points are. It covers all mpeg tracks   together. A scan point at time T is the nearest I-picture in the MPEG   stream to the given time T. Scan points are given at every half-second   for the entire duration of the disc. */#define SEARCH_FILE_ID        "SEARCHSV"#define SEARCH_VERSION        0x01#define SEARCH_TIME_INTERVAL  0x01typedef struct {  char file_id[sizeof(SEARCH_FILE_ID)-1]; /* = "SEARCHSV" */  uint8_t version; /* = 0x01 */  uint8_t reserved; /* Reserved, must be zero */  uint16_t scan_points; /* the number of scan points */  uint8_t time_interval; /* The interval of time in                            between scan points, in units                            of 0.5 seconds, must be 0x01 */  msf_t points[EMPTY_ARRAY_SIZE]; /* The series of scan points */} GNUC_PACKED SearchDat;#define SearchDat_SIZEOF 13/* SPICONTX.SVD  */#define SPICONTX_FILE_ID      "SPICONSV"#define SPICONTX_VERSION      0x01typedef struct {  char file_id[sizeof(SPICONTX_FILE_ID)-1]; /* = "SPICONSV" */  uint8_t version; /* = 0x01 */  uint8_t reserved; /* Reserved, must be zero */  struct {    uint8_t ogt_info;    uint8_t audio_info;  } GNUC_PACKED spi[MAX_SEGMENTS];  uint8_t reserved2[126]; /* 0x00 */} GNUC_PACKED SpicontxSvd;#define SpicontxSvd_SIZEOF (2*ISO_BLOCKSIZE)/* SCANDATA.DAT for VCD 2.0 */#define SCANDATA_FILE_ID "SCAN_VCD"#define SCANDATA_VERSION_VCD2 0x02#define SCANDATA_VERSION_SVCD 0x01typedef struct {  char file_id[sizeof(SCANDATA_FILE_ID)-1]; /* = "SCAN_VCD" */  uint8_t version; /* = 0x02 */  uint8_t reserved; /* Reserved, must be zero */  uint16_t scan_points; /* the number of scan points */  msf_t points[EMPTY_ARRAY_SIZE]; /* actual scan points                                               points[time(iframe)/0.5] */} GNUC_PACKED ScandataDat_v2;#define ScandataDat_v2_SIZEOF 12/* SCANDATA.DAT for SVCD   This file fulfills much the same purpose of the SEARCH.DAT file except   that this file is mandatory only if the System Profile Tag of the   INFO.SVD file is 0x01 (HQ-VCD) and also that it contains sector addresses   also for each video Segment Play Items in addition to the regular MPEG   tracks. */typedef struct {  char file_id[sizeof(SCANDATA_FILE_ID)-1]; /* = "SCAN_VCD" */  uint8_t version; /* = 0x01 */  uint8_t reserved; /* Reserved, must be zero */  uint16_t scandata_count; /* number of 3-byte entries in                                              the table */  uint16_t track_count; /* number of mpeg tracks on disc */  uint16_t spi_count; /* number of consecutively recorded                                              play item segments (as opposed                                              to the number of segment play                                              items). */  msf_t cum_playtimes[EMPTY_ARRAY_SIZE]; /* cumulative playing                                              time up to track                                              N. Track time just wraps                                              at 99:59:74 */} GNUC_PACKED ScandataDat1;#define ScandataDat1_SIZEOF 16typedef struct {  /* ScandataDat head; */  uint16_t spi_indexes[1]; /* should be [], but C doesn't allow that;                              Indexes into the following scandata                              table */} GNUC_PACKED ScandataDat2;#define ScandataDat2_SIZEOF sizeof(uint16_t)typedef struct {  /* ScandataDat2 head; */  uint16_t mpegtrack_start_index; /* Index into the                                     following scandata table                                     where the MPEG track                                     scan points start */    /* The scandata table starts here */  struct {    uint8_t track_num;   /* Track number as in TOC */    uint16_t table_offset;   /* Index into scandata table */  } GNUC_PACKED mpeg_track_offsets[EMPTY_ARRAY_SIZE];} GNUC_PACKED ScandataDat3;#define ScandataDat3_SIZEOF 2typedef struct {  /* ScandataDat3 head; */  msf_t scandata_table[1]; /* should be [] but C99 doesn't allow that */} GNUC_PACKED ScandataDat4;#define ScandataDat4_SIZEOF msf_t_SIZEOFPRAGMA_END_PACKED#endif /* __VCD_FILES_PRIVATE_H__ *//*  * Local variables: *  c-file-style: "gnu" *  tab-width: 8 *  indent-tabs-mode: nil * End: */

⌨️ 快捷键说明

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