diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-02-19 04:12:19 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-02-19 04:12:19 +0100 |
commit | 5d468edb2e947b804155b1d2e21b14b2a9d94320 (patch) | |
tree | 03b01a8f73708ddff1a3616801b8dd3aca8f4b6c | |
parent | e98a76d3c293f8d125c24df8b06c42f23972e93b (diff) | |
download | ffmpeg-5d468edb2e947b804155b1d2e21b14b2a9d94320.tar.gz |
pamenc: move allocation down.
This way the size that is calculated is known and can be used in a following
commit.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/pamenc.c | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/libavcodec/pamenc.c b/libavcodec/pamenc.c index ea0b6f4a32..b2c6c3ea9a 100644 --- a/libavcodec/pamenc.c +++ b/libavcodec/pamenc.c @@ -33,21 +33,6 @@ static int pam_encode_frame(AVCodecContext *avctx, AVPacket *pkt, const char *tuple_type; uint8_t *ptr; - if ((ret = ff_alloc_packet(pkt, avpicture_get_size(avctx->pix_fmt, - avctx->width, - avctx->height) + 200)) < 0) { - av_log(avctx, AV_LOG_ERROR, "encoded frame too large\n"); - return ret; - } - - *p = *pict; - p->pict_type = AV_PICTURE_TYPE_I; - p->key_frame = 1; - - s->bytestream_start = - s->bytestream = pkt->data; - s->bytestream_end = pkt->data + pkt->size; - h = avctx->height; w = avctx->width; switch (avctx->pix_fmt) { @@ -102,6 +87,22 @@ static int pam_encode_frame(AVCodecContext *avctx, AVPacket *pkt, default: return -1; } + + if ((ret = ff_alloc_packet(pkt, avpicture_get_size(avctx->pix_fmt, + avctx->width, + avctx->height) + 200)) < 0) { + av_log(avctx, AV_LOG_ERROR, "encoded frame too large\n"); + return ret; + } + + *p = *pict; + p->pict_type = AV_PICTURE_TYPE_I; + p->key_frame = 1; + + s->bytestream_start = + s->bytestream = pkt->data; + s->bytestream_end = pkt->data + pkt->size; + snprintf(s->bytestream, s->bytestream_end - s->bytestream, "P7\nWIDTH %d\nHEIGHT %d\nDEPTH %d\nMAXVAL %d\nTUPLTYPE %s\nENDHDR\n", w, h, depth, maxval, tuple_type); |