Changeset 1433ecda in mainline for uspace/lib/pcm
- Timestamp:
- 2018-04-04T15:42:37Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 2c4e1cc
- Parents:
- 47b2d7e3
- Location:
- uspace/lib/pcm
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/pcm/include/pcm/format.h
r47b2d7e3 r1433ecda 87 87 } 88 88 89 bool pcm_format_same(const pcm_format_t *a, const pcm_format_t *b);89 bool pcm_format_same(const pcm_format_t *a, const pcm_format_t *b); 90 90 91 91 /** … … 102 102 size_t src_size, const pcm_format_t *sf, const pcm_format_t *df); 103 103 errno_t pcm_format_mix(void *dst, const void *src, size_t size, const pcm_format_t *f); 104 errno_t pcm_format_convert(pcm_format_t a, void *srca, size_t sizea,105 pcm_format_t b, void *srcb, size_t *sizeb);104 errno_t pcm_format_convert(pcm_format_t a, void *srca, size_t sizea, 105 pcm_format_t b, void *srcb, size_t *sizeb); 106 106 107 107 #endif -
uspace/lib/pcm/include/pcm/sample_format.h
r47b2d7e3 r1433ecda 71 71 static inline bool pcm_sample_format_is_signed(pcm_sample_format_t format) 72 72 { 73 switch (format) {73 switch (format) { 74 74 case PCM_SAMPLE_SINT8: 75 75 case PCM_SAMPLE_SINT16_LE: … … 104 104 static inline size_t pcm_sample_format_size(pcm_sample_format_t format) 105 105 { 106 switch (format) {106 switch (format) { 107 107 case PCM_SAMPLE_UINT8: 108 108 case PCM_SAMPLE_SINT8: … … 180 180 * @return Valid string representation. 181 181 */ 182 static inline const char * 183 { 184 switch (format) {182 static inline const char *pcm_sample_format_str(pcm_sample_format_t format) 183 { 184 switch (format) { 185 185 case PCM_SAMPLE_UINT8: 186 186 return "8 bit unsigned"; -
uspace/lib/pcm/src/format.c
r47b2d7e3 r1433ecda 57 57 .sampling_rate = 44100, 58 58 .sample_format = PCM_SAMPLE_SINT16_LE, 59 59 }; 60 60 61 61 /** Special ANY PCM format. … … 66 66 .sampling_rate = 0, 67 67 .sample_format = 0, 68 68 }; 69 69 70 70 static float get_normalized_sample(const void *buffer, size_t size, … … 77 77 * @return True if a and b describe the same format, false otherwise. 78 78 */ 79 bool pcm_format_same(const pcm_format_t *a, const pcm_format_t *b)79 bool pcm_format_same(const pcm_format_t *a, const pcm_format_t *b) 80 80 { 81 81 assert(a); … … 106 106 switch (f->sample_format) { 107 107 case PCM_SAMPLE_UINT8: 108 SET_NULL(uint8_t, le, INT8_MIN); break; 108 SET_NULL(uint8_t, le, INT8_MIN); 109 break; 109 110 case PCM_SAMPLE_SINT8: 110 SET_NULL(int8_t, le, 0); break; 111 SET_NULL(int8_t, le, 0); 112 break; 111 113 case PCM_SAMPLE_UINT16_LE: 112 SET_NULL(uint16_t, le, INT16_MIN); break; 114 SET_NULL(uint16_t, le, INT16_MIN); 115 break; 113 116 case PCM_SAMPLE_SINT16_LE: 114 SET_NULL(int16_t, le, 0); break; 117 SET_NULL(int16_t, le, 0); 118 break; 115 119 case PCM_SAMPLE_UINT16_BE: 116 SET_NULL(uint16_t, be, INT16_MIN); break; 120 SET_NULL(uint16_t, be, INT16_MIN); 121 break; 117 122 case PCM_SAMPLE_SINT16_BE: 118 SET_NULL(int16_t, be, 0); break; 123 SET_NULL(int16_t, be, 0); 124 break; 119 125 case PCM_SAMPLE_UINT32_LE: 120 SET_NULL(uint32_t, le, INT32_MIN); break; 126 SET_NULL(uint32_t, le, INT32_MIN); 127 break; 121 128 case PCM_SAMPLE_SINT32_LE: 122 SET_NULL(int32_t, le, 0); break; 129 SET_NULL(int32_t, le, 0); 130 break; 123 131 case PCM_SAMPLE_UINT32_BE: 124 SET_NULL(uint32_t, be, INT32_MIN); break; 132 SET_NULL(uint32_t, be, INT32_MIN); 133 break; 125 134 case PCM_SAMPLE_SINT32_BE: 126 SET_NULL(int32_t, le, 0); break; 135 SET_NULL(int32_t, le, 0); 136 break; 127 137 case PCM_SAMPLE_UINT24_32_LE: 128 138 case PCM_SAMPLE_SINT24_32_LE: … … 207 217 switch (df->sample_format) { 208 218 case PCM_SAMPLE_UINT8: 209 LOOP_ADD(uint8_t, le, UINT8_MIN, UINT8_MAX); break; 219 LOOP_ADD(uint8_t, le, UINT8_MIN, UINT8_MAX); 220 break; 210 221 case PCM_SAMPLE_SINT8: 211 LOOP_ADD(uint8_t, le, INT8_MIN, INT8_MAX); break; 222 LOOP_ADD(uint8_t, le, INT8_MIN, INT8_MAX); 223 break; 212 224 case PCM_SAMPLE_UINT16_LE: 213 LOOP_ADD(uint16_t, le, UINT16_MIN, UINT16_MAX); break; 225 LOOP_ADD(uint16_t, le, UINT16_MIN, UINT16_MAX); 226 break; 214 227 case PCM_SAMPLE_SINT16_LE: 215 LOOP_ADD(int16_t, le, INT16_MIN, INT16_MAX); break; 228 LOOP_ADD(int16_t, le, INT16_MIN, INT16_MAX); 229 break; 216 230 case PCM_SAMPLE_UINT16_BE: 217 LOOP_ADD(uint16_t, be, UINT16_MIN, UINT16_MAX); break; 231 LOOP_ADD(uint16_t, be, UINT16_MIN, UINT16_MAX); 232 break; 218 233 case PCM_SAMPLE_SINT16_BE: 219 LOOP_ADD(int16_t, be, INT16_MIN, INT16_MAX); break; 234 LOOP_ADD(int16_t, be, INT16_MIN, INT16_MAX); 235 break; 220 236 case PCM_SAMPLE_UINT24_32_LE: 221 237 case PCM_SAMPLE_UINT32_LE: // TODO this are not right for 24bit 222 LOOP_ADD(uint32_t, le, UINT32_MIN, UINT32_MAX); break; 238 LOOP_ADD(uint32_t, le, UINT32_MIN, UINT32_MAX); 239 break; 223 240 case PCM_SAMPLE_SINT24_32_LE: 224 241 case PCM_SAMPLE_SINT32_LE: 225 LOOP_ADD(int32_t, le, INT32_MIN, INT32_MAX); break; 242 LOOP_ADD(int32_t, le, INT32_MIN, INT32_MAX); 243 break; 226 244 case PCM_SAMPLE_UINT24_32_BE: 227 245 case PCM_SAMPLE_UINT32_BE: 228 LOOP_ADD(uint32_t, be, UINT32_MIN, UINT32_MAX); break; 246 LOOP_ADD(uint32_t, be, UINT32_MIN, UINT32_MAX); 247 break; 229 248 case PCM_SAMPLE_SINT24_32_BE: 230 249 case PCM_SAMPLE_SINT32_BE: 231 LOOP_ADD(int32_t, be, INT32_MIN, INT32_MAX); break; 250 LOOP_ADD(int32_t, be, INT32_MIN, INT32_MAX); 251 break; 232 252 case PCM_SAMPLE_UINT24_LE: 233 253 case PCM_SAMPLE_SINT24_LE:
Note:
See TracChangeset
for help on using the changeset viewer.