atsc_table_vct_channel(3)

πŸ“¦
version 1.32.0 Β· 2 versions
, in fedora 43

πŸ’– NAME πŸ’–

atsc_table_vct_channel β€” the ATSC VCT channel table, and bestie it covers both CVCT and TVCT, we love a versatile icon πŸ’…

(this is a section 3 library function page, from the Library Functions Manual, okurrr)


✨ SYNOPSIS ✨

#include <vct.h>

πŸŽ€ Data Fields πŸŽ€

okay so here's the whole squad, exactly as declared:

uint16_t __short_name [7]
union {
   uint32_t bitfield1
   struct {
      uint32_t modulation_mode:8
      uint32_t minor_channel_number:10
      uint32_t major_channel_number:10
      uint32_t reserved1:4
   }
};
uint32_t carrier_frequency
uint16_t channel_tsid
uint16_t program_number
union {
   uint16_t bitfield2
   struct {
      uint16_t service_type:6
      uint16_t reserved2:3
      uint16_t hide_guide:1
      uint16_t out_of_band:1
      uint16_t path_select:1
      uint16_t hidden:1
      uint16_t access_controlled:1
      uint16_t ETM_location:2
   }
};
uint16_t source_id
union {
   uint16_t bitfield3
   struct {
      uint16_t descriptors_length:10
      uint16_t reserved3:6
   }
};
struct dvb_desc * descriptor
struct atsc_table_vct_channel * next
char short_name [32]

🌸 Detailed Description 🌸

ATSC VCT channel table (covers both CVCT and TVCT) πŸ’–

ngl this struct is THE place where the original VCT channel table lives, and it does the cute little glow-up of converting all the integer fields to the CPU endianness for you. no cap.

πŸ¦‹ Parameters πŸ¦‹

here's the whole cast, one by one, no skipping:

  • modulation_mode β€” modulation mode
  • minor_channel_number β€” minor channel number
  • major_channel_number β€” major channel number
  • carrier_frequency β€” carrier frequency
  • channel_tsid β€” channel tsid
  • program_number β€” program number
  • service_type β€” service type
  • hide_guide β€” hide guide
  • out_of_band β€” out of band (CVCT only)
  • path_select β€” path select (CVCT only)
  • hidden β€” hidden
  • access_controlled β€” access controlled
  • ETM_location β€” ETM location
  • source_id β€” source ID
  • descriptors_length β€” length of the descriptors
  • descriptor β€” pointer to struct dvb_desc
  • next β€” pointer to another struct atsc_table_vct_channel
  • descriptors_length β€” length of the descriptors (yes bestie, it's listed twice in the original, we don't question the source πŸ’€)
  • short_name β€” short name. The __short_name is converted from UTF-16 to locale charset when parsed

So basically: this structure is used to store the original VCT channel table, converting the integer fields to the CPU endianness. ✨

🫢 real talk: the undocumented parameters are used only internally by the API and/or are fields that are reserved. They shouldn't be used, as they may change on future API releases. don't touch them, they're not your business, leave them on read 😭
⚠️ Also important: everything after atsc_table_vct_channel::descriptor (including it) won't be bit-mapped * to the data parsed from the MPEG TS. So, metadata are added there. periodt.

Definition at line 101 of file vct.h.


πŸ”₯ Field Documentation πŸ”₯

🧚 the three anonymous unions 🧚

  • union { ... } atsc_table_vct_channel
  • union { ... } atsc_table_vct_channel
  • union { ... } atsc_table_vct_channel

three anonymous union babes, all sharing the same display name, all doing their own thing. iconic behaviour honestly.


  • uint16_t atsc_table_vct_channel::__short_name[7] β€” Definition at line 102 of file vct.h.
  • uint16_t atsc_table_vct_channel::access_controlled β€” Definition at line 126 of file vct.h.
  • uint32_t atsc_table_vct_channel::bitfield1 β€” Definition at line 105 of file vct.h.
  • uint16_t atsc_table_vct_channel::bitfield2 β€” Definition at line 118 of file vct.h.
  • uint16_t atsc_table_vct_channel::bitfield3 β€” Definition at line 134 of file vct.h.
  • uint32_t atsc_table_vct_channel::carrier_frequency β€” Definition at line 114 of file vct.h.
  • uint16_t atsc_table_vct_channel::channel_tsid β€” Definition at line 115 of file vct.h.
  • struct dvb_desc* atsc_table_vct_channel::descriptor β€” Definition at line 146 of file vct.h.
  • uint16_t atsc_table_vct_channel::descriptors_length β€” Definition at line 136 of file vct.h.
  • uint16_t atsc_table_vct_channel::ETM_location β€” Definition at line 127 of file vct.h.
  • uint16_t atsc_table_vct_channel::hidden β€” Definition at line 125 of file vct.h.
  • uint16_t atsc_table_vct_channel::hide_guide β€” Definition at line 122 of file vct.h.
  • uint32_t atsc_table_vct_channel::major_channel_number β€” Definition at line 109 of file vct.h.
  • uint32_t atsc_table_vct_channel::minor_channel_number β€” Definition at line 108 of file vct.h.
  • uint32_t atsc_table_vct_channel::modulation_mode β€” Definition at line 107 of file vct.h.
  • struct atsc_table_vct_channel* atsc_table_vct_channel::next β€” Definition at line 147 of file vct.h.
  • uint16_t atsc_table_vct_channel::out_of_band β€” Definition at line 123 of file vct.h.
  • uint16_t atsc_table_vct_channel::path_select β€” Definition at line 124 of file vct.h.
  • uint16_t atsc_table_vct_channel::program_number β€” Definition at line 116 of file vct.h.
  • uint32_t atsc_table_vct_channel::reserved1 β€” Definition at line 110 of file vct.h.
  • uint16_t atsc_table_vct_channel::reserved2 β€” Definition at line 121 of file vct.h.
  • uint16_t atsc_table_vct_channel::reserved3 β€” Definition at line 137 of file vct.h.
  • uint16_t atsc_table_vct_channel::service_type β€” Definition at line 120 of file vct.h.
  • char atsc_table_vct_channel::short_name[32] β€” Definition at line 151 of file vct.h.
  • uint16_t atsc_table_vct_channel::source_id β€” Definition at line 132 of file vct.h.

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for libdvbv5 from the source code. πŸ€–βœ¨


and that's the whole page bestie, you ate πŸ’… this little love letter comes to you from libdvbv5, Version 1.32.0, and it's the atsc_table_vct_channel(3) page β€” go forth and parse those VCT channel tables, mwah πŸ«ΆπŸ’–πŸŽ€

πŸ“¦ where this page comes from