Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Mark Harris
Opus
Commits
2ca8fc37
Commit
2ca8fc37
authored
Feb 18, 2008
by
Jean-Marc Valin
Browse files
Making use of dynamically generated modes by default
parent
65d57e6e
Changes
3
Hide whitespace changes
Inline
Side-by-side
libcelt/celt.h
View file @
2ca8fc37
...
...
@@ -53,10 +53,13 @@ typedef struct CELTDecoder CELTDecoder;
typedef
struct
CELTMode
CELTMode
;
extern
const
CELTMode
*
celt_mono
;
/*
extern const CELTMode *celt_mono;
extern const CELTMode *celt_stereo;
extern
const
CELTMode
*
celt_ld51
;
extern const CELTMode *celt_ld51;
*/
#define celt_mono celt_mode_create(44100, 1, 256, 128)
#define celt_stereo celt_mode_create(44100, 2, 256, 128)
/* Encoder stuff */
CELTMode
*
celt_mode_create
(
int
Fs
,
int
channels
,
int
frame_size
,
int
overlap
);
...
...
libcelt/modes.c
View file @
2ca8fc37
...
...
@@ -103,8 +103,8 @@ static const CELTMode stereo_mode = {
bitalloc0
,
/**< allocVectors */
};
const
CELTMode
const
*
celt_mono
=
&
mono_mode
;
const
CELTMode
const
*
celt_stereo
=
&
stereo_mode
;
//
const CELTMode const *celt_mono = &mono_mode;
//
const CELTMode const *celt_stereo = &stereo_mode;
#define NBANDS51 17
...
...
@@ -230,9 +230,9 @@ static int *compute_ebands(int Fs, int frame_size, int *nbEBands)
eBands
[
*
nbEBands
]
=
eBands
[
*
nbEBands
+
1
];
/* FIXME: Remove last band if too small */
for
(
i
=
0
;
i
<*
nbEBands
+
2
;
i
++
)
/*
for (i=0;i<*nbEBands+2;i++)
printf("%d ", eBands[i]);
printf
(
"
\n
"
);
printf ("\n");
*/
return
eBands
;
}
...
...
@@ -265,9 +265,9 @@ static void compute_pbands(CELTMode *mode, int res)
pBands
[
i
]
=
mode
->
eBands
[
j
+
1
];
}
}
for
(
i
=
0
;
i
<
mode
->
nbPBands
+
2
;
i
++
)
/*
for (i=0;i<mode->nbPBands+2;i++)
printf("%d ", pBands[i]);
printf
(
"
\n
"
);
printf ("\n");
*/
mode
->
pBands
=
pBands
;
mode
->
pitchEnd
=
pBands
[
PBANDS
];
}
...
...
@@ -301,12 +301,12 @@ static void compute_allocation_table(CELTMode *mode, int res)
}
}
}
for
(
i
=
0
;
i
<
BITALLOC_SIZE
;
i
++
)
/*
for (i=0;i<BITALLOC_SIZE;i++)
{
for (j=0;j<mode->nbEBands;j++)
printf ("%2d ", allocVectors[i*mode->nbEBands+j]);
printf ("\n");
}
}
*/
mode
->
allocVectors
=
allocVectors
;
}
...
...
@@ -314,7 +314,7 @@ CELTMode *celt_mode_create(int Fs, int channels, int frame_size, int overlap)
{
int
res
;
CELTMode
*
mode
;
res
=
(
Fs
+
frame_size
)
/
(
2
*
frame_size
);
mode
=
celt_alloc
(
sizeof
(
CELTMode
));
...
...
@@ -328,13 +328,13 @@ CELTMode *celt_mode_create(int Fs, int channels, int frame_size, int overlap)
compute_allocation_table
(
mode
,
res
);
printf
(
"%d bands
\n
"
,
mode
->
nbEBands
);
//
printf ("%d bands\n", mode->nbEBands);
return
mode
;
}
/*int main(
)
void
celt_mode_destroy
(
CELTMode
*
mode
)
{
celt_
mode_create(44100, 1, 256, 128
);
return 0
;
}*/
celt_
free
((
int
*
)
mode
->
eBands
);
celt_free
((
int
*
)
mode
->
pBands
)
;
celt_free
((
int
*
)
mode
->
allocVectors
);
}
libcelt/testcelt.c
View file @
2ca8fc37
...
...
@@ -41,7 +41,7 @@ int main(int argc, char *argv[])
int
i
;
char
*
inFile
,
*
outFile
;
FILE
*
fin
,
*
fout
;
const
CELTMode
*
mode
=
celt_mono
;
const
CELTMode
*
mode
;
CELTEncoder
*
enc
;
CELTDecoder
*
dec
;
int
len
;
...
...
@@ -61,8 +61,6 @@ int main(int argc, char *argv[])
mode
=
celt_mono
;
else
if
(
strcmp
(
argv
[
1
],
"-stereo"
)
==
0
)
mode
=
celt_stereo
;
else
if
(
strcmp
(
argv
[
1
],
"-ld51"
)
==
0
)
mode
=
celt_ld51
;
else
{
fprintf
(
stderr
,
"mode must be -mono or -stereo
\n
"
);
return
1
;
...
...
@@ -89,7 +87,7 @@ int main(int argc, char *argv[])
return
1
;
}
//mode = celt_mode_create(44100, 1,
256, 128
);
//mode = celt_mode_create(44100, 1,
192, 64
);
/* Use mode4 for stereo and don't forget to change the value of CHANNEL above */
enc
=
celt_encoder_new
(
mode
);
dec
=
celt_decoder_new
(
mode
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment