Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Vignali <martin.vignali@gmail.com>2018-11-18 01:37:00 +0300
committerMartin Vignali <martin.vignali@gmail.com>2018-12-02 14:55:44 +0300
commit859604fe9d680fbd1abc4b78a528909904874d95 (patch)
tree6eadfaeb54e7df740d886608cc516706bef9cc5d /libavcodec/proresdec2.c
parent1cccf9365df0351467eca13313ae989da5c2b0f3 (diff)
avcodec/proresdec : make inline func for unpack alpha
Diffstat (limited to 'libavcodec/proresdec2.c')
-rw-r--r--libavcodec/proresdec2.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/libavcodec/proresdec2.c b/libavcodec/proresdec2.c
index 94323df128..40d15720ba 100644
--- a/libavcodec/proresdec2.c
+++ b/libavcodec/proresdec2.c
@@ -46,9 +46,8 @@ static void permute(uint8_t *dst, const uint8_t *src, const uint8_t permutation[
dst[i] = permutation[src[i]];
}
-static void unpack_alpha_10(GetBitContext *gb, uint16_t *dst, int num_coeffs,
- const int num_bits)
-{
+static void inline unpack_alpha(GetBitContext *gb, uint16_t *dst, int num_coeffs,
+ const int num_bits, const int decode_precision) {
const int mask = (1 << num_bits) - 1;
int i, idx, val, alpha_val;
@@ -86,11 +85,20 @@ static void unpack_alpha_10(GetBitContext *gb, uint16_t *dst, int num_coeffs,
} else {
for (i = 0; i < val; i++)
dst[idx++] = (alpha_val << 2) | (alpha_val >> 6);
-
}
} while (idx < num_coeffs);
}
+static void unpack_alpha_10(GetBitContext *gb, uint16_t *dst, int num_coeffs,
+ const int num_bits)
+{
+ if (num_bits == 16) {
+ unpack_alpha(gb, dst, num_coeffs, 16, 10);
+ } else { /* 8 bits alpha */
+ unpack_alpha(gb, dst, num_coeffs, 8, 10);
+ }
+}
+
static av_cold int decode_init(AVCodecContext *avctx)
{
int ret = 0;