libklvanc
 All Classes Files Functions Variables Enumerations Macros
Classes | Macros | Functions
vanc-smpte_12_2.h File Reference

SMPTE ST 12-2 Timecode over VANC. More...

#include <libklvanc/vanc-packets.h>

Go to the source code of this file.

Classes

struct  klvanc_packet_smpte_12_2_s
 TODO - Brief description goes here. More...
 

Macros

#define KLVANC_ATC_LTC   0x00
 
#define KLVANC_ATC_VITC1   0x01
 
#define KLVANC_ATC_VITC2   0x02
 
#define KLVANC_FILM_DATA_BLOCK   0x06
 
#define KLVANC_PROD_DATA_BLOCK   0x07
 
#define KLVANC_VID_TAPE_DATA_BLOCK_LOCAL   0x7d
 
#define KLVANC_FILM_DATA_BLOCK_LOCAL   0x7e
 
#define KLVANC_PROD_DATA_BLOCK_LOCAL   0x7f
 

Functions

int klvanc_alloc_SMPTE_12_2 (struct klvanc_packet_smpte_12_2_s **pkt)
 Create SMPTE ST 12-2 timecode. More...
 
int klvanc_create_SMPTE_12_2_from_ST370 (uint32_t st370_tc, int frate_num, int frate_den, struct klvanc_packet_smpte_12_2_s **pkt)
 Create SMPTE ST 12-2 timecode from SMPTE 370 / 314 timecode. More...
 
int klvanc_dump_SMPTE_12_2 (struct klvanc_context_s *ctx, void *p)
 TODO - Brief description goes here. More...
 
void klvanc_free_SMPTE_12_2 (void *p)
 TODO - Brief description goes here. More...
 
int klvanc_convert_SMPTE_12_2_to_words (struct klvanc_context_s *ctx, struct klvanc_packet_smpte_12_2_s *pkt, uint16_t **words, uint16_t *wordCount)
 Convert type struct packet_smpte_12_2_s into a more traditional line of
vanc words, so that we may push out as VANC data. On success, caller MUST free the resulting *words array. More...
 
int klvanc_convert_SMPTE_12_2_to_packetBytes (struct klvanc_context_s *ctx, const struct klvanc_packet_smpte_12_2_s *pkt, uint8_t **bytes, uint16_t *byteCount)
 Convert type struct packet_smpte_12_2_s into a block of bytes which can be
embedded into a VANC line On success, caller MUST free the resulting *words array. More...
 
int klvanc_SMPTE_12_2_preferred_line (int dbb1, int lineCount, int interlaced)
 Determine the appropriate line to insert this S-12 packet onto. This takes into consideration interoperability with legacy equipment, as described in SMPTE S-12-2:2014 Sec 8.2.1. More...
 

Detailed Description

SMPTE ST 12-2 Timecode over VANC.

Author
Devin Heitmueller dheit.nosp@m.muel.nosp@m.ler@k.nosp@m.erne.nosp@m.llabs.nosp@m..com

Function Documentation

int klvanc_alloc_SMPTE_12_2 ( struct klvanc_packet_smpte_12_2_s **  pkt)

Create SMPTE ST 12-2 timecode.

Parameters
[in]structvanc_context_s *ctx, void *p - Brief description goes here.
Returns
0 - Success
< 0 - Error
int klvanc_convert_SMPTE_12_2_to_packetBytes ( struct klvanc_context_s ctx,
const struct klvanc_packet_smpte_12_2_s pkt,
uint8_t **  bytes,
uint16_t *  byteCount 
)

Convert type struct packet_smpte_12_2_s into a block of bytes which can be
embedded into a VANC line On success, caller MUST free the resulting *words array.

Parameters
[in]structpacket_smpte_12_2_s *pkt - A SMPTE 12_2 VANC entry, received from the 12_2 parser
[out]uint8_t**bytes - An array of words reppresenting a fully formed vanc line.
[out]uint16_t*byteCount - Number of byes in the array.
Returns
0 - Success
< 0 - Error
-ENOMEM - Not enough memory to satisfy request
int klvanc_convert_SMPTE_12_2_to_words ( struct klvanc_context_s ctx,
struct klvanc_packet_smpte_12_2_s pkt,
uint16_t **  words,
uint16_t *  wordCount 
)

Convert type struct packet_smpte_12_2_s into a more traditional line of
vanc words, so that we may push out as VANC data. On success, caller MUST free the resulting *words array.

Parameters
[in]structpacket_smpte_12_2_s *pkt - A SMPTE 12_2-2 VANC entry, received from the 12_2 parser
[out]uint16_t**words - An array of words reppresenting a fully formed vanc line.
[out]uint16_t*wordCount - Number of words in the array.
Returns
0 - Success
< 0 - Error
-ENOMEM - Not enough memory to satisfy request
int klvanc_create_SMPTE_12_2_from_ST370 ( uint32_t  st370_tc,
int  frate_num,
int  frate_den,
struct klvanc_packet_smpte_12_2_s **  pkt 
)

Create SMPTE ST 12-2 timecode from SMPTE 370 / 314 timecode.

Parameters
[in]uint32_tst370_tc - Packed binary representation of timecode as described in SMPTE ST 370:2013 Sec 3.4.2.2.1 and SMPTE S314M-2015 Sec 4.4.2.2.1
[in]intfrate_num - framerate numerator (e.g. 1001)
[in]intfrate_den - framerate denominator (e.g. 30000)
[out]structklvanc_packet_smpte_12_2_s **pkt - newly created packet
Returns
0 - Success
< 0 - Error
int klvanc_dump_SMPTE_12_2 ( struct klvanc_context_s ctx,
void *  p 
)

TODO - Brief description goes here.

Parameters
[in]structvanc_context_s *ctx, void *p - Brief description goes here.
Returns
0 - Success
< 0 - Error
void klvanc_free_SMPTE_12_2 ( void *  p)

TODO - Brief description goes here.

Parameters
[in]void*p - Pointer to struct (klvanc_packet_smpte_12_2_s *)
int klvanc_SMPTE_12_2_preferred_line ( int  dbb1,
int  lineCount,
int  interlaced 
)

Determine the appropriate line to insert this S-12 packet onto. This takes into consideration interoperability with legacy equipment, as described in SMPTE S-12-2:2014 Sec 8.2.1.

Parameters
[in]intdbb1 - The Payload type of this S-12-2 packet
[in]intlineCount - The number of lines in the video frame
[in]intinterlaced - whether the video frame is interlaced
Returns
> 0 Line number to insert into
< 0 - Error