27 #define SSDV_ERROR (-1) 29 #define SSDV_FEED_ME (1) 30 #define SSDV_HAVE_PACKET (2) 31 #define SSDV_BUFFER_FULL (3) 35 #define SSDV_PKT_SIZE (0x100) 36 #define SSDV_PKT_SIZE_HEADER (0x0F) 37 #define SSDV_PKT_SIZE_CRC (0x04) 38 #define SSDV_PKT_SIZE_RSCODES (0x20) 39 #define SSDV_PKT_SIZE_PAYLOAD (SSDV_PKT_SIZE - SSDV_PKT_SIZE_HEADER - SSDV_PKT_SIZE_CRC - SSDV_PKT_SIZE_RSCODES) 40 #define SSDV_PKT_SIZE_CRCDATA (SSDV_PKT_SIZE_HEADER + SSDV_PKT_SIZE_PAYLOAD - 1) 43 #define HBUFF_LEN (16) 57 uint16_t packet_mcu_id;
58 uint8_t packet_mcu_offset;
91 uint16_t marker_data_len;
109 uint8_t stbls[TBL_LEN + HBUFF_LEN];
110 uint8_t *sdht[2][2], *sdqt[2];
114 uint8_t dtbls[TBL_LEN];
115 uint8_t *ddht[2][2], *ddqt[2];
133 extern char ssdv_enc_init(
ssdv_t *s,
const char *callsign, uint8_t image_id);
134 extern char ssdv_enc_set_buffer(
ssdv_t *s, uint8_t *buffer);
135 extern char ssdv_enc_get_packet(
ssdv_t *s);
136 extern char ssdv_enc_feed(
ssdv_t *s, uint8_t *buffer,
size_t length);
139 extern char ssdv_dec_init(
ssdv_t *s);
140 extern char ssdv_dec_set_buffer(
ssdv_t *s, uint8_t *buffer,
size_t length);
141 extern char ssdv_dec_feed(
ssdv_t *s, uint8_t *packet);
142 extern char ssdv_dec_get_jpeg(
ssdv_t *s, uint8_t **jpeg,
size_t *length);
144 extern char ssdv_dec_is_packet(uint8_t *packet,
int *errors);
146 extern char * ssdv_dec_callsign(
char *callsign, uint32_t code);