2009-12-03 Jeffrey Stedfast <fejj@novell.com>
[moon.git] / src / yuv-converter.h
blob8352fdd8fe4b17562056c40c43126f55ecf7ab08
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*
3 * yuv-converter.h: YUV2RGB converters for the pipeline
5 * Contact:
6 * Moonlight List (moonlight-list@lists.ximian.com)
8 * Copyright 2008 Novell, Inc. (http://www.novell.com)
10 * See the LICENSE file included with the distribution for details.
14 #ifndef __MOON_YUV_CONVERTER__
15 #define __MOON_YUV_CONVERTER__
17 #include <glib.h>
19 #include "pipeline.h"
21 class YUVConverter : public IImageConverter {
22 public:
23 YUVConverter (Media* media, VideoStream* stream);
24 virtual ~YUVConverter ();
26 MediaResult Open ();
27 MediaResult Convert (guint8 *src[], int srcStride[], int srcSlideY, int srcSlideH, guint8* dest[], int dstStride []);
28 private:
29 char *rgb_uv;
30 bool have_mmx;
31 bool have_sse2;
34 class YUVConverterInfo : public ConverterInfo {
35 public:
36 virtual bool Supports (MoonPixelFormat input, MoonPixelFormat output);
37 virtual IImageConverter* Create (Media* media, VideoStream* stream);
38 virtual const char* GetName () { return "YUVConverter"; }
41 #endif // __MOON_YUV_CONVERTER__