summaryrefslogtreecommitdiffstats
path: root/libvo/vo_yuv4mpeg.c
diff options
context:
space:
mode:
authoralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-02-10 16:56:30 +0000
committeralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-02-10 16:56:30 +0000
commit44a23a10276df6d0f70abeec1a6a26d8979967cc (patch)
tree0094476cfda969996f7a0f34abc4d1f5f66c011d /libvo/vo_yuv4mpeg.c
parent1c8c89ddae78ec74a379ef3873f691bef2761fe4 (diff)
downloadmpv-44a23a10276df6d0f70abeec1a6a26d8979967cc.tar.bz2
mpv-44a23a10276df6d0f70abeec1a6a26d8979967cc.tar.xz
removed unused includes, added fastmemcpy support, removed local copy of rgb24toyv12 (using one in postproc/rgb2rgb.c)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4641 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo/vo_yuv4mpeg.c')
-rw-r--r--libvo/vo_yuv4mpeg.c92
1 files changed, 4 insertions, 88 deletions
diff --git a/libvo/vo_yuv4mpeg.c b/libvo/vo_yuv4mpeg.c
index 728c190991..04c12146e9 100644
--- a/libvo/vo_yuv4mpeg.c
+++ b/libvo/vo_yuv4mpeg.c
@@ -13,25 +13,15 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
+#include <fcntl.h>
#include "config.h"
#include "video_out.h"
#include "video_out_internal.h"
-#include <unistd.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <string.h>
-#include <sys/ioctl.h>
-#include <sys/mman.h>
-#include <signal.h>
-#include <sys/wait.h>
-
-#if defined (linux)
-#include <linux/videodev.h>
-#endif
-
+#include "fastmemcpy.h"
+#include "../postproc/rgb2rgb.h"
LIBVO_EXTERN (yuv4mpeg)
@@ -55,80 +45,6 @@ static int using_format = 0;
static FILE *yuv_out;
int write_bytes;
-
-/**
- *
- * height should be a multiple of 2 and width should be a multiple of 2
- * chrominance data is only taken from every secound line others are ignored
- */
-#define RGB2YUV_SHIFT 8
-#define BY ((int)( 0.098*(1<<RGB2YUV_SHIFT)+0.5))
-#define BV ((int)(-0.071*(1<<RGB2YUV_SHIFT)+0.5))
-#define BU ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5))
-#define GY ((int)( 0.504*(1<<RGB2YUV_SHIFT)+0.5))
-#define GV ((int)(-0.368*(1<<RGB2YUV_SHIFT)+0.5))
-#define GU ((int)(-0.291*(1<<RGB2YUV_SHIFT)+0.5))
-#define RY ((int)( 0.257*(1<<RGB2YUV_SHIFT)+0.5))
-#define RV ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5))
-#define RU ((int)(-0.148*(1<<RGB2YUV_SHIFT)+0.5))
-
-static inline void rgb24toyv12(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
- unsigned int width, unsigned int height,
- unsigned int lumStride, unsigned int chromStride, unsigned int srcStride)
-{
- int y;
- const int chromWidth= width>>1;
- for(y=0; y<height; y+=2)
- {
- int i;
- for(i=0; i<chromWidth; i++)
- {
- unsigned int b= src[6*i+0];
- unsigned int g= src[6*i+1];
- unsigned int r= src[6*i+2];
-
- unsigned int Y = ((RY*r + GY*g + BY*b)>>RGB2YUV_SHIFT) + 16;
- unsigned int V = ((RV*r + GV*g + BV*b)>>RGB2YUV_SHIFT) + 128;
- unsigned int U = ((RU*r + GU*g + BU*b)>>RGB2YUV_SHIFT) + 128;
-
- udst[i] = U;
- vdst[i] = V;
- ydst[2*i] = Y;
-
- b= src[6*i+3];
- g= src[6*i+4];
- r= src[6*i+5];
-
- Y = ((RY*r + GY*g + BY*b)>>RGB2YUV_SHIFT) + 16;
- ydst[2*i+1] = Y;
- }
- ydst += lumStride;
- src += srcStride;
-
- for(i=0; i<chromWidth; i++)
- {
- unsigned int b= src[6*i+0];
- unsigned int g= src[6*i+1];
- unsigned int r= src[6*i+2];
-
- unsigned int Y = ((RY*r + GY*g + BY*b)>>RGB2YUV_SHIFT) + 16;
-
- ydst[2*i] = Y;
-
- b= src[6*i+3];
- g= src[6*i+4];
- r= src[6*i+5];
-
- Y = ((RY*r + GY*g + BY*b)>>RGB2YUV_SHIFT) + 16;
- ydst[2*i+1] = Y;
- }
- udst += chromStride;
- vdst += chromStride;
- ydst += lumStride;
- src += srcStride;
- }
-}
-
static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width,
uint32_t d_height, uint32_t fullscreen, char *title,
uint32_t format, const vo_tune_info_t *tuneinfo)