libnrsc5 631abc1
NRSC-5 digital radio via the RTL-SDR
Loading...
Searching...
No Matches
nrsc5.h
Go to the documentation of this file.
1#ifndef NRSC5_H_
2#define NRSC5_H_
3
19#include <stdint.h>
20#include <stdlib.h>
21#include <stdio.h>
22#include <time.h>
23
24/*
25 * Definitions.
26 */
27#define NRSC5_SCAN_BEGIN 87.9e6
28#define NRSC5_SCAN_END 107.9e6
29#define NRSC5_SCAN_SKIP 0.2e6
30
31#define NRSC5_MIME_PRIMARY_IMAGE 0xBE4B7536
32#define NRSC5_MIME_STATION_LOGO 0xD9C72536
33#define NRSC5_MIME_NAVTEQ 0x2D42AC3E
34#define NRSC5_MIME_HERE_TPEG 0x82F03DFC
35#define NRSC5_MIME_HERE_IMAGE 0xB7F03DFC
36#define NRSC5_MIME_HD_TMC 0xEECB55B6
37#define NRSC5_MIME_HDC 0x4DC66C5A
38#define NRSC5_MIME_TEXT 0xBB492AAC
39#define NRSC5_MIME_JPEG 0x1E653E9C
40#define NRSC5_MIME_PNG 0x4F328CA0
41#define NRSC5_MIME_TTN_TPEG_1 0xB39EBEB2
42#define NRSC5_MIME_TTN_TPEG_2 0x4EB03469
43#define NRSC5_MIME_TTN_TPEG_3 0x52103469
44#define NRSC5_MIME_TTN_STM_TRAFFIC 0xFF8422D7
45#define NRSC5_MIME_TTN_STM_WEATHER 0xEF042E96
46#define NRSC5_MIME_UNKNOWN_00000000 0x00000000
47#define NRSC5_MIME_UNKNOWN_1C7D0E29 0x1C7D0E29
48#define NRSC5_MIME_UNKNOWN_B81FFAA8 0xB81FFAA8
49#define NRSC5_MIME_UNKNOWN_FFFFFFFF 0xFFFFFFFF
50
51#define NRSC5_AUDIO_FRAME_SAMPLES 2048
53#define NRSC5_SAMPLE_RATE_CU8 1488375
54#define NRSC5_SAMPLE_RATE_NATIVE_FM 744187.5
55#define NRSC5_SAMPLE_RATE_NATIVE_AM 46511.71875
56#define NRSC5_SAMPLE_RATE_CS16_FM NRSC5_SAMPLE_RATE_NATIVE_FM
57#define NRSC5_SAMPLE_RATE_CS16_AM NRSC5_SAMPLE_RATE_NATIVE_AM
58#define NRSC5_SAMPLE_RATE_AUDIO 44100
60#define NRSC5_DEVICE_VERSION_LENGTH 4
62#ifdef NRSC5_EXPORTS
63#ifdef __MINGW32__
64#define NRSC5_API __declspec(dllexport)
65#else
66#define NRSC5_API
67#endif
68#else
69#define NRSC5_API
70#endif
71
72enum
73{
74 NRSC5_MODE_FM,
75 NRSC5_MODE_AM
76};
77
78/*
79 * Data types.
80 */
81enum
82{
83 NRSC5_SIG_COMPONENT_AUDIO,
84 NRSC5_SIG_COMPONENT_DATA
85};
86
87enum
88{
89 NRSC5_AAS_TYPE_STREAM = 0,
90 NRSC5_AAS_TYPE_PACKET = 1,
91 NRSC5_AAS_TYPE_LOT = 3
92};
93
101{
103 uint8_t type;
104 uint8_t id;
105 union
106 {
109 struct {
110 uint16_t port;
113 uint8_t type;
114 uint32_t mime;
118 struct {
119 uint8_t port;
120 uint8_t type;
121 uint32_t mime;
123 };
124};
129
130enum
131{
132 NRSC5_SIG_SERVICE_AUDIO,
133 NRSC5_SIG_SERVICE_DATA
134};
135
163
164enum
165{
166 NRSC5_EVENT_LOST_DEVICE,
167 NRSC5_EVENT_IQ,
168 NRSC5_EVENT_SYNC,
169 NRSC5_EVENT_LOST_SYNC,
170 NRSC5_EVENT_MER,
171 NRSC5_EVENT_BER,
172 NRSC5_EVENT_HDC,
173 NRSC5_EVENT_AUDIO,
174 NRSC5_EVENT_ID3,
175 NRSC5_EVENT_SIG,
176 NRSC5_EVENT_LOT,
177 NRSC5_EVENT_SIS,
178 NRSC5_EVENT_STREAM,
179 NRSC5_EVENT_PACKET,
180 NRSC5_EVENT_AUDIO_SERVICE,
181 NRSC5_EVENT_STATION_ID,
182 NRSC5_EVENT_STATION_NAME,
183 NRSC5_EVENT_STATION_SLOGAN,
184 NRSC5_EVENT_STATION_MESSAGE,
185 NRSC5_EVENT_STATION_LOCATION,
186 NRSC5_EVENT_AUDIO_SERVICE_DESCRIPTOR,
187 NRSC5_EVENT_DATA_SERVICE_DESCRIPTOR,
188 NRSC5_EVENT_EMERGENCY_ALERT,
189 NRSC5_EVENT_HERE_IMAGE,
190 NRSC5_EVENT_LOT_HEADER,
191 NRSC5_EVENT_LOT_FRAGMENT,
192 NRSC5_EVENT_AGC,
193 NRSC5_EVENT_EXCITER_INFO,
194 NRSC5_EVENT_IMPORTER_INFO,
195 NRSC5_EVENT_LEAP_SECOND_OFFSET,
196 NRSC5_EVENT_LOCAL_TIME,
197};
198
199enum
200{
201 NRSC5_ACCESS_PUBLIC,
202 NRSC5_ACCESS_RESTRICTED
203};
204
205enum
206{
207 NRSC5_PROGRAM_TYPE_UNDEFINED = 0,
208 NRSC5_PROGRAM_TYPE_NEWS = 1,
209 NRSC5_PROGRAM_TYPE_INFORMATION = 2,
210 NRSC5_PROGRAM_TYPE_SPORTS = 3,
211 NRSC5_PROGRAM_TYPE_TALK = 4,
212 NRSC5_PROGRAM_TYPE_ROCK = 5,
213 NRSC5_PROGRAM_TYPE_CLASSIC_ROCK = 6,
214 NRSC5_PROGRAM_TYPE_ADULT_HITS = 7,
215 NRSC5_PROGRAM_TYPE_SOFT_ROCK = 8,
216 NRSC5_PROGRAM_TYPE_TOP_40 = 9,
217 NRSC5_PROGRAM_TYPE_COUNTRY = 10,
218 NRSC5_PROGRAM_TYPE_OLDIES = 11,
219 NRSC5_PROGRAM_TYPE_SOFT = 12,
220 NRSC5_PROGRAM_TYPE_NOSTALGIA = 13,
221 NRSC5_PROGRAM_TYPE_JAZZ = 14,
222 NRSC5_PROGRAM_TYPE_CLASSICAL = 15,
223 NRSC5_PROGRAM_TYPE_RHYTHM_AND_BLUES = 16,
224 NRSC5_PROGRAM_TYPE_SOFT_RHYTHM_AND_BLUES = 17,
225 NRSC5_PROGRAM_TYPE_FOREIGN_LANGUAGE = 18,
226 NRSC5_PROGRAM_TYPE_RELIGIOUS_MUSIC = 19,
227 NRSC5_PROGRAM_TYPE_RELIGIOUS_TALK = 20,
228 NRSC5_PROGRAM_TYPE_PERSONALITY = 21,
229 NRSC5_PROGRAM_TYPE_PUBLIC = 22,
230 NRSC5_PROGRAM_TYPE_COLLEGE = 23,
231 NRSC5_PROGRAM_TYPE_SPANISH_TALK = 24,
232 NRSC5_PROGRAM_TYPE_SPANISH_MUSIC = 25,
233 NRSC5_PROGRAM_TYPE_HIP_HOP = 26,
234 NRSC5_PROGRAM_TYPE_WEATHER = 29,
235 NRSC5_PROGRAM_TYPE_EMERGENCY_TEST = 30,
236 NRSC5_PROGRAM_TYPE_EMERGENCY = 31,
237 NRSC5_PROGRAM_TYPE_TRAFFIC = 65,
238 NRSC5_PROGRAM_TYPE_SPECIAL_READING_SERVICES = 76
239};
240
241enum
242{
243 NRSC5_BLEND_DISABLE,
244 NRSC5_BLEND_SELECT,
245 NRSC5_BLEND_ENABLE
246};
247
248enum
249{
250 NRSC5_LOCATION_FORMAT_SAME,
251 NRSC5_LOCATION_FORMAT_FIPS,
252 NRSC5_LOCATION_FORMAT_ZIP
253};
254
255enum
256{
257 NRSC5_ALERT_CATEGORY_NON_SPECIFIC = 1,
258 NRSC5_ALERT_CATEGORY_GEOPHYSICAL = 2,
259 NRSC5_ALERT_CATEGORY_WEATHER = 3,
260 NRSC5_ALERT_CATEGORY_SAFETY = 4,
261 NRSC5_ALERT_CATEGORY_SECURITY = 5,
262 NRSC5_ALERT_CATEGORY_RESCUE = 6,
263 NRSC5_ALERT_CATEGORY_FIRE = 7,
264 NRSC5_ALERT_CATEGORY_HEALTH = 8,
265 NRSC5_ALERT_CATEGORY_ENVIRONMENTAL = 9,
266 NRSC5_ALERT_CATEGORY_TRANSPORTATION = 10,
267 NRSC5_ALERT_CATEGORY_UTILITIES = 11,
268 NRSC5_ALERT_CATEGORY_HAZMAT = 12,
269 NRSC5_ALERT_CATEGORY_TEST = 30
270};
271
272enum
273{
274 NRSC5_HERE_IMAGE_TRAFFIC = 8,
275 NRSC5_HERE_IMAGE_WEATHER = 13
276};
277
289{
291 unsigned int program;
292 unsigned int access;
293 unsigned int type;
294 unsigned int sound_exp;
295};
300
301enum
302{
303 NRSC5_SERVICE_DATA_TYPE_NON_SPECIFIC = 0,
304 NRSC5_SERVICE_DATA_TYPE_NEWS = 1,
305 NRSC5_SERVICE_DATA_TYPE_SPORTS = 3,
306 NRSC5_SERVICE_DATA_TYPE_WEATHER = 29,
307 NRSC5_SERVICE_DATA_TYPE_EMERGENCY = 31,
308 NRSC5_SERVICE_DATA_TYPE_TRAFFIC = 65,
309 NRSC5_SERVICE_DATA_TYPE_IMAGE_MAPS = 66,
310 NRSC5_SERVICE_DATA_TYPE_TEXT = 80,
311 NRSC5_SERVICE_DATA_TYPE_ADVERTISING = 256,
312 NRSC5_SERVICE_DATA_TYPE_FINANCIAL = 257,
313 NRSC5_SERVICE_DATA_TYPE_STOCK_TICKER = 258,
314 NRSC5_SERVICE_DATA_TYPE_NAVIGATION = 259,
315 NRSC5_SERVICE_DATA_TYPE_ELECTRONIC_PROGRAM_GUIDE = 260,
316 NRSC5_SERVICE_DATA_TYPE_AUDIO = 261,
317 NRSC5_SERVICE_DATA_TYPE_PRIVATE_DATA_NETWORK = 262,
318 NRSC5_SERVICE_DATA_TYPE_SERVICE_MAINTENANCE = 263,
319 NRSC5_SERVICE_DATA_TYPE_HD_RADIO_SYSTEM_SERVICES = 264,
320 NRSC5_SERVICE_DATA_TYPE_AUDIO_RELATED_DATA = 265,
321 NRSC5_SERVICE_DATA_TYPE_RESERVED_FOR_SPECIAL_TESTS = 511
322};
323
332{
334 unsigned int access;
335 unsigned int type;
336 uint32_t mime_type;
337};
342
358
359enum
360{
361 NRSC5_PKT_FLAGS_NONE = 0,
362 NRSC5_PKT_FLAGS_CRC_ERROR = 1 << 0,
363};
364
365enum
366{
367 NRSC5_AUDIO_FLAGS_NONE = 0,
368 NRSC5_AUDIO_FLAGS_UNAVAILABLE = 1 << 0 ,
369 NRSC5_AUDIO_FLAGS_DECODING_ERROR = 1 << 1,
370};
371
379{
414 unsigned int event;
415 union
416 {
417 struct {
418 const void *data;
419 size_t count;
420 } iq;
421 struct {
423 int psmi;
424 int pli;
425 int hppi;
426 int aabi;
427 int rdbi;
428 } sync;
429 struct {
430 float cber;
431 } ber;
432 struct {
433 float lower;
434 float upper;
435 } mer;
436 struct {
437 unsigned int program;
438 const uint8_t *data;
439 size_t count;
440 unsigned int flags;
441 } hdc;
442 struct {
443 unsigned int program;
444 const int16_t *data;
445 size_t count;
446 unsigned int flags;
447 } audio;
448 struct {
449 unsigned int program;
450 const char *title;
451 const char *artist;
452 const char *album;
453 const char *genre;
454 struct {
455 const char *owner;
456 const char *id;
457 } ufid;
458 struct {
459 uint32_t mime;
460 int param;
461 int lot;
462 } xhdr;
463 nrsc5_id3_comment_t *comments;
464 struct
465 {
466 char *price;
468 char *seller;
470 uint8_t received_as;
471 struct tm *valid_until;
472 } commercial;
473 } id3;
474 struct {
475 uint16_t port;
476 uint16_t seq;
477 unsigned int size;
478 uint32_t mime;
479 const uint8_t *data;
482 } stream;
483 struct {
484 uint16_t port;
485 uint16_t seq;
486 unsigned int size;
487 uint32_t mime;
488 const uint8_t *data;
491 } packet;
492 struct {
493 uint16_t port;
494 unsigned int lot;
495 unsigned int size;
496 uint32_t mime;
497 const char *name;
498 const uint8_t *data;
499 struct tm *expiry_utc;
502 } lot;
503 struct {
504 unsigned int lot;
505 unsigned int seq;
506 unsigned int repeat;
507 unsigned int size;
508 unsigned int bytes_so_far;
510 const uint8_t *data;
511 nrsc5_sig_service_t *service;
512 nrsc5_sig_component_t *component;
513 } lot_fragment;
514 struct {
515 unsigned int program;
516 unsigned int access;
517 unsigned int type;
518 unsigned int codec_mode;
519 unsigned int blend_control;
521 unsigned int common_delay;
522 unsigned int latency;
523 } audio_service;
524 struct {
525 nrsc5_sig_service_t *services;
526 } sig;
527 struct {
528 const char *country_code;
529 int fcc_facility_id;
530 const char *name;
531 const char *slogan;
532 const char *message;
533 const char *alert;
534 float latitude;
535 float longitude;
536 int altitude;
537 nrsc5_sis_asd_t *audio_services;
538 nrsc5_sis_dsd_t *data_services;
539 const uint8_t *alert_cnt;
540 int alert_cnt_length;
541 int alert_category1;
542 int alert_category2;
543 int alert_location_format;
544 int alert_num_locations;
545 const int *alert_locations;
546 } sis;
547 struct {
548 const char *country_code;
549 int fcc_facility_id;
550 } station_id;
551 struct {
552 const char *name;
553 } station_name;
554 struct {
555 const char *slogan;
556 } station_slogan;
557 struct {
558 const char *message;
559 } station_message;
560 struct {
561 float latitude;
562 float longitude;
563 int altitude;
564 } station_location;
565 struct {
566 unsigned int program;
567 unsigned int access;
568 unsigned int type;
569 unsigned int sound_exp;
570 } asd;
571 struct {
572 unsigned int access;
573 unsigned int type;
574 uint32_t mime_type;
575 } dsd;
576 struct {
577 const char *message;
578 const uint8_t *control_data;
579 int control_data_length;
580 int category1;
581 int category2;
582 int location_format;
583 int num_locations;
584 const int *locations;
585 } emergency_alert;
586 struct {
588 int seq;
589 int n1;
590 int n2;
591 struct tm *time_utc;
592 float latitude1;
594 float latitude2;
596 const char *name;
597 unsigned int size;
598 const uint8_t *data;
599 } here_image;
600 struct {
601 float gain_db;
602 float peak_dbfs;
604 } agc;
605 struct {
606 const char *manufacturer_id;
612 } exciter_info;
613 struct {
614 const char *manufacturer_id;
616 int core_status;
619 } importer_info;
620 struct {
623 unsigned int pending_alfn;
624 } leap_second_offset;
625 struct {
630 } local_time;
631 };
632};
637
644typedef void (*nrsc5_callback_t)(const nrsc5_event_t *evt, void *opaque);
645
651typedef struct nrsc5_t nrsc5_t;
652
653
654/* ============================================================================
655 * Public functions. All functions return void or an error code (0 == success).
656 */
657
662NRSC5_API void nrsc5_get_version(const char **version);
663
672NRSC5_API void nrsc5_service_data_type_name(unsigned int type, const char **name);
673
682NRSC5_API void nrsc5_program_type_name(unsigned int type, const char **name);
683
692 NRSC5_API void nrsc5_alert_category_name(unsigned int category, const char **name);
693
714NRSC5_API int nrsc5_open(nrsc5_t **st, int device_index);
715
723NRSC5_API int nrsc5_open_file(nrsc5_t **st, FILE *fp);
724
731NRSC5_API int nrsc5_open_pipe(nrsc5_t **st);
732
740NRSC5_API int nrsc5_open_rtltcp(nrsc5_t **st, int socket);
741
749NRSC5_API void nrsc5_close(nrsc5_t *st);
750
756NRSC5_API void nrsc5_start(nrsc5_t *st);
757
764NRSC5_API void nrsc5_stop(nrsc5_t *st);
765
773NRSC5_API int nrsc5_set_mode(nrsc5_t *st, int mode);
774
786NRSC5_API int nrsc5_set_bias_tee(nrsc5_t *st, int on);
787
796NRSC5_API int nrsc5_set_direct_sampling(nrsc5_t *st, int on);
797
806NRSC5_API int nrsc5_set_freq_correction(nrsc5_t *st, int ppm_error);
807
815NRSC5_API void nrsc5_get_frequency(nrsc5_t *st, float *freq);
816
828NRSC5_API int nrsc5_set_frequency(nrsc5_t *st, float freq);
829
837NRSC5_API void nrsc5_get_gain(nrsc5_t *st, float *gain);
838
847NRSC5_API int nrsc5_set_gain(nrsc5_t *st, float gain);
848
856NRSC5_API void nrsc5_set_auto_gain(nrsc5_t *st, int enabled);
857
866NRSC5_API void nrsc5_set_callback(nrsc5_t *st, nrsc5_callback_t callback, void *opaque);
867
878NRSC5_API int nrsc5_pipe_samples_cu8(nrsc5_t *st, const uint8_t *samples, unsigned int length);
879
890NRSC5_API int nrsc5_pipe_samples_cs16(nrsc5_t *st, const int16_t *samples, unsigned int length);
891
902NRSC5_API int nrsc5_pipe_samples_cf32(nrsc5_t *st, const float *samples, unsigned int length);
903
912NRSC5_API int nrsc5_reset(nrsc5_t *st);
913
914#endif /* NRSC5_H_ */
NRSC5_API int nrsc5_open_rtltcp(nrsc5_t **st, int socket)
NRSC5_API int nrsc5_set_frequency(nrsc5_t *st, float freq)
NRSC5_API int nrsc5_set_mode(nrsc5_t *st, int mode)
struct nrsc5_t nrsc5_t
Definition nrsc5.h:651
NRSC5_API int nrsc5_set_freq_correction(nrsc5_t *st, int ppm_error)
NRSC5_API int nrsc5_pipe_samples_cu8(nrsc5_t *st, const uint8_t *samples, unsigned int length)
NRSC5_API int nrsc5_open_pipe(nrsc5_t **st)
NRSC5_API int nrsc5_pipe_samples_cs16(nrsc5_t *st, const int16_t *samples, unsigned int length)
NRSC5_API void nrsc5_alert_category_name(unsigned int category, const char **name)
NRSC5_API void nrsc5_get_version(const char **version)
NRSC5_API void nrsc5_program_type_name(unsigned int type, const char **name)
NRSC5_API void nrsc5_service_data_type_name(unsigned int type, const char **name)
NRSC5_API void nrsc5_close(nrsc5_t *st)
NRSC5_API int nrsc5_set_gain(nrsc5_t *st, float gain)
NRSC5_API void nrsc5_set_auto_gain(nrsc5_t *st, int enabled)
NRSC5_API int nrsc5_set_bias_tee(nrsc5_t *st, int on)
NRSC5_API void nrsc5_stop(nrsc5_t *st)
NRSC5_API int nrsc5_open(nrsc5_t **st, int device_index)
NRSC5_API void nrsc5_get_frequency(nrsc5_t *st, float *freq)
#define NRSC5_DEVICE_VERSION_LENGTH
Definition nrsc5.h:60
NRSC5_API int nrsc5_open_file(nrsc5_t **st, FILE *fp)
NRSC5_API void nrsc5_start(nrsc5_t *st)
void(* nrsc5_callback_t)(const nrsc5_event_t *evt, void *opaque)
Definition nrsc5.h:644
NRSC5_API void nrsc5_get_gain(nrsc5_t *st, float *gain)
NRSC5_API int nrsc5_reset(nrsc5_t *st)
NRSC5_API int nrsc5_pipe_samples_cf32(nrsc5_t *st, const float *samples, unsigned int length)
NRSC5_API int nrsc5_set_direct_sampling(nrsc5_t *st, int on)
NRSC5_API void nrsc5_set_callback(nrsc5_t *st, nrsc5_callback_t callback, void *opaque)
Definition nrsc5.h:379
int pli
Definition nrsc5.h:424
float lower
Definition nrsc5.h:433
unsigned int blend_control
Definition nrsc5.h:519
int is_final
Definition nrsc5.h:603
unsigned int bytes_so_far
Definition nrsc5.h:508
int current_offset
Definition nrsc5.h:622
float latitude2
Definition nrsc5.h:594
int dst_regional
Definition nrsc5.h:627
float latitude1
Definition nrsc5.h:592
int utc_offset
Definition nrsc5.h:626
char * contact_url
Definition nrsc5.h:467
uint8_t received_as
Definition nrsc5.h:470
int core_status
Definition nrsc5.h:608
unsigned int type
Definition nrsc5.h:517
int digital_audio_gain
Definition nrsc5.h:520
char * description
Definition nrsc5.h:469
const char * manufacturer_id
Definition nrsc5.h:606
const char * name
Definition nrsc5.h:497
char * seller
Definition nrsc5.h:468
unsigned int codec_mode
Definition nrsc5.h:518
unsigned int lot
Definition nrsc5.h:494
struct tm * expiry_utc
Definition nrsc5.h:499
float gain_db
Definition nrsc5.h:601
unsigned int sound_exp
Definition nrsc5.h:569
unsigned int latency
Definition nrsc5.h:522
int n1
Definition nrsc5.h:589
float longitude2
Definition nrsc5.h:595
int manufacturer_status
Definition nrsc5.h:610
unsigned int size
Definition nrsc5.h:477
float freq_offset
Definition nrsc5.h:422
unsigned int event
Definition nrsc5.h:414
unsigned int seq
Definition nrsc5.h:505
int image_type
Definition nrsc5.h:587
struct tm * valid_until
Definition nrsc5.h:471
float upper
Definition nrsc5.h:434
uint16_t port
Definition nrsc5.h:475
unsigned int repeat
Definition nrsc5.h:506
int dst_local
Definition nrsc5.h:628
uint32_t mime_type
Definition nrsc5.h:574
nrsc5_sig_service_t * service
Definition nrsc5.h:480
struct tm * time_utc
Definition nrsc5.h:591
int psmi
Definition nrsc5.h:423
int aabi
Definition nrsc5.h:426
int pending_offset
Definition nrsc5.h:621
int importer_connected
Definition nrsc5.h:611
int seq
Definition nrsc5.h:588
int manufacturer_version[NRSC5_DEVICE_VERSION_LENGTH]
Definition nrsc5.h:609
float peak_dbfs
Definition nrsc5.h:602
unsigned int access
Definition nrsc5.h:516
int rdbi
Definition nrsc5.h:427
int hppi
Definition nrsc5.h:425
int is_duplicate
Definition nrsc5.h:509
int n2
Definition nrsc5.h:590
const uint8_t * data
Definition nrsc5.h:438
uint32_t mime
Definition nrsc5.h:459
unsigned int common_delay
Definition nrsc5.h:521
unsigned int pending_alfn
Definition nrsc5.h:623
float longitude1
Definition nrsc5.h:593
int core_version[NRSC5_DEVICE_VERSION_LENGTH]
Definition nrsc5.h:607
unsigned int program
Definition nrsc5.h:437
int dst_schedule
Definition nrsc5.h:629
nrsc5_sig_component_t * component
Definition nrsc5.h:481
Definition nrsc5.h:348
struct nrsc5_id3_comment_t * next
Definition nrsc5.h:349
char * full_text
Definition nrsc5.h:352
char * lang
Definition nrsc5.h:350
char * short_content_desc
Definition nrsc5.h:351
Definition nrsc5.h:101
uint32_t mime
Definition nrsc5.h:114
uint16_t service_data_type
Definition nrsc5.h:112
uint8_t type
Definition nrsc5.h:103
uint8_t id
Definition nrsc5.h:104
struct nrsc5_sig_component_t::@14::@16 data
struct nrsc5_sig_component_t * next
Definition nrsc5.h:102
struct nrsc5_sig_component_t::@14::@17 audio
uint16_t port
Definition nrsc5.h:110
uint8_t port
Definition nrsc5.h:119
Definition nrsc5.h:151
nrsc5_sig_component_t * audio_component
Definition nrsc5.h:157
nrsc5_sig_component_t * components
Definition nrsc5.h:156
struct nrsc5_sig_service_t * next
Definition nrsc5.h:152
uint8_t type
Definition nrsc5.h:153
uint16_t number
Definition nrsc5.h:154
const char * name
Definition nrsc5.h:155
Definition nrsc5.h:289
unsigned int program
Definition nrsc5.h:291
unsigned int sound_exp
Definition nrsc5.h:294
struct nrsc5_sis_asd_t * next
Definition nrsc5.h:290
unsigned int access
Definition nrsc5.h:292
unsigned int type
Definition nrsc5.h:293
Definition nrsc5.h:332
struct nrsc5_sis_dsd_t * next
Definition nrsc5.h:333
unsigned int type
Definition nrsc5.h:335
uint32_t mime_type
Definition nrsc5.h:336
unsigned int access
Definition nrsc5.h:334