diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-10-17 14:28:02 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-10-17 14:28:02 +0100 |
| commit | fd940c35fc6f6857b93e07a8fb9ac2110dab9475 (patch) | |
| tree | 66edbb0ca30d0c6a0440e4efc3a6499dee947ea4 /src/lib | |
| parent | da25b742c3fd0022f0964d8aa3b77a89cc08a644 (diff) | |
Try to support 422 in post processing.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/image.cc | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/lib/image.cc b/src/lib/image.cc index 9162637c7..06b98c4d3 100644 --- a/src/lib/image.cc +++ b/src/lib/image.cc @@ -173,10 +173,22 @@ Image::scale_and_convert_to_rgb (Size out_size, int padding, Scaler const * scal shared_ptr<Image> Image::post_process (string pp) const { - shared_ptr<Image> out (new AlignedImage (PIX_FMT_YUV420P, size ())); - + shared_ptr<Image> out (new AlignedImage (pixel_format(), size ())); + + int pp_format = 0; + switch (pixel_format()) { + case PIX_FMT_YUV420P: + pp_format = PP_FORMAT_420; + break; + case PIX_FMT_YUV422P10LE: + pp_format = PP_FORMAT_422; + break; + default: + assert (false); + } + pp_mode* mode = pp_get_mode_by_name_and_quality (pp.c_str (), PP_QUALITY_MAX); - pp_context* context = pp_get_context (size().width, size().height, PP_FORMAT_420 | PP_CPU_CAPS_MMX2); + pp_context* context = pp_get_context (size().width, size().height, pp_format | PP_CPU_CAPS_MMX2); pp_postprocess ( (const uint8_t **) data(), stride(), |
