pulse work and cleanup

ulab-next
Jay Sorg 11 years ago
parent 8c9fe9452f
commit 21df0406d7

@ -141,6 +141,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data,
case PA_SINK_MESSAGE_SET_STATE: /* 9 */
if (PA_PTR_TO_UINT(data) == PA_SINK_RUNNING) /* 0 */ {
pa_log("sink_process_msg: running");
u->timestamp = pa_rtclock_now();
} else {
pa_log("sink_process_msg: not running");

@ -23,43 +23,95 @@
extern int g_rdpsnd_chan_id; /* in chansrv.c */
extern int g_display_num; /* in chansrv.c */
static struct trans *g_audio_l_trans = 0; // listener
static struct trans *g_audio_c_trans = 0; // connection
static struct trans *g_audio_l_trans = 0; /* listener */
static struct trans *g_audio_c_trans = 0; /* connection */
static int g_training_sent_time = 0;
static int g_cBlockNo = 0;
#define BBUF_SIZE (1024 * 8)
char g_buffer[BBUF_SIZE];
int g_buf_index = 0;
int g_sent_time[256];
#if defined(XRDP_SIMPLESOUND)
static void *DEFAULT_CC
read_raw_audio_data(void *arg);
#endif
#define CHANSRV_PORT_STR "/tmp/.xrdp/xrdp_chansrv_audio_socket_%d"
struct xr_wave_format_ex
{
int wFormatTag;
int nChannels;
int nSamplesPerSec;
int nAvgBytesPerSec;
int nBlockAlign;
int wBitsPerSample;
int cbSize;
char *data;
};
static char g_pmc_22050_data[] = { 0 };
static struct xr_wave_format_ex g_pmc_22050 =
{
1, /* wFormatTag - WAVE_FORMAT_PCM */
2, /* num of channels */
22050, /* samples per sec */
88200, /* avg bytes per sec */
4, /* block align */
16, /* bits per sample */
0, /* data size */
g_pmc_22050_data /* data */
};
static char g_pmc_44100_data[] = { 0 };
static struct xr_wave_format_ex g_pmc_44100 =
{
1, /* wFormatTag - WAVE_FORMAT_PCM */
2, /* num of channels */
44100, /* samples per sec */
176400, /* avg bytes per sec */
4, /* block align */
16, /* bits per sample */
0, /* data size */
g_pmc_44100_data /* data */
};
#define NUM_BUILT_IN 2
static struct xr_wave_format_ex *g_wave_formats[NUM_BUILT_IN] =
{
&g_pmc_44100,
&g_pmc_22050
};
/* index into list from client */
static int g_current_client_format_index = 0;
/* index into list from server */
static int g_current_server_format_index = 0;
/*****************************************************************************/
static int APP_CC
sound_send_server_formats(void)
{
struct stream *s;
int bytes;
int index;
char *size_ptr;
print_got_here();
make_stream(s);
init_stream(s, 8182);
out_uint16_le(s, SNDC_FORMATS);
size_ptr = s->p;
out_uint16_le(s, 0); /* size, set later */
out_uint32_le(s, 0); /* dwFlags */
out_uint32_le(s, 0); /* dwVolume */
out_uint32_le(s, 0); /* dwPitch */
out_uint16_le(s, 0); /* wDGramPort */
out_uint16_le(s, 1); /* wNumberOfFormats */
out_uint8(s, g_cBlockNo); /* cLastBlockConfirmed */
out_uint16_le(s, 2); /* wVersion */
out_uint8(s, 0); /* bPad */
out_uint16_le(s, 0); /* size, set later */
out_uint32_le(s, 0); /* dwFlags */
out_uint32_le(s, 0); /* dwVolume */
out_uint32_le(s, 0); /* dwPitch */
out_uint16_le(s, 0); /* wDGramPort */
out_uint16_le(s, NUM_BUILT_IN); /* wNumberOfFormats */
out_uint8(s, g_cBlockNo); /* cLastBlockConfirmed */
out_uint16_le(s, 2); /* wVersion */
out_uint8(s, 0); /* bPad */
/* sndFormats */
/*
@ -80,13 +132,21 @@ sound_send_server_formats(void)
00 00
*/
out_uint16_le(s, 1); // wFormatTag - WAVE_FORMAT_PCM
out_uint16_le(s, 2); // num of channels
out_uint32_le(s, 44100); // samples per sec
out_uint32_le(s, 176400); // avg bytes per sec
out_uint16_le(s, 4); // block align
out_uint16_le(s, 16); // bits per sample
out_uint16_le(s, 0); // size
for (index = 0; index < NUM_BUILT_IN; index++)
{
out_uint16_le(s, g_wave_formats[index]->wFormatTag);
out_uint16_le(s, g_wave_formats[index]->nChannels);
out_uint32_le(s, g_wave_formats[index]->nSamplesPerSec);
out_uint32_le(s, g_wave_formats[index]->nAvgBytesPerSec);
out_uint16_le(s, g_wave_formats[index]->nBlockAlign);
out_uint16_le(s, g_wave_formats[index]->wBitsPerSample);
bytes = g_wave_formats[index]->cbSize;
out_uint16_le(s, bytes);
if (bytes > 0)
{
out_uint8p(s, g_wave_formats[index]->data, bytes);
}
}
s_mark_end(s);
bytes = (int)((s->end - s->data) - 4);
@ -107,8 +167,6 @@ sound_send_training(void)
int time;
char *size_ptr;
print_got_here();
make_stream(s);
init_stream(s, 8182);
out_uint16_le(s, SNDC_TRAINING);
@ -129,6 +187,52 @@ sound_send_training(void)
return 0;
}
/*****************************************************************************/
static int APP_CC
sound_process_format(int aindex, int wFormatTag, int nChannels,
int nSamplesPerSec, int nAvgBytesPerSec,
int nBlockAlign, int wBitsPerSample,
int cbSize, char *data)
{
int lindex;
LOG(0, ("sound_process_format:"));
LOG(0, (" wFormatTag %d", wFormatTag));
LOG(0, (" nChannels %d", nChannels));
LOG(0, (" nSamplesPerSec %d", nSamplesPerSec));
LOG(0, (" nAvgBytesPerSec %d", nAvgBytesPerSec));
LOG(0, (" nBlockAlign %d", nBlockAlign));
LOG(0, (" wBitsPerSample %d", wBitsPerSample));
LOG(0, (" cbSize %d", cbSize));
g_hexdump(data, cbSize);
if (wFormatTag == g_pmc_44100.wFormatTag &&
nChannels == g_pmc_44100.nChannels &&
nSamplesPerSec == g_pmc_44100.nSamplesPerSec &&
nAvgBytesPerSec == g_pmc_44100.nAvgBytesPerSec &&
nBlockAlign == g_pmc_44100.nBlockAlign &&
wBitsPerSample == g_pmc_44100.wBitsPerSample)
{
g_current_client_format_index = aindex;
g_current_server_format_index = 0;
}
#if 0
for (lindex = 0; lindex < NUM_BUILT_IN; lindex++)
{
if (wFormatTag == g_wave_formats[lindex]->wFormatTag &&
nChannels == g_wave_formats[lindex]->nChannels &&
nSamplesPerSec == g_wave_formats[lindex]->nSamplesPerSec &&
nAvgBytesPerSec == g_wave_formats[lindex]->nAvgBytesPerSec &&
nBlockAlign == g_wave_formats[lindex]->nBlockAlign &&
wBitsPerSample == g_wave_formats[lindex]->wBitsPerSample)
{
g_current_client_format_index = aindex;
g_current_server_format_index = lindex;
}
}
#endif
return 0;
}
/*****************************************************************************/
/*
0000 07 02 26 00 03 00 80 00 ff ff ff ff 00 00 00 00 ..&.............
@ -140,8 +244,15 @@ static int APP_CC
sound_process_formats(struct stream *s, int size)
{
int num_formats;
print_got_here();
int index;
int wFormatTag;
int nChannels;
int nSamplesPerSec;
int nAvgBytesPerSec;
int nBlockAlign;
int wBitsPerSample;
int cbSize;
char *data;
LOG(0, ("sound_process_formats:"));
@ -152,9 +263,24 @@ sound_process_formats(struct stream *s, int size)
in_uint8s(s, 14);
in_uint16_le(s, num_formats);
in_uint8s(s, 4);
if (num_formats > 0)
{
for (index = 0; index < num_formats; index++)
{
in_uint16_le(s, wFormatTag);
in_uint16_le(s, nChannels);
in_uint32_le(s, nSamplesPerSec);
in_uint32_le(s, nAvgBytesPerSec);
in_uint16_le(s, nBlockAlign);
in_uint16_le(s, wBitsPerSample);
in_uint16_le(s, cbSize);
in_uint8p(s, data, cbSize);
sound_process_format(index, wFormatTag, nChannels, nSamplesPerSec,
nAvgBytesPerSec, nBlockAlign, wBitsPerSample,
cbSize, data);
}
sound_send_training();
}
@ -162,6 +288,7 @@ sound_process_formats(struct stream *s, int size)
}
/*****************************************************************************/
/* send wave message to client */
static int
sound_send_wave_data_chunk(char *data, int data_bytes)
{
@ -170,7 +297,7 @@ sound_send_wave_data_chunk(char *data, int data_bytes)
int time;
char *size_ptr;
print_got_here();
LOG(10, ("sound_send_wave_data_chunk: data_bytes %d", data_bytes));
if ((data_bytes < 4) || (data_bytes > 128 * 1024))
{
@ -188,9 +315,10 @@ sound_send_wave_data_chunk(char *data, int data_bytes)
out_uint16_le(s, 0); /* size, set later */
time = g_time2();
out_uint16_le(s, time);
out_uint16_le(s, 0); /* wFormatNo */
out_uint16_le(s, g_current_client_format_index); /* wFormatNo */
g_cBlockNo++;
out_uint8(s, g_cBlockNo);
g_sent_time[g_cBlockNo & 0xff] = time;
LOG(10, ("sound_send_wave_data_chunk: sending time %d, g_cBlockNo %d",
time & 0xffff, g_cBlockNo & 0xff));
@ -220,6 +348,7 @@ sound_send_wave_data_chunk(char *data, int data_bytes)
}
/*****************************************************************************/
/* send wave message to client, buffer first */
static int
sound_send_wave_data(char *data, int data_bytes)
{
@ -252,6 +381,7 @@ sound_send_wave_data(char *data, int data_bytes)
}
/*****************************************************************************/
/* send close message to client */
static int
sound_send_close(void)
{
@ -260,7 +390,6 @@ sound_send_close(void)
char *size_ptr;
LOG(10, ("sound_send_close:"));
print_got_here();
/* send any left over data */
sound_send_wave_data_chunk(g_buffer, g_buf_index);
@ -282,42 +411,45 @@ sound_send_close(void)
}
/*****************************************************************************/
/* from client */
static int APP_CC
sound_process_training(struct stream *s, int size)
{
int time_diff;
print_got_here();
time_diff = g_time2() - g_training_sent_time;
LOG(0, ("sound_process_training: round trip time %u", time_diff));
return 0;
}
/*****************************************************************************/
/* from client */
static int APP_CC
sound_process_wave_confirm(struct stream *s, int size)
{
int wTimeStamp;
int cConfirmedBlockNo;
int time;
int time_diff;
print_got_here();
time = g_time2();
in_uint16_le(s, wTimeStamp);
in_uint8(s, cConfirmedBlockNo);
time_diff = time - g_sent_time[cConfirmedBlockNo];
LOG(10, ("sound_process_wave_confirm: wTimeStamp %d, cConfirmedBlockNo %d",
wTimeStamp, cConfirmedBlockNo));
LOG(10, ("sound_process_wave_confirm: wTimeStamp %d, "
"cConfirmedBlockNo %d time diff %d",
wTimeStamp, cConfirmedBlockNo, time_diff));
return 0;
}
/*****************************************************************************/
/* process message in from the audio source, eg pulse, alsa
on it's way to the client */
static int APP_CC
process_pcm_message(int id, int size, struct stream *s)
{
print_got_here();
switch (id)
{
case 0:
@ -334,7 +466,7 @@ process_pcm_message(int id, int size, struct stream *s)
}
/*****************************************************************************/
/* data coming in from audio source, eg pulse, alsa */
/* data in from audio source, eg pulse, alsa */
static int DEFAULT_CC
sound_trans_audio_data_in(struct trans *trans)
{
@ -376,11 +508,11 @@ sound_trans_audio_data_in(struct trans *trans)
}
/*****************************************************************************/
/* this is a connection in on the unix domain socket */
static int DEFAULT_CC
sound_trans_audio_conn_in(struct trans *trans, struct trans *new_trans)
{
LOG(0, ("sound_trans_audio_conn_in:"));
print_got_here();
if (trans == 0)
{
@ -410,8 +542,6 @@ sound_trans_audio_conn_in(struct trans *trans, struct trans *new_trans)
return 0;
}
#define CHANSRV_PORT_STR "/tmp/.xrdp/xrdp_chansrv_audio_socket_%d"
/*****************************************************************************/
int APP_CC
sound_init(void)
@ -419,7 +549,6 @@ sound_init(void)
char port[256];
int error;
print_got_here();
LOG(0, ("sound_init:"));
sound_send_server_formats();
@ -447,8 +576,6 @@ sound_init(void)
int APP_CC
sound_deinit(void)
{
print_got_here();
if (g_audio_l_trans != 0)
{
trans_delete(g_audio_l_trans);
@ -465,7 +592,7 @@ sound_deinit(void)
}
/*****************************************************************************/
/* data in from client ( clinet -> xrdp -> chansrv ) */
/* data in from client ( client -> xrdp -> chansrv ) */
int APP_CC
sound_data_in(struct stream *s, int chan_id, int chan_flags, int length,
int total_length)
@ -473,8 +600,6 @@ sound_data_in(struct stream *s, int chan_id, int chan_flags, int length,
int code;
int size;
print_got_here();
in_uint8(s, code);
in_uint8s(s, 1);
in_uint16_le(s, size);
@ -544,6 +669,8 @@ sound_check_wait_objs(void)
#if defined(XRDP_SIMPLESOUND)
#define AUDIO_BUF_SIZE 2048
static int DEFAULT_CC
sttrans_data_in(struct trans *self)
{

@ -30,18 +30,6 @@
#include "chansrv.h"
#include "trans.h"
#define _DEBUG_RDPSND
#ifdef DEBUG_RDPSND
#include <stdio.h>
#define print_got_here() printf("****** got here: %s : %s : %d\n", \
__FILE__, __func__, __LINE__);
#else
#define print_got_here()
#endif
#define AUDIO_BUF_SIZE 2048
#define SNDC_CLOSE 0x01
#define SNDC_WAVE 0x02
#define SNDC_SETVOLUME 0x03

@ -0,0 +1,466 @@
Example wave formats from some servers
see MMREG.H for defines
Windows 7 SP1
example wave data sizes coming from server 8820
wFormatTag=1 nChannels=2 nSamplesPerSec=44100 nAvgBytesPerSec=176400 nBlockAlign=4 wBitsPerSample=16 cbSize=0
#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
wFormatTag=6 nChannels=2 nSamplesPerSec=44100 nAvgBytesPerSec=88200 nBlockAlign=2 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
wFormatTag=7 nChannels=2 nSamplesPerSec=44100 nAvgBytesPerSec=88200 nBlockAlign=2 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
wFormatTag=2 nChannels=2 nSamplesPerSec=44100 nAvgBytesPerSec=44359 nBlockAlign=2048 wBitsPerSample=4 cbSize=32
0000 f4 07 07 00 00 01 00 00 00 02 00 ff 00 00 00 00 ................
0010 c0 00 40 00 f0 00 00 00 cc 01 30 ff 88 01 18 ff ..@.......0.....
#define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
wFormatTag=17 nChannels=2 nSamplesPerSec=44100 nAvgBytesPerSec=44251 nBlockAlign=2048 wBitsPerSample=4 cbSize=2
0000 f9 07 ..
#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
wFormatTag=6 nChannels=2 nSamplesPerSec=22050 nAvgBytesPerSec=44100 nBlockAlign=2 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
wFormatTag=6 nChannels=1 nSamplesPerSec=44100 nAvgBytesPerSec=44100 nBlockAlign=1 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
wFormatTag=7 nChannels=2 nSamplesPerSec=22050 nAvgBytesPerSec=44100 nBlockAlign=2 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
wFormatTag=7 nChannels=1 nSamplesPerSec=44100 nAvgBytesPerSec=44100 nBlockAlign=1 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
wFormatTag=2 nChannels=2 nSamplesPerSec=22050 nAvgBytesPerSec=22311 nBlockAlign=1024 wBitsPerSample=4 cbSize=32
0000 f4 03 07 00 00 01 00 00 00 02 00 ff 00 00 00 00 ................
0010 c0 00 40 00 f0 00 00 00 cc 01 30 ff 88 01 18 ff ..@.......0.....
#define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
wFormatTag=17 nChannels=2 nSamplesPerSec=22050 nAvgBytesPerSec=22201 nBlockAlign=1024 wBitsPerSample=4 cbSize=2
0000 f9 03 ..
#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
wFormatTag=2 nChannels=1 nSamplesPerSec=44100 nAvgBytesPerSec=22179 nBlockAlign=1024 wBitsPerSample=4 cbSize=32
0000 f4 07 07 00 00 01 00 00 00 02 00 ff 00 00 00 00 ................
0010 c0 00 40 00 f0 00 00 00 cc 01 30 ff 88 01 18 ff ..@.......0.....
#define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
wFormatTag=17 nChannels=1 nSamplesPerSec=44100 nAvgBytesPerSec=22125 nBlockAlign=1024 wBitsPerSample=4 cbSize=2
0000 f9 07 ..
#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
wFormatTag=6 nChannels=2 nSamplesPerSec=11025 nAvgBytesPerSec=22050 nBlockAlign=2 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
wFormatTag=6 nChannels=1 nSamplesPerSec=22050 nAvgBytesPerSec=22050 nBlockAlign=1 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
wFormatTag=7 nChannels=2 nSamplesPerSec=11025 nAvgBytesPerSec=22050 nBlockAlign=2 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
wFormatTag=7 nChannels=1 nSamplesPerSec=22050 nAvgBytesPerSec=22050 nBlockAlign=1 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
wFormatTag=6 nChannels=2 nSamplesPerSec=8000 nAvgBytesPerSec=16000 nBlockAlign=2 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
wFormatTag=7 nChannels=2 nSamplesPerSec=8000 nAvgBytesPerSec=16000 nBlockAlign=2 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
wFormatTag=2 nChannels=2 nSamplesPerSec=11025 nAvgBytesPerSec=11289 nBlockAlign=512 wBitsPerSample=4 cbSize=32
0000 f4 01 07 00 00 01 00 00 00 02 00 ff 00 00 00 00 ................
0010 c0 00 40 00 f0 00 00 00 cc 01 30 ff 88 01 18 ff ..@.......0.....
#define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
wFormatTag=17 nChannels=2 nSamplesPerSec=11025 nAvgBytesPerSec=11177 nBlockAlign=512 wBitsPerSample=4 cbSize=2
0000 f9 01 ..
#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
wFormatTag=2 nChannels=1 nSamplesPerSec=22050 nAvgBytesPerSec=11155 nBlockAlign=512 wBitsPerSample=4 cbSize=32
0000 f4 03 07 00 00 01 00 00 00 02 00 ff 00 00 00 00 ................
0010 c0 00 40 00 f0 00 00 00 cc 01 30 ff 88 01 18 ff ..@.......0.....
#define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
wFormatTag=17 nChannels=1 nSamplesPerSec=22050 nAvgBytesPerSec=11100 nBlockAlign=512 wBitsPerSample=4 cbSize=2
0000 f9 03 ..
#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
wFormatTag=6 nChannels=1 nSamplesPerSec=11025 nAvgBytesPerSec=11025 nBlockAlign=1 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
wFormatTag=7 nChannels=1 nSamplesPerSec=11025 nAvgBytesPerSec=11025 nBlockAlign=1 wBitsPerSample=8 cbSize=0
wFormatTag=49 nChannels=1 nSamplesPerSec=44100 nAvgBytesPerSec=8957 nBlockAlign=65 wBitsPerSample=0 cbSize=2
0000 40 01 @.
#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
wFormatTag=2 nChannels=2 nSamplesPerSec=8000 nAvgBytesPerSec=8192 nBlockAlign=512 wBitsPerSample=4 cbSize=32
0000 f4 01 07 00 00 01 00 00 00 02 00 ff 00 00 00 00 ................
0010 c0 00 40 00 f0 00 00 00 cc 01 30 ff 88 01 18 ff ..@.......0.....
#define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
wFormatTag=17 nChannels=2 nSamplesPerSec=8000 nAvgBytesPerSec=8110 nBlockAlign=512 wBitsPerSample=4 cbSize=2
0000 f9 01 ..
#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
wFormatTag=6 nChannels=1 nSamplesPerSec=8000 nAvgBytesPerSec=8000 nBlockAlign=1 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
wFormatTag=7 nChannels=1 nSamplesPerSec=8000 nAvgBytesPerSec=8000 nBlockAlign=1 wBitsPerSample=8 cbSize=0
wFormatTag=2 nChannels=1 nSamplesPerSec=11025 nAvgBytesPerSec=5644 nBlockAlign=256 wBitsPerSample=4 cbSize=32
0000 f4 01 07 00 00 01 00 00 00 02 00 ff 00 00 00 00 ................
0010 c0 00 40 00 f0 00 00 00 cc 01 30 ff 88 01 18 ff ..@.......0.....
wFormatTag=17 nChannels=1 nSamplesPerSec=11025 nAvgBytesPerSec=5588 nBlockAlign=256 wBitsPerSample=4 cbSize=2
0000 f9 01 ..
#define WAVE_FORMAT_GSM610 0x0031 /* Microsoft Corporation */
wFormatTag=49 nChannels=1 nSamplesPerSec=22050 nAvgBytesPerSec=4478 nBlockAlign=65 wBitsPerSample=0 cbSize=2
0000 40 01 @.
#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
wFormatTag=2 nChannels=1 nSamplesPerSec=8000 nAvgBytesPerSec=4096 nBlockAlign=256 wBitsPerSample=4 cbSize=32
0000 f4 01 07 00 00 01 00 00 00 02 00 ff 00 00 00 00 ................
0010 c0 00 40 00 f0 00 00 00 cc 01 30 ff 88 01 18 ff ..@.......0.....
#define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
wFormatTag=17 nChannels=1 nSamplesPerSec=8000 nAvgBytesPerSec=4055 nBlockAlign=256 wBitsPerSample=4 cbSize=2
0000 f9 01 ..
#define WAVE_FORMAT_GSM610 0x0031 /* Microsoft Corporation */
wFormatTag=49 nChannels=1 nSamplesPerSec=11025 nAvgBytesPerSec=2239 nBlockAlign=65 wBitsPerSample=0 cbSize=2
0000 40 01 @.
#define WAVE_FORMAT_GSM610 0x0031 /* Microsoft Corporation */
wFormatTag=49 nChannels=1 nSamplesPerSec=8000 nAvgBytesPerSec=1625 nBlockAlign=65 wBitsPerSample=0 cbSize=2
0000 40 01 @.
Windows XP SP3
example wave data sizes coming from server 32512, 16256
wFormatTag=1 nChannels=2 nSamplesPerSec=22050 nAvgBytesPerSec=88200 nBlockAlign=4 wBitsPerSample=16 cbSize=0
#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
wFormatTag=6 nChannels=2 nSamplesPerSec=22050 nAvgBytesPerSec=44100 nBlockAlign=2 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
wFormatTag=7 nChannels=2 nSamplesPerSec=22050 nAvgBytesPerSec=44100 nBlockAlign=2 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
wFormatTag=2 nChannels=2 nSamplesPerSec=22050 nAvgBytesPerSec=22311 nBlockAlign=1024 wBitsPerSample=4 cbSize=32
0000 f4 03 07 00 00 01 00 00 00 02 00 ff 00 00 00 00 ................
0010 c0 00 40 00 f0 00 00 00 cc 01 30 ff 88 01 18 ff ..@.......0.....
#define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
wFormatTag=17 nChannels=2 nSamplesPerSec=22050 nAvgBytesPerSec=22201 nBlockAlign=1024 wBitsPerSample=4 cbSize=2
0000 f9 03 ..
#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
wFormatTag=6 nChannels=2 nSamplesPerSec=11025 nAvgBytesPerSec=22050 nBlockAlign=2 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
wFormatTag=6 nChannels=1 nSamplesPerSec=22050 nAvgBytesPerSec=22050 nBlockAlign=1 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
wFormatTag=7 nChannels=2 nSamplesPerSec=11025 nAvgBytesPerSec=22050 nBlockAlign=2 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
wFormatTag=7 nChannels=1 nSamplesPerSec=22050 nAvgBytesPerSec=22050 nBlockAlign=1 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
wFormatTag=6 nChannels=2 nSamplesPerSec=8000 nAvgBytesPerSec=16000 nBlockAlign=2 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
wFormatTag=7 nChannels=2 nSamplesPerSec=8000 nAvgBytesPerSec=16000 nBlockAlign=2 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
wFormatTag=2 nChannels=2 nSamplesPerSec=11025 nAvgBytesPerSec=11289 nBlockAlign=512 wBitsPerSample=4 cbSize=32
0000 f4 01 07 00 00 01 00 00 00 02 00 ff 00 00 00 00 ................
0010 c0 00 40 00 f0 00 00 00 cc 01 30 ff 88 01 18 ff ..@.......0.....
#define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
wFormatTag=17 nChannels=2 nSamplesPerSec=11025 nAvgBytesPerSec=11177 nBlockAlign=512 wBitsPerSample=4 cbSize=2
0000 f9 01 ..
#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
wFormatTag=2 nChannels=1 nSamplesPerSec=22050 nAvgBytesPerSec=11155 nBlockAlign=512 wBitsPerSample=4 cbSize=32
0000 f4 03 07 00 00 01 00 00 00 02 00 ff 00 00 00 00 ................
0010 c0 00 40 00 f0 00 00 00 cc 01 30 ff 88 01 18 ff ..@.......0.....
#define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
wFormatTag=17 nChannels=1 nSamplesPerSec=22050 nAvgBytesPerSec=11100 nBlockAlign=512 wBitsPerSample=4 cbSize=2
0000 f9 03 ..
#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
wFormatTag=6 nChannels=1 nSamplesPerSec=11025 nAvgBytesPerSec=11025 nBlockAlign=1 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
wFormatTag=7 nChannels=1 nSamplesPerSec=11025 nAvgBytesPerSec=11025 nBlockAlign=1 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
wFormatTag=2 nChannels=2 nSamplesPerSec=8000 nAvgBytesPerSec=8192 nBlockAlign=512 wBitsPerSample=4 cbSize=32
0000 f4 01 07 00 00 01 00 00 00 02 00 ff 00 00 00 00 ................
0010 c0 00 40 00 f0 00 00 00 cc 01 30 ff 88 01 18 ff ..@.......0.....
#define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
wFormatTag=17 nChannels=2 nSamplesPerSec=8000 nAvgBytesPerSec=8110 nBlockAlign=512 wBitsPerSample=4 cbSize=2
0000 f9 01 ..
#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
wFormatTag=6 nChannels=1 nSamplesPerSec=8000 nAvgBytesPerSec=8000 nBlockAlign=1 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
wFormatTag=7 nChannels=1 nSamplesPerSec=8000 nAvgBytesPerSec=8000 nBlockAlign=1 wBitsPerSample=8 cbSize=0
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=22050 nAvgBytesPerSec=7000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 b6 00 01 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=16000 nAvgBytesPerSec=7000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 fc 00 01 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=22050 nAvgBytesPerSec=6000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 9c 00 01 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=16000 nAvgBytesPerSec=6000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 d8 00 01 00 71 05 ..........q.
#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
wFormatTag=2 nChannels=1 nSamplesPerSec=11025 nAvgBytesPerSec=5644 nBlockAlign=256 wBitsPerSample=4 cbSize=32
0000 f4 01 07 00 00 01 00 00 00 02 00 ff 00 00 00 00 ................
0010 c0 00 40 00 f0 00 00 00 cc 01 30 ff 88 01 18 ff ..@.......0.....
#define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
wFormatTag=17 nChannels=1 nSamplesPerSec=11025 nAvgBytesPerSec=5588 nBlockAlign=256 wBitsPerSample=4 cbSize=2
0000 f9 01 ..
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=22050 nAvgBytesPerSec=5000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 82 00 01 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=16000 nAvgBytesPerSec=5000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 b4 00 01 00 71 05 ..........q.
#define WAVE_FORMAT_GSM610 0x0031 /* Microsoft Corporation */
wFormatTag=49 nChannels=1 nSamplesPerSec=22050 nAvgBytesPerSec=4478 nBlockAlign=65 wBitsPerSample=0 cbSize=2
0000 40 01 @.
#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
wFormatTag=2 nChannels=1 nSamplesPerSec=8000 nAvgBytesPerSec=4096 nBlockAlign=256 wBitsPerSample=4 cbSize=32
0000 f4 01 07 00 00 01 00 00 00 02 00 ff 00 00 00 00 ................
0010 c0 00 40 00 f0 00 00 00 cc 01 30 ff 88 01 18 ff ..@.......0.....
#define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
wFormatTag=17 nChannels=1 nSamplesPerSec=8000 nAvgBytesPerSec=4055 nBlockAlign=256 wBitsPerSample=4 cbSize=2
0000 f9 01 ..
?
wFormatTag=353 nChannels=2 nSamplesPerSec=22050 nAvgBytesPerSec=4005 nBlockAlign=186 wBitsPerSample=16 cbSize=47
0000 00 04 00 00 01 00 ba 00 00 00 46 36 44 43 39 38 ..........F6DC98
0010 33 30 2d 42 43 37 39 2d 31 31 64 32 2d 41 39 44 30-BC79-11d2-A9D
0020 30 2d 30 30 36 30 39 37 39 32 36 30 33 36 00 0-006097926036.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=16000 nAvgBytesPerSec=4000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 90 00 01 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=12000 nAvgBytesPerSec=4000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 c0 00 01 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=11025 nAvgBytesPerSec=4000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 d0 00 01 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=8000 nAvgBytesPerSec=4000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 20 01 01 00 71 05 ...... ...q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=1 nSamplesPerSec=22050 nAvgBytesPerSec=4000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 68 00 01 00 71 05 ......h...q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=1 nSamplesPerSec=16000 nAvgBytesPerSec=4000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 90 00 01 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=12000 nAvgBytesPerSec=3000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 90 00 01 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=11025 nAvgBytesPerSec=3000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 9c 00 01 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=8000 nAvgBytesPerSec=3000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 d8 00 01 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=1 nSamplesPerSec=22050 nAvgBytesPerSec=3000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 4e 00 01 00 71 05 ......N...q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=1 nSamplesPerSec=16000 nAvgBytesPerSec=3000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 6c 00 01 00 71 05 ......l...q.
?
wFormatTag=353 nChannels=1 nSamplesPerSec=22050 nAvgBytesPerSec=2519 nBlockAlign=117 wBitsPerSample=16 cbSize=47
0000 00 04 00 00 00 00 75 00 00 00 46 36 44 43 39 38 ......u...F6DC98
0010 33 30 2d 42 43 37 39 2d 31 31 64 32 2d 41 39 44 30-BC79-11d2-A9D
0020 30 2d 30 30 36 30 39 37 39 32 36 30 33 36 00 0-006097926036.
?
wFormatTag=353 nChannels=2 nSamplesPerSec=22050 nAvgBytesPerSec=2519 nBlockAlign=117 wBitsPerSample=16 cbSize=47
0000 00 04 00 00 00 00 75 00 00 00 46 36 44 43 39 38 ......u...F6DC98
0010 33 30 2d 42 43 37 39 2d 31 31 64 32 2d 41 39 44 30-BC79-11d2-A9D
0020 30 2d 30 30 36 30 39 37 39 32 36 30 33 36 00 0-006097926036.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=12000 nAvgBytesPerSec=2500 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 f0 00 02 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=11025 nAvgBytesPerSec=2500 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 04 01 02 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=8000 nAvgBytesPerSec=2500 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 68 01 02 00 71 05 ......h...q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=1 nSamplesPerSec=16000 nAvgBytesPerSec=2500 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 b4 00 02 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=1 nSamplesPerSec=12000 nAvgBytesPerSec=2500 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 f0 00 02 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=1 nSamplesPerSec=11025 nAvgBytesPerSec=2500 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 04 01 02 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=12000 nAvgBytesPerSec=2250 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 b0 01 04 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=11025 nAvgBytesPerSec=2250 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 d4 01 04 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=2 nSamplesPerSec=8000 nAvgBytesPerSec=2250 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 88 02 04 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=1 nSamplesPerSec=16000 nAvgBytesPerSec=2250 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 44 01 04 00 71 05 ......D...q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=1 nSamplesPerSec=12000 nAvgBytesPerSec=2250 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 b0 01 04 00 71 05 ..........q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=1 nSamplesPerSec=11025 nAvgBytesPerSec=2250 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 d4 01 04 00 71 05 ..........q.
#define WAVE_FORMAT_GSM610 0x0031 /* Microsoft Corporation */
wFormatTag=49 nChannels=1 nSamplesPerSec=11025 nAvgBytesPerSec=2239 nBlockAlign=65 wBitsPerSample=0 cbSize=2
0000 40 01 @.
?
wFormatTag=353 nChannels=1 nSamplesPerSec=16000 nAvgBytesPerSec=2000 nBlockAlign=64 wBitsPerSample=16 cbSize=47
0000 00 02 00 00 00 00 40 00 00 00 46 36 44 43 39 38 ......@...F6DC98
0010 33 30 2d 42 43 37 39 2d 31 31 64 32 2d 41 39 44 30-BC79-11d2-A9D
0020 30 2d 30 30 36 30 39 37 39 32 36 30 33 36 00 0-006097926036.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=1 nSamplesPerSec=16000 nAvgBytesPerSec=2000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 48 00 01 00 71 05 ......H...q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=1 nSamplesPerSec=12000 nAvgBytesPerSec=2000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 60 00 01 00 71 05 ......`...q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=1 nSamplesPerSec=11025 nAvgBytesPerSec=2000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 68 00 01 00 71 05 ......h...q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=1 nSamplesPerSec=8000 nAvgBytesPerSec=2000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 90 00 01 00 71 05 ..........q.
#define WAVE_FORMAT_GSM610 0x0031 /* Microsoft Corporation */
wFormatTag=49 nChannels=1 nSamplesPerSec=8000 nAvgBytesPerSec=1625 nBlockAlign=65 wBitsPerSample=0 cbSize=2
0000 40 01 @.
?
wFormatTag=353 nChannels=2 nSamplesPerSec=8000 nAvgBytesPerSec=1500 nBlockAlign=96 wBitsPerSample=16 cbSize=47
0000 00 02 00 00 00 00 60 00 00 00 46 36 44 43 39 38 ......`...F6DC98
0010 33 30 2d 42 43 37 39 2d 31 31 64 32 2d 41 39 44 30-BC79-11d2-A9D
0020 30 2d 30 30 36 30 39 37 39 32 36 30 33 36 00 0-006097926036.
?
wFormatTag=353 nChannels=1 nSamplesPerSec=11025 nAvgBytesPerSec=1249 nBlockAlign=58 wBitsPerSample=16 cbSize=47
0000 00 02 00 00 00 00 3a 00 00 00 46 36 44 43 39 38 ......:...F6DC98
0010 33 30 2d 42 43 37 39 2d 31 31 64 32 2d 41 39 44 30-BC79-11d2-A9D
0020 30 2d 30 30 36 30 39 37 39 32 36 30 33 36 00 0-006097926036.
#define WAVE_FORMAT_DSPGROUP_TRUESPEECH 0x0022 /* DSP Group, Inc */
wFormatTag=34 nChannels=1 nSamplesPerSec=8000 nAvgBytesPerSec=1067 nBlockAlign=32 wBitsPerSample=1 cbSize=32
0000 01 00 f0 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
?
wFormatTag=353 nChannels=1 nSamplesPerSec=11025 nAvgBytesPerSec=1012 nBlockAlign=47 wBitsPerSample=16 cbSize=47
0000 00 02 00 00 00 00 2f 00 00 00 46 36 44 43 39 38 ....../...F6DC98
0010 33 30 2d 42 43 37 39 2d 31 31 64 32 2d 41 39 44 30-BC79-11d2-A9D
0020 30 2d 30 30 36 30 39 37 39 32 36 30 33 36 00 0-006097926036.
?
wFormatTag=353 nChannels=1 nSamplesPerSec=8000 nAvgBytesPerSec=1000 nBlockAlign=64 wBitsPerSample=16 cbSize=47
0000 00 02 00 00 00 00 40 00 00 00 46 36 44 43 39 38 ......@...F6DC98
0010 33 30 2d 42 43 37 39 2d 31 31 64 32 2d 41 39 44 30-BC79-11d2-A9D
0020 30 2d 30 30 36 30 39 37 39 32 36 30 33 36 00 0-006097926036.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=1 nSamplesPerSec=12000 nAvgBytesPerSec=1000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 30 00 01 00 71 05 ......0...q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=1 nSamplesPerSec=11025 nAvgBytesPerSec=1000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 34 00 01 00 71 05 ......4...q.
#define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */
wFormatTag=85 nChannels=1 nSamplesPerSec=8000 nAvgBytesPerSec=1000 nBlockAlign=1 wBitsPerSample=0 cbSize=12
0000 01 00 02 00 00 00 48 00 01 00 71 05 ......H...q.
?
wFormatTag=66 nChannels=1 nSamplesPerSec=8000 nAvgBytesPerSec=800 nBlockAlign=24 wBitsPerSample=0 cbSize=10
0000 02 00 ce 9a 32 f7 a2 ae de ac ....2.....
?
wFormatTag=353 nChannels=1 nSamplesPerSec=8000 nAvgBytesPerSec=750 nBlockAlign=48 wBitsPerSample=16 cbSize=47
0000 00 02 00 00 00 00 30 00 00 00 46 36 44 43 39 38 ......0...F6DC98
0010 33 30 2d 42 43 37 39 2d 31 31 64 32 2d 41 39 44 30-BC79-11d2-A9D
0020 30 2d 30 30 36 30 39 37 39 32 36 30 33 36 00 0-006097926036.
?
wFormatTag=66 nChannels=1 nSamplesPerSec=8000 nAvgBytesPerSec=666 nBlockAlign=20 wBitsPerSample=0 cbSize=10
0000 03 00 ce 9a 32 f7 a2 ae de ac ....2.....
Loading…
Cancel
Save