Only allowing silence in non-hybrid mode.
Also defining a 1-byte packet as triggering the PLC/CNG
This commit is contained in:
parent
a396e153b9
commit
65d35a35cf
1 changed files with 11 additions and 5 deletions
|
@ -825,7 +825,7 @@ int celt_encode_with_ec_float(CELTEncoder * restrict st, const celt_sig * pcm, i
|
||||||
int silence=0;
|
int silence=0;
|
||||||
SAVE_STACK;
|
SAVE_STACK;
|
||||||
|
|
||||||
if (nbCompressedBytes<0 || pcm==NULL)
|
if (nbCompressedBytes<2 || pcm==NULL)
|
||||||
return CELT_BAD_ARG;
|
return CELT_BAD_ARG;
|
||||||
|
|
||||||
for (LM=0;LM<4;LM++)
|
for (LM=0;LM<4;LM++)
|
||||||
|
@ -924,13 +924,16 @@ int celt_encode_with_ec_float(CELTEncoder * restrict st, const celt_sig * pcm, i
|
||||||
CELT_COPY(pre[c]+COMBFILTER_MAXPERIOD, in+c*(N+st->overlap)+st->overlap, N);
|
CELT_COPY(pre[c]+COMBFILTER_MAXPERIOD, in+c*(N+st->overlap)+st->overlap, N);
|
||||||
} while (++c<C);
|
} while (++c<C);
|
||||||
|
|
||||||
|
if (tell==1)
|
||||||
ec_enc_bit_logp(enc, silence, 15);
|
ec_enc_bit_logp(enc, silence, 15);
|
||||||
|
else
|
||||||
|
silence=0;
|
||||||
if (silence)
|
if (silence)
|
||||||
{
|
{
|
||||||
/*In VBR mode there is no need to send more than the minimum. */
|
/*In VBR mode there is no need to send more than the minimum. */
|
||||||
if (vbr_rate>0)
|
if (vbr_rate>0)
|
||||||
{
|
{
|
||||||
effectiveBytes=nbCompressedBytes=nbFilledBytes+2;
|
effectiveBytes=nbCompressedBytes=IMIN(nbCompressedBytes, nbFilledBytes+2);
|
||||||
total_bits=nbCompressedBytes*8;
|
total_bits=nbCompressedBytes*8;
|
||||||
nbAvailableBytes=2;
|
nbAvailableBytes=2;
|
||||||
ec_byte_shrink(&buf, nbCompressedBytes);
|
ec_byte_shrink(&buf, nbCompressedBytes);
|
||||||
|
@ -2019,7 +2022,7 @@ int celt_decode_with_ec_float(CELTDecoder * restrict st, const unsigned char *da
|
||||||
X[c*N+i] = 0;
|
X[c*N+i] = 0;
|
||||||
while (++c<C);
|
while (++c<C);
|
||||||
|
|
||||||
if (data == NULL)
|
if (data == NULL || len<=1)
|
||||||
{
|
{
|
||||||
celt_decode_lost(st, pcm, N, LM);
|
celt_decode_lost(st, pcm, N, LM);
|
||||||
RESTORE_STACK;
|
RESTORE_STACK;
|
||||||
|
@ -2040,7 +2043,10 @@ int celt_decode_with_ec_float(CELTDecoder * restrict st, const unsigned char *da
|
||||||
total_bits = len*8;
|
total_bits = len*8;
|
||||||
tell = ec_dec_tell(dec, 0);
|
tell = ec_dec_tell(dec, 0);
|
||||||
|
|
||||||
|
if (tell==1)
|
||||||
silence = ec_dec_bit_logp(dec, 15);
|
silence = ec_dec_bit_logp(dec, 15);
|
||||||
|
else
|
||||||
|
silence = 0;
|
||||||
if (silence)
|
if (silence)
|
||||||
{
|
{
|
||||||
/* Pretend we've read all the remaining bits */
|
/* Pretend we've read all the remaining bits */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue