Offset | Size | Name | Notes |
0 | 2 | version | 5 |
2 | 2 | unknown | Always 1; possibly a version number specifically for this header |
4 | 4 | struct_size | Right now, 32. The meaning is a guess; treated as a magic number by the RTV code |
8 | 4 | num_channels_1 | The number of ReplayChannels in the GuideSnapshot file |
12 | 4 | num_channels_2 | In a valid exported GuideSnapshot file, will always match num_channels_1. This copy is incremented while the ReplayShow records are being exported, to keep track of how far in the process the export is. |
16 | 4 | group_data_offset | Offset in bytes from the beginning of the file for the start of the GroupData record. Should always be 32 for this version of the file format. |
20 | 4 | channel_offset | Offset in bytes from the beginning of the file for the beginning of the first ReplayChannel record. Should always be 808 for this version of the file format. |
24 | 4 | show_offset | Offset in bytes from the beginning of the file for the beginning of the first ReplayShow record. Should always be 808 + 624 * num_channels_1 for this version of the file format. |
28 | 4 | GuideFlags | This isn't initialized before being written; undefined bits should be ignored (for this version of the file format, at least) |
Offset | Size | Name | Notes |
0 | 512 | replay_show | A ReplayShow structure; for time-based recordings, the time, channel, etc. come from here |
512 | 60 | replay_theme | A ReplayTheme structure; for theme-based and zone-based recordings, the search parameters come from here. |
572 | 4 | channel_id | channel ID/channel creation timestamp |
576 | 4 | category | The category 'tab' this channel is in, as a bitmask (1 << category index) |
580 | 4 | channel_type | The over-all ChannelType (Seems Incorrect!) |
584 | 4 | keep | The number of episodes to keep |
588 | 4 | quality | The QualitySetting |
592 | 4 | stored | The number of episodes currently stored |
596 | 1 | days_of_week | The DaysOfWeek to record on |
597 | 1 | after_padding | The number of minutes extra to record after the scheduled end of the program |
598 | 1 | before_padding | The number of minutes extra to record before the scheduled end of the program |
599 | 1 | flags | ChannelFlags -- not well understood |
600 | 8 | timereserved | Total Time Allocated (New) |
608 | 48 | label | A NUL-terminated string to use as a label for this channel |
656 | 32 | u32 reserved_for_don[7] | This seems to have been all given back to Don (?). this is actually an 8-member array, not 7, with seconds_allocated reserved_for_don[7], but since it's used it's no longer reserved, no matter what the actual source apparently says |
688 | 8 | space_allocated | The number of disk bytes reserved; 0 for non-guaranteed |
696 | 4 | unknown1 |
700 | 4 | unknown2 |
704 | 4 | unknown3 |
708 | 4 | unknown4 |
N/A | 4 | seconds_allocated | This seems to be ... missing (or changed to timereserved) |
Offset | Size | Name | Notes |
0 | 4 | channel_id | The channel_id for the ReplayChannel this show is part of |
4 | 4 | show_id | The primary key for this ReplayShow; also, the time the recording started, as a TimeT |
8 | 4 | input_source | The InputSource for this recording |
12 | 4 | quality | The QualitySetting for this recording |
16 | 4 | guaranteed | 0 = no, 0xffffffff = yes |
20 | 4 | show_flags | The ShowFlags for this recording |
24 | 80 | channel | the Channel for this recording |
104 | 272 | program | the Program for this recording |
376 | 4 | ivs_status | IvsStatus value (Always 1 in a ReplayShow snapshot, 0 or 2 in a ReplayChannel snapshot.) |
380 | 4 | remote_guide_id | Always 0 in a snapshot; the show_id on the original ReplayTV, for IVS or LAN shows |
384 | 4 | download_id | Valid only during actual transfer of index or mpeg file; format/meaning still unknown |
388 | 4 | times_sent | The number of times this program has been sent with InternetVideoSharing |
392 | 4 | seconds | The actual duration of the recording |
396 | 4 | GOP_count | The number of GOPs in the recording |
400 | 4 | GOP_highest | Always 0 in a snapshot; the index of the highest # GOP viewed |
404 | 4 | GOP_last | Always 0 in a snapshot; the index of the most recent GOP viewed |
408 | 4 | checkpointed | 0 in possibly-out-of-date in-memory copies; always -1 in snapshots |
412 | 4 | intact | 0xffffffff in a snapshot; 0 means a deleted show |
416 | 4 | upgrade_flag | Set only when upgrading software versions, and only in the ReplayShow structure inside a show-based ReplayChannel; if set, the upgrade procedure computes fields such as ReplayChannel's space_allocated, based on the actual space used. Cleared again before the upgrade is finished, so this is never exposed. |
420 | 4 | sort_hint | The (0-based) index of this show in its ReplayChannel; this is, for the 4th show listed in a given ReplayChannel, this is 3 |
424 | 2 | unused1 | not preserved when padding values are set, presumably not used |
426 | 1 | before_padding | Minutes of padding recorded before the scheduled start of the show |
427 | 1 | after_padding | Minutes of padding recorded after the scheduled start of the show |
428 | 8 | index_size | size of .ndx file. for IVS-downloading/downloaded shows |
436 | 8 | mpeg_size | size of .mpg file, for IVS-downloading/downloaded shows |
444 | 68 | reserved | |