FFmpeg
|
#include <stdint.h>
Go to the source code of this file.
Data Structures | |
struct | AVSmpte436mAncIterator |
Iterator over the ANC packets in a single AV_CODEC_ID_SMPTE_436M_ANC AVPacket's data. More... | |
struct | AVSmpte291mAnc8bit |
An ANC packet with an 8-bit payload. More... | |
struct | AVSmpte436mCodedAnc |
An encoded ANC packet within a single AV_CODEC_ID_SMPTE_436M_ANC AVPacket's data. More... | |
Macros | |
#define | AV_SMPTE_291M_ANC_PAYLOAD_CAPACITY 0xFF |
the payload capacity of AVSmpte291mAnc8bit (and of AVSmpte291mAnc10bit when that gets added) More... | |
#define | AV_SMPTE_436M_CODED_ANC_SAMPLE_CAPACITY (AV_SMPTE_291M_ANC_PAYLOAD_CAPACITY + 4) /* 4 for did, sdid_or_dbn, data_count, and checksum */ |
max number of samples that can be stored in the payload of AVSmpte436mCodedAnc More... | |
#define | AV_SMPTE_436M_CODED_ANC_PAYLOAD_CAPACITY (((AV_SMPTE_436M_CODED_ANC_SAMPLE_CAPACITY + 2) / 3) * 4) |
max number of bytes that can be stored in the payload of AVSmpte436mCodedAnc More... | |
#define | AV_SMPTE_291M_ANC_DID_CTA_708 0x61 |
AVSmpte291mAnc8bit::did when carrying CTA-708 data (for AV_CODEC_ID_EIA_608) More... | |
#define | AV_SMPTE_291M_ANC_SDID_CTA_708 0x1 |
AVSmpte291mAnc8bit::sdid_or_dbn when carrying CTA-708 data (for AV_CODEC_ID_EIA_608) More... | |
Functions | |
int | av_smpte_436m_coded_anc_validate (const AVSmpte436mCodedAnc *anc) |
Validate a AVSmpte436mCodedAnc structure. More... | |
int | av_smpte_436m_anc_encode (uint8_t *out, int size, int anc_packet_count, const AVSmpte436mCodedAnc *anc_packets) |
Encode ANC packets into a single AV_CODEC_ID_SMPTE_436M_ANC AVPacket's data. More... | |
int | av_smpte_436m_anc_append (struct AVPacket *pkt, int anc_packet_count, const AVSmpte436mCodedAnc *anc_packets) |
Append more ANC packets to a single AV_CODEC_ID_SMPTE_436M_ANC AVPacket's data. More... | |
int | av_smpte_436m_anc_iter_init (AVSmpte436mAncIterator *iter, const uint8_t *buf, int buf_size) |
Set up iteration over the ANC packets in a single AV_CODEC_ID_SMPTE_436M_ANC AVPacket's data. More... | |
int | av_smpte_436m_anc_iter_next (AVSmpte436mAncIterator *iter, AVSmpte436mCodedAnc *anc) |
Get the next ANC packet from the iterator, advancing the iterator. More... | |
int | av_smpte_436m_coded_anc_payload_size (AVSmpte436mPayloadSampleCoding sample_coding, uint16_t sample_count) |
Get the minimum number of bytes needed to store a AVSmpte436mCodedAnc payload. More... | |
int | av_smpte_291m_anc_8bit_decode (AVSmpte291mAnc8bit *out, AVSmpte436mPayloadSampleCoding sample_coding, uint16_t sample_count, const uint8_t *payload, void *log_ctx) |
Decode a AVSmpte436mCodedAnc payload into AVSmpte291mAnc8bit. More... | |
void | av_smpte_291m_anc_8bit_fill_checksum (AVSmpte291mAnc8bit *anc) |
Fill in the correct checksum for a AVSmpte291mAnc8bit. More... | |
int | av_smpte_291m_anc_8bit_get_sample_count (const AVSmpte291mAnc8bit *anc, AVSmpte436mPayloadSampleCoding sample_coding, void *log_ctx) |
Compute the sample count needed to encode a AVSmpte291mAnc8bit into a AVSmpte436mCodedAnc payload. More... | |
int | av_smpte_291m_anc_8bit_encode (AVSmpte436mCodedAnc *out, uint16_t line_number, AVSmpte436mWrappingType wrapping_type, AVSmpte436mPayloadSampleCoding sample_coding, const AVSmpte291mAnc8bit *payload, void *log_ctx) |
Encode a AVSmpte291mAnc8bit into a AVSmpte436mCodedAnc. More... | |
int | av_smpte_291m_anc_8bit_extract_cta_708 (const AVSmpte291mAnc8bit *anc, uint8_t *cc_data, void *log_ctx) |
Try to decode an ANC packet into EIA-608/CTA-708 data (AV_CODEC_ID_EIA_608). More... | |
#define AV_SMPTE_291M_ANC_PAYLOAD_CAPACITY 0xFF |
the payload capacity of AVSmpte291mAnc8bit (and of AVSmpte291mAnc10bit when that gets added)
Definition at line 89 of file smpte_436m.h.
#define AV_SMPTE_436M_CODED_ANC_SAMPLE_CAPACITY (AV_SMPTE_291M_ANC_PAYLOAD_CAPACITY + 4) /* 4 for did, sdid_or_dbn, data_count, and checksum */ |
max number of samples that can be stored in the payload of AVSmpte436mCodedAnc
Definition at line 107 of file smpte_436m.h.
#define AV_SMPTE_436M_CODED_ANC_PAYLOAD_CAPACITY (((AV_SMPTE_436M_CODED_ANC_SAMPLE_CAPACITY + 2) / 3) * 4) |
max number of bytes that can be stored in the payload of AVSmpte436mCodedAnc
Definition at line 110 of file smpte_436m.h.
#define AV_SMPTE_291M_ANC_DID_CTA_708 0x61 |
AVSmpte291mAnc8bit::did when carrying CTA-708 data (for AV_CODEC_ID_EIA_608)
Definition at line 237 of file smpte_436m.h.
#define AV_SMPTE_291M_ANC_SDID_CTA_708 0x1 |
AVSmpte291mAnc8bit::sdid_or_dbn when carrying CTA-708 data (for AV_CODEC_ID_EIA_608)
Definition at line 240 of file smpte_436m.h.
Wrapping Type from Table 7 (page 13) of: https://pub.smpte.org/latest/st436/s436m-2006.pdf.
Definition at line 40 of file smpte_436m.h.
Payload Sample Coding from Table 4 (page 10) and Table 7 (page 13) of: https://pub.smpte.org/latest/st436/s436m-2006.pdf.
Definition at line 58 of file smpte_436m.h.
int av_smpte_436m_coded_anc_validate | ( | const AVSmpte436mCodedAnc * | anc | ) |
Validate a AVSmpte436mCodedAnc structure.
Doesn't check if the payload is valid.
[in] | anc | ANC packet to validate |
Definition at line 69 of file smpte_436m.c.
Referenced by smpte_436m_anc_decode_entry().
int av_smpte_436m_anc_encode | ( | uint8_t * | out, |
int | size, | ||
int | anc_packet_count, | ||
const AVSmpte436mCodedAnc * | anc_packets | ||
) |
Encode ANC packets into a single AV_CODEC_ID_SMPTE_436M_ANC AVPacket's data.
[in] | anc_packet_count | number of ANC packets to encode |
[in] | anc_packets | the ANC packets to encode |
[in] | size | the size of out. ignored if out is NULL. |
[out] | out | Output bytes. Doesn't write anything if out is NULL. |
Definition at line 173 of file smpte_436m.c.
Referenced by ff_eia608_to_smpte436m_filter().
int av_smpte_436m_anc_append | ( | struct AVPacket * | pkt, |
int | anc_packet_count, | ||
const AVSmpte436mCodedAnc * | anc_packets | ||
) |
Append more ANC packets to a single AV_CODEC_ID_SMPTE_436M_ANC AVPacket's data.
[in] | anc_packet_count | number of ANC packets to encode |
[in] | anc_packets | the ANC packets to encode |
pkt | the AVPacket to append to. it must either be size 0 or contain valid SMPTE_436M_ANC data. |
Definition at line 201 of file smpte_436m.c.
Referenced by mcc_read_header().
int av_smpte_436m_anc_iter_init | ( | AVSmpte436mAncIterator * | iter, |
const uint8_t * | buf, | ||
int | buf_size | ||
) |
Set up iteration over the ANC packets in a single AV_CODEC_ID_SMPTE_436M_ANC AVPacket's data.
[in] | buf | Pointer to the data from a AV_CODEC_ID_SMPTE_436M_ANC AVPacket. |
[in] | buf_size | Size of the data from a AV_CODEC_ID_SMPTE_436M_ANC AVPacket. |
[out] | iter | Pointer to the iterator. |
Definition at line 234 of file smpte_436m.c.
Referenced by ff_smpte436m_to_eia608_filter(), and mcc_write_packet().
int av_smpte_436m_anc_iter_next | ( | AVSmpte436mAncIterator * | iter, |
AVSmpte436mCodedAnc * | anc | ||
) |
Get the next ANC packet from the iterator, advancing the iterator.
[in,out] | iter | Pointer to the iterator. |
[out] | anc | The returned ANC packet. |
Definition at line 250 of file smpte_436m.c.
Referenced by ff_smpte436m_to_eia608_filter(), and mcc_write_packet().
int av_smpte_436m_coded_anc_payload_size | ( | AVSmpte436mPayloadSampleCoding | sample_coding, |
uint16_t | sample_count | ||
) |
Get the minimum number of bytes needed to store a AVSmpte436mCodedAnc payload.
sample_coding | the payload sample coding |
sample_count | the number of samples stored in the payload |
Definition at line 265 of file smpte_436m.c.
Referenced by av_smpte_291m_anc_8bit_encode(), and av_smpte_436m_coded_anc_validate().
int av_smpte_291m_anc_8bit_decode | ( | AVSmpte291mAnc8bit * | out, |
AVSmpte436mPayloadSampleCoding | sample_coding, | ||
uint16_t | sample_count, | ||
const uint8_t * | payload, | ||
void * | log_ctx | ||
) |
Decode a AVSmpte436mCodedAnc payload into AVSmpte291mAnc8bit.
[in] | sample_coding | the payload sample coding |
[in] | sample_count | the number of samples stored in the payload |
[in] | payload | the bytes storing the payload, the needed size can be obtained from avpriv_smpte_436m_coded_anc_payload_size |
[in] | log_ctx | context pointer for av_log |
[out] | out | The decoded ANC packet. |
Definition at line 295 of file smpte_436m.c.
Referenced by ff_smpte436m_to_eia608_filter(), mcc_read_header(), and mcc_write_packet().
void av_smpte_291m_anc_8bit_fill_checksum | ( | AVSmpte291mAnc8bit * | anc | ) |
Fill in the correct checksum for a AVSmpte291mAnc8bit.
[in,out] | anc | The ANC packet. |
Definition at line 337 of file smpte_436m.c.
Referenced by av_smpte_291m_anc_8bit_decode(), and ff_eia608_to_smpte436m_filter().
int av_smpte_291m_anc_8bit_get_sample_count | ( | const AVSmpte291mAnc8bit * | anc, |
AVSmpte436mPayloadSampleCoding | sample_coding, | ||
void * | log_ctx | ||
) |
Compute the sample count needed to encode a AVSmpte291mAnc8bit into a AVSmpte436mCodedAnc payload.
[in] | anc | The ANC packet. |
[in] | sample_coding | The sample coding. |
[in] | log_ctx | context pointer for av_log |
Definition at line 346 of file smpte_436m.c.
Referenced by av_smpte_291m_anc_8bit_encode().
int av_smpte_291m_anc_8bit_encode | ( | AVSmpte436mCodedAnc * | out, |
uint16_t | line_number, | ||
AVSmpte436mWrappingType | wrapping_type, | ||
AVSmpte436mPayloadSampleCoding | sample_coding, | ||
const AVSmpte291mAnc8bit * | payload, | ||
void * | log_ctx | ||
) |
Encode a AVSmpte291mAnc8bit into a AVSmpte436mCodedAnc.
[in] | line_number | the line number the ANC packet is on |
[in] | wrapping_type | the wrapping type |
[in] | sample_coding | the payload sample coding |
[in] | payload | the ANC packet to encode. |
[in] | log_ctx | context pointer for av_log |
[out] | out | The encoded ANC packet. |
Definition at line 375 of file smpte_436m.c.
Referenced by ff_eia608_to_smpte436m_filter(), and ff_eia608_to_smpte436m_init().
int av_smpte_291m_anc_8bit_extract_cta_708 | ( | const AVSmpte291mAnc8bit * | anc, |
uint8_t * | cc_data, | ||
void * | log_ctx | ||
) |
Try to decode an ANC packet into EIA-608/CTA-708 data (AV_CODEC_ID_EIA_608).
This
[in] | anc | The ANC packet. |
[in] | log_ctx | Context pointer for av_log |
[out] | cc_data | the buffer to store the extracted EIA-608/CTA-708 data, you can pass NULL to not store the data. the required size is 3 * cc_count bytes. SMPTE_291M_ANC_PAYLOAD_CAPACITY is always enough size. |
Definition at line 433 of file smpte_436m.c.
Referenced by ff_smpte436m_to_eia608_filter(), and mcc_read_header().