diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-03-21 06:29:30 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-03-21 07:12:48 +0400 |
commit | 9e69d3c6d4ff41217a7ed86c9fcc1f0aca4c6143 (patch) | |
tree | 3159c6c5b8b4dcf780968093fa0475e6779e4432 /libavcodec/zerocodec.c | |
parent | 15e07348fe404e773695501aa610e32a75488c9f (diff) |
zerocodec: factorize loop
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/zerocodec.c')
-rw-r--r-- | libavcodec/zerocodec.c | 41 |
1 files changed, 14 insertions, 27 deletions
diff --git a/libavcodec/zerocodec.c b/libavcodec/zerocodec.c index 1718818d92..47be1075a5 100644 --- a/libavcodec/zerocodec.c +++ b/libavcodec/zerocodec.c @@ -66,45 +66,32 @@ static int zerocodec_decode_frame(AVCodecContext *avctx, void *data, pic->key_frame = 1; pic->pict_type = AV_PICTURE_TYPE_I; - for (i = 0; i < avctx->height; i++) { - - zstream->next_out = dst; - zstream->avail_out = avctx->width << 1; - - zret = inflate(zstream, Z_SYNC_FLUSH); - - if (zret != Z_OK && zret != Z_STREAM_END) { - av_log(avctx, AV_LOG_ERROR, - "Inflate failed with return code: %d\n", zret); - return AVERROR(EINVAL); - } - - dst += pic->linesize[0]; - } } else { pic->key_frame = 0; pic->pict_type = AV_PICTURE_TYPE_P; - for (i = 0; i < avctx->height; i++) { + } + + for (i = 0; i < avctx->height; i++) { - zstream->next_out = dst; - zstream->avail_out = avctx->width << 1; + zstream->next_out = dst; + zstream->avail_out = avctx->width << 1; - zret = inflate(zstream, Z_SYNC_FLUSH); + zret = inflate(zstream, Z_SYNC_FLUSH); - if (zret != Z_OK && zret != Z_STREAM_END) { - av_log(avctx, AV_LOG_ERROR, - "Inflate failed with return code: %d\n", zret); - return AVERROR(EINVAL); - } + if (zret != Z_OK && zret != Z_STREAM_END) { + av_log(avctx, AV_LOG_ERROR, + "Inflate failed with return code: %d\n", zret); + return AVERROR(EINVAL); + } + if (!(avpkt->flags & AV_PKT_FLAG_KEY)) for (j = 0; j < avctx->width << 1; j++) dst[j] += prev[j] & -!dst[j]; - prev += prev_pic->linesize[0]; - dst += pic->linesize[0]; - } + prev += prev_pic->linesize[0]; + dst += pic->linesize[0]; } /* Release the previous buffer if need be */ |