idnits 2.17.1 draft-ietf-payload-rtp-ancillary-13.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (December 15, 2017) is 2317 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Possible downref: Non-RFC (?) normative reference: ref. 'BT1120' -- Possible downref: Non-RFC (?) normative reference: ref. 'BT1700' -- Possible downref: Non-RFC (?) normative reference: ref. 'RP168' -- Possible downref: Non-RFC (?) normative reference: ref. 'ST291' -- Possible downref: Non-RFC (?) normative reference: ref. 'ST352' -- Possible downref: Non-RFC (?) normative reference: ref. 'ST424' Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 7 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 A/V Transport Payloads Working Group T. Edwards 3 Internet-Draft FOX 4 Intended status: Standards Track December 15, 2017 5 Expires: June 18, 2018 7 RTP Payload for SMPTE ST 291-1 Ancillary Data 8 draft-ietf-payload-rtp-ancillary-13 10 Abstract 12 This memo describes a real-time transport protocol (RTP) payload 13 format for the Society of Motion Picture and Television Engineers 14 (SMPTE) Ancillary data, as defined by SMPTE ST 291-1. SMPTE 15 Ancillary data is generally used along with professional video 16 formats to carry a range of ancillary data types, including time 17 code, Closed Captioning, and the Active Format Description (AFD). 19 Status of This Memo 21 This Internet-Draft is submitted in full conformance with the 22 provisions of BCP 78 and BCP 79. 24 Internet-Drafts are working documents of the Internet Engineering 25 Task Force (IETF). Note that other groups may also distribute 26 working documents as Internet-Drafts. The list of current Internet- 27 Drafts is at https://datatracker.ietf.org/drafts/current/. 29 Internet-Drafts are draft documents valid for a maximum of six months 30 and may be updated, replaced, or obsoleted by other documents at any 31 time. It is inappropriate to use Internet-Drafts as reference 32 material or to cite them other than as "work in progress." 34 This Internet-Draft will expire on June 18, 2018. 36 Copyright Notice 38 Copyright (c) 2017 IETF Trust and the persons identified as the 39 document authors. All rights reserved. 41 This document is subject to BCP 78 and the IETF Trust's Legal 42 Provisions Relating to IETF Documents 43 (https://trustee.ietf.org/license-info) in effect on the date of 44 publication of this document. Please review these documents 45 carefully, as they describe your rights and restrictions with respect 46 to this document. Code Components extracted from this document must 47 include Simplified BSD License text as described in Section 4.e of 48 the Trust Legal Provisions and are provided without warranty as 49 described in the Simplified BSD License. 51 Table of Contents 53 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 54 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 55 2. RTP Payload Format for SMPTE ST 291 Ancillary Data . . . . . 3 56 2.1. Payload Header Definitions . . . . . . . . . . . . . . . 5 57 3. Payload Format Parameters . . . . . . . . . . . . . . . . . . 11 58 3.1. Media Type Definition . . . . . . . . . . . . . . . . . . 11 59 4. SDP Considerations . . . . . . . . . . . . . . . . . . . . . 13 60 4.1. Grouping ANC Streams with other Media Streams . . . . . . 14 61 5. Offer/Answer Model and Declarative Considerations . . . . . . 15 62 5.1. Offer/Answer Model . . . . . . . . . . . . . . . . . . . 15 63 5.2. Declarative SDP Considerations . . . . . . . . . . . . . 15 64 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 65 7. Security Considerations . . . . . . . . . . . . . . . . . . . 16 66 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 67 8.1. Normative References . . . . . . . . . . . . . . . . . . 16 68 8.2. Informative References . . . . . . . . . . . . . . . . . 18 69 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 19 71 1. Introduction 73 This memo describes a real-time transport protocol (RTP) payload 74 format for the Society of Motion Picture and Television Engineers 75 (SMPTE) Ancillary data (ANC), as defined by SMPTE ST 291-1 [ST291]. 76 ANC data is transmitted in the ancillary space of serial digital 77 video interfaces, the space outside of the active video region of 78 images intended for users to view. Ancillary space roughly 79 corresponds to vertical and horizontal blanking periods of cathode 80 ray tube type displays. ANC can carry a range of data types, 81 including time code, Closed Captioning, and the Active Format 82 Description (AFD). 84 ANC is generally associated with the carriage of metadata within the 85 bit stream of a Serial Digital Interface (SDI), such as the standard 86 definition (SD) Serial Digital Interface, the 1.5 Gb/s Serial Digital 87 Interface for high definition (HD) television applications, or the 3 88 Gb/s Signal/Data Serial Interface (SMPTE ST 259 [ST259], SMPTE ST 89 292-1 [ST292], SMPTE ST 424 [ST424]). 91 ANC data packet payload definitions for a specific application are 92 specified by a SMPTE Standard, Recommended Practice, Registered 93 Disclosure Document, or by a document generated by another 94 organization, a company, or an individual (an Entity). When a 95 payload format is registered with SMPTE, it is identified by a 96 registered data identification word. 98 This memo describes an RTP payload that supports carriage of ANC data 99 packets with origin from any location within any SMPTE defined SDI 100 signal, or even if the ANC packets did not originate in an SDI 101 signal. Sufficient information is provided to enable the ANC data 102 packets at the output of the decoder to be restored to their original 103 locations in the serial digital video signal raster (if that is 104 desired). An optional Media Type parameter allows for signaling of 105 carriage of one or more types of ANC data as specified by Data 106 Identification (DID) and Secondary Data Identification (SDID) words. 107 Another optional Media Type parameter allows for the identification 108 of the Video Payload ID (VPID) Code of the source interface of ANC 109 data packets. 111 Note that the ancillary data flag (ADF) word is not specifically 112 carried in this RTP payload. The ADF might be specified in a 113 document defining an interconnecting digital video interface, 114 otherwise a default ADF is specified by SMPTE ST 291-1 [ST291]. 116 This ANC payload can be used by itself, or used along with a range of 117 RTP video formats. In particular, it has been designed so that it 118 could be used along with RFC 4175 [RFC4175] "RTP Payload Format for 119 Uncompressed Video" or RFC 5371 [RFC5371] "RTP Payload Format for 120 JPEG 2000 Video Streams." 122 The data model in this document for the ANC data RTP payload is based 123 on the data model of SMPTE ST 2038 [ST2038], which standardizes the 124 carriage of ANC data packets in an MPEG-2 Transport Stream. 126 1.1. Requirements Language 128 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 129 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 130 document are to be interpreted as described in RFC 2119 [RFC2119]. 132 2. RTP Payload Format for SMPTE ST 291 Ancillary Data 134 An example of the format of an RTP packet containing SMPTE ST 291 135 Ancillary Data is shown below: 137 0 1 2 3 138 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 139 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 140 |V=2|P|X| CC |M| PT | sequence number | 141 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 142 | timestamp | 143 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 144 | synchronization source (SSRC) identifier | 145 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 146 | Extended Sequence Number | Length=32 | 147 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 148 | ANC_Count=2 | F | reserved | 149 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 150 |C| Line_Number=9 | Horizontal_Offset |S| StreamNum=0 | 151 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 152 | DID | SDID | Data_Count=0x84 | 153 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 154 User_Data_Words... 155 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 156 | Checksum_Word | word_align | 157 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 158 |C| Line_Number=10 | Horizontal_Offset |S| StreamNum=0 | 159 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 160 | DID | SDID | Data_Count=0x105 | 161 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 162 User_Data_Words... 163 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 164 | Checksum_Word |word_align | 165 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 167 Figure 1: SMPTE Ancillary Data RTP Packet Format 169 In this example, two ANC data packets are present. The first has 170 four 10-bit User Data Words, and the second has five 10-bit User Data 171 Words (note that few ANC data packets are this small, thus this 172 example does not reflect actual defined ANC data packets, and does 173 not specifically call out the DIDs and SDIDs). The ANC data packets 174 are located on lines 9 and 10 of the SDI raster. 176 The term "network byte order" in the payload format SHALL refer to 177 the Data Transmission Order as defined in Appendix B of RFC 791 178 [RFC0791]. 180 RTP packet header fields SHALL be interpreted as per RFC 3550 181 [RFC3550], with the following specifics: 183 Timestamp: 32 bits 184 The timestamp field is interpreted in a similar fashion to 185 RFC 4175 [RFC4175]: 187 For progressive scan video, the timestamp denotes the 188 sampling instant of the frame to which the ancillary data in 189 the RTP packet belongs. RTP packets MUST NOT include ANC 190 data from multiple frames, and all RTP packets with ANC data 191 belonging to the same frame MUST have the same timestamp. 193 For interlaced video, the timestamp denotes the sampling 194 instant of the field to which the ancillary data in the RTP 195 packet belongs. RTP packets MUST NOT include ANC data from 196 multiple fields, and all RTP packets belonging to the same 197 field MUST have the same timestamp. 199 If the sampling instant does not correspond to an integer 200 value of the clock, the value SHALL be truncated to the next 201 lowest integer, with no ambiguity. Section 3.1 describes 202 timestamp clock rates. 204 Marker bit (M): 1 bit 205 The marker bit set to "1" indicates the last ANC RTP packet 206 for a frame (for progressive scan video) or the last ANC RTP 207 packet for a field (for interlaced video). 209 2.1. Payload Header Definitions 211 The ANC RTP payload header fields are defined as: 213 Extended Sequence Number: 16 bits 214 The high order bits of the extended 32-bit sequence number, 215 in network byte order. This is the same as the Extended 216 Sequence Number field in RFC 4175 [RFC4175]. 218 Length: 16 bits 219 Number of octets of the ANC RTP payload, beginning with the 220 "C" bit of the first ANC packet data, as an unsigned integer 221 in network byte order. Note that all word_align fields 222 contribute to the calculation of the length field. 224 ANC_Count: 8 bits 225 This field is the count of the total number of ANC data 226 packets carried in the RTP payload, as an unsigned integer. 227 A single ANC RTP packet payload cannot carry more than 255 228 ANC data packets. 230 If more than 255 ANC data packets need to be carried in a 231 field or frame, additional RTP packets carrying ANC data MAY 232 be sent with the same RTP timestamp but with different 233 sequence numbers. ANC_Count of 0 indicates that there are no 234 ANC data packets in the payload (for example, for an RTP 235 packet with the marker bit set indicating the last ANC RTP 236 packet in a field/frame, even if that RTP packet carries no 237 actual ANC data packets.) If ANC_Count is 0, Length will 238 also be 0. 240 F: 2 bits 241 These two bits relate to signaling the field specified by the 242 RTP timestamp in an interlaced SDI raster. A value of 0b00 243 indicates that either the video format is progressive or that 244 no field is specified. A value of 0b10 indicates that the 245 timestamp refers to the first field of an interlaced video 246 signal. A value of 0b11 indicates that the timestamp refers 247 to the second field of an interlaced video signal. The value 248 0b01 is not valid. Receivers SHOULD ignore an ANC data 249 packet with an F field value of 0b01, and SHOULD process any 250 other ANC data packets with valid F field values that are 251 present in the RTP payload. 253 Note that some multi-stream SDI interfaces might use multiple 254 interlaced signal streams to transmit progressive images, in 255 which case the "F" bits would refer to the field of the 256 interlaced stream used for transport of the ANC data packet. 258 reserved: 22 bits 259 The 22 reserved bits of value "0" follow the F field to 260 ensure that the first ANC data packet header field in the 261 payload begins 32-bit word-aligned to ease implementation. 263 For each ANC data packet in the payload, the following ANC data 264 packet header fields MUST be present: 266 C: 1 bit 267 This flag, when set to "1", indicates that the ANC data 268 corresponds to the color-difference data channel (C). When 269 set to "0", this flag indicates either that the ANC data 270 corresponds to the luma (Y) data channel, that the ANC data 271 source is from an SD signal, or that the ANC data source has 272 no specific luma or color-difference data channels. For ANC 273 data from a multi-stream interface source, the C flag SHALL 274 refer to the channel of the stream used to transport the ANC 275 packet. For situations where there is no SDI source, if the 276 ANC data type definition specifically requires the use of the 277 C or Y data channel, the C flag SHALL reflect that 278 requirement. 280 Line_Number: 11 bits 281 This field contains the line number (as defined in ITU-R 282 BT.1700 [BT1700] for SD video or ITU-R BT.1120 [BT1120] for 283 HD video) that corresponds to the location of the ANC data 284 packet in an SDI raster as an unsigned integer in network 285 byte order. 287 The following special Line_Number values code for the 288 location of the ANC data packet to be in certain generic 289 vertical regions of the SDI raster: 291 +-------------+--------------------------------------------------------+ 292 | Line_Number | ANC data packet generic vertical location | 293 +-------------+--------------------------------------------------------+ 294 | 0x7FF | Without specific line location within the field or | 295 | | frame | 296 | | | 297 | 0x7FE | On any line in the range from the second line after | 298 | | the line specified for switching, as defined in SMPTE | 299 | | RP 168 [RP168], to the last line before active video, | 300 | | inclusive | 301 | | | 302 | 0x7FD | On a line number larger than can be represented in 11 | 303 | | bits of this field (if needed for future formats) | 304 +-------------+--------------------------------------------------------+ 306 Note that the lines that are available to convey ANC data are 307 as defined in the applicable sample structure specification 308 (e.g., SMPTE ST 274 [ST274], SMPTE ST 296 [ST296], ITU-R 309 BT.656 [BT656]) and possibly further restricted per SMPTE RP 310 168 [RP168]. 312 In multi-stream interfaces, this field refers to the line 313 number that an ANC packet is carried on within a particular 314 data stream in the interface. 316 Horizontal_Offset: 12 bits 317 This field defines the location of the ANC data packet in an 318 SDI raster relative to the start of active video (SAV, a 319 digital synchronizing signal present in SDI interfaces) as an 320 unsigned integer in network byte order. A value of 0 means 321 that the Ancillary Data Flag (ADF) of the ANC data packet 322 begins immediately following SAV. For HD, this is in units 323 of Y samples as defined in ITU-R BT.1120 [BT1120]. For SD, 324 this is in units of (27MHz) multiplexed word numbers, as 325 specified in SMPTE ST 125 [ST125]. 327 The following special Horizontal_Offset values code for the 328 location of the ANC data packet to be in certain generic 329 horizontal regions of the SDI raster: 331 +-------------+--------------------------------------------------------+ 332 | Horizontal_ | ANC data packet generic horizontal location | 333 | Offset | | 334 +-------------+--------------------------------------------------------+ 335 | 0xFFF | Without specific horizontal location | 336 | | | 337 | 0xFFE | Within horizontal ancillary data space (HANC) as | 338 | | defined in SMPTE ST 291-1 [ST291] | 339 | | | 340 | 0xFFD | Within the ancillary data space located between SAV | 341 | | (Start of Active Video) and EAV (End of Active Video) | 342 | | markers of the serial digital interface | 343 | | | 344 | 0xFFC | Horizontal offset is larger than can be represented in | 345 | | the 12 bits of this field (if needed for future | 346 | | formats, or for certain low frame rate 720p formats) | 347 +-------------+--------------------------------------------------------+ 349 In multi-stream interfaces, this field refers to the 350 horizontal location where an ANC packet is placed on a line 351 carried within a particular data stream in the interface. 353 Note that HANC data space will generally have higher luma 354 sample numbers than any samples in the active digital line. 355 Also note that SMPTE ST 296 [ST296] (1280 x 720 progressive 356 active images) image sampling systems 7 and 8 (1280 x 720 357 progressive @ 24 fps and 1280 x 720 progressive @ 23.98 fps 358 respectively) have a luma sample number maximum of 4124. It 359 is unlikely that an actual implementation would have an ANC 360 packet begin at a Horizontal_Offset beyond 4091 (0xFFB) in 361 these formats, but should that occur, the Horizontal_Offset 362 value 0xFFC can be used to signal a horizontal offset larger 363 than can be represented in the field. Further note that the 364 12-bit field of Horizontal_Offset is kept that size in this 365 memo to maintain easy conversion to/from SMPTE ST 2038 366 [ST2038] which also has a 12-bit Horizontal_Offset field. 368 S (Data Stream Flag): 1 bit 369 This field indicates whether the data stream number of a 370 multi-stream data mapping used to transport the ANC data 371 packet is specified. If the S bit is '0', then the StreamNum 372 field provides no guidance regarding the source data stream 373 number of the ANC data packet. If the S bit is '1', then the 374 StreamNum field carries information regarding the source data 375 stream number of the ANC data packet. 377 StreamNum: 7 bits 378 If the S (Data Stream Flag) bit is '1', then the StreamNum 379 field MUST carry identification of the source data stream 380 number of the ANC data packet. If the data stream is 381 numbered, then the StreamNum field SHALL carry the number of 382 the source data stream minus one. If the source multi-stream 383 interface does not have numbered data streams, the following 384 numbers SHALL be used in this field: '0' for link A data 385 stream, '1' for link B data stream. For stereoscopic multi- 386 stream interface formats that do not have numbered streams, 387 the following numbers SHALL be used in this field: '0' for 388 left eye stream, '1' for right eye stream. 390 Note that in multi-link SDI connections, the physical link 391 that a particular stream utilizes is typically specified by 392 the interface standard. Also note that numbering of data 393 streams is across the interface as a whole. For example, in 394 the SMPTE ST 425-3 dual-link 3 Gb/s interface, the data 395 streams are numbered 1-4 with data streams 1 and 2 on link 1 396 and data streams 3 and 4 on link 2. 398 An ANC data packet with the header fields Line_Number of 0x7FF and 399 Horizontal_Offset of 0xFFF SHALL be considered to be carried without 400 any specific location within the field or frame. 402 For each ANC data packet in the payload, immediately after the ANC 403 data packet header fields, the following data fields MUST be present, 404 with the fields DID, SDID, Data_Count, User_Data_Words, and 405 Checksum_Word representing the 10-bit words carried in the ANC data 406 packet, as per SMPTE ST 291-1 [ST291]: 408 DID: 10 bits 409 Data Identification Word 411 SDID: 10 bits 412 Secondary Data Identification Word. Used only for a "Type 2" 413 ANC data packet. Note that in a "Type 1" ANC data packet, 414 this word will actually carry the Data Block Number (DBN). 416 Data_Count: 10 bits 417 The lower 8 bits of Data_Count, corresponding to bits b7 418 (MSB) through b0 (LSB) of the 10-bit Data_Count word, contain 419 the actual count of 10-bit words in User_Data_Words. Bit b8 420 is the even parity for bits b7 through b0, and bit b9 is the 421 inverse (logical NOT) of bit b8. 423 User_Data_Words: integer number of 10 bit words 424 User_Data_Words (UDW) are used to convey information of a 425 type as identified by the DID word or the DID and SDID words. 426 The number of 10-bit words in the UDW is defined by the 427 Data_Count field. The 10-bit words are carried in order 428 starting with the most significant bit and ending with the 429 least significant bit. 431 Checksum_Word: 10 bits 432 The Checksum_Word can be used to determine the validity of 433 the ANC data packet from the DID word through the UDW. It 434 consists of 10 bits, where bits b8 (MSB) through b0 (LSB) 435 define the checksum value and bit b9 is the inverse (logical 436 NOT) of bit b8. The checksum value is equal to the nine 437 least significant bits of the sum of the nine least 438 significant bits of the DID word, the SDID word, the 439 Data_Count word, and all User_Data_Words in the ANC data 440 packet. The checksum is initialized to zero before 441 calculation, and any end carry resulting from the checksum 442 calculation is ignored. 444 At the end of each ANC data packet in the payload: 446 word_align: bits as needed to complete 32-bit word 447 Word align contains enough "0" bits as needed to complete the 448 last 32-bit word of the ANC packet's data in the RTP payload. 449 If an ANC data packet in the RTP payload ends aligned with a 450 word boundary, there is no need to add any word alignment 451 bits. Word align SHALL be used even for the last ANC data 452 packet in an RTP packet. Word align SHALL NOT be used if 453 there are zero ANC data packets being carried in the RTP 454 packet. 456 When reconstructing an SDI signal based on this payload, it is 457 important to place ANC data packets into the locations indicated by 458 the ANC payload header fields C, Line_Number and Horizontal_Offset, 459 and also to follow the requirements of SMPTE ST 291-1 [ST291] 460 Section 7 "Ancillary Data Space Formatting (Component or Composite 461 Interface)", which include rules on the placement of initial ANC data 462 into allowed spaces as well as the contiguity of ANC data packet 463 sequences within those spaces in order to assure that the resulting 464 ANC data packets in the SDI signal are valid. The optional Media 465 Type parameter VPID_Code can inform receivers of the type of 466 originating SDI interface. For multi-stream originating interfaces, 467 the StreamNum field can provide information regarding which stream an 468 ANC data packet can be placed in to match the ANC data location in 469 the originating SDI interface. 471 Senders of this payload SHOULD transmit available ANC data packets as 472 soon as practical to reduce end-to-end latency, especially if 473 receivers will be embedding the received ANC data packet into an SDI 474 signal emission. One millisecond is a reasonable upper bound for the 475 amount of time between when an ANC data packet becomes available to a 476 sender and the emission of an RTP payload containing that ANC data 477 packet. 479 ANC data packets with headers that specify specific location within a 480 field or frame SHOULD be sent in raster scan order, both in terms of 481 packing position within an RTP packet and in terms of transmission 482 time of RTP packets. 484 3. Payload Format Parameters 486 This RTP payload format is identified using the video/smpte291 media 487 type, which is registered in accordance with RFC 4855 [RFC4855], and 488 using the template of RFC 6838 [RFC6838]. 490 Note that the Media Type Definition is in the "video" tree due to the 491 expected use of SMPTE ST 291 Ancillary Data along with video formats. 493 3.1. Media Type Definition 495 Type name: video 497 Subtype name: smpte291 499 Required parameters: 501 Rate: 502 RTP timestamp clock rate. 504 When an ANC RTP stream is to be associated with an RTP video 505 stream, the RTP timestamp rates SHOULD be the same to ensure 506 that ANC data packets can be associated with the appropriate 507 frame or field. Otherwise, a 90 kHz rate SHOULD be used. 509 Note that techniques described in RFC 7273 [RFC7273] can 510 provide a common reference clock for multiple RTP streams 511 intended for synchronized presentation. 513 Optional parameters: 515 DID_SDID: 516 Data identification and Secondary data identification words. 518 The presence of the DID_SDID parameters signals that all 519 ancillary data packets of this stream are of a particular type 520 or types, i.e., labeled with a particular DIDs and SDIDs. DID 521 and SDID values of SMPTE Registered ANC packet types can be 522 found on the at the SMPTE Registry for Data Identification Word 523 Assignments [SMPTE-RA] web site. 525 "Type 1" ANC packets (which do not have SDIDs defined) SHALL be 526 labeled with SDID=0x00. 528 DID and SDID values can be registered with SMPTE as per SMPTE 529 ST 291-1 [ST291]. 531 The absence of the DID_SDID parameter signals that 532 determination of the DID and SDID of ANC packets in the payload 533 can only be achieved through direct inspection of the ANC data 534 packet fields. 536 The ABNF description of the DID_SDID parameter is described in 537 Section 4 of [this RFC]. 539 VPID_Code: 540 This integer parameter specifies the Video Payload ID (VPID) 541 Code of the source interface of ANC data packets using the 542 value from byte 1 of the VPID as defined in SMPTE ST 352 543 [ST352]. The integer SHALL be made with bit 7 of VPID byte 1 544 being the most significant bit, and bit 0 of VPID byte 1 being 545 the least significant bit. For example, 132 refers to SMPTE ST 546 292-1, 720-line video payloads on a 1.5 Gbps (nominal) serial 547 digital interface. 549 Encoding considerations: This media type is framed and binary; see 550 Section 4.8 of RFC 6838 [RFC6838]. 552 Security considerations: See Section 7 of [this RFC] 554 Interoperability considerations: Data items in smpte291 can be very 555 diverse. Receivers might only be capable of interpreting a subset of 556 the possible data items. Some implementations might care about the 557 location of the ANC data packets in the SDI raster, but other 558 implementations might not care. 560 Published specification: [this RFC] 562 Applications that use this media type: Devices that stream real-time 563 professional video, especially those that interoperate with legacy 564 serial digital interfaces (SDI). 566 Additional Information: 568 Deprecated alias names for this type: N/A 570 Magic number(s): N/A 572 File extension(s): N/A 574 Macintosh file type code(s): N/A 576 Person & email address to contact for further information: T. 577 Edwards , IETF Payload Working Group 578 580 Intended usage: COMMON 582 Restrictions on usage: This media type depends on RTP framing, and 583 hence is only defined for transfer via RTP RFC 3550 [RFC3550]. 584 Transport within other framing protocols is not defined at this time. 586 Author: T. Edwards 588 Change controller: The IETF PAYLOAD working group, or other party as 589 designated by the IESG. 591 4. SDP Considerations 593 The mapping of the above defined payload format media type and its 594 parameters SHALL be done according to Section 3 of RFC 4855 595 [RFC4855]. 597 o The type name ("video") goes in SDP "m=" as the media name. 599 o The subtype name ("smpte291") goes in SDP "a=rtpmap" as the 600 encoding name, followed by a slash ("/") and the rate parameter. 602 o The optional parameters VPID_Code and DID_SDID, when present, are 603 included in the "a=fmtp" attribute line of SDP as a semicolon- 604 separated list of parameter=value pairs. 606 DID and SDID values SHALL be specified in hexadecimal with a "0x" 607 prefix (such as "0x61"). The ABNF as per RFC 5234 [RFC5234] of the 608 DID_SDID optional parameter SHALL be: 610 TwoHex = "0x" 1*2(HEXDIG) 611 DidSdid = "DID_SDID={" TwoHex "," TwoHex "}" 613 For example, EIA 608 Closed Caption data would be signalled with the 614 parameter DID_SDID={0x61,0x02}. If a DID_SDID parameter is not 615 specified, then the ancillary data stream might potentially contain 616 ancillary data packets of any type. 618 Multiple DID_SDID parameters can be specified (separated by 619 semicolons) to signal the presence of multiple types of ANC data in 620 the stream. DID_SDID={0x61,0x02};DID_SDID={0x41,0x05}, for example, 621 signals the presence of EIA 608 Closed Captions as well as AFD/Bar 622 Data. Multiple DID_SDID parameters do not imply any particular 623 ordering of the different types of ANC packets in the stream. 625 If the optional parameter VPID_Code is present, it SHALL be present 626 only once in the semicolon-separated list, taking a single integer 627 value. 629 A sample SDP mapping for ancillary data is as follows: 631 m=video 30000 RTP/AVP 112 632 a=rtpmap:112 smpte291/90000 633 a=fmtp:112 DID_SDID={0x61,0x02};DID_SDID={0x41,0x05};VPID_Code=132 635 In this example, a dynamic payload type 112 is used for ancillary 636 data. The 90 kHz RTP timestamp rate is specified in the "a=rtpmap" 637 line after the subtype. In the "a=fmtp:" line, DID 0x61 and SDID 638 0x02 are specified (registered to EIA 608 Closed Caption Data by 639 SMPTE), and also DID 0x41 and SDID 0x05 (registered to AFD/Bar Data). 640 The VPID_Code is 132 (referring to SMPTE ST 292-1, 720-line video 641 payloads on a 1.5 Gbps serial digital interface). 643 4.1. Grouping ANC Streams with other Media Streams 645 To indicate the association of an ancillary data stream with a 646 particular video stream, implementers MAY group the "m" lines 647 together using Flow Identificaiton ("FID") semantics as defined in 648 RFC 5888 [RFC5888]. 650 A sample SDP mapping for grouping ANC data with RFC 4175 video is as 651 follows: 653 v=0 654 o=Al 123456 11 IN IP4 host.example.com 655 s=Professional Networked Media Test 656 i=A test of synchronized video and ANC data 657 t=0 0 658 a=group:FID V1 M1 659 m=video 50000 RTP/AVP 96 660 c=IN IP4 233.252.0.1/255 661 a=rtpmap:96 raw/90000 662 a=fmtp:96 sampling=YCbCr-4:2:2; width=1280; height=720; depth=10 663 a=mid:V1 664 m=video 50010 RTP/AVP 97 665 c=IN IP4 233.252.0.2/255 666 a=rtpmap:97 smpte291/90000 667 a=fmtp:97 DID_SDID={0x61,0x02};DID_SDID={0x41,0x05} 668 a=mid:M1 670 5. Offer/Answer Model and Declarative Considerations 672 5.1. Offer/Answer Model 674 Receivers might wish to receive ANC data streams with specific 675 DID_SDID parameters. Thus when offering ANC data streams using the 676 Session Description Protocol (SDP) in an Offer/Answer model 677 [RFC3264], the offeror MAY provide a list of ANC streams available 678 with specific DID_SDID parameters in the fmtp line. The answerer MAY 679 respond with all or a subset of the streams offered along with fmtp 680 lines with all or a subset of the DID_SDID parameters offered. Or 681 the answerer MAY set the corresponding port number to 0 to decline 682 the smpte291 stream if not in the same media section as a 683 corresponding video stream, or MAY remove the corresponding payload 684 type if the smpte291 stream is in the same media section as a 685 corresponding video stream. There are no restrictions on updating 686 DID_SDID parameters in a subsequent offer. 688 5.2. Declarative SDP Considerations 690 For declarative use of SDP, nothing specific is defined for this 691 payload format. The configuration given by the SDP MUST be used when 692 sending and/or receiving media in the session. 694 6. IANA Considerations 696 One media type (video/smpte291) has been defined and needs 697 registration in the media types registry. See Section 3.1 699 7. Security Considerations 701 RTP packets using the payload format defined in this specification 702 are subject to the security considerations discussed in the RTP 703 specification [RFC3550], and in any applicable RTP profile such as 704 RTP/AVP [RFC3551], RTP/AVPF [RFC4585] RTP/SAVP [RFC3711] or RTP/SAVPF 705 [RFC5124]. However, as "Securing the RTP Protocol Framework: Why RTP 706 Does Not Mandate a Single Media Security Solution" [RFC7202] 707 discusses, it is not an RTP payload format's responsibility to 708 discuss or mandate what solutions are used to meet the basic security 709 goals like confidentiality, integrity and source authenticity for RTP 710 in general. This responsibility lays on anyone using RTP in an 711 application. They can find guidance on available security mechanisms 712 and important considerations in Options for Securing RTP Sessions 713 [RFC7201]. Applications SHOULD use one or more appropriate strong 714 security mechanisms. The rest of this security consideration section 715 discusses the security impacting properties of the payload format 716 itself. 718 To avoid potential buffer overflow attacks, receivers SHOULD validate 719 that the ANC data packets in the RTP payload are of the appropriate 720 length (using the Data_Count field) for the ANC data type specified 721 by DID & SDID. Also the Checksum_Word SHOULD be checked against the 722 ANC data packet to ensure that its data has not been damaged in 723 transit, but the Checksum_Word is unlikely to provide a payload 724 integrity check in case of a directed attack. 726 Some receivers will simply move the ANC data packet bits from the RTP 727 payload into a serial digital interface (SDI). It might still be a 728 good idea for these "re-embedders" to perform the above mentioned 729 validity tests to avoid downstream SDI systems from becoming confused 730 by bad ANC data packets, which could be used for a denial of service 731 attack. 733 "Re-embedders" into SDI SHOULD also double check that the Line_Number 734 and Horizontal_Offset leads to the ANC data packet being inserted 735 into a legal area to carry ancillary data in the SDI video bit stream 736 of the output video format. 738 8. References 740 8.1. Normative References 742 [BT1120] ITU-R, "BT.1120-8, Digital Interfaces for HDTV Studio 743 Signals", January 2012. 745 [BT1700] ITU-R, "BT.1700, Characteristics of Composite Video 746 Signals for Conventional Analogue Television Systems", 747 February 2005. 749 [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, 750 DOI 10.17487/RFC0791, September 1981, 751 . 753 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 754 Requirement Levels", BCP 14, RFC 2119, 755 DOI 10.17487/RFC2119, March 1997, 756 . 758 [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 759 with Session Description Protocol (SDP)", RFC 3264, 760 DOI 10.17487/RFC3264, June 2002, 761 . 763 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 764 Jacobson, "RTP: A Transport Protocol for Real-Time 765 Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, 766 July 2003, . 768 [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and 769 Video Conferences with Minimal Control", STD 65, RFC 3551, 770 DOI 10.17487/RFC3551, July 2003, 771 . 773 [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. 774 Norrman, "The Secure Real-time Transport Protocol (SRTP)", 775 RFC 3711, DOI 10.17487/RFC3711, March 2004, 776 . 778 [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, 779 "Extended RTP Profile for Real-time Transport Control 780 Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, 781 DOI 10.17487/RFC4585, July 2006, 782 . 784 [RFC4855] Casner, S., "Media Type Registration of RTP Payload 785 Formats", RFC 4855, DOI 10.17487/RFC4855, February 2007, 786 . 788 [RFC5124] Ott, J. and E. Carrara, "Extended Secure RTP Profile for 789 Real-time Transport Control Protocol (RTCP)-Based Feedback 790 (RTP/SAVPF)", RFC 5124, DOI 10.17487/RFC5124, February 791 2008, . 793 [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax 794 Specifications: ABNF", STD 68, RFC 5234, 795 DOI 10.17487/RFC5234, January 2008, 796 . 798 [RFC5888] Camarillo, G. and H. Schulzrinne, "The Session Description 799 Protocol (SDP) Grouping Framework", RFC 5888, 800 DOI 10.17487/RFC5888, June 2010, 801 . 803 [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type 804 Specifications and Registration Procedures", BCP 13, 805 RFC 6838, DOI 10.17487/RFC6838, January 2013, 806 . 808 [RP168] SMPTE, "RP 168:2009, Definition of Vertical Interval 809 Switching Point for Synchronous Video Switching", 2009. 811 [ST291] SMPTE, "ST 291-1:2011, Ancillary Data Packet and Space 812 Formatting", 2011. 814 [ST352] SMPTE, "ST 352:2013, Payload Identification Codes for 815 Serial Digital Interfaces", 2013. 817 [ST424] SMPTE, "ST 424:2012, 3 Gb/s Signal/Data Serial Interface", 818 2012. 820 8.2. Informative References 822 [BT656] ITU-R, "BT.656-5, Interfaces for Digital Component Video 823 Signals in 525-Line and 625-Line Television Systems 824 Operating at the 4:2:2 Level of Recommendation ITU-R 825 BT.601", December 2007. 827 [RFC4175] Gharai, L. and C. Perkins, "RTP Payload Format for 828 Uncompressed Video", RFC 4175, DOI 10.17487/RFC4175, 829 September 2005, . 831 [RFC5371] Futemma, S., Itakura, E., and A. Leung, "RTP Payload 832 Format for JPEG 2000 Video Streams", RFC 5371, 833 DOI 10.17487/RFC5371, October 2008, 834 . 836 [RFC7201] Westerlund, M. and C. Perkins, "Options for Securing RTP 837 Sessions", RFC 7201, DOI 10.17487/RFC7201, April 2014, 838 . 840 [RFC7202] Perkins, C. and M. Westerlund, "Securing the RTP 841 Framework: Why RTP Does Not Mandate a Single Media 842 Security Solution", RFC 7202, DOI 10.17487/RFC7202, April 843 2014, . 845 [RFC7273] Williams, A., Gross, K., van Brandenburg, R., and H. 846 Stokking, "RTP Clock Source Signalling", RFC 7273, 847 DOI 10.17487/RFC7273, June 2014, 848 . 850 [SMPTE-RA] 851 SMPTE Registration Authority, LLC, "SMPTE ST 291 Ancillary 852 Data Identification Word Assignments for Registered DIDs", 853 2011, . 856 [ST125] SMPTE, "ST 125:2013, SDTV Component Video Signal Coding 857 4:4:4 and 4:2:2 for 13.5 MHz and 18 MHz Systems", 2013. 859 [ST2038] SMPTE, "ST 2038:2008, Carriage of Ancillary Data Packets 860 in an MPEG-2 Transport Stream", 2008. 862 [ST259] SMPTE, "ST 259:2008, SDTV Digital Signal/Data - Serial 863 Digital Interface", 2008. 865 [ST274] SMPTE, "ST 274:2008, 1920 x 1080 Image Sample Structure, 866 Digital Representation and Digital Timing Reference 867 Sequences for Multiple Picture Rates", 2008. 869 [ST292] SMPTE, "ST 292-1:2012, 1.5 Gb/s Signal/Data Serial 870 Interface", 2012. 872 [ST296] SMPTE, "ST 296:2012, 1280 x 720 Progressive Image 4:2:2 873 and 4:4:4 Sample Structure - Analog and Digital 874 Representation and Analog Interface", 2012. 876 Author's Address 878 Thomas G. Edwards 879 FOX 880 10201 W. Pico Blvd. 881 Los Angeles, CA 90035 882 USA 884 Phone: +1 310 369 6696 885 Email: thomas.edwards@fox.com