summaryrefslogtreecommitdiff
path: root/lib/libdv_wrapper.cc
diff options
context:
space:
mode:
authordeva <deva>2006-04-11 14:43:17 +0000
committerdeva <deva>2006-04-11 14:43:17 +0000
commitc9a7d3ecf5a5e979c4503dbf1f072898ffd72574 (patch)
tree7b23abd5d7b5dfe1a885223b133cf55eb39800a1 /lib/libdv_wrapper.cc
parentff2a0b78a229d2fac6162d2fa88f3e058b6382d8 (diff)
*** empty log message ***
Diffstat (limited to 'lib/libdv_wrapper.cc')
-rw-r--r--lib/libdv_wrapper.cc21
1 files changed, 19 insertions, 2 deletions
diff --git a/lib/libdv_wrapper.cc b/lib/libdv_wrapper.cc
index 563c709..5a385b1 100644
--- a/lib/libdv_wrapper.cc
+++ b/lib/libdv_wrapper.cc
@@ -67,8 +67,11 @@ void LibDVWrapper::setSampling(DV::Sampling sampling)
decoder->sampling = (dv_sample_t)sampling;
}
-void LibDVWrapper::setOutputBuffer(char *output)
+void LibDVWrapper::setOutputBuffer(char *output, DV::ColorSpace c)
{
+ colorspace = c;
+ switch(colorspace) {
+ case DV::YUV:
#ifdef COLORSPACE_YV12
yuv[0] = (unsigned char*)output;
yuv[1] = (unsigned char*)yuv[0] + (width * height);
@@ -80,6 +83,20 @@ void LibDVWrapper::setOutputBuffer(char *output)
yuv[0] = (unsigned char*)output;
pitches[0] = width * 2;
#endif
+ break;
+
+ case DV::RGB:
+ yuv[0] = (unsigned char*)output;
+ yuv[1] = yuv[2] = NULL;
+ pitches[0] = width * 3;
+ break;
+
+ case DV::BGR0:
+ yuv[0] = (unsigned char*)output;
+ yuv[1] = yuv[2] = NULL;
+ pitches[0] = width * 4;
+ break;
+ }
}
void LibDVWrapper::decode(char *input)
@@ -96,7 +113,7 @@ void LibDVWrapper::decode(char *input)
dv_decode_full_frame(decoder,
(const uint8_t*)input,
- e_dv_color_yuv,
+ (dv_color_space_t)colorspace,
yuv,
pitches);
}