{
CELTEncoder *st;
- if (check_mode(mode) != CELT_OK)
- {
- if (error)
- *error = CELT_INVALID_MODE;
- return NULL;
- }
-
if (channels < 0 || channels > 2)
{
celt_warning("Only mono and stereo supported");
int effEnd;
SAVE_STACK;
- if (check_mode(st->mode) != CELT_OK)
- return CELT_INVALID_MODE;
-
if (nbCompressedBytes<0 || pcm==NULL)
return CELT_BAD_ARG;
VARDECL(celt_int16, in);
SAVE_STACK;
- if (check_mode(st->mode) != CELT_OK)
- return CELT_INVALID_MODE;
-
if (pcm==NULL)
return CELT_BAD_ARG;
VARDECL(celt_sig, in);
SAVE_STACK;
- if (check_mode(st->mode) != CELT_OK)
- return CELT_INVALID_MODE;
-
if (pcm==NULL)
return CELT_BAD_ARG;
va_list ap;
va_start(ap, request);
- if ((request!=CELT_GET_MODE_REQUEST) && (check_mode(st->mode) != CELT_OK))
- goto bad_mode;
switch (request)
{
case CELT_GET_MODE_REQUEST:
}
va_end(ap);
return CELT_OK;
-bad_mode:
- va_end(ap);
- return CELT_INVALID_MODE;
bad_arg:
va_end(ap);
return CELT_BAD_ARG;
int C;
CELTDecoder *st;
- if (check_mode(mode) != CELT_OK)
- {
- if (error)
- *error = CELT_INVALID_MODE;
- return NULL;
- }
-
if (channels < 0 || channels > 2)
{
celt_warning("Only mono and stereo supported");
int effEnd;
SAVE_STACK;
- if (check_mode(st->mode) != CELT_OK)
- return CELT_INVALID_MODE;
-
if (pcm==NULL)
return CELT_BAD_ARG;
VARDECL(celt_int16, out);
SAVE_STACK;
- if (check_mode(st->mode) != CELT_OK)
- return CELT_INVALID_MODE;
-
if (pcm==NULL)
return CELT_BAD_ARG;
VARDECL(celt_sig, out);
SAVE_STACK;
- if (check_mode(st->mode) != CELT_OK)
- return CELT_INVALID_MODE;
-
if (pcm==NULL)
return CELT_BAD_ARG;
va_list ap;
va_start(ap, request);
- if ((request!=CELT_GET_MODE_REQUEST) && (check_mode(st->mode) != CELT_OK))
- goto bad_mode;
switch (request)
{
case CELT_GET_MODE_REQUEST:
}
va_end(ap);
return CELT_OK;
-bad_mode:
- va_end(ap);
- return CELT_INVALID_MODE;
bad_arg:
va_end(ap);
return CELT_BAD_ARG;
int celt_header_init(CELTHeader *header, const CELTMode *m, int channels)
{
-
- if (check_mode(m) != CELT_OK)
- return CELT_INVALID_MODE;
if (header==NULL)
return CELT_BAD_ARG;
header->header_size = 56;
header->sample_rate = m->Fs;
header->nb_channels = channels;
- /*FIXME: This won't work for fariable frame size */
+ /*FIXME: This won't work for variable frame size */
header->frame_size = m->shortMdctSize*m->nbShortMdcts;
header->overlap = m->overlap;
header->bytes_per_packet = -1;
int celt_mode_info(const CELTMode *mode, int request, celt_int32 *value)
{
- if (check_mode(mode) != CELT_OK)
- return CELT_INVALID_MODE;
switch (request)
{
case CELT_GET_LOOKAHEAD:
celt_free((CELTMode *)mode);
#endif
}
-
-int check_mode(const CELTMode *mode)
-{
- if (mode==NULL)
- return CELT_INVALID_MODE;
- if (mode->marker_start == MODEVALID && mode->marker_end == MODEVALID)
- return CELT_OK;
- if (mode->marker_start == MODEFREED || mode->marker_end == MODEFREED)
- celt_warning("Using a mode that has already been freed");
- else
- celt_warning("This is not a valid CELT mode");
- return CELT_INVALID_MODE;
-}
celt_uint32 marker_end;
};
-int check_mode(const CELTMode *mode);
-
/* Prototypes for _ec versions of the encoder/decoder calls (not public) */
int celt_encode_with_ec(CELTEncoder * restrict st, const celt_int16 * pcm, celt_int16 * optional_resynthesis, int frame_size, unsigned char *compressed, int nbCompressedBytes, ec_enc *enc);
int celt_encode_with_ec_float(CELTEncoder * restrict st, const float * pcm, float * optional_resynthesis, int frame_size, unsigned char *compressed, int nbCompressedBytes, ec_enc *enc);