[FFmpeg-cvslog] r10440 - trunk/libavcodec/nuv.c
reimar
subversion
Sun Sep 9 10:22:07 CEST 2007
Author: reimar
Date: Sun Sep 9 10:22:07 2007
New Revision: 10440
Log:
Simplify nuv: factor out LZO decompression
Modified:
trunk/libavcodec/nuv.c
Modified: trunk/libavcodec/nuv.c
==============================================================================
--- trunk/libavcodec/nuv.c (original)
+++ trunk/libavcodec/nuv.c Sun Sep 9 10:22:07 2007
@@ -114,11 +114,19 @@ static int decode_frame(AVCodecContext *
// skip rest of the frameheader.
buf = &buf[12];
buf_size -= 12;
+ if (comptype == NUV_RTJPEG_IN_LZO || comptype == NUV_LZO) {
+ int outlen = c->decomp_size, inlen = buf_size;
+ if (lzo1x_decode(c->decomp_buf, &outlen, buf, &inlen))
+ av_log(avctx, AV_LOG_ERROR, "error during lzo decompression\n");
+ buf = c->decomp_buf;
+ buf_size = c->decomp_size;
+ }
c->pic.pict_type = FF_I_TYPE;
c->pic.key_frame = 1;
// decompress/copy/whatever data
switch (comptype) {
+ case NUV_LZO:
case NUV_UNCOMPRESSED: {
int height = c->height;
if (buf_size < c->width * height * 3 / 2) {
@@ -128,24 +136,11 @@ static int decode_frame(AVCodecContext *
copy_frame(&c->pic, buf, c->width, height);
break;
}
+ case NUV_RTJPEG_IN_LZO:
case NUV_RTJPEG: {
rtjpeg_decode_frame_yuv420(&c->rtj, &c->pic, buf, buf_size);
break;
}
- case NUV_RTJPEG_IN_LZO: {
- int outlen = c->decomp_size, inlen = buf_size;
- if (lzo1x_decode(c->decomp_buf, &outlen, buf, &inlen))
- av_log(avctx, AV_LOG_ERROR, "error during lzo decompression\n");
- rtjpeg_decode_frame_yuv420(&c->rtj, &c->pic, c->decomp_buf, c->decomp_size);
- break;
- }
- case NUV_LZO: {
- int outlen = c->decomp_size, inlen = buf_size;
- if (lzo1x_decode(c->decomp_buf, &outlen, buf, &inlen))
- av_log(avctx, AV_LOG_ERROR, "error during lzo decompression\n");
- copy_frame(&c->pic, c->decomp_buf, c->width, c->height);
- break;
- }
case NUV_BLACK: {
memset(c->pic.data[0], 0, c->width * c->height);
memset(c->pic.data[1], 128, c->width * c->height / 4);
More information about the ffmpeg-cvslog
mailing list