idnits 2.17.1 draft-heftagaub-rmff-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Cannot find the required boilerplate sections (Copyright, IPR, etc.) in this document. Expected boilerplate is as follows today (2024-04-25) according to https://trustee.ietf.org/license-info : IETF Trust Legal Provisions of 28-dec-2009, Section 6.a: This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 2: Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 3: This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? ** The document seems to lack a 1id_guidelines paragraph about the list of current Internet-Drafts. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories. == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an Abstract section. ** The document seems to lack a Security Considerations section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack an Authors' Addresses Section. ** There are 37 instances of too long lines in the document, the longest one being 3 characters in excess of 72. ** There are 301 instances of lines with control characters in the document. Miscellaneous warnings: ---------------------------------------------------------------------------- -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- Couldn't find a document date in the document -- date freshness check skipped. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) No issues found here. Summary: 12 errors (**), 0 flaws (~~), 1 warning (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Internet Draft Rahul Agarwal, RealNetworks 2 draft-heftagaub-rmff-00.txt Jeff Ayars, RealNetworks 3 Brad Hefta-Gaub, RealNetworks 4 Dale Stammen, RealNetworks 5 March 13, 1998 Expires: August 13, 1998 7 RealMedia File Format 9 STATUS OF THIS MEMO 11 This document is an Internet-Draft. Internet-Drafts are working 12 documents of the Internet Engineering Task Force (IETF), its areas, and 13 its working groups. Note that other groups may also distribute working 14 documents as Internet-Drafts. 16 Internet-Drafts are draft documents valid for a maximum of six months 17 and may be updated, replaced, or obsoleted by other documents at any 18 time. It is inappropriate to use Internet-Drafts as reference material 19 or to cite them other than as ``work in progress''. 21 To learn the current status of any Internet-Draft, please check the 22 ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow 23 Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), 24 munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or 25 ftp.isi.edu (US West Coast). 27 Distribution of this document is unlimited. 29 Abstract: 31 Introduction 33 The RealMedia File Format (RMFF) is designed to be a generic container 34 for streaming media data. This data may then be played back locally or 35 streamed over a network using protocols such as RTSP and RTP. The 36 format is data-independent, allowing any data type to be recorded, 37 manipulated and played back. 39 Note: This document is intended to be informational in nature of what 40 the file format in use by RealNetworks' RealServer and RealPlayer 41 implementations. Though we think that there are a lot of important 42 concepts embodied in this specification, and that it may even make the 43 basis of a "standard" file format, this is intended to eventually end 44 up as an Informational RFC. 46 Copyright Notice: 48 Copyright (C) RealNetworks (1998). All Rights Reserved. 50 R. Agarwal, J. Ayars, B. Hefta-Gaub, D. Stammen Page 1 51 RealMedia File Format (RMFF) 53 1. File Format 54 2. Header Section 55 2.1 RealMedia File Header 56 2.2 Properties Header 57 2.3 Media Properties Header 58 2.4 Content Description Header 59 3. Data Section 60 3.1 Data Chunk Header 61 3.2 Data Packet Header 62 4. Index Section 63 4.1 Index Section Header 64 4.2 Index Record 66 1. File Format 68 RealMedia File Format is a standard tagged file format that uses 69 four-character codes to identify file elements. These codes are 32-bit, 70 represented by a sequence of one to four ASCII alphanumeric characters, 71 padded on the right with space characters. The data type for 72 four-character codes is FOURCC. Use the PN_FOURCC macro to convert four 73 characters into a four-character code. 75 The basic building block of a RealMedia File is a chunk, which is a 76 logical unit of data, such as a stream header or a packet of data. Each 77 chunk contains the following fields: 79 * four-character code specifying the chunk identifier 80 * 32-bit value specifying the size of the data member in the chunk 81 * blob of opaque chunk data 83 R. Agarwal, J. Ayars, B. Hefta-Gaub, D. Stammen Page 2 84 Depending on its type, a top-level chunk can contain subobjects. This 85 document describes the tagged chunks contained in RMFF, as well as the 86 format of the data stored in each type of tagged chunk. 88 Tagged Chunk +----------------------+ 89 | ID | 90 +----------------------+ 91 | Size | 92 +----------------------+ 93 | Data | 94 Tagged Chunk +----------------------+ 95 | ID | 96 +----------------------+ 97 | Size | 98 +----------------------+ 99 | | 100 /+-------------+ | 101 Subchunk / | Data | | 102 \ | | | 103 \| | | 104 /+-------------+ | 105 Subchunk / | Data | | 106 \ | | | 107 \| | | 108 +-------------+ | 109 +----------------------+ 110 Figure 1. Tagged File Formats 112 2. Header Section 114 Because RMFF is a tagged file format, the order of the chunks is not 115 explicit, except that the RealMedia File Header must be the first chunk 116 in the file. However, most applications write the standard headers into 117 the file's header section. The following chunks are typically found in 118 the header section of RMFF: 120 * RealMedia File Header (This must be the first chunk of the file) 121 * Properties Header 122 * Media Properties Header 123 * Content Description Header 125 After the RealMedia File Header object, the other headers may appear in 126 any order. All headers are required except the Index Header. The 127 following sections describe the individual header objects , 129 R. Agarwal, J. Ayars, B. Hefta-Gaub, D. Stammen Page 3 130 2.1 RealMedia File Header 132 Each RealMedia file begins with the RealMedia File Header, which 133 identifies the file as RMFF. There is only one RealMedia File Header in 134 a RealMedia file. Because the contents of the RealMedia File Header may 135 change with different versions of RMFF, the header structure supports an 136 object version field for determining what additional fields exists. The 137 following pseudo-structure describes the RealMedia File Header: 139 RealMedia_File_Header 140 { 141 UINT32 object_id; 142 UINT32 size; 143 UINT16 object_version; 145 if (object_version == 0) 146 { 147 UINT32 file_version; 148 UINT32 num_headers; 149 } 150 } 152 The RealMedia File Header contains the following fields: 154 object_id: 32 bits 155 The unique object ID for a RealMedia File ('.RMF'). All RealMedia 156 files begin with this identifier. 158 size: 32 bits 159 The size of the RealMedia header section in bytes. 161 object_version: 16 bits 162 The version of the RealMedia File Header object. All files created 163 according to this specification have an object_version number of 0 164 (zero). 166 file_version: 32 bits 167 The version of the RealMedia file in PN Version format. All files 168 created according to this specification have a major version number 169 of 1. This member is present on all RealMedia_File_Header objects 170 with an object_version of 0 (zero). 172 num_headers: 32 bits 173 The number of headers in the header section that follow the 174 RealMedia File Header. This member is present on all 175 RealMedia_File_Header objects with an object_version of 0 (zero). 177 R. Agarwal, J. Ayars, B. Hefta-Gaub, D. Stammen Page 4 178 2.2 Properties Header 180 The Properties Header describes the general media properties of the 181 RealMedia File. Components of the RealMedia system use this object to 182 configure themselves for handling the data in the RealMedia file or 183 stream. There is only one Properties Header in a RealMedia file. The 184 following pseudo-structure describes the Properties header: 186 Properties 187 { 188 UINT32 object_id; 189 UINT32 size; 190 UINT16 object_version; 192 if (object_version == 0) 193 { 194 UINT32 max_bit_rate; 195 UINT32 avg_bit_rate; 196 UINT32 max_packet_size; 197 UINT32 avg_packet_size; 198 UINT32 num_packets; 199 UINT32 duration; 200 UINT32 preroll; 201 UINT32 index_offset; 202 UINT32 data_offset; 203 UINT16 num_streams; 204 UINT16 flags; 205 } 206 } 208 The Properties Header contains the following fields: 210 object_id: 32 bits 211 The unique object ID for a Properties Header ('PROP'). 213 size: 32 bits 214 The size of the Properties Header in bytes. 216 object_version: 16 bits 217 The version of the RealMedia File Header object. All files created 218 according to this specification have an object_version number of 0 219 (zero). 221 R. Agarwal, J. Ayars, B. Hefta-Gaub, D. Stammen Page 5 222 max_bit_rate: 32 bits 223 The maximum bit rate required to deliver this file over a network. 224 This member is present on all Properties objects with an 225 object_version of 0 (zero). 227 avg_bit_rate: 32 bits 228 The average bit rate required to deliver this file over a network. 229 This member is present on all Properties objects with an 230 object_version of 0 (zero). 232 max_packet_size: 32 bits 233 The largest packet size (in bytes) in the media data. This member is 234 present on all Properties objects with an object_version of 0 (zero). 236 avg_packet_size: 32 bits 237 The average packet size (in bytes) in the media data. This member 238 is present on all Properties objects with an object_version of 0 239 (zero). 241 num_packets: 32 bits 242 The number of packets in the media data. This member is present on 243 all Properties objects with an object_version of 0 (zero). 245 duration: 32 bits 246 The duration of the file in milliseconds. This member is present on 247 all Properties objects with an object_version of 0 (zero). 249 preroll: 32 bits 250 The number of milliseconds to pre-buffer before starting playback. 251 This member is present on all Properties objects with an 252 object_version of 0 (zero). 254 index_offset: 32 bits 255 The offset in bytes from the start of the file to the start of the 256 index header object. This member is present on all Properties 257 objects with an object_version of 0 (zero). 259 data_offset: 32 bits 260 The offset in bytes from the start of the file to the start of the 261 Data Section. This member is present on all Properties objects with 262 an object_version of 0 (zero). 264 num_streams: 16 bits 265 The number of media streams contained in the file. This member is 266 present on all Properties objects with an object_version of 0 267 (zero). 269 R. Agarwal, J. Ayars, B. Hefta-Gaub, D. Stammen Page 6 270 flags: 16 bits 271 Flags indicating characteristics of the RealMedia file. The 272 following flags are defined: 274 o #define PN_SAVE_ENABLED 0x0001 276 Allows clients to save a copy of the RealMedia file to disk. 278 o #define PN_PERFECT_PLAY_ENABLED 0x0002 280 Allows clients to use extra buffering to ensure Perfect Play. 282 o #define PN_LIVE_BROADCAST 0x0004 284 The RealMedia file is being generated by a live broadcast. 286 2.3 Media Properties Header 288 The Media Properties Header describes the specific media properties of 289 each stream in a RealMedia File. Components of the RealMedia system use 290 this object to configure themselves for handling the media data in each 291 stream. There is one Media Properties Header for each media stream in a 292 RealMedia file. The following pseudo-structure describes the Media 293 Properties header: 295 Media_Properties 296 { 297 UINT32 object_id; 298 UINT32 size; 299 UINT16 object_version; 301 R. Agarwal, J. Ayars, B. Hefta-Gaub, D. Stammen Page 7 302 if (object_version == 0) 303 { 304 UINT16 stream_number; 305 UINT32 max_bit_rate; 306 UINT32 avg_bit_rate; 307 UINT32 max_packet_size; 308 UINT32 avg_packet_size; 309 UINT32 start_time; 310 UINT32 preroll; 311 UINT32 duration; 312 UINT8 stream_name_size; 313 UINT8[stream_name_size] stream_name; 314 UINT8 mime_type_size; 315 UINT8[mime_type_size] mime_type; 316 UINT32 type_specific_len; 317 UINT8[type_specific_len] type_specific_data; 318 } 319 } 321 The Media Properties Header contains the following fields: 323 object_id: 32 bits 324 The unique object ID for a Media Properties Header ('MDPR'). 326 size: 32 bits 327 The size of the Media Properties Header in bytes. 329 object_version: 16 bits 330 The version of the Media Properties Header object. 332 stream_number: 32 bits 333 The stream_number (synchronization source identifier) is a unique 334 value that identifies a media stream. Every data packet that 335 belongs to a media stream contains the same STREAM_NUMBER. The 336 STREAM_NUMBER enables a receiver of multiple media streams to 337 distinguish which packets belong to each media stream. This member 338 is present on all MediaProperties objects with an object_version of 339 0 (zero). 341 max_bit_rate: 32 bits 342 The maximum bit rate required to deliver this stream over a 343 network. This member is present on all MediaProperties objects 344 with an object_version of 0 (zero). 346 R. Agarwal, J. Ayars, B. Hefta-Gaub, D. Stammen Page 8 347 avg_bit_rate: 32 bits 348 The average bit rate required to deliver this stream over a 349 network. This member is present on all MediaProperties objects 350 with an object_version of 0 (zero). 352 max_packet_size: 32 bits 353 The largest packet size (in bytes) in the stream of media 354 data. This member is present on all MediaProperties objects with an 355 object_version of 0 (zero). 357 avg_packet_size: 32 bits 358 The average packet size (in bytes) in the stream of media 359 data. This member is present on all MediaProperties objects with an 360 object_version of 0 (zero). 362 start_time: 32 bits 363 The time offset in milliseconds to add to the timestamp of each 364 packet in a media stream. This member is present on all 365 MediaProperties objects with an object_version of 0 (zero). 367 preroll: 32 bits 368 The time offset in milliseconds to subtract to the timestamp of 369 each packet in a media stream. This member is present on all 370 MediaProperties objects with an object_version of 0 (zero). 372 duration: 32 bits 373 The duration of the stream in milliseconds. This member is present 374 on all MediaProperties objects with an object_version of 0 (zero). 376 stream_name_size: 8 bits 377 The length of the following stream_name field in bytes. This member 378 is present on all MediaProperties objects with an object_version of 379 0 (zero). 381 stream_name: variable length 382 A non-unique alias or name for the stream. This member is present 383 on all MediaProperties objects with an object_version of 0 (zero). 385 mime_type_size: 8 bits 386 The length of the following mime_type field in bytes. This member 387 is present on all MediaProperties objects with an object_version of 388 0 (zero). 390 R. Agarwal, J. Ayars, B. Hefta-Gaub, D. Stammen Page 9 391 mime_type: variable length 392 A non-unique MIME style type/subtype string for data associated 393 with the stream. This member is present on all MediaProperties 394 objects with an object_version of 0 (zero). 396 type_specific_len: 32 bits 397 The length of the following type_specific_data in bytes. The 398 type_specific_data is typically used by the data-type renderer to 399 initialize itself in order to process the media stream. This member 400 is present on all MediaProperties objects with an object_version of 401 0 (zero). 403 type_specific_data: variable length 404 The type_specific_data is typically used by the data-type renderer 405 to initialize itself in order to process the media stream. This 406 member is present on all MediaProperties objects with an 407 object_version of 0 (zero). 409 2.4 Content Description Header 411 The Content Description Header contains the title, author, copyright, 412 and comments information for the RealMedia File. All text data is in 413 ASCII format. The following pseudo-structure describes the Content 414 Description Header: 416 Content_Description 417 { 418 UINT32 object_id; 419 UINT32 size; 420 UINT16 object_version; 422 if (object_version == 0) 423 { 424 UINT16 title_len; 425 UINT8[title_len] title; 426 UINT16 author_len; 427 UINT8[author_len] author; 428 UINT16 copyright_len; 429 UINT8[copyright_len] copyright; 430 UINT16 comment_len; 431 UINT8[comment_len] comment; 432 } 433 } 434 The Content Description Header contains the following fields: 436 object_id: 32 bits 437 The unique object ID for the Content Description Header ('CONT'). 439 size: 32 bits 440 The size of the Content Description Header in bytes. 442 object_version: 16 bits 443 The version of the Content Description Header object. 445 title_len: 16 bits 446 The length of the title data in bytes. Note that the title data is 447 not null terminated. This member is present on all Content 448 Description Header objects with an object_version of 0 (zero). 450 title: variable length 451 An array of ASCII characters that represents the title information 452 for the RealMedia file. This member is present on all Content 453 Description Header objects with an object_version of 0 (zero). 455 author_len: 16 bits 456 The length of the author data in bytes. Note that the author data 457 is not null terminated. This member is present on all Content 458 Description Header objects with an object_version of 0 (zero). 460 author: variable length 461 An array of ASCII characters that represents the author information 462 for the RealMedia file. This member is present on all Content 463 Description Header objects with an object_version of 0 (zero). 465 copyright_len: 16 bits 466 The length of the copyright data in bytes. Note that the copyright 467 data is not null terminated. This member is present on all Content 468 Description Header objects with an object_version of 0 (zero). 470 copyright: variable length 471 An array of ASCII characters that represents the copyright 472 information for the RealMedia file. This member is present on all 473 Content Description Header objects with an object_version of 0 474 (zero). 476 comment_len: 16 bits 477 The length of the comment data in bytes. Note that the comment data 478 is not null terminated. This member is present on all Content 479 Description Header objects with an object_version of 0 (zero). 481 comment: variable length 482 An array of ASCII characters that represents the comment 483 information for the RealMedia file. This member is present on all 484 Content Description Header objects with an object_version of 0 485 (zero). 487 3. Data Section 489 The data section of the RealMedia file consists of a Data Section Header 490 that describes the contents of the data section, followed by a series of 491 interleaved media data packets. Note that the size field of the Data 492 Chunk Header is the size of the entire data chunk, including the media 493 data packets. 495 3.1 Data Chunk Header 497 The Data Chunk Header marks the start of the data chunk. There is 498 usually only one data chunk in a RealMedia file, however for extremely 499 large files there may be multiple data chunks. The following 500 pseudo-structure describes the Data chunk header: 502 Data_Chunk_Header 503 { 504 UINT32 object_id; 505 UINT32 size; 506 UINT16 object_version; 508 if (object_version == 0) 509 { 510 UINT32 num_packets; 511 UINT32 next_data_header; 512 } 513 } 515 The Data Chunk Header contains the following fields: 517 object_id: 32 bits 518 The unique object ID for the Data Chunk Header ('DATA'). 520 size: 32 bits 521 The size of the Data Chunk in bytes. 523 object_version: 16 bits 524 The version of the Data Chunk Header object. 526 num_packets: 32 bits 527 Number of packets in the data chunk. This member is present on all 528 Data Chunk Header objects with an object_version of 0 (zero). 530 next_data_header: 32 bits 531 Offset from start of file to the next data chunk. This field is not 532 typically used. This member is present on all Data Chunk Header 533 objects with an object_version of 0 (zero). 535 3.2 Data Packet Header 537 The data section of a RealMedia file consists of a series of interleaved 538 data objects. Each data object contains a packet of data for a media 539 stream. Because a RealMedia file can contain numerous media streams, 540 data objects for each stream are interleaved. The following 541 pseudo-structure describes the details of each interleaved packet: 543 Media_Packet_Header 544 { 545 UINT16 object_version; 547 if (object_version == 0) 548 { 549 UINT16 length; 550 UINT16 stream_number; 551 UINT32 timestamp; 552 UINT8 reserved; 553 UINT8 flags; 554 UINT8[length] data; 555 } 556 } 558 The Media Packet Header contains the following fields: 560 object_version: 16 bits 561 The version of the Media Packet Header object. 563 length: 16 bits 564 The length of the packet in bytes. This member is present on all 565 Media Packet Header objects with an object_version of 0 (zero). 567 stream_number: 16 bits 568 The 16-bit alias used to associate data packets with their 569 associated Media Properties Header. This member is present on all 570 Media Packet Header objects with an object_version of 0 (zero). 572 timeStamp: 32 bits 573 The timestamp of the packet in milliseconds This member is present 574 on all Media Packet Header objects with an object_version of 0 575 (zero). 577 reserved: 8 bits 578 This is not used. This member is present on all Media Packet Header 579 objects with an object_version of 0 (zero). 581 flags: 16 bits 582 Flags describing the properties of the packet. The following flags 583 are defined: 585 o #define PN_RELIABLE_FLAG 0x0001 587 If this flag is set, the packet is delivered reliably. 589 o #define PN_KEYFRAME_FLAG 0x0002 591 If this flag is set, the packet is part of a key frame or in 592 some way marks a boundary in your data stream. 594 This member is present on all Media Packet Header objects with an 595 object_version of 0 (zero). 597 data: variable length 598 The application-specific media data. This member is present on all 599 Media Packet Header objects with an object_version of 0 (zero). 601 4. Index Section 603 The index section of the RealMedia file consists of a Index Chunk Header 604 that describes the contents of the index section, followed by a series 605 of index records. Note that the size field of the Index Chunk Header is 606 the size of the entire index chunk, including the index records. 608 4.1 Index Section Header 610 The Index Chunk Header marks the start of the index chunk. There is 611 usually one index chunk per stream in a RealMedia file. The following 612 pseudo-structure describes the Index chunk header. 614 Index_Chunk_Header 615 { 616 u_int32 object_id; 617 u_int32 size; 618 u_int16 object_version; 620 if (object_version == 0) 621 { 622 u_int32 num_indices; 623 u_int16 stream_number; 624 u_int32 next_index_header; 625 } 626 } 628 The Index Chunk Header contains the following fields: 630 object_id: 32 bits 631 The unique object ID for the Index Chunk Header ('INDX'). 633 size: 32 bits 634 The size of the Index Chunk in bytes. 636 object_version: 16 bits 637 The version of the Index Chunk Header object. 639 num_indices: 32 bits 640 Number of index records in the index chunk. This member is present 641 on all Index Chunk Header objects with an object_version of 0 642 (zero). 644 stream_number: 16 bits 645 The stream number for which the index records in this index chunk 646 are associated. This member is present on all Index Chunk Header 647 objects with an object_version of 0 (zero). 649 next_index_header: 32 bits 650 Offset from start of file to the next index chunk. This field lets 651 RealMedia file format readers find all the index chunks 652 quickly. This member is present on all Index Chunk Header objects 653 with an object_version of 0 (zero). 655 4.2 Index Record 657 The index section of a RealMedia file consists of a series of index 658 record objects. Each index record contains information for quickly 659 finding a packet of a particular time stamp for a media stream. The 660 following pseudo-structure describes the details of each index record: 662 IndexRecord 663 { 664 UINT16 object_version; 666 if (object_version == 0) 667 { 668 u_int32 timestamp; 669 u_int32 offset; 670 u_int32 packet_count_for_this_packet; 671 } 672 } 674 An Index Record contains the following fields: 676 object_version: 16 bits 677 The version of the Index Record object. 679 timestamp: 32 bits 680 The timestamp in milliseconds associated with this record. This 681 member is present on all Index Record objects with an 682 object_version of 0 (zero). 684 offset: 32 bits 685 The offset from the start of the file at which this packet can be 686 found. This member is present on all Index Record objects with an 687 object_version of 0 (zero). 689 packet_count_for_this_packet: 32 bits 690 The packet number of the packet for this record. This is the same 691 number of packets that would have been seen had the file been 692 played from the beginning to this point. This member is present on 693 all Index Record objects with an object_version of 0 (zero).