diff options
| author | Carl Hetherington <cth@carlh.net> | 2019-03-12 23:16:03 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2019-03-12 23:16:03 +0000 |
| commit | c984f807703fb113c3e53d9a61d38e1cc83bf196 (patch) | |
| tree | 479331e9fae5adc188db3a52cc06023030f8ce3e /src | |
| parent | 2901ba31aade56fa60613441dda9e49b3b035409 (diff) | |
Fix R/B swap with as_png(); support as_png() for any pixel format.v2.13.129
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/image.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/image.cc b/src/lib/image.cc index f005e3f63..95cb93b65 100644 --- a/src/lib/image.cc +++ b/src/lib/image.cc @@ -1248,7 +1248,9 @@ Image::as_png () const { DCPOMATIC_ASSERT (bytes_per_pixel(0) == 4); DCPOMATIC_ASSERT (planes() == 1); - DCPOMATIC_ASSERT (pixel_format() == AV_PIX_FMT_BGRA); + if (pixel_format() != AV_PIX_FMT_RGBA) { + return convert_pixel_format(dcp::YUV_TO_RGB_REC709, AV_PIX_FMT_RGBA, true, false)->as_png(); + } /* error handling? */ png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, reinterpret_cast<void*>(const_cast<Image*>(this)), png_error_fn, 0); |
