# HG changeset patch # User alex # Date 1009373520 0 # Node ID 0195894e279f7cf0175367cb84a28aaf7d00a3db # Parent 81d84039dd1794bc477ffde45d8e57cb3cdde8b2 added support for I420 input (used by TV V4L) in lavc encoder diff -r 81d84039dd17 -r 0195894e279f mencoder.c --- a/mencoder.c Wed Dec 26 13:22:03 2001 +0000 +++ b/mencoder.c Wed Dec 26 13:32:00 2001 +0000 @@ -883,7 +883,7 @@ } #if 1 - if (out_fmt != IMGFMT_YV12) + if (out_fmt != IMGFMT_YV12 && out_fmt != IMGFMT_I420) { printf("Not supported image format! (%s)\n", vo_format_name(out_fmt)); @@ -896,8 +896,16 @@ int size = lavc_venc_context.width * lavc_venc_context.height; /* Y */ lavc_venc_picture.data[0] = vo_image_ptr; -/* U */ lavc_venc_picture.data[2] = lavc_venc_picture.data[0] + size; -/* V */ lavc_venc_picture.data[1] = lavc_venc_picture.data[2] + size/4; + if (out_fmt == IMGFMT_YV12) + { +/* U */ lavc_venc_picture.data[2] = lavc_venc_picture.data[0] + size; +/* V */ lavc_venc_picture.data[1] = lavc_venc_picture.data[2] + size/4; + } + else /* IMGFMT_I420 */ + { +/* U */ lavc_venc_picture.data[1] = lavc_venc_picture.data[0] + size; +/* V */ lavc_venc_picture.data[2] = lavc_venc_picture.data[1] + size/4; + } lavc_venc_picture.linesize[0] = lavc_venc_context.width; lavc_venc_picture.linesize[1] = lavc_venc_context.width / 2; lavc_venc_picture.linesize[2] = lavc_venc_context.width / 2;