idnits 2.17.1 draft-ietf-payload-rtp-ancillary-09.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 : ---------------------------------------------------------------------------- ** There is 1 instance of too long lines in the document, the longest one being 2 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (May 11, 2017) is 2542 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) == Unused Reference: 'RFC2326' is defined on line 747, but no explicit reference was found in the text == Unused Reference: 'RFC2974' is defined on line 752, but no explicit reference was found in the text -- Possible downref: Non-RFC (?) normative reference: ref. 'BT1120' -- Possible downref: Non-RFC (?) normative reference: ref. 'BT1700' -- Possible downref: Non-RFC (?) normative reference: ref. 'ST291' -- Possible downref: Non-RFC (?) normative reference: ref. 'ST352' -- Obsolete informational reference (is this intentional?): RFC 2326 (Obsoleted by RFC 7826) Summary: 1 error (**), 0 flaws (~~), 3 warnings (==), 6 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 May 11, 2017 5 Expires: November 12, 2017 7 RTP Payload for SMPTE ST 291 Ancillary Data 8 draft-ietf-payload-rtp-ancillary-09 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 http://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 November 12, 2017. 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 (http://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 . . . . . . . . . . . . . . . . . . 9 58 3.1. Media Type Definition . . . . . . . . . . . . . . . . . . 10 59 4. SDP Considerations . . . . . . . . . . . . . . . . . . . . . 12 60 4.1. Grouping ANC Streams with other Media Streams . . . . . . 13 61 5. Offer/Answer Model and Declarative Considerations . . . . . . 13 62 5.1. Offer/Answer Model . . . . . . . . . . . . . . . . . . . 13 63 5.2. Declarative SDP Considerations . . . . . . . . . . . . . 14 64 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 65 7. Security Considerations . . . . . . . . . . . . . . . . . . . 14 66 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 67 8.1. Normative References . . . . . . . . . . . . . . . . . . 15 68 8.2. Informative References . . . . . . . . . . . . . . . . . 16 69 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 18 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 SMPTE ST 259 86 [ST259], the standard definition (SD) Serial Digital Interface (with 87 ANC data inserted as per SMPTE ST 125 [ST125]), or SMPTE ST 292-1 88 [ST292], the 1.5 Gb/s Serial Digital Interface for high definition 89 (HD) television applications. 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) or 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 | 147 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 148 | ANC_Count | F | reserved | 149 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 150 |C| Line_Number | Horizontal_Offset |S| StreamNum | 151 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 152 | DID | SDID | Data_Count | 153 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 154 User_Data_Words... 155 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 156 | Checksum_Word | word_align | 157 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 158 |C| Line_Number | Horizontal_Offset |S| StreamNum | 159 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 160 | DID | SDID | Data_Count | 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. 173 Use of the term "network byte order" in the payload format shall be 174 as defined in RFC 791 [RFC0791]. 176 RTP packet header fields SHALL be interpreted as per RFC 3550 177 [RFC3550], with the following specifics: 179 Timestamp: 32 bits 180 The timestamp field is interpreted in a similar fashion to 181 RFC 4175 [RFC4175]: 183 For progressive scan video, the timestamp denotes the 184 sampling instant of the frame to which the ancillary data in 185 the RTP packet belongs. RTP packets MUST NOT include ANC 186 data from multiple frames, and all RTP packets with ANC data 187 belonging to the same frame MUST have the same timestamp. 189 For interlaced video, the timestamp denotes the sampling 190 instant of the field to which the ancillary data in the RTP 191 packet belongs. RTP packets MUST NOT include ANC data from 192 multiple fields, and all RTP packets belonging to the same 193 field MUST have the same timestamp. 195 If the sampling instant does not correspond to an integer 196 value of the clock, the value SHALL be truncated to the next 197 lowest integer, with no ambiguity. Section 3.1 describes 198 recommended timestamp clock rates. 200 Marker bit (M): 1 bit 201 The marker bit set to "1" indicates the last ANC RTP packet 202 for a frame (for progressive scan video) or the last ANC RTP 203 packet for a field (for interlaced video). 205 2.1. Payload Header Definitions 207 The ANC RTP payload header fields are defined as: 209 Extended Sequence Number: 16 bits 210 The high order bits of the extended 32-bit sequence number, 211 in network byte order. This is the same as the Extended 212 Sequence Number field in RFC 4175 [RFC4175]. 214 Length: 16 bits 215 Number of octets of the ANC RTP payload, beginning with the 216 "C" bit of the first ANC packet data, as an unsigned integer 217 in network byte order. Note that all word_align fields 218 contribute to the calculation of the length field. 220 ANC_Count: 8 bits 221 This field is the count of the total number of ANC data 222 packets carried in the RTP payload, as an unsigned integer. 223 A single ANC RTP packet payload cannot carry more than 255 224 ANC data packets. 226 If more than 255 ANC data packets need to be carried in a 227 field or frame, additional RTP packets carrying ANC data MAY 228 be sent with the same RTP timestamp but with different 229 sequence numbers. ANC_Count of 0 indicates that there are no 230 ANC data packets in the payload (for example, for an RTP 231 packet with the marker bit set indicating the last ANC RTP 232 packet in a field/frame, even if that RTP packet carries no 233 actual ANC data packets.) If ANC_Count is 0, Length will 234 also be 0. 236 F: 2 bits 237 These two bits relate to signaling the field specified by the 238 RTP timestamp in an interlaced SDI raster. A value of 0b00 239 indicates that either the video format is progressive or that 240 no field is specified. A value of 0b10 indicates that the 241 timestamp refers to the first field of an interlaced video 242 signal. A value of 0b11 indicates that the timestamp refers 243 to the second field of an interlaced video signal. The value 244 0b01 is not valid. 246 Note that some multi-stream SDI interfaces may use multiple 247 interlaced signal streams to transmit progressive images, in 248 which case the "F" bits would refer to the field of the 249 interlaced stream used for transport of the ANC data packet. 251 reserved: 22 bits 252 The 22 reserved bits of value "0" follow the F field to 253 ensure that the first ANC data packet header field in the 254 payload begins 32-bit word-aligned to ease implementation. 256 For each ANC data packet in the payload, the following ANC data 257 packet header fields MUST be present: 259 C: 1 bit 260 This flag, when set to "1", indicates that the ANC data 261 corresponds to the color-difference data channel (C). When 262 set to "0", this flag indicates either that the ANC data 263 corresponds to the luma (Y) data channel, that the ANC data 264 source is from an SD signal, or that the ANC data source has 265 no specific luma or color-difference data channels. However, 266 if the ANC data type definition specifically requires the use 267 of the C or Y data channel, the C flag SHALL reflect that 268 requirement. 270 Line_Number: 11 bits 271 This field contains the line number (as defined in ITU-R 272 BT.1700 [BT1700] for SD video or ITU-R BT.1120 [BT1120] for 273 HD video) that corresponds to the location of the ANC data 274 packet in an SDI raster as an unsigned integer in network 275 byte order. A value of 0x7FF (all bits in the field are '1') 276 indicates that the ANC data is carried without a specific 277 line location within the field or frame. A value of 0x7FE 278 indicates that the ANC data is intended to be placed into any 279 legal area of VANC, specifically. 281 Note that the lines that are available to convey ANC data are 282 as defined in the applicable sample structure specification 283 (e.g., SMPTE 274M [ST274], SMPTE ST 296 [ST296], ITU-R BT.656 284 [BT656]) and possibly further restricted per SMPTE RP 168 285 [RP168]. 287 Horizontal_Offset: 12 bits 288 This field defines the location of the ANC data packet in an 289 SDI raster relative to the start of active video (SAV) as an 290 unsigned integer in network byte order. A value of 0 means 291 that the Ancillary Data Flag (ADF) of the ANC data packet 292 begins immediately following SAV. For HD, this is in units 293 of luma sample numbers as specified by the defining document 294 of the particular image (e.g., SMPTE 274M [ST274] for 1920 x 295 1080 active images, or SMPTE ST 296 [ST296] for 1280 x 720 296 progressive active images). For SD, this is in units of 297 (27MHz) multiplexed word numbers, as specified in SMPTE ST 298 125 [ST125]. A value of 0xFFF (all bits in the field are 299 '1') indicates that the ANC data is carried without any 300 specific location within the line. A value of 0xFFE 301 indicates that the ANC data is intended to be placed into any 302 legal area of HANC, specifically. 304 Note that HANC space in the digital blanking area will 305 generally have higher luma sample numbers than any samples in 306 the active digital line. 308 S (Data Stream Flag): 1 bit 309 This field indicates whether the data stream number of a 310 multi-stream data mapping used to transport the ANC data 311 packet is specified. If the S bit is '0', then the StreamNum 312 field provides no guidance regarding the source data stream 313 number of the ANC data packet. If the S bit is '1', then the 314 StreamNum field carries information regarding the source data 315 stream number of the ANC data packet. 317 StreamNum: 7 bits 318 If the S (Data Stream Flag) bit is '1', then the StreamNum 319 field MUST carry identification of the source data stream 320 number of the ANC data packet. If the data stream is 321 numbered, then the StreamNum field SHALL carry the number of 322 the source data stream minus one. If the source multi-stream 323 interface does not have numbered data streams, the following 324 numbers SHALL be used in this field: '0' for link A data 325 stream, '1' for link B data stream. For stereoscopic multi- 326 stream interface formats that do not have numbered streams, 327 the following numbers SHALL be used in this field: '0' for 328 left eye stream, '1' for right eye stream. 330 Note that in multi-link SDI connections, the physical link 331 that a particular stream utilizes is typically specified by 332 the interface standard. 334 An ANC data packet with the header fields Line_Number of 0x7FF and 335 Horizontal_Offset of 0xFFF SHALL be considered to be carried without 336 any specific location within the field or frame. 338 For each ANC data packet in the payload, immediately after the ANC 339 data packet header fields, the following data fields MUST be present, 340 with the fields DID, SDID, Data_Count, User_Data_Words, and 341 Checksum_Word representing the 10-bit words carried in the ANC data 342 packet, as per SMPTE ST 291-1 [ST291]: 344 DID: 10 bits 345 Data Identification Word 347 SDID: 10 bits 348 Secondary Data Identification Word. Used only for a "Type 2" 349 ANC data packet. Note that in a "Type 1" ANC data packet, 350 this word will actually carry the Data Block Number (DBN). 352 Data_Count: 10 bits 353 The lower 8 bits of Data_Count, corresponding to bits b7 354 (MSB) through b0 (LSB) of the 10-bit Data_Count word, contain 355 the actual count of 10-bit words in User_Data_Words. Bit b8 356 is the even parity for bits b7 through b0, and bit b9 is the 357 inverse (logical NOT) of bit b8. 359 User_Data_Words: integer number of 10 bit words 360 User_Data_Words (UDW) are used to convey information of a 361 type as identified by the DID word or the DID and SDID words. 362 The number of 10-bit words in the UDW is defined by the 363 Data_Count field. The 10-bit words are carried in order 364 starting with the most significant bit and ending with the 365 least significant bit. 367 Checksum_Word: 10 bits 368 The Checksum_Word can be used to determine the validity of 369 the ANC data packet from the DID word through the UDW. It 370 consists of 10 bits, where bits b8 (MSB) through b0 (LSB) 371 define the checksum value and bit b9 is the inverse (logical 372 NOT) of bit b8. The checksum value is equal to the nine 373 least significant bits of the sum of the nine least 374 significant bits of the DID word, the SDID word, the 375 Data_Count word, and all User_Data_Words in the ANC data 376 packet. The checksum is initialized to zero before 377 calculation, and any end carry resulting from the checksum 378 calculation is ignored. 380 At the end of each ANC data packet in the payload: 382 word_align: bits as needed to complete 32-bit word 383 Word align contains enough "0" bits as needed to complete the 384 last 32-bit word of ANC packet's data in the RTP payload. If 385 an ANC data packet in the RTP payload ends aligned with a 386 word boundary, there is no need to add any word alignment 387 bits. Word align should be used even for the last ANC data 388 packet in an RTP packet. Word align should not be used if 389 there are zero ANC data packets being carried in the RTP 390 packet. 392 When reconstructing an SDI signal based on this payload, it is 393 important to place ANC data packets into the locations indicated by 394 the ANC payload header fields C, Line_Number and Horizontal_Offset, 395 and also to follow the requirements of SMPTE ST 291-1 [ST291] 396 Section 7 "Ancillary Data Space Formatting (Component or Composite 397 Interface)", which include rules on the placement of initial ANC data 398 into allowed spaces as well as the contiguity of ANC data packet 399 sequences within those spaces in order to assure that the resulting 400 ANC data packets in the SDI signal are valid. 402 Senders of this payload SHOULD transmit available ANC data packets as 403 soon as practical to reduce end-to-end latency, especially if 404 receivers will be embedding the received ANC data packet into an SDI 405 signal emission. One millisecond is a reasonable upper bound for the 406 amount of time between when an ANC data packet becomes available to a 407 sender and the emission of an RTP payload containing that ANC data 408 packet. 410 ANC data packets with headers that specify specific location within a 411 field or frame SHOULD be sent in raster scan order, both in terms of 412 packing position within an RTP packet and in terms of transmission 413 time of RTP packets. 415 3. Payload Format Parameters 417 This RTP payload format is identified using the video/smpte291 media 418 type, which is registered in accordance with RFC 4855 [RFC4855], and 419 using the template of RFC 6838 [RFC6838]. 421 Note that the Media Type Definition is in the "video" tree due to the 422 expected use of SMPTE ST 291 Ancillary Data along with video formats. 424 3.1. Media Type Definition 426 Type name: video 428 Subtype name: smpte291 430 Required parameters: 432 Rate: 433 RTP timestamp clock rate. 435 When an ANC RTP stream is to be associated with an RTP video 436 stream, the RTP timestamp rates SHOULD be the same to ensure 437 that ANC data packets can be associated with the appropriate 438 frame or field. Otherwise, a 90 kHz rate SHOULD be used. 440 Note that techniques described in RFC 7273 [RFC7273] can 441 provide a common reference clock for multiple RTP streams 442 intended for synchronized presentation. 444 Optional parameters: 446 DID_SDID: 447 Data identification and Secondary data identification words. 449 The presence of the DID_SDID parameters signals that all 450 ancillary data packets of this stream are of a particular type 451 or types, i.e., labeled with a particular DIDs and SDIDs. DID 452 and SDID values of SMPTE Registered ANC packet types can be 453 found on the at the SMPTE Registry for Data Identification Word 454 Assignments [SMPTE-RA] web site. 456 "Type 1" ANC packets (which do not have SDIDs defined) SHALL be 457 labeled with SDID=0x00. 459 DID and SDID values can be registered with SMPTE as per SMPTE 460 ST 291-1 [ST291]. 462 The absence of the DID_SDID parameter signals that 463 determination of the DID and SDID of ANC packets in the payload 464 can only be achieved through direct inspection of the ANC data 465 packet fields. 467 VPID_Code: 468 This integer parameter specifies the Video Payload ID (VPID) 469 Code of the source interface of ANC data packets using the 470 value from byte 1 of the VPID as defined in SMPTE ST 352 471 [ST352]. The integer SHALL be made with bit 7 of VPID byte 1 472 being the most significant bit, and bit 0 of VPID byte 1 being 473 the least significant bit. For example, 132 shall refer to 474 SMPTE ST 292-1, 720-line video payloads on a 1.5 Gbps (nominal) 475 serial digital interface. 477 Encoding considerations: This media type is framed and binary; see 478 Section 4.8 of RFC 6838 [RFC6838]. 480 Security considerations: See Section 7 of [this RFC] 482 Interoperability considerations: Data items in smpte291 can be very 483 diverse. Receivers might only be capable of interpreting a subset of 484 the possible data items. Some implementations might care about the 485 location of the ANC data packets in the SDI raster, but other 486 implementations might not care. 488 Published specification: [this RFC] 490 Applications that use this media type: Devices that stream real-time 491 professional video, especially those that interoperate with legacy 492 serial digital interfaces (SDI). 494 Additional Information: 496 Deprecated alias names for this type: N/A 498 Magic number(s): N/A 500 File extension(s): N/A 502 Macintosh file type code(s): N/A 504 Person & email address to contact for further information: T. 505 Edwards , IETF Payload Working Group 506 508 Intended usage: COMMON 510 Restrictions on usage: This media type depends on RTP framing, and 511 hence is only defined for transfer via RTP RFC 3550 [RFC3550]. 512 Transport within other framing protocols is not defined at this time. 514 Author: T. Edwards 516 Change controller: The IETF PAYLOAD working group, or other party as 517 designated by the IESG. 519 4. SDP Considerations 521 The mapping of the above defined payload format media type and its 522 parameters SHALL be done according to Section 3 of RFC 4855 523 [RFC4855]. 525 o The type name ("video") goes in SDP "m=" as the media name. 527 o The subtype name ("smpte291") goes in SDP "a=rtpmap" as the 528 encoding name, followed by a slash ("/") and the required rate 529 parameter. 531 o The optional parameters VPID_Code and DID_SDID, when present, are 532 included in the "a=fmtp" attribute line of SDP as a semicolon- 533 separated list of parameter=value pairs. 535 DID and SDID values SHALL be specified in hexadecimal with a "0x" 536 prefix (such as "0x61"). The ABNF as per RFC 5234 [RFC5234] of the 537 DID_SDID optional parameter SHALL be: 539 TwoHex = "0x" 1*2(HEXDIG) 540 DidSdid = "DID_SDID={" TwoHex "," TwoHex "}" 542 For example, EIA 608 Closed Caption data would be signalled with the 543 parameter DID_SDID={0x61,0x02}. If a DID_SDID parameter is not 544 specified, then the ancillary data stream might potentially contain 545 ancillary data packets of any type. 547 Multiple DID_SDID parameters may be specified (separated by 548 semicolons) to signal the presence of multiple types of ANC data in 549 the stream. DID_SDID={0x61,0x02};DID_SDID={0x41,0x05}, for example, 550 signals the presence of EIA 608 Closed Captions as well as AFD/Bar 551 Data. Multiple DID_SDID parameters do not imply any particular 552 ordering of the different types of ANC packets in the stream. 554 If the optional parameter VPID_Code is present, it SHALL be present 555 only once in the semicolon-separated list, taking a single integer 556 value. 558 A sample SDP mapping for ancillary data is as follows: 560 m=video 30000 RTP/AVP 112 561 a=rtpmap:112 smpte291/90000 562 a=fmtp:112 DID_SDID={0x61,0x02};DID_SDID={0x41,0x05};VPID_Code=132 564 In this example, a dynamic payload type 112 is used for ancillary 565 data. The 90 kHz RTP timestamp rate is specified in the "a=rtpmap" 566 line after the subtype. In the "a=fmtp:" line, DID 0x61 and SDID 567 0x02 are specified (registered to EIA 608 Closed Caption Data by 568 SMPTE), and also DID 0x41 and SDID 0x05 (registered to AFD/Bar Data). 569 The VPID_Code is 132 (referring to SMPTE ST 292-1, 720-line video 570 payloads on a 1.5 Gbps serial digital interface). 572 4.1. Grouping ANC Streams with other Media Streams 574 To associate an ANC RTP stream with other media streams, implementers 575 can use the Lip Synchronization (LS) grouping defined in RFC 5888 576 [RFC5888], which states that media streams whose corresponding "m" 577 lines are grouped together using LS semantics are to be played back 578 in a synchronized manner. 580 A sample SDP mapping for grouping ANC data with RFC 4175 video using 581 LS semantics is as follows: 583 v=0 584 o=Al 123456 11 IN IP4 host.example.com 585 s=Professional Networked Media Test 586 i=A test of synchronized video and ANC data 587 t=0 0 588 a=group:LS V1 M1 589 m=video 50000 RTP/AVP 96 590 c=IN IP4 233.252.0.1/255 591 a=rtpmap:96 raw/90000 592 a=fmtp:96 sampling=YCbCr-4:2:2; width=1280; height=720; depth=10 593 a=mid:V1 594 m=video 50010 RTP/AVP 97 595 c=IN IP4 233.252.0.2/255 596 a=rtpmap:97 smpte291/90000 597 a=fmtp:97 DID_SDID={0x61,0x02};DID_SDID={0x41,0x05} 598 a=mid:M1 600 5. Offer/Answer Model and Declarative Considerations 602 5.1. Offer/Answer Model 604 Receivers might wish to receive ANC data streams with specific 605 DID_SDID parameters. Thus when offering ANC data streams using the 606 Session Description Protocol (SDP) in an Offer/Answer model 607 [RFC3264], the offeror MAY provide a list of ANC streams available 608 with specific DID_SDID parameters in the fmtp line. The answerer MAY 609 respond with all or a subset of the streams offered along with fmtp 610 lines with all or a subset of the DID_SDID parameters offered. Or 611 the answerer MAY reject the offer. There are no restrictions on 612 updating DID_SDID parameters in a subsequent offer. 614 5.2. Declarative SDP Considerations 616 For declarative use of SDP, nothing specific is defined for this 617 payload format. The configuration given by the SDP MUST be used when 618 sending and/or receiving media in the session. 620 6. IANA Considerations 622 One media type (video/smpte291) has been defined and needs 623 registration in the media types registry. See Section 3.1 625 7. Security Considerations 627 RTP packets using the payload format defined in this specification 628 are subject to the security considerations discussed in the RTP 629 specification [RFC3550], and in any applicable RTP profile such as 630 RTP/AVP [RFC3551], RTP/AVPF [RFC4585] RTP/SAVP [RFC3711] or RTP/SAVPF 631 [RFC5124]. However, as "Securing the RTP Protocol Framework: Why RTP 632 Does Not Mandate a Single Media Security Solution" [RFC7202] 633 discusses, it is not an RTP payload format's responsibility to 634 discuss or mandate what solutions are used to meet the basic security 635 goals like confidentiality, integrity and source authenticity for RTP 636 in general. This responsibility lays on anyone using RTP in an 637 application. They can find guidance on available security mechanisms 638 and important considerations in Options for Securing RTP Sessions 639 [RFC7201]. Applications SHOULD use one or more appropriate strong 640 security mechanisms. The rest of this security consideration section 641 discusses the security impacting properties of the payload format 642 itself. 644 To avoid potential buffer overflow attacks, receivers SHOULD validate 645 that the ANC data packets in the RTP payload are of the appropriate 646 length (using the Data_Count field) for the ANC data type specified 647 by DID & SDID. Also the Checksum_Word should be checked against the 648 ANC data packet to ensure that its data has not been damaged in 649 transit, but the Checksum_Word is unlikely to provide a payload 650 integrity check in case of a directed attack. 652 Some receivers will simply move the ANC data packet bits from the RTP 653 payload into a serial digital interface (SDI). It might still be a 654 good idea for these "re-embedders" to perform the above mentioned 655 validity tests to avoid downstream SDI systems from becoming confused 656 by bad ANC data packets, which could be used for a denial of service 657 attack. 659 "Re-embedders" into SDI should also double check that the Line_Number 660 and Horizontal_Offset leads to the ANC data packet being inserted 661 into a legal area to carry ancillary data in the SDI video bit stream 662 of the output video format. 664 8. References 666 8.1. Normative References 668 [BT1120] ITU-R, "BT.1120-8, Digital Interfaces for HDTV Studio 669 Signals", January 2012. 671 [BT1700] ITU-R, "BT.1700, Characteristics of Composite Video 672 Signals for Conventional Analogue Television Systems", 673 February 2005. 675 [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, 676 DOI 10.17487/RFC0791, September 1981, 677 . 679 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 680 Requirement Levels", BCP 14, RFC 2119, 681 DOI 10.17487/RFC2119, March 1997, 682 . 684 [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 685 with Session Description Protocol (SDP)", RFC 3264, 686 DOI 10.17487/RFC3264, June 2002, 687 . 689 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 690 Jacobson, "RTP: A Transport Protocol for Real-Time 691 Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, 692 July 2003, . 694 [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and 695 Video Conferences with Minimal Control", STD 65, RFC 3551, 696 DOI 10.17487/RFC3551, July 2003, 697 . 699 [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. 700 Norrman, "The Secure Real-time Transport Protocol (SRTP)", 701 RFC 3711, DOI 10.17487/RFC3711, March 2004, 702 . 704 [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, 705 "Extended RTP Profile for Real-time Transport Control 706 Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, 707 DOI 10.17487/RFC4585, July 2006, 708 . 710 [RFC4855] Casner, S., "Media Type Registration of RTP Payload 711 Formats", RFC 4855, DOI 10.17487/RFC4855, February 2007, 712 . 714 [RFC5124] Ott, J. and E. Carrara, "Extended Secure RTP Profile for 715 Real-time Transport Control Protocol (RTCP)-Based Feedback 716 (RTP/SAVPF)", RFC 5124, DOI 10.17487/RFC5124, February 717 2008, . 719 [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax 720 Specifications: ABNF", STD 68, RFC 5234, 721 DOI 10.17487/RFC5234, January 2008, 722 . 724 [RFC5888] Camarillo, G. and H. Schulzrinne, "The Session Description 725 Protocol (SDP) Grouping Framework", RFC 5888, 726 DOI 10.17487/RFC5888, June 2010, 727 . 729 [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type 730 Specifications and Registration Procedures", BCP 13, 731 RFC 6838, DOI 10.17487/RFC6838, January 2013, 732 . 734 [ST291] SMPTE, "ST 291-1:2011, Ancillary Data Packet and Space 735 Formatting", 2011. 737 [ST352] SMPTE, "ST 352:2013, Payload Identification Codes for 738 Serial Digital Interfaces", 2013. 740 8.2. Informative References 742 [BT656] ITU-R, "BT.656-5, Interfaces for Digital Component Video 743 Signals in 525-Line and 625-Line Television Systems 744 Operating at the 4:2:2 Level of Recommendation ITU-R 745 BT.601", December 2007. 747 [RFC2326] Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time 748 Streaming Protocol (RTSP)", RFC 2326, 749 DOI 10.17487/RFC2326, April 1998, 750 . 752 [RFC2974] Handley, M., Perkins, C., and E. Whelan, "Session 753 Announcement Protocol", RFC 2974, DOI 10.17487/RFC2974, 754 October 2000, . 756 [RFC4175] Gharai, L. and C. Perkins, "RTP Payload Format for 757 Uncompressed Video", RFC 4175, DOI 10.17487/RFC4175, 758 September 2005, . 760 [RFC5371] Futemma, S., Itakura, E., and A. Leung, "RTP Payload 761 Format for JPEG 2000 Video Streams", RFC 5371, 762 DOI 10.17487/RFC5371, October 2008, 763 . 765 [RFC7201] Westerlund, M. and C. Perkins, "Options for Securing RTP 766 Sessions", RFC 7201, DOI 10.17487/RFC7201, April 2014, 767 . 769 [RFC7202] Perkins, C. and M. Westerlund, "Securing the RTP 770 Framework: Why RTP Does Not Mandate a Single Media 771 Security Solution", RFC 7202, DOI 10.17487/RFC7202, April 772 2014, . 774 [RFC7273] Williams, A., Gross, K., van Brandenburg, R., and H. 775 Stokking, "RTP Clock Source Signalling", RFC 7273, 776 DOI 10.17487/RFC7273, June 2014, 777 . 779 [RP168] SMPTE, "RP 168:2009, Definition of Vertical Interval 780 Switching Point for Synchronous Video Switching", 2009. 782 [SMPTE-RA] 783 SMPTE Registration Authority, LLC, "SMPTE ST 291 Ancillary 784 Data Identification Word Assignments for Registered DIDs", 785 2011, . 788 [ST125] SMPTE, "ST 125:2013, SDTV Component Video Signal Coding 789 4:4:4 and 4:2:2 for 13.5 MHz and 18 MHz Systems", 2013. 791 [ST2038] SMPTE, "ST 2038:2008, Carriage of Ancillary Data Packets 792 in an MPEG-2 Transport Stream", 2008. 794 [ST259] SMPTE, "ST 259:2008, SDTV Digital Signal/Data - Serial 795 Digital Interface", 2008. 797 [ST274] SMPTE, "ST 274:2008, 1920 x 1080 Image Sample Structure, 798 Digital Representation and Digital Timing Reference 799 Sequences for Multiple Picture Rates", 2008. 801 [ST292] SMPTE, "ST 292-1:2012, 1.5 Gb/s Signal/Data Serial 802 Interface", 2012. 804 [ST296] SMPTE, "ST 296:2012, 1280 x 720 Progressive Image 4:2:2 805 and 4:4:4 Sample Structure - Analog and Digital 806 Representation and Analog Interface", 2012. 808 Author's Address 810 Thomas G. Edwards 811 FOX 812 10201 W. Pico Blvd. 813 Los Angeles, CA 90035 814 USA 816 Phone: +1 310 369 6696 817 Email: thomas.edwards@fox.com