78# define MPG123_FLOAT_ENC MPG123_ENC_FLOAT_64
80# define MPG123_FLOAT_ENC MPG123_ENC_FLOAT_32
163 if(rn >= 0)
for(
i=f0;
i<
f2;
i++)
165 if(
p->audio_caps[
c][rn][
i])
176 return a <
b ?
a :
b;
181 return a >
b ?
a :
b;
189,
int f0,
int f2,
int try_float )
191#define ENCRANGE(range) imax(f0, range[0]), imin(f2, range[1])
277 merror(
"Unable to set up output format! Constraints: %s%s%liHz."
296 , f0,
f2, try_float ))
299 , f0,
f2, try_float ))
331 for(
i=f0;
i<
f2;
i++)
for(rrn=rn-1; rrn>=0; --rrn)
342 for(
i=f0;
i<
f2;
i++)
for(rrn=rn-1; rrn>=0; --rrn)
350 merror(
"Unable to set up output format! Constraints: %s%s%li, %li or %liHz."
376 if(fr->
af.encsize < 1)
378 error1(
"Some unknown encoding??? (%i)", fr->
af.encoding);
387 if(fr->
af.encsize > 2)
392 switch(fr->
af.encoding)
407 fr->
af.dec_enc = fr->
af.encoding;
451 size_t rate, ch, enc;
487 int ie, ic, ratei,
r1,
r2;
510 for(ratei =
r1; ratei <
r2; ++ratei)
511 for(ic = 0; ic < 2; ++ic)
517 if(ch[0] == ch[1])
break;
533 if(mh ==
NULL)
return 0;
543 if(mp ==
NULL || ratei < 0 || enci < 0)
return 0;
560 return s * fr->
af.dec_encsize * fr->
af.channels;
567 return s * fr->
af.encsize * fr->
af.channels;
572 return b / fr->
af.encsize / fr->
af.channels;
580 : (fr->
af.encsize > fr->
af.dec_encsize
582 : fr->
af.dec_encsize);
592 unsigned char *wpos =
buf->data;
593 unsigned char *rpos =
buf->data;
598 buf->fill = wpos-
buf->data;
618static const char *
bufsizeerr =
"Fatal: Buffer too small for postprocessing!";
639 float *
out = (
float*)
buf->data;
708 switch(fr->
af.dec_enc)
712 switch(fr->
af.encoding)
729 switch(fr->
af.encoding)
764#ifdef WORDS_BIGENDIAN
768#ifdef WORDS_BIGENDIAN
#define attribute_align_arg
unsigned short int uint16_t
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
GLuint GLuint GLsizei count
GLdouble GLdouble GLdouble r
GLenum GLenum GLenum GLenum GLenum scale
GLboolean GLboolean GLboolean b
GLenum GLuint GLenum GLsizei const GLchar * buf
GLboolean GLboolean GLboolean GLboolean a
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
int attribute_align_arg mpg123_fmt2(mpg123_pars *mp, long rate, int channels, int encodings)
int attribute_align_arg mpg123_fmt_support(mpg123_pars *mp, long rate, int encoding)
int attribute_align_arg mpg123_fmt_all(mpg123_pars *mp)
int attribute_align_arg mpg123_fmt_none(mpg123_pars *mp)
#define MPG123_SAMPLESIZE(enc)
int attribute_align_arg mpg123_format2(mpg123_handle *mh, long rate, int channels, int encodings)
int attribute_align_arg mpg123_format_all(mpg123_handle *mh)
int attribute_align_arg mpg123_format_none(mpg123_handle *mh)
void attribute_align_arg mpg123_encodings(const int **list, size_t *number)
void attribute_align_arg mpg123_rates(const long **list, size_t *number)
int attribute_align_arg mpg123_format(mpg123_handle *mh, long rate, int channels, int encodings)
int attribute_align_arg mpg123_format_support(mpg123_handle *mh, long rate, int encoding)
int attribute_align_arg mpg123_encsize(int encoding)
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
#define invalidate_format
#define decoder_synth_bytes
#define postprocess_buffer
#define frame_output_format
static unsigned int number
static float(__cdecl *square_half_float)(float x
struct mpg123_pars_struct p
char audio_caps[NUM_CHANNELS][MPG123_RATES+1][MPG123_ENCODINGS]
static void swap_bytes(void *buf, size_t samplesize, size_t samplecount)
static unsigned int block