summaryrefslogtreecommitdiff
path: root/libavcodec/ac3.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/ac3.c')
-rw-r--r--libavcodec/ac3.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/libavcodec/ac3.c b/libavcodec/ac3.c
index 019c7769d6..a1c46c6d2e 100644
--- a/libavcodec/ac3.c
+++ b/libavcodec/ac3.c
@@ -181,6 +181,11 @@ void ac3_parametric_bit_allocation(AC3BitAllocParameters *s, uint8_t *bap,
} while (end > bndtab[j++]);
}
+/**
+ * Initializes some tables.
+ * note: This function must remain thread safe because it is called by the
+ * AVParser init code.
+ */
void ac3_common_init(void)
{
int i, j, k, l, v;
@@ -194,4 +199,12 @@ void ac3_common_init(void)
l += v;
}
bndtab[50] = l;
+
+ /* generate ff_ac3_frame_sizes table */
+ for(i=0; i<38; i++) {
+ int br = ff_ac3_bitratetab[i >> 1];
+ ff_ac3_frame_sizes[i][0] = ( 2*br );
+ ff_ac3_frame_sizes[i][1] = (320*br / 147) + (i & 1);
+ ff_ac3_frame_sizes[i][2] = ( 3*br );
+ }
}