rename it ff_set_systematic_pal2(). Originally committed as revision 25712 to svn://svn.ffmpeg.org/ffmpeg/trunktags/n0.8
| @@ -33,7 +33,7 @@ | |||
| #define LIBAVCODEC_VERSION_MAJOR 52 | |||
| #define LIBAVCODEC_VERSION_MINOR 94 | |||
| #define LIBAVCODEC_VERSION_MICRO 3 | |||
| #define LIBAVCODEC_VERSION_MICRO 4 | |||
| #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ | |||
| LIBAVCODEC_VERSION_MINOR, \ | |||
| @@ -37,6 +37,7 @@ | |||
| #include "libavutil/colorspace.h" | |||
| #include "libavutil/pixdesc.h" | |||
| #include "libavcore/imgutils.h" | |||
| #include "libavcore/internal.h" | |||
| #if HAVE_MMX && HAVE_YASM | |||
| #include "x86/dsputil_mmx.h" | |||
| @@ -456,46 +457,11 @@ int ff_is_hwaccel_pix_fmt(enum PixelFormat pix_fmt) | |||
| return av_pix_fmt_descriptors[pix_fmt].flags & PIX_FMT_HWACCEL; | |||
| } | |||
| #if LIBAVCODEC_VERSION_MAJOR < 53 | |||
| int ff_set_systematic_pal(uint32_t pal[256], enum PixelFormat pix_fmt){ | |||
| int i; | |||
| for(i=0; i<256; i++){ | |||
| int r,g,b; | |||
| switch(pix_fmt) { | |||
| case PIX_FMT_RGB8: | |||
| r= (i>>5 )*36; | |||
| g= ((i>>2)&7)*36; | |||
| b= (i&3 )*85; | |||
| break; | |||
| case PIX_FMT_BGR8: | |||
| b= (i>>6 )*85; | |||
| g= ((i>>3)&7)*36; | |||
| r= (i&7 )*36; | |||
| break; | |||
| case PIX_FMT_RGB4_BYTE: | |||
| r= (i>>3 )*255; | |||
| g= ((i>>1)&3)*85; | |||
| b= (i&1 )*255; | |||
| break; | |||
| case PIX_FMT_BGR4_BYTE: | |||
| b= (i>>3 )*255; | |||
| g= ((i>>1)&3)*85; | |||
| r= (i&1 )*255; | |||
| break; | |||
| case PIX_FMT_GRAY8: | |||
| r=b=g= i; | |||
| break; | |||
| default: | |||
| return -1; | |||
| } | |||
| pal[i] = b + (g<<8) + (r<<16); | |||
| } | |||
| return 0; | |||
| return ff_set_systematic_pal2(pal, pix_fmt); | |||
| } | |||
| #if LIBAVCODEC_VERSION_MAJOR < 53 | |||
| int ff_fill_linesize(AVPicture *picture, enum PixelFormat pix_fmt, int width) | |||
| { | |||
| return av_image_fill_linesizes(picture->linesize, pix_fmt, width); | |||
| @@ -909,7 +875,7 @@ int avpicture_alloc(AVPicture *picture, | |||
| goto fail; | |||
| avpicture_fill(picture, ptr, pix_fmt, width, height); | |||
| if(picture->data[1] && !picture->data[2]) | |||
| ff_set_systematic_pal((uint32_t*)picture->data[1], pix_fmt); | |||
| ff_set_systematic_pal2((uint32_t*)picture->data[1], pix_fmt); | |||
| return 0; | |||
| fail: | |||
| @@ -36,8 +36,9 @@ int ff_fill_pointer(AVPicture *picture, uint8_t *ptr, enum PixelFormat pix_fmt, | |||
| attribute_deprecated | |||
| int ff_get_plane_bytewidth(enum PixelFormat pix_fmt, int width, int plane); | |||
| #endif | |||
| attribute_deprecated | |||
| int ff_set_systematic_pal(uint32_t pal[256], enum PixelFormat pix_fmt); | |||
| #endif | |||
| #endif /* AVCODEC_IMGCONVERT_H */ | |||
| @@ -29,6 +29,7 @@ | |||
| #include "raw.h" | |||
| #include "libavutil/intreadwrite.h" | |||
| #include "libavcore/imgutils.h" | |||
| #include "libavcore/internal.h" | |||
| typedef struct RawVideoContext { | |||
| uint32_t palette[AVPALETTE_COUNT]; | |||
| @@ -83,7 +84,7 @@ static av_cold int raw_init_decoder(AVCodecContext *avctx) | |||
| else if (avctx->pix_fmt == PIX_FMT_NONE && avctx->bits_per_coded_sample) | |||
| avctx->pix_fmt = find_pix_fmt(pix_fmt_bps_avi, avctx->bits_per_coded_sample); | |||
| ff_set_systematic_pal(context->palette, avctx->pix_fmt); | |||
| ff_set_systematic_pal2(context->palette, avctx->pix_fmt); | |||
| context->length = avpicture_get_size(avctx->pix_fmt, avctx->width, avctx->height); | |||
| if((avctx->bits_per_coded_sample == 4 || avctx->bits_per_coded_sample == 2) && | |||
| avctx->pix_fmt==PIX_FMT_PAL8 && | |||
| @@ -30,6 +30,7 @@ | |||
| #include "libavutil/crc.h" | |||
| #include "libavutil/pixdesc.h" | |||
| #include "libavcore/imgutils.h" | |||
| #include "libavcore/internal.h" | |||
| #include "libavcore/samplefmt.h" | |||
| #include "avcodec.h" | |||
| #include "dsputil.h" | |||
| @@ -323,7 +324,7 @@ int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic){ | |||
| buf->data[i] = buf->base[i] + FFALIGN((buf->linesize[i]*EDGE_WIDTH>>v_shift) + (EDGE_WIDTH>>h_shift), stride_align[i]); | |||
| } | |||
| if(size[1] && !size[2]) | |||
| ff_set_systematic_pal((uint32_t*)buf->data[1], s->pix_fmt); | |||
| ff_set_systematic_pal2((uint32_t*)buf->data[1], s->pix_fmt); | |||
| buf->width = s->width; | |||
| buf->height = s->height; | |||
| buf->pix_fmt= s->pix_fmt; | |||
| @@ -28,7 +28,7 @@ | |||
| #define LIBAVCORE_VERSION_MAJOR 0 | |||
| #define LIBAVCORE_VERSION_MINOR 12 | |||
| #define LIBAVCORE_VERSION_MICRO 0 | |||
| #define LIBAVCORE_VERSION_MICRO 1 | |||
| #define LIBAVCORE_VERSION_INT AV_VERSION_INT(LIBAVCORE_VERSION_MAJOR, \ | |||
| LIBAVCORE_VERSION_MINOR, \ | |||
| @@ -22,6 +22,7 @@ | |||
| */ | |||
| #include "imgutils.h" | |||
| #include "internal.h" | |||
| #include "libavutil/pixdesc.h" | |||
| void av_image_fill_max_pixsteps(int max_pixsteps[4], int max_pixstep_comps[4], | |||
| @@ -120,6 +121,46 @@ int av_image_fill_pointers(uint8_t *data[4], enum PixelFormat pix_fmt, int heigh | |||
| return total_size; | |||
| } | |||
| int ff_set_systematic_pal2(uint32_t pal[256], enum PixelFormat pix_fmt) | |||
| { | |||
| int i; | |||
| for (i = 0; i < 256; i++) { | |||
| int r, g, b; | |||
| switch (pix_fmt) { | |||
| case PIX_FMT_RGB8: | |||
| r = (i>>5 )*36; | |||
| g = ((i>>2)&7)*36; | |||
| b = (i&3 )*85; | |||
| break; | |||
| case PIX_FMT_BGR8: | |||
| b = (i>>6 )*85; | |||
| g = ((i>>3)&7)*36; | |||
| r = (i&7 )*36; | |||
| break; | |||
| case PIX_FMT_RGB4_BYTE: | |||
| r = (i>>3 )*255; | |||
| g = ((i>>1)&3)*85; | |||
| b = (i&1 )*255; | |||
| break; | |||
| case PIX_FMT_BGR4_BYTE: | |||
| b = (i>>3 )*255; | |||
| g = ((i>>1)&3)*85; | |||
| r = (i&1 )*255; | |||
| break; | |||
| case PIX_FMT_GRAY8: | |||
| r = b = g = i; | |||
| break; | |||
| default: | |||
| return AVERROR(EINVAL); | |||
| } | |||
| pal[i] = b + (g<<8) + (r<<16); | |||
| } | |||
| return 0; | |||
| } | |||
| typedef struct ImgUtils { | |||
| const AVClass *class; | |||
| int log_offset; | |||
| @@ -0,0 +1,31 @@ | |||
| /* | |||
| * This file is part of FFmpeg. | |||
| * | |||
| * FFmpeg is free software; you can redistribute it and/or | |||
| * modify it under the terms of the GNU Lesser General Public | |||
| * License as published by the Free Software Foundation; either | |||
| * version 2.1 of the License, or (at your option) any later version. | |||
| * | |||
| * FFmpeg is distributed in the hope that it will be useful, | |||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
| * Lesser General Public License for more details. | |||
| * | |||
| * You should have received a copy of the GNU Lesser General Public | |||
| * License along with FFmpeg; if not, write to the Free Software | |||
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||
| */ | |||
| #ifndef AVCORE_INTERNAL_H | |||
| #define AVCORE_INTERNAL_H | |||
| /** | |||
| * @file | |||
| * internal functions | |||
| */ | |||
| #include "avcore.h" | |||
| int ff_set_systematic_pal2(uint32_t pal[256], enum PixelFormat pix_fmt); | |||
| #endif /* AVCORE_INTERNAL_H */ | |||