Move internal function ff_set_systematic_pal() to libavcore, and
rename it ff_set_systematic_pal2(). Originally committed as revision 25712 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
a29039aef3
commit
ed5d30d91c
@ -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);
|
||||
|
||||
attribute_deprecated
|
||||
int ff_set_systematic_pal(uint32_t pal[256], enum PixelFormat pix_fmt);
|
||||
#endif
|
||||
|
||||
int ff_set_systematic_pal(uint32_t pal[256], enum PixelFormat pix_fmt);
|
||||
|
||||
#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;
|
||||
|
31
libavcore/internal.h
Normal file
31
libavcore/internal.h
Normal file
@ -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 */
|
Loading…
x
Reference in New Issue
Block a user