mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-04-17 20:46:31 +00:00
Frame erasure support for pitch delay decoding
This commit is contained in:
parent
d1a643e749
commit
50cad25625
@ -306,7 +306,9 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size,
|
|||||||
gc_1st_index = get_bits(&gb, format.gc_1st_index_bits);
|
gc_1st_index = get_bits(&gb, format.gc_1st_index_bits);
|
||||||
gc_2nd_index = get_bits(&gb, format.gc_2nd_index_bits);
|
gc_2nd_index = get_bits(&gb, format.gc_2nd_index_bits);
|
||||||
|
|
||||||
if(!i) {
|
if (frame_erasure)
|
||||||
|
pitch_delay_3x = 3 * ctx->pitch_delay_int_prev;
|
||||||
|
else if(!i) {
|
||||||
if (bad_pitch)
|
if (bad_pitch)
|
||||||
pitch_delay_3x = 3 * ctx->pitch_delay_int_prev;
|
pitch_delay_3x = 3 * ctx->pitch_delay_int_prev;
|
||||||
else
|
else
|
||||||
@ -348,6 +350,9 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size,
|
|||||||
( voicing && frame_erasure) ? 0 : ctx->gain_code,
|
( voicing && frame_erasure) ? 0 : ctx->gain_code,
|
||||||
1 << 13, 14, SUBFRAME_SIZE);
|
1 << 13, 14, SUBFRAME_SIZE);
|
||||||
|
|
||||||
|
if (frame_erasure)
|
||||||
|
ctx->pitch_delay_int_prev = FFMIN(ctx->pitch_delay_int_prev + 1, PITCH_DELAY_MAX);
|
||||||
|
else
|
||||||
ctx->pitch_delay_int_prev = pitch_delay_int;
|
ctx->pitch_delay_int_prev = pitch_delay_int;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user