rhino/demo/c/pvrecorder/src/miniaudio/tests/test_filtering/ma_test_filtering_dithering.c
Go to the documentation of this file.
1 
2 ma_result test_dithering__u8(const char* pInputFilePath)
3 {
4  const char* pOutputFilePath = TEST_OUTPUT_DIR"/dithering_u8.wav";
5  ma_result result;
6  ma_decoder_config decoderConfig;
8  ma_encoder_config encoderConfig;
10 
11  decoderConfig = ma_decoder_config_init(ma_format_f32, 0, 0);
12  result = ma_decoder_init_file(pInputFilePath, &decoderConfig, &decoder);
13  if (result != MA_SUCCESS) {
14  return result;
15  }
16 
18  result = ma_encoder_init_file(pOutputFilePath, &encoderConfig, &encoder);
19  if (result != MA_SUCCESS) {
21  return result;
22  }
23 
24  for (;;) {
25  ma_uint8 tempIn[4096];
26  ma_uint8 tempOut[4096];
28  ma_uint64 tempCapOut = sizeof(tempOut) / ma_get_bytes_per_frame(ma_format_u8, decoder.outputChannels);
29  ma_uint64 framesToRead;
30  ma_uint64 framesJustRead;
31 
32  framesToRead = ma_min(tempCapIn, tempCapOut);
33  framesJustRead = ma_decoder_read_pcm_frames(&decoder, tempIn, framesToRead);
34 
35  /* Convert, with dithering. */
37 
38  /* Write to the WAV file. */
39  ma_encoder_write_pcm_frames(&encoder, tempOut, framesJustRead);
40 
41  if (framesJustRead < framesToRead) {
42  break;
43  }
44  }
45 
48  return MA_SUCCESS;
49 }
50 
51 int test_entry__dithering(int argc, char** argv)
52 {
53  ma_result result;
54  ma_bool32 hasError = MA_FALSE;
55  const char* pInputFilePath;
56 
57  if (argc < 2) {
58  printf("No input file.\n");
59  return -1;
60  }
61 
62  pInputFilePath = argv[1];
63 
64  result = test_dithering__u8(pInputFilePath);
65  if (result != MA_SUCCESS) {
66  hasError = MA_TRUE;
67  }
68 
69  if (hasError) {
70  return -1;
71  } else {
72  return 0;
73  }
74 }
ma_uint64
uint64_t ma_uint64
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1505
ma_get_bytes_per_frame
static MA_INLINE ma_uint32 ma_get_bytes_per_frame(ma_format format, ma_uint32 channels)
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:2673
MA_FALSE
#define MA_FALSE
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1531
ma_uint8
uint8_t ma_uint8
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1499
ma_min
#define ma_min(x, y)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:778
ma_encoder_config
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5313
ma_dither_mode_triangle
@ ma_dither_mode_triangle
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1776
ma_resource_format_wav
@ ma_resource_format_wav
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5147
ma_decoder_uninit
ma_result ma_decoder_uninit(ma_decoder *pDecoder)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:44739
ma_decoder_config
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5170
test_dithering__u8
ma_result test_dithering__u8(const char *pInputFilePath)
Definition: rhino/demo/c/pvrecorder/src/miniaudio/tests/test_filtering/ma_test_filtering_dithering.c:2
ma_bool32
ma_uint32 ma_bool32
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1529
ma_format_f32
@ ma_format_f32
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1790
ma_decoder_config_init
ma_decoder_config ma_decoder_config_init(ma_format outputFormat, ma_uint32 outputChannels, ma_uint32 outputSampleRate)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:40646
decoder
ma_decoder decoder
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_deviceio/ma_test_deviceio.c:61
ma_decoder::outputFormat
ma_format outputFormat
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5203
ma_encoder_write_pcm_frames
ma_uint64 ma_encoder_write_pcm_frames(ma_encoder *pEncoder, const void *pFramesIn, ma_uint64 frameCount)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:45351
encoder
ma_encoder encoder
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_deviceio/ma_test_deviceio.c:62
ma_result
int ma_result
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1658
TEST_OUTPUT_DIR
#define TEST_OUTPUT_DIR
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_common/ma_test_common.c:18
test_entry__dithering
int test_entry__dithering(int argc, char **argv)
Definition: rhino/demo/c/pvrecorder/src/miniaudio/tests/test_filtering/ma_test_filtering_dithering.c:51
ma_encoder_uninit
void ma_encoder_uninit(ma_encoder *pEncoder)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:45334
ma_encoder
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5324
ma_encoder_init_file
ma_result ma_encoder_init_file(const char *pFilePath, const ma_encoder_config *pConfig, ma_encoder *pEncoder)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:45279
ma_encoder_config_init
ma_encoder_config ma_encoder_config_init(ma_resource_format resourceFormat, ma_format format, ma_uint32 channels, ma_uint32 sampleRate)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:45183
ma_decoder
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5193
ma_format_u8
@ ma_format_u8
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1786
ma_decoder_read_pcm_frames
ma_uint64 ma_decoder_read_pcm_frames(ma_decoder *pDecoder, void *pFramesOut, ma_uint64 frameCount)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:44808
ma_decoder::outputChannels
ma_uint32 outputChannels
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5204
ma_decoder_init_file
ma_result ma_decoder_init_file(const char *pFilePath, const ma_decoder_config *pConfig, ma_decoder *pDecoder)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:44687
python.test_porcupine.argv
argv
Definition: test_porcupine.py:158
MA_TRUE
#define MA_TRUE
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1530
MA_SUCCESS
#define MA_SUCCESS
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1659
ma_convert_pcm_frames_format
void ma_convert_pcm_frames_format(void *pOut, ma_format formatOut, const void *pIn, ma_format formatIn, ma_uint64 frameCount, ma_uint32 channels, ma_dither_mode ditherMode)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:30307
ma_decoder::outputSampleRate
ma_uint32 outputSampleRate
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5205


picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:13:56