libsstvenc
Asynchronous Analogue SSTV encoder
Loading...
Searching...
No Matches
Colour Space/Order bitmap
Collaboration diagram for Colour Space/Order bitmap:

Topics

 Colour-space modes supported
 
 Channel source
 

Macros

#define SSTVENC_CSO_BIT_MODE   (12)
 
#define SSTVENC_CSO_BIT_C(n)
 
#define SSTVENC_CSO_MASK_MODE   (0170000)
 
#define SSTVENC_CSO_MASK_C(n)
 
#define SSTVENC_MODE_GET_CH(n, mode)
 
#define SSTVENC_MODE_ORDER(cs, c0, c1, c2, c3)
 

Detailed Description

Colour space and order definitions. A lot of SSTV modes may be characterised by what colour space they use (monochrome, RGB or YUV) and what order the channels are defined in.

For flexibility, a bitmap has been defined using a uint16_t.

Macro Definition Documentation

◆ SSTVENC_CSO_BIT_C

#define SSTVENC_CSO_BIT_C ( n)
Value:
((n) * 3)

Return the bit number for the nth channel in the bitmap.

Parameters
[in]nThe channel number (0-3 inclusive)

Definition at line 42 of file sstvmode.h.

◆ SSTVENC_CSO_BIT_MODE

#define SSTVENC_CSO_BIT_MODE   (12)

Definition at line 35 of file sstvmode.h.

◆ SSTVENC_CSO_MASK_C

#define SSTVENC_CSO_MASK_C ( n)
Value:
(07 << ((n) * 3))

Bit mask for the Nth colour channel.

Parameters
[in]nThe channel number (0-3 inclusive)

Definition at line 52 of file sstvmode.h.

◆ SSTVENC_CSO_MASK_MODE

#define SSTVENC_CSO_MASK_MODE   (0170000)

◆ SSTVENC_MODE_GET_CH

#define SSTVENC_MODE_GET_CH ( n,
mode )
Value:
(((mode) & SSTVENC_CSO_MASK_C(n)) >> SSTVENC_CSO_BIT_C(n))
#define SSTVENC_CSO_BIT_C(n)
Definition sstvmode.h:42
#define SSTVENC_CSO_MASK_C(n)
Definition sstvmode.h:52

Return the source allocated to the given channel number.

Parameters
[in]nThe channel number being requested.
[in]modeThe mode colour space/order bitmap (i.e. sstvenc_mode::colour_space_order
Returns
One of the enumerations given by Channel source

Definition at line 108 of file sstvmode.h.

108#define SSTVENC_MODE_GET_CH(n, mode) \
109 (((mode) & SSTVENC_CSO_MASK_C(n)) >> SSTVENC_CSO_BIT_C(n))

Referenced by sstvenc_encoder_next_channel_pulse(), and sstvenc_mode_get_txtime().

◆ SSTVENC_MODE_ORDER

#define SSTVENC_MODE_ORDER ( cs,
c0,
c1,
c2,
c3 )
Value:
| (((c0) << SSTVENC_CSO_BIT_C(0)) & SSTVENC_CSO_MASK_C(0)) \
| (((c1) << SSTVENC_CSO_BIT_C(1)) & SSTVENC_CSO_MASK_C(1)) \
| (((c2) << SSTVENC_CSO_BIT_C(2)) & SSTVENC_CSO_MASK_C(2)) \
| (((c3) << SSTVENC_CSO_BIT_C(3)) & SSTVENC_CSO_MASK_C(3)))
#define SSTVENC_CSO_MASK_MODE
Definition sstvmode.h:45

Pack the colour space and 4 channels' sources into a single uint16_t for encoding sstvenc_mode::colour_space_order.

Parameters
[in]csColour space, see Colour-space modes supported
[in]c0Channel source for the first channel, one of Channel source
[in]c1Channel source for the second channel, one of Channel source
[in]c2Channel source for the third channel, one of Channel source
[in]c3Channel source for the fourth channel, one of Channel source
Returns
Bitmap for sstvenc_mode::colour_space_order

Definition at line 127 of file sstvmode.h.

127#define SSTVENC_MODE_ORDER(cs, c0, c1, c2, c3) \
128 (((cs) & SSTVENC_CSO_MASK_MODE) \
129 | (((c0) << SSTVENC_CSO_BIT_C(0)) & SSTVENC_CSO_MASK_C(0)) \
130 | (((c1) << SSTVENC_CSO_BIT_C(1)) & SSTVENC_CSO_MASK_C(1)) \
131 | (((c2) << SSTVENC_CSO_BIT_C(2)) & SSTVENC_CSO_MASK_C(2)) \
132 | (((c3) << SSTVENC_CSO_BIT_C(3)) & SSTVENC_CSO_MASK_C(3)))