[Mplayer-cvslog] CVS: main/libmpcodecs vf_yuvcsp.c,NONE,1.1 Makefile,1.114,1.115 vf.c,1.95,1.96
Alex Beregszaszi
alex at mplayerhq.hu
Sat Nov 29 20:34:52 CET 2003
Update of /cvsroot/mplayer/main/libmpcodecs
In directory mail:/var/tmp.root/cvs-serv19228
Modified Files:
Makefile vf.c
Added Files:
vf_yuvcsp.c
Log Message:
yuv colorspace converter
--- NEW FILE ---
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <inttypes.h>
#include "../config.h"
#include "../mp_msg.h"
#include "img_format.h"
#include "mp_image.h"
#include "vf.h"
struct vf_priv_s {
int csp;
};
//===========================================================================//
static int config(struct vf_instance_s* vf,
int width, int height, int d_width, int d_height,
unsigned int flags, unsigned int outfmt){
return vf_next_config(vf, width, height, d_width, d_height, flags, outfmt);
}
static inline int clamp_y(int x){
return (x > 235) ? 235 : (x < 16) ? 16 : x;
}
static inline int clamp_c(int x){
return (x > 240) ? 240 : (x < 16) ? 16 : x;
}
static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){
int i,j;
uint8_t *y_in, *cb_in, *cr_in;
uint8_t *y_out, *cb_out, *cr_out;
vf->dmpi=vf_get_image(vf->next,mpi->imgfmt,
MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE,
mpi->width, mpi->height);
y_in = mpi->planes[0];
cb_in = mpi->planes[1];
cr_in = mpi->planes[2];
y_out = vf->dmpi->planes[0];
cb_out = vf->dmpi->planes[1];
cr_out = vf->dmpi->planes[2];
for (i = 0; i < mpi->height; i++)
for (j = 0; j < mpi->width; j++)
y_out[i*vf->dmpi->stride[0]+j] = clamp_y(y_in[i*mpi->stride[0]+j]);
for (i = 0; i < mpi->chroma_height; i++)
for (j = 0; j < mpi->chroma_width; j++)
{
cb_out[i*vf->dmpi->stride[1]+j] = clamp_c(cb_in[i*mpi->stride[1]+j]);
cr_out[i*vf->dmpi->stride[2]+j] = clamp_c(cr_in[i*mpi->stride[2]+j]);
}
return vf_next_put_image(vf,vf->dmpi);
}
//===========================================================================//
static void uninit(struct vf_instance_s* vf){
free(vf->priv);
}
static int query_format(struct vf_instance_s* vf, unsigned int fmt){
switch(fmt){
case IMGFMT_YV12:
case IMGFMT_I420:
case IMGFMT_IYUV:
return 1;
}
return 0;
}
static int open(vf_instance_t *vf, char* args){
vf->config=config;
vf->put_image=put_image;
// vf->uninit=uninit;
vf->query_format=query_format;
// vf->priv=calloc(1, sizeof(struct vf_priv_s));
// if (args)
// vf->priv->csp = atoi(args);
return 1;
}
vf_info_t vf_info_yuvcsp = {
"yuv colorspace converter",
"yuvcsp",
"Alex Beregszaszi",
"",
open,
NULL
};
//===========================================================================//
Index: Makefile
===================================================================
RCS file: /cvsroot/mplayer/main/libmpcodecs/Makefile,v
retrieving revision 1.114
retrieving revision 1.115
diff -u -r1.114 -r1.115
--- Makefile 12 Nov 2003 00:43:42 -0000 1.114
+++ Makefile 29 Nov 2003 19:34:26 -0000 1.115
@@ -14,7 +14,7 @@
VIDEO_SRCS_OPT=vd_realvid.c vd_ffmpeg.c vd_dshow.c vd_dmo.c vd_vfw.c vd_vfwex.c vd_odivx.c vd_divx4.c vd_zrmjpeg.c vd_xanim.c vd_xvid.c vd_xvid4.c vd_libdv.c vd_qtvideo.c vd_theora.c
VIDEO_SRCS=dec_video.c vd.c $(VIDEO_SRCS_NAT) $(VIDEO_SRCS_LIB) $(VIDEO_SRCS_OPT)
-VFILTER_SRCS=vf.c vf_vo.c vf_crop.c vf_expand.c vf_scale.c vf_format.c vf_yuy2.c vf_flip.c vf_rgb2bgr.c vf_rotate.c vf_mirror.c vf_palette.c vf_lavc.c vf_dvbscale.c vf_cropdetect.c vf_test.c vf_noise.c vf_yvu9.c vf_rectangle.c vf_lavcdeint.c vf_eq.c vf_eq2.c vf_halfpack.c vf_dint.c vf_1bpp.c vf_bmovl.c vf_2xsai.c vf_unsharp.c vf_swapuv.c vf_il.c vf_boxblur.c vf_sab.c vf_smartblur.c vf_perspective.c vf_down3dright.c vf_field.c vf_denoise3d.c vf_hqdn3d.c vf_detc.c vf_telecine.c vf_tfields.c vf_ivtc.c vf_ilpack.c vf_dsize.c vf_decimate.c vf_softpulldown.c vf_tinterlace.c vf_pullup.c pullup.c vf_framestep.c vf_tile.c vf_delogo.c vf_fil.c vf_hue.c vf_spp.c
+VFILTER_SRCS=vf.c vf_vo.c vf_crop.c vf_expand.c vf_scale.c vf_format.c vf_yuy2.c vf_flip.c vf_rgb2bgr.c vf_rotate.c vf_mirror.c vf_palette.c vf_lavc.c vf_dvbscale.c vf_cropdetect.c vf_test.c vf_noise.c vf_yvu9.c vf_rectangle.c vf_lavcdeint.c vf_eq.c vf_eq2.c vf_halfpack.c vf_dint.c vf_1bpp.c vf_bmovl.c vf_2xsai.c vf_unsharp.c vf_swapuv.c vf_il.c vf_boxblur.c vf_sab.c vf_smartblur.c vf_perspective.c vf_down3dright.c vf_field.c vf_denoise3d.c vf_hqdn3d.c vf_detc.c vf_telecine.c vf_tfields.c vf_ivtc.c vf_ilpack.c vf_dsize.c vf_decimate.c vf_softpulldown.c vf_tinterlace.c vf_pullup.c pullup.c vf_framestep.c vf_tile.c vf_delogo.c vf_fil.c vf_hue.c vf_spp.c vf_yuvcsp.c
ifeq ($(HAVE_FFPOSTPROCESS),yes)
VFILTER_SRCS += vf_pp.c
endif
Index: vf.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpcodecs/vf.c,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -r1.95 -r1.96
--- vf.c 26 Oct 2003 23:07:21 -0000 1.95
+++ vf.c 29 Nov 2003 19:34:26 -0000 1.96
@@ -80,6 +80,7 @@
extern vf_info_t vf_info_delogo;
extern vf_info_t vf_info_hue;
extern vf_info_t vf_info_spp;
+extern vf_info_t vf_info_yuvcsp;
// list of available filters:
static vf_info_t* filter_list[]={
@@ -149,6 +150,7 @@
#ifdef USE_LIBAVCODEC
&vf_info_spp,
#endif
+ &vf_info_yuvcsp,
NULL
};
More information about the MPlayer-cvslog
mailing list