From c9a7d3ecf5a5e979c4503dbf1f072898ffd72574 Mon Sep 17 00:00:00 2001 From: deva Date: Tue, 11 Apr 2006 14:43:17 +0000 Subject: *** empty log message *** --- lib/libdv_wrapper.cc | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'lib/libdv_wrapper.cc') 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); } -- cgit v1.2.3