Removes the celt_mode_info() call.
Adds a CELT_GET_LOOKAHEAD() ctl() call instead. Other uses of celt_mode_info() should not be needed anymore.
This commit is contained in:
parent
d6bf19d22d
commit
ff96b165fe
7 changed files with 23 additions and 56 deletions
|
@ -2748,6 +2748,14 @@ int celt_decoder_ctl(CELTDecoder * restrict st, int request, ...)
|
||||||
st->error = 0;
|
st->error = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case CELT_GET_LOOKAHEAD_REQUEST:
|
||||||
|
{
|
||||||
|
int *value = va_arg(ap, int*);
|
||||||
|
if (value==NULL)
|
||||||
|
goto bad_arg;
|
||||||
|
*value = st->overlap/st->downsample;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case CELT_RESET_STATE:
|
case CELT_RESET_STATE:
|
||||||
{
|
{
|
||||||
CELT_MEMSET((char*)&st->DECODER_RESET_START, 0,
|
CELT_MEMSET((char*)&st->DECODER_RESET_START, 0,
|
||||||
|
|
|
@ -108,6 +108,9 @@ extern "C" {
|
||||||
#define CELT_GET_AND_CLEAR_ERROR_REQUEST 15
|
#define CELT_GET_AND_CLEAR_ERROR_REQUEST 15
|
||||||
#define CELT_GET_AND_CLEAR_ERROR(x) CELT_GET_AND_CLEAR_ERROR_REQUEST, _celt_check_int_ptr(x)
|
#define CELT_GET_AND_CLEAR_ERROR(x) CELT_GET_AND_CLEAR_ERROR_REQUEST, _celt_check_int_ptr(x)
|
||||||
|
|
||||||
|
#define CELT_GET_LOOKAHEAD_REQUEST 17
|
||||||
|
#define CELT_GET_LOOKAHEAD(x) CELT_GET_LOOKAHEAD_REQUEST, _celt_check_int_ptr(x)
|
||||||
|
|
||||||
/* Internal */
|
/* Internal */
|
||||||
#define CELT_SET_START_BAND_REQUEST 10000
|
#define CELT_SET_START_BAND_REQUEST 10000
|
||||||
#define CELT_SET_START_BAND(x) CELT_SET_START_BAND_REQUEST, _celt_check_int(x)
|
#define CELT_SET_START_BAND(x) CELT_SET_START_BAND_REQUEST, _celt_check_int(x)
|
||||||
|
@ -121,15 +124,6 @@ extern "C" {
|
||||||
#define CELT_SET_SIGNALLING_REQUEST 10003
|
#define CELT_SET_SIGNALLING_REQUEST 10003
|
||||||
#define CELT_SET_SIGNALLING(x) CELT_SET_SIGNALLING_REQUEST, _celt_check_int(x)
|
#define CELT_SET_SIGNALLING(x) CELT_SET_SIGNALLING_REQUEST, _celt_check_int(x)
|
||||||
|
|
||||||
/** GET the lookahead used in the current mode */
|
|
||||||
#define CELT_GET_LOOKAHEAD 1001
|
|
||||||
/** GET the sample rate used in the current mode */
|
|
||||||
#define CELT_GET_SAMPLE_RATE 1003
|
|
||||||
|
|
||||||
/** GET the bit-stream version for compatibility check */
|
|
||||||
#define CELT_GET_BITSTREAM_VERSION 2000
|
|
||||||
|
|
||||||
|
|
||||||
/** Contains the state of an encoder. One encoder state is needed
|
/** Contains the state of an encoder. One encoder state is needed
|
||||||
for each stream. It is initialised once at the beginning of the
|
for each stream. It is initialised once at the beginning of the
|
||||||
stream. Do *not* re-initialise the state for every frame.
|
stream. Do *not* re-initialise the state for every frame.
|
||||||
|
@ -171,9 +165,6 @@ EXPORT CELTMode *celt_mode_create(celt_int32 Fs, int frame_size, int *error);
|
||||||
*/
|
*/
|
||||||
EXPORT void celt_mode_destroy(CELTMode *mode);
|
EXPORT void celt_mode_destroy(CELTMode *mode);
|
||||||
|
|
||||||
/** Query information from a mode */
|
|
||||||
EXPORT int celt_mode_info(const CELTMode *mode, int request, celt_int32 *value);
|
|
||||||
|
|
||||||
/* Encoder stuff */
|
/* Encoder stuff */
|
||||||
|
|
||||||
EXPORT int celt_encoder_get_size(int channels);
|
EXPORT int celt_encoder_get_size(int channels);
|
||||||
|
|
|
@ -55,7 +55,8 @@ int celt_header_init(CELTHeader *header, const CELTMode *m, int frame_size, int
|
||||||
CELT_COPY(header->codec_id, "CELT ", 8);
|
CELT_COPY(header->codec_id, "CELT ", 8);
|
||||||
CELT_COPY(header->codec_version, "experimental ", 20);
|
CELT_COPY(header->codec_version, "experimental ", 20);
|
||||||
|
|
||||||
celt_mode_info(m, CELT_GET_BITSTREAM_VERSION, &header->version_id);
|
/* FIXME: Set that to zero when we freeze */
|
||||||
|
header->version_id = 0x80001000;
|
||||||
header->header_size = 56;
|
header->header_size = 56;
|
||||||
header->sample_rate = m->Fs;
|
header->sample_rate = m->Fs;
|
||||||
header->nb_channels = channels;
|
header->nb_channels = channels;
|
||||||
|
|
|
@ -74,25 +74,6 @@ static const unsigned char band_allocation[] = {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
int celt_mode_info(const CELTMode *mode, int request, celt_int32 *value)
|
|
||||||
{
|
|
||||||
switch (request)
|
|
||||||
{
|
|
||||||
case CELT_GET_LOOKAHEAD:
|
|
||||||
*value = mode->overlap;
|
|
||||||
break;
|
|
||||||
case CELT_GET_BITSTREAM_VERSION:
|
|
||||||
*value = CELT_BITSTREAM_VERSION;
|
|
||||||
break;
|
|
||||||
case CELT_GET_SAMPLE_RATE:
|
|
||||||
*value = mode->Fs;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return CELT_UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
return CELT_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CUSTOM_MODES
|
#ifdef CUSTOM_MODES
|
||||||
|
|
||||||
/* Defining 25 critical bands for the full 0-20 kHz audio bandwidth
|
/* Defining 25 critical bands for the full 0-20 kHz audio bandwidth
|
||||||
|
@ -243,23 +224,12 @@ static void compute_allocation_table(CELTMode *mode)
|
||||||
CELTMode *celt_mode_create(celt_int32 Fs, int frame_size, int *error)
|
CELTMode *celt_mode_create(celt_int32 Fs, int frame_size, int *error)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
CELTMode *mode=NULL;
|
|
||||||
#ifdef CUSTOM_MODES
|
#ifdef CUSTOM_MODES
|
||||||
|
CELTMode *mode=NULL;
|
||||||
int res;
|
int res;
|
||||||
celt_word16 *window;
|
celt_word16 *window;
|
||||||
celt_int16 *logN;
|
celt_int16 *logN;
|
||||||
int LM;
|
int LM;
|
||||||
#endif
|
|
||||||
#ifdef STDIN_TUNING
|
|
||||||
scanf("%d ", &MIN_BINS);
|
|
||||||
scanf("%d ", &BITALLOC_SIZE);
|
|
||||||
band_allocation = celt_alloc(sizeof(int)*BARK_BANDS*BITALLOC_SIZE);
|
|
||||||
for (i=0;i<BARK_BANDS*BITALLOC_SIZE;i++)
|
|
||||||
{
|
|
||||||
scanf("%d ", band_allocation+i);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef CUSTOM_MODES
|
|
||||||
ALLOC_STACK;
|
ALLOC_STACK;
|
||||||
#if !defined(VAR_ARRAYS) && !defined(USE_ALLOCA)
|
#if !defined(VAR_ARRAYS) && !defined(USE_ALLOCA)
|
||||||
if (global_stack==NULL)
|
if (global_stack==NULL)
|
||||||
|
|
|
@ -78,7 +78,6 @@ int main(int argc, char *argv[])
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
celt_mode_info(mode, CELT_GET_LOOKAHEAD, &skip);
|
|
||||||
bytes_per_packet = atoi(argv[4]);
|
bytes_per_packet = atoi(argv[4]);
|
||||||
if (bytes_per_packet < 0 || bytes_per_packet > MAX_PACKET)
|
if (bytes_per_packet < 0 || bytes_per_packet > MAX_PACKET)
|
||||||
{
|
{
|
||||||
|
@ -114,6 +113,7 @@ int main(int argc, char *argv[])
|
||||||
fprintf(stderr, "Failed to create the decoder: %s\n", celt_strerror(err));
|
fprintf(stderr, "Failed to create the decoder: %s\n", celt_strerror(err));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
celt_decoder_ctl(dec, CELT_GET_LOOKAHEAD(&skip));
|
||||||
|
|
||||||
if (argc>7)
|
if (argc>7)
|
||||||
{
|
{
|
||||||
|
|
|
@ -304,8 +304,8 @@ static CELTDecoder *process_header(ogg_packet *op, celt_int32 enh_enabled, celt_
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* FIXME: Set that to zero when we freeze */
|
||||||
celt_mode_info(*mode, CELT_GET_BITSTREAM_VERSION, &bitstream);
|
bitstream = 0x80001000;
|
||||||
if (bitstream!=header.version_id)
|
if (bitstream!=header.version_id)
|
||||||
fprintf(stderr, "WARNING: Input was encoded with a CELT bitstream version %d. This decoder uses %d. Output will probably be corrupted.\n",header.version_id,bitstream);
|
fprintf(stderr, "WARNING: Input was encoded with a CELT bitstream version %d. This decoder uses %d. Output will probably be corrupted.\n",header.version_id,bitstream);
|
||||||
|
|
||||||
|
|
|
@ -309,7 +309,6 @@ int main(int argc, char **argv)
|
||||||
int bytes_per_packet=-1;
|
int bytes_per_packet=-1;
|
||||||
int complexity=-127;
|
int complexity=-127;
|
||||||
int prediction=2;
|
int prediction=2;
|
||||||
int bitstream;
|
|
||||||
|
|
||||||
|
|
||||||
/*Process command-line options*/
|
/*Process command-line options*/
|
||||||
|
@ -483,9 +482,7 @@ int main(int argc, char **argv)
|
||||||
if (!mode)
|
if (!mode)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
celt_mode_info(mode,CELT_GET_BITSTREAM_VERSION,&bitstream);
|
snprintf(vendor_string, sizeof(vendor_string), "Encoded with CELT %s\n",CELT_VERSION);
|
||||||
|
|
||||||
snprintf(vendor_string, sizeof(vendor_string), "Encoded with CELT %s (bitstream: %d)\n",CELT_VERSION,bitstream);
|
|
||||||
comment_init(&comments, &comments_length, vendor_string);
|
comment_init(&comments, &comments_length, vendor_string);
|
||||||
|
|
||||||
/*celt_mode_info(mode, CELT_GET_FRAME_SIZE, &frame_size);*/
|
/*celt_mode_info(mode, CELT_GET_FRAME_SIZE, &frame_size);*/
|
||||||
|
@ -499,11 +496,11 @@ int main(int argc, char **argv)
|
||||||
st_string="stereo";
|
st_string="stereo";
|
||||||
if (!quiet)
|
if (!quiet)
|
||||||
if (with_cbr)
|
if (with_cbr)
|
||||||
fprintf (stderr, "Encoding %.0f kHz %s audio in %.0fms packets at %0.3fkbit/sec (%d bytes per packet, CBR) with bitstream version %d\n",
|
fprintf (stderr, "Encoding %.0f kHz %s audio in %.0fms packets at %0.3fkbit/sec (%d bytes per packet, CBR)\n",
|
||||||
header.sample_rate/1000., st_string, frame_size/(float)header.sample_rate*1000., bitrate, bytes_per_packet,bitstream);
|
header.sample_rate/1000., st_string, frame_size/(float)header.sample_rate*1000., bitrate, bytes_per_packet);
|
||||||
else
|
else
|
||||||
fprintf (stderr, "Encoding %.0f kHz %s audio in %.0fms packets at %0.3fkbit/sec (%d bytes per packet maximum) with bitstream version %d\n",
|
fprintf (stderr, "Encoding %.0f kHz %s audio in %.0fms packets at %0.3fkbit/sec (%d bytes per packet maximum)\n",
|
||||||
header.sample_rate/1000., st_string, frame_size/(float)header.sample_rate*1000., bitrate, bytes_per_packet,bitstream);
|
header.sample_rate/1000., st_string, frame_size/(float)header.sample_rate*1000., bitrate, bytes_per_packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Initialize CELT encoder*/
|
/*Initialize CELT encoder*/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue