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
c172f57d
Commit
c172f57d
authored
Feb 09, 2011
by
Jean-Marc Valin
Browse files
Fixes buffering issues with CELT-only mode at 2.5 ms
parent
f919dd74
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/opus_encoder.c
View file @
c172f57d
...
...
@@ -211,8 +211,8 @@ int opus_encode(OpusEncoder *st, const short *pcm, int frame_size,
}
}
for
(
i
=
0
;
i
<
ENCODER_DELAY_COMPENSATION
*
st
->
channels
;
i
++
)
pcm_buf
[
i
]
=
st
->
delay_buffer
[
i
];
for
(
i
=
0
;
i
<
IMIN
(
frame_size
,
ENCODER_DELAY_COMPENSATION
)
*
st
->
channels
;
i
++
)
pcm_buf
[
i
]
=
st
->
delay_buffer
[
i
];
for
(;
i
<
frame_size
*
st
->
channels
;
i
++
)
pcm_buf
[
i
]
=
pcm
[
i
-
ENCODER_DELAY_COMPENSATION
*
st
->
channels
];
...
...
@@ -220,8 +220,18 @@ int opus_encode(OpusEncoder *st, const short *pcm, int frame_size,
/* Encode high band with CELT */
ret
=
celt_encode_with_ec
(
st
->
celt_enc
,
pcm_buf
,
frame_size
,
NULL
,
nb_compr_bytes
,
&
enc
);
for
(
i
=
0
;
i
<
ENCODER_DELAY_COMPENSATION
*
st
->
channels
;
i
++
)
st
->
delay_buffer
[
i
]
=
pcm
[
frame_size
*
st
->
channels
-
ENCODER_DELAY_COMPENSATION
*
st
->
channels
+
i
];
if
(
frame_size
>
ENCODER_DELAY_COMPENSATION
)
{
for
(
i
=
0
;
i
<
ENCODER_DELAY_COMPENSATION
*
st
->
channels
;
i
++
)
st
->
delay_buffer
[
i
]
=
pcm
[(
frame_size
-
ENCODER_DELAY_COMPENSATION
)
*
st
->
channels
+
i
];
}
else
{
int
tmp
=
ENCODER_DELAY_COMPENSATION
-
frame_size
;
for
(
i
=
0
;
i
<
tmp
*
st
->
channels
;
i
++
)
st
->
delay_buffer
[
i
]
=
st
->
delay_buffer
[
i
+
frame_size
*
st
->
channels
];
for
(
i
=
0
;
i
<
frame_size
*
st
->
channels
;
i
++
)
st
->
delay_buffer
[
tmp
*
st
->
channels
+
i
]
=
pcm
[
i
];
}
}
else
{
ret
=
(
ec_tell
(
&
enc
)
+
7
)
>>
3
;
ec_enc_done
(
&
enc
);
...
...
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