# HG changeset patch # User stefano # Date 1281625558 0 # Node ID b4b2f1006d9d8581327bd481b10002eb55cbf445 # Parent d0b25641338b00b82599ccea8d36c5617450f507 Implement av_get_image_linesize() and use it in ff_get_plane_bytewidth(). The new implementation is more generic, more compact and more correct. diff -r d0b25641338b -r b4b2f1006d9d avcodec.h --- a/avcodec.h Thu Aug 12 01:11:32 2010 +0000 +++ b/avcodec.h Thu Aug 12 15:05:58 2010 +0000 @@ -31,7 +31,7 @@ #define LIBAVCODEC_VERSION_MAJOR 52 #define LIBAVCODEC_VERSION_MINOR 85 -#define LIBAVCODEC_VERSION_MICRO 0 +#define LIBAVCODEC_VERSION_MICRO 1 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \ diff -r d0b25641338b -r b4b2f1006d9d imgconvert.c --- a/imgconvert.c Thu Aug 12 01:11:32 2010 +0000 +++ b/imgconvert.c Thu Aug 12 15:05:58 2010 +0000 @@ -796,53 +796,7 @@ int ff_get_plane_bytewidth(enum PixelFormat pix_fmt, int width, int plane) { - int bits; - const PixFmtInfo *pf = &pix_fmt_info[pix_fmt]; - const AVPixFmtDescriptor *desc = &av_pix_fmt_descriptors[pix_fmt]; - - pf = &pix_fmt_info[pix_fmt]; - switch(pf->pixel_type) { - case FF_PIXEL_PACKED: - switch(pix_fmt) { - case PIX_FMT_YUYV422: - case PIX_FMT_UYVY422: - case PIX_FMT_RGB565BE: - case PIX_FMT_RGB565LE: - case PIX_FMT_RGB555BE: - case PIX_FMT_RGB555LE: - case PIX_FMT_RGB444BE: - case PIX_FMT_RGB444LE: - case PIX_FMT_BGR565BE: - case PIX_FMT_BGR565LE: - case PIX_FMT_BGR555BE: - case PIX_FMT_BGR555LE: - case PIX_FMT_BGR444BE: - case PIX_FMT_BGR444LE: - bits = 16; - break; - case PIX_FMT_UYYVYY411: - bits = 12; - break; - default: - bits = pf->depth * pf->nb_channels; - break; - } - return (width * bits + 7) >> 3; - break; - case FF_PIXEL_PLANAR: - if ((pix_fmt != PIX_FMT_NV12 && pix_fmt != PIX_FMT_NV21) && - (plane == 1 || plane == 2)) - width= -((-width)>>desc->log2_chroma_w); - - return (width * pf->depth + 7) >> 3; - break; - case FF_PIXEL_PALETTE: - if (plane == 0) - return width; - break; - } - - return -1; + return av_get_image_linesize(pix_fmt, width, plane); } void av_picture_data_copy(uint8_t *dst_data[4], int dst_linesize[4],