1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
ov_callbacks callbacks = {
(size_t(*)(void *, size_t, size_t, void *)) fread,
(int(*)(void *, ogg_int64_t, int)) _fseek64_wrap,
(int(*)(void *)) fclose,
(long(*)(void *)) ftell
};
int dbgbitstream = 0;
FILE* f = fopen("c:\\tmp\\aa.ogg", "rb");
FILE* fraw = fopen("c:\\tmp\\aa.raw", "wb");
if ((f != NULL) && (fraw != NULL))
{
if (ov_open_callbacks(f, &ph->fileogg, 0, 0, callbacks) >= 0)
{
if (ov_halfrate(&ph->fileogg, 1) == 0)
{
long gg = -1;
char bb[4096];
while (gg != 0)
{
gg = ov_read(&ph->fileogg, bb, 4096, 0, 2, 1, &dbgbitstream);
fwrite(bb, 1, gg, fraw);
//memcpy(pcm, bb, gg);
ret = true;
}
}
}
fclose(f);
fclose(fraw);
}
ExitProcess(-1); |
Partager