summaryrefslogtreecommitdiff
path: root/libavcodec/xfaceenc.c
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2014-11-22 23:29:58 +0100
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>2014-11-23 06:51:18 +0100
commitcad3148ea3da5fd389eb5192ec13c668cf4008e1 (patch)
tree6f9c7af82e90956505423decf8004e0b01ee0d9a /libavcodec/xfaceenc.c
parentdfc6f56c5a6a4b0470407ab44bf8cf91b1c9b012 (diff)
downloadffmpeg-cad3148ea3da5fd389eb5192ec13c668cf4008e1.tar.gz
xface: reduce stack usage by directly storing 2 bytes data instead of pointers.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Diffstat (limited to 'libavcodec/xfaceenc.c')
-rw-r--r--libavcodec/xfaceenc.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/libavcodec/xfaceenc.c b/libavcodec/xfaceenc.c
index 0ade302c46..7edef1ec72 100644
--- a/libavcodec/xfaceenc.c
+++ b/libavcodec/xfaceenc.c
@@ -74,7 +74,7 @@ static int all_white(char *bitmap, int w, int h)
}
typedef struct {
- const ProbRange *prob_ranges[XFACE_PIXELS*2];
+ ProbRange prob_ranges[XFACE_PIXELS*2];
int prob_ranges_idx;
} ProbRangesQueue;
@@ -82,7 +82,7 @@ static inline int pq_push(ProbRangesQueue *pq, const ProbRange *p)
{
if (pq->prob_ranges_idx >= XFACE_PIXELS * 2 - 1)
return -1;
- pq->prob_ranges[pq->prob_ranges_idx++] = p;
+ pq->prob_ranges[pq->prob_ranges_idx++] = *p;
return 0;
}
@@ -147,7 +147,7 @@ static int xface_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
const AVFrame *frame, int *got_packet)
{
XFaceContext *xface = avctx->priv_data;
- ProbRangesQueue pq = {{ 0 }, 0};
+ ProbRangesQueue pq = {{{ 0 }}, 0};
uint8_t bitmap_copy[XFACE_PIXELS];
BigInt b = {0};
int i, j, k, ret = 0;
@@ -193,7 +193,7 @@ static int xface_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
encode_block(xface->bitmap + XFACE_WIDTH * 32 + 32, 16, 16, 0, &pq);
while (pq.prob_ranges_idx > 0)
- push_integer(&b, pq.prob_ranges[--pq.prob_ranges_idx]);
+ push_integer(&b, &pq.prob_ranges[--pq.prob_ranges_idx]);
/* write the inverted big integer in b to intbuf */
i = 0;