idnits 2.17.1 draft-edwards-payload-rtp-ancillary-01.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 (January 27, 2015) is 3376 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- ** Obsolete normative reference: RFC 4288 (Obsoleted by RFC 6838) -- Obsolete informational reference (is this intentional?): RFC 2326 (Obsoleted by RFC 7826) Summary: 1 error (**), 0 flaws (~~), 1 warning (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 A/V Transport Payloads Workgroup T. Edwards 3 Internet-Draft FOX 4 Intended status: Informational January 27, 2015 5 Expires: July 31, 2015 7 RTP Payload for SMPTE ST 291 Ancillary Data 8 draft-edwards-payload-rtp-ancillary-01 10 Abstract 12 This memo describes an RTP Payload format for SMPTE Ancillary data, 13 as defined by SMPTE ST 291-1. SMPTE Ancillary data is generally used 14 along with professional video formats to carry a range of ancillary 15 data types, including time code, KLV metadata, Closed Captioning, and 16 the Active Format Description (AFD). 18 Status of This Memo 20 This Internet-Draft is submitted in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF). Note that other groups may also distribute 25 working documents as Internet-Drafts. The list of current Internet- 26 Drafts is at http://datatracker.ietf.org/drafts/current/. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 This Internet-Draft will expire on July 31, 2015. 35 Copyright Notice 37 Copyright (c) 2015 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents 42 (http://trustee.ietf.org/license-info) in effect on the date of 43 publication of this document. Please review these documents 44 carefully, as they describe your rights and restrictions with respect 45 to this document. Code Components extracted from this document must 46 include Simplified BSD License text as described in Section 4.e of 47 the Trust Legal Provisions and are provided without warranty as 48 described in the Simplified BSD License. 50 Table of Contents 52 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 53 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 54 2. RTP Payload Format for SMPTE ST 291 Ancillary Data . . . . . 3 55 2.1. Payload Header Definitions . . . . . . . . . . . . . . . 4 56 3. Payload Format Parameters . . . . . . . . . . . . . . . . . . 6 57 3.1. Media Type Definition . . . . . . . . . . . . . . . . . . 6 58 3.2. Mapping to SDP . . . . . . . . . . . . . . . . . . . . . 8 59 3.3. Offer/Answer Model and Declarative Considerations . . . . 8 60 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 61 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 62 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 63 6.1. Normative References . . . . . . . . . . . . . . . . . . 9 64 6.2. Informative References . . . . . . . . . . . . . . . . . 10 65 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 11 67 1. Introduction 69 This memo describes an RTP Payload format for Society of Motion 70 Picture and Television Engineers (SMPTE) Ancillary data (ANC), as 71 defined by SMPTE ST 291-1 [ST291]. ANC can carry a range of data 72 types, including time code, KLV metadata, Closed Captioning, and the 73 Active Format Description (AFD). 75 ANC is generally associated with the carriage of metadata within the 76 bit stream multiplex of a Serial Digital Interface (SDI) such as 77 SMPTE ST 259 [ST259], the standard definition (SD) Serial Digital 78 Interface (with ANC data inserted as per SMPTE ST 125 [ST125]), or 79 SMPTE ST 292-1 [ST292], the 1.5 Gb/s Serial Digital Interface for 80 high definition (HD) television applications. 82 ANC data packet payload definitions for a specific application are 83 specified by a SMPTE Standard, Recommended Practice, or Registered 84 Disclosure Document, or by a document generated by another 85 organization, a company, or an individual (an Entity). When a 86 payload format is registered with SMPTE, an application document 87 describing the payload format is required, and the registered 88 ancillary data packet is identified by a registered data 89 identification word. 91 This RTP payload supports ANC data packets regardless of whether they 92 originate from an SD or HD interface, or if the ANC data packet is 93 from the vertical ancillary space (VANC) or the horizontal ancillary 94 space (HANC), or if the ANC packet is located in the luma (Y) or 95 color-difference (C) channel. Sufficient information is provided to 96 enable the ANC packets at the output of the decoder to be restored to 97 their "original" locations in the serial digital video signal raster 98 (if that is desired). This payload could be used by itself, or used 99 along with a range of RTP video formats. In particular, it has been 100 specifically designed so that it could be used along with RFC 4175 101 [RFC4175] "RTP Payload Format for Uncompressed Video" or RFC 5371 102 [RFC5371] "RTP Payload Format for JPEG 2000 Video Streams." 104 The data model in this document for the ANC data RTP payload is based 105 on the data model of SMPTE ST 2038 [ST2038], which standardizes the 106 carriage of ANC data packets in an MPEG-2 Transport Stream. 108 1.1. Requirements Language 110 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 111 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 112 document are to be interpreted as described in RFC 2119 [RFC2119]. 114 2. RTP Payload Format for SMPTE ST 291 Ancillary Data 116 The format of an RTP packet containing SMPTE ST 291 Ancillary Data is 117 shown below: 119 0 1 2 3 120 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 121 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 122 |V=2|P|X| CC |M| PT | sequence number | 123 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 124 | timestamp | 125 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 126 | synchronization source (SSRC) identifier | 127 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 128 | Extended Sequence Number | Length | 129 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 130 | ANC_Count |C| Line_Number | Horizontal_Offset | 131 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 132 | DID | SDID | Data_Count | R | 133 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 134 | User_Data_Words... 135 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 136 | Checksum_Word |octet_align| (next ANC data packet)... 137 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 139 Figure 1: SMPTE Ancillary Data RTP Packet Format 141 RTP packet header fields SHALL be interpreted as per RFC 3550 142 [RFC3550], with the following specifics: 144 Timestamp: 32 bits 145 The timestamp field is interpreted in a similar fashion to 146 RFC 4175 [RFC4175]: 148 For progressive scan video, the timestamp SHALL denote the 149 sampling instant of the frame to which the ancillary data in 150 the RTP packet belongs. Packets MUST NOT include ANC data 151 from multiple frames, and all packets with ANC data belonging 152 to the same frame MUST have the same timestamp. 154 For interlaced video, the timestamp SHALL denote the sampling 155 instant of the field to which the ancillary data in the RTP 156 packet belongs. Packets MUST NOT include ANC data from 157 multiple fields, and all packets belonging to the same field 158 MUST have the same timestamp. 160 A 90-kHz timestamp SHOULD be used in both cases. If the 161 sampling instant does not correspond to an integer value of 162 the clock, the value SHALL be truncated to the next lowest 163 integer, with no ambiguity. 165 Marker bit (M): 1 bit 166 The marker bit set to "1" SHALL indicate the last RTP packet 167 containing ANC data for a frame (for progressive scan video) 168 or the last RTP packet containing ANC data for a field (for 169 interlaced video). 171 2.1. Payload Header Definitions 173 The ANC RTP payload header fields are defined as: 175 Extended Sequence Number: 16 bits 176 The high order bits of the extended 32-bit sequence number, 177 in network byte order. This is the same as the Extended 178 Sequence Number field in RFC 4175 [RFC4175]. 180 Length: 16 bits 181 Number of octets of the ANC RTP payload, beginning with the 182 "C" bit of the first ANC packet data. 184 ANC_Count: 8 bits 185 This field is the count of the total number of ANC data 186 packets carried in the RTP payload. A single ANC RTP packet 187 payload SHALL NOT carry more than 255 ANC data packets. 189 And for each ANC data packet in the payload, the following header 190 fields MUST be present: 192 C: 1 bit 193 For HD signals, this flag, when set to "1", indicates that 194 the ANC data corresponds to the color-difference channel (C). 195 When set to "0", this flag indicates that the ANC data 196 corresponds to the luma (Y) channel. For SD signals, this 197 flag SHALL be set to "0". 199 Line_Number: 11 bits 200 This field contains the line number (as defined in ITU-R 201 BT.1700 [BT1700] for SD video or ITU-R BT.1120 [BT1120] for 202 HD video) that corresponds to the location of the ANC data 203 packet. The lines that are available to convey ANC data are 204 as defined in the applicable sample structure specification 205 (e.g., SMPTE 274M [ST274], SMPTE ST 296 [ST296], ITU-R BT.656 206 [BT656]) and may be further restricted per SMPTE RP 168 207 [RP168]. A value of 0x7FF (all bits in the field are '1') 208 SHALL indicate that the ANC data is carried without any 209 specific location within the frame. 211 Horizontal_Offset: 12 bits 212 This field defines the location of the ANC packet relative to 213 the start of active video (SAV). 0 means that the Ancillary 214 Data Flag (ADF) of the ANC packet begins immediately 215 following SAV. For HD, this shall be in units of luma sample 216 numbers as specified by the defining document of the 217 particular image (e.g., SMPTE 274M [ST274] for 1920 x 1080 218 active images, or SMPTE ST 296 [ST296] for 1280 x 720 219 progressive active images). For SD, this is in units of 220 (27MHz) multiplexed word numbers, as specified in SMPTE ST 221 125 [ST125]. It should be noted that HANC space in the 222 digital blanking area will generally have higher luma sample 223 numbers than any samples in the active digital line. 225 The fields DID, SDID, Data_Count, User_Data_Words, and Checksum_Word 226 represent the 10-bit words carried in the ANC data packet, as per 227 SMPTE ST 291 [ST291]: 229 DID: 10 bits 230 Data Identification Word 232 SDID: 10 bits 233 Secondary Data Identification Word. Used only for a "Type 2" 234 ANC data packet. Note that in a "Type 1" ANC data packet, 235 this word will actually carry the Data Block Number (DBN). 237 Data_Count: 10 bits 238 The lower 8 bits of Data_Count, corresponding to bits b7 239 (MSB) through b0 (LSB) of the 10-bit Data_Count word, contain 240 the actual count of 10-bit words in User_Data_Words. Bit b8 241 is the even parity for bits b7 through b0, and bit b9 is the 242 inverse (logical NOT) of bit b8. 244 R: 2 reserved bits 245 R is a field of two reserved bits that MUST be set to zero. 247 User_Data_Words: integer number of 10 bit words 248 User_Data_Words (UDW) are used to convey information of a 249 type as identified by the DID word or the DID and SDID words. 250 The number of 10-bit words in the UDW is defined by the 251 Data_Count field. 253 Checksum_Word: 10 bits 254 The Checksum_Word can be used to determine the validity of 255 the ANC data packet from the DID word through the UDW. The 256 lower 8 bits of Checksum_Word, corresponding to bits b8 (MSB) 257 through b0 (LSB) of the 10-bit data count word, contain the 258 actual checksum value. Bit b9 is the inverse (logical NOT) 259 of bit b8. The checksum value is equal to the nine least 260 significant bits of the sum of the nine least significant 261 bits of the DID word, the SDID word, the Data_Count word, and 262 all User_Data_Words in the ANC data packet. The checksum is 263 initialized to zero before calculation, and any end carry 264 resulting from the checksum calculation is ignored. 266 octet_align: 0-7 bits as needed to complete octet 267 Octet align contains enough "0" bits as needed to complete 268 the last octet of an ANC packet's data in the RTP payload. 269 This ensures that the next ANC packet's data in the RTP 270 payload begins octet-aligned despite ANC packets being made 271 up of 10-bit words. If an ANC data packet in the RTP payload 272 ends aligned with an octet, there is no need to add any octet 273 alignment bits. 275 3. Payload Format Parameters 277 This RTP payload format is identified using the video/smpte291 media 278 type, which is registered in accordance with RFC 4855 [RFC4855], and 279 using the template of RFC 4288 [RFC4288]. 281 Note that the Media Type Definition is in the "video" tree due to the 282 expected use of SMPTE ST 291 Ancillary Data with video formats. 284 3.1. Media Type Definition 286 Type name: video 288 Subtype name: smpte291 289 Required parameters: 291 Rate: RTP timestamp clock rate. 293 Optional parameters: 295 DID: Data identification word 297 SDID: Secondary data identification word 299 The presence of the DID and SDID parameters signal that all 300 ancillary data packets of this stream are of a particular type, 301 i.e., labeled with a particular DID and SDID. DID and SDID values 302 are registered with SMPTE as per SMPTE ST 291-1 [ST291]. DID and 303 SDID values should be specified in hexadecimal with a "0x" prefix 304 (such as "0x61"). For example, EIA 608 Closed Caption data would 305 be DID=0x61 and SDID=0x02. If DID and SDID are not specified, 306 then the ancillary data stream may potentially contain ancillary 307 data packets of any type. 309 DID and SDID values can be found on the SMPTE Registry for Data 310 Identification Word Assignments for Registered DIDs at: 312 http://www.smpte-ra.org/S291/S291_reg.html 314 Encoding considerations: This media type is framed and binary; see 315 Section 4.8 of RFC 4288 [RFC4288]. 317 Security considerations: See Section 5 of [this RFC] 319 Interoperability considerations: Data items in smpte291 can be very 320 diverse. Receivers might only be capable of interpreting a subset of 321 the possible data items. Some implementations may care about the 322 location of the ANC data packets in the SDI raster, but other 323 implementations may not care. 325 Published specification: [this RFC] 327 Applications that use this media type: Devices that stream real-time 328 professional video, especially those that must interoperate with 329 legacy serial digital interfaces (SDI). 331 Additional Information: none 333 Person & email address to contact for further information: T. 334 Edwards , IETF Payload Working Group 335 336 Intended usage: COMMON 338 Restrictions on usage: This media type depends on RTP framing, and 339 hence is only defined for transfer via RTP RFC 3550 [RFC3550]. 340 Transport within other framing protocols is not defined at this time. 342 Author: T. Edwards 344 Change controller: IETF Payload working group delegated from the 345 IESG. 347 3.2. Mapping to SDP 349 The mapping of the above defined payload format media type and its 350 parameters SHALL be done according to Section 3 of RFC 4855 351 [RFC4855]. 353 o The type name ("video") goes in SDP "m=" as the media name. 355 o The subtype name ("smpte291") goes in SDP "a=rtpmap" as the 356 encoding name. 358 o The optional DID and SDID parameters go in the SDP "a=fmtp" 359 attribute as a semicolon-separated list of parameter=value pairs. 361 A sample SDP mapping for ancillary data is as follows: 363 m=video 30000 RTP/AVP 112 364 a=rtpmap:112 smpte291/90000 365 a=fmtp:112 DID=0x61; SDID=0x02; 367 In this example, a dynamic payload type 112 is used for ancillary 368 data. The 90 kHz RTP timestamp rate is specified in the "a=rtpmap" 369 line after the subtype. The RTP sampling clock is 90 kHz. In the 370 "a=fmtp:" line, DID 0x61 and SDID 0x02 are specified (which are 371 registered to EIA 608 Closed Caption Data by SMPTE). 373 3.3. Offer/Answer Model and Declarative Considerations 375 When offering SMPTE ST 291 Ancillary data over RTP using the Session 376 Description Protocol (SDP) in an Offer/Answer model [RFC3264] or in a 377 declarative manner (e.g., SDP in the Real-Time Streaming Protocol 378 (RTSP) [RFC2326] or the Session Announcement Protocol (SAP) 379 [RFC2974]), the offerer could provide a list of streams available 380 with specific DID & SDIDs, and the answerer could specify which 381 streams with specific DID & SDIDs it would like to accept. 383 4. IANA Considerations 385 One media type (video/smpte291) has been defined and needs 386 registration in the media types registry. See Section 3.1 388 5. Security Considerations 390 RTP packets using the payload format defined in this specification 391 are subject to the security considerations discussed in the RTP 392 specification [RFC3550] and any applicable RTP profile, e.g., AVP 393 [RFC3551]. 395 To avoid potential buffer overflow attacks, receivers should take 396 care to validate that the ANC packets in the RTP payload are of the 397 appropriate length (using the Data_Count field) for the ANC data type 398 specified by DID & SDID. Also the Checksum_Word should be checked 399 against the ANC data packet to ensure that its data has not been 400 damaged in transit. 402 Some receivers will simply move the ANC data packet bits from the RTP 403 payload into a serial digital interface (SDI). It may still be a 404 good idea for these "re-embedders" to perform the above mentioned 405 validity tests to avoid downstream SDI systems from becoming confused 406 by bad ANC packets, which could be used for a denial of service 407 attack. 409 "Re-embedders" into SDI should also double check that the Line_Number 410 and Horizontal_Offset leads to the ANC data packet being inserted 411 into a legal area to carry ancillary data in the SDI video bit stream 412 of the output video format. 414 6. References 416 6.1. Normative References 418 [BT1120] ITU-R, "BT.1120-8, Digital Interfaces for HDTV Studio 419 Signals", January 2012. 421 [BT1700] ITU-R, "BT.1700, Characteristics of Composite Video 422 Signals for Conventional Analogue Television Systems", 423 February 2005. 425 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 426 Requirement Levels", BCP 14, RFC 2119, March 1997. 428 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 429 Jacobson, "RTP: A Transport Protocol for Real-Time 430 Applications", STD 64, RFC 3550, July 2003. 432 [RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and 433 Registration Procedures", RFC 4288, December 2005. 435 [RFC4855] Casner, S., "Media Type Registration of RTP Payload 436 Formats", RFC 4855, February 2007. 438 [ST291] SMPTE, "ST 291-1:2011, Ancillary Data Packet and Space 439 Formatting", 2011. 441 6.2. Informative References 443 [BT656] ITU-R, "BT.656-5, Interfaces for Digital Component Video 444 Signals in 525-Line and 625-Line Television Systems 445 Operating at the 4:2:2 Level of Recommendation ITU-R 446 BT.601", December 2007. 448 [RFC2326] Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time 449 Streaming Protocol (RTSP)", RFC 2326, April 1998. 451 [RFC2974] Handley, M., Perkins, C., and E. Whelan, "Session 452 Announcement Protocol", RFC 2974, October 2000. 454 [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 455 with Session Description Protocol (SDP)", RFC 3264, June 456 2002. 458 [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and 459 Video Conferences with Minimal Control", STD 65, RFC 3551, 460 July 2003. 462 [RFC4175] Gharai, L. and C. Perkins, "RTP Payload Format for 463 Uncompressed Video", RFC 4175, September 2005. 465 [RFC5371] Futemma, S., Itakura, E., and A. Leung, "RTP Payload 466 Format for JPEG 2000 Video Streams", RFC 5371, October 467 2008. 469 [RP168] SMPTE, "RP 168:2009, Definition of Vertical Interval 470 Switching Point for Synchronous Video Switching", 2009. 472 [ST125] SMPTE, "ST 125:2013, SDTV Component Video Signal Coding 473 4:4:4 and 4:2:2 for 13.5 MHz and 18 MHz Systems", 2013. 475 [ST2038] SMPTE, "ST 2038:2008, Carriage of Ancillary Data Packets 476 in an MPEG-2 Transport Stream", 2008. 478 [ST259] SMPTE, "ST 259:2008, SDTV Digital Signal/Data - Serial 479 Digital Interface", 2008. 481 [ST274] SMPTE, "ST 274:2008, 1920 x 1080 Image Sample Structure, 482 Digital Representation and Digital Timing Reference 483 Sequences for Multiple Picture Rates", 2008. 485 [ST292] SMPTE, "ST 292-1:2012, 1.5 Gb/s Signal/Data Serial 486 Interface", 2012. 488 [ST296] SMPTE, "ST 296:2012, 1280 x 720 Progressive Image 4:2:2 489 and 4:4:4 Sample Structure - Analog and Digital 490 Representation and Analog Interface", 2012. 492 Author's Address 494 Thomas G. Edwards 495 FOX 496 10201 W. Pico Blvd. 497 Los Angeles, CA 90035 498 USA 500 Phone: +1 310 369 6696 501 Email: thomas.edwards@fox.com