55 lines · 1.9 KB · C
RawDownload
/* libSoX ADPCM codecs: IMA, OKI, CL.   (c) 2007-8 robs@users.sourceforge.net * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or (at * your option) any later version. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser * General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA */ typedef struct {  int max_step_index;  int sign;  int shift;  int const * steps;  int const * changes;  int mask;} adpcm_setup_t; typedef struct {  adpcm_setup_t setup;  int last_output;  int step_index;  int errors;} adpcm_t; void lsx_adpcm_init(adpcm_t * p, int type, int first_sample);int lsx_adpcm_decode(int code, adpcm_t * p);int lsx_adpcm_encode(int sample, adpcm_t * p); typedef struct {  adpcm_t encoder;  struct {    uint8_t byte;               /* write store */    uint8_t flag;  } store;  sox_fileinfo_t file;} adpcm_io_t; /* Format methods */void lsx_adpcm_reset(adpcm_io_t * state, sox_encoding_t type);int lsx_adpcm_oki_start(sox_format_t * ft, adpcm_io_t * state);int lsx_adpcm_ima_start(sox_format_t * ft, adpcm_io_t * state);size_t lsx_adpcm_read(sox_format_t * ft, adpcm_io_t * state, sox_sample_t *buffer, size_t len);int lsx_adpcm_stopread(sox_format_t * ft, adpcm_io_t * state);size_t lsx_adpcm_write(sox_format_t * ft, adpcm_io_t * state, const sox_sample_t *buffer, size_t length);void lsx_adpcm_flush(sox_format_t * ft, adpcm_io_t * state);int lsx_adpcm_stopwrite(sox_format_t * ft, adpcm_io_t * state);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t