From: Carl Hetherington Date: Tue, 24 Sep 2013 20:13:02 +0000 (+0100) Subject: Merge branch '1.0' into kdms X-Git-Tag: v2.0.48~1337 X-Git-Url: https://git.carlh.net/gitweb/?a=commitdiff_plain;h=089b90439e745a218494e76b45e7df6215af01df;hp=05687b49ec37e896ed7e493a587a78cd236f3aa1;p=dcpomatic.git Merge branch '1.0' into kdms --- diff --git a/ChangeLog b/ChangeLog index c31f79993..abf94423b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2013-09-19 Carl Hetherington + + * Version 1.05 released. + +2013-09-17 Carl Hetherington + + * Version 1.04 released. + 2013-09-09 Carl Hetherington * Version 1.03 released. diff --git a/cscript b/cscript index 50a9c39fc..06b91cba9 100644 --- a/cscript +++ b/cscript @@ -3,7 +3,7 @@ import shutil import os def dependencies(target): - return (('ffmpeg-cdist', '77e9115b172ec6e4f0da0a5525f32fb28bae5f09'), + return (('ffmpeg-cdist', 'b1219246a0cce9a4b916669d506bb33c925225c3'), ('libdcp', '08f4fe13bbff1a674930d55ab95fd181ebd0c265')) def build(target): diff --git a/debian/changelog b/debian/changelog index 0d214c572..a11f8121b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -dcpomatic (1.03-1) UNRELEASED; urgency=low +dcpomatic (1.05-1) UNRELEASED; urgency=low * New upstream release. * New upstream release. @@ -7,8 +7,10 @@ dcpomatic (1.03-1) UNRELEASED; urgency=low * New upstream release. * New upstream release. * New upstream release. + * New upstream release. + * New upstream release. - -- Carl Hetherington Mon, 09 Sep 2013 23:56:05 +0100 + -- Carl Hetherington Thu, 19 Sep 2013 15:18:59 +0100 dcpomatic (0.87-1) UNRELEASED; urgency=low diff --git a/platform/linux/control-12.04-32 b/platform/linux/control-12.04-32 index 1d1e75b3f..6a02b1108 100644 --- a/platform/linux/control-12.04-32 +++ b/platform/linux/control-12.04-32 @@ -8,7 +8,7 @@ Homepage: http://dcpomatic.com/ Package: dcpomatic Architecture: i386 -Depends: libc6 (>= 2.15), libssh-4 (>= 0.5.2), libboost-filesystem1.46.1 (>= 1.46.1), libboost-thread1.46.1 (>= 1.46.1), libsndfile1 (>= 1.0.25), libmagick++4 (>= 8:6.6.9.7), libxml++2.6-2 (>= 2.34.1), libgtk2.0-0 (>= 2.24.10), libxmlsec1 (>= 1.2.14-1.2build1), libboost-datetime1.46.1 (>= 1.46.1) +Depends: libc6 (>= 2.15), libssh-4 (>= 0.5.2), libboost-filesystem1.46.1 (>= 1.46.1), libboost-thread1.46.1 (>= 1.46.1), libsndfile1 (>= 1.0.25), libmagick++4 (>= 8:6.6.9.7), libxml++2.6-2 (>= 2.34.1), libgtk2.0-0 (>= 2.24.10), libxmlsec1 (>= 1.2.14-1.2build1), libboost-date-time1.46.1 (>= 1.46.1) Description: Generator of Digital Cinema Packages (DCPs) DCP-o-matic generates Digital Cinema Packages (DCPs) from video and audio files (such as those from DVDs or Blu-Rays) for presentation on DCI-compliant diff --git a/platform/linux/control-12.04-64 b/platform/linux/control-12.04-64 index 33bd39868..2140083dd 100644 --- a/platform/linux/control-12.04-64 +++ b/platform/linux/control-12.04-64 @@ -8,7 +8,7 @@ Homepage: http://dcpomatic.com/ Package: dcpomatic Architecture: amd64 -Depends: libc6 (>= 2.15), libwxgtk2.8-0 (>= 2.8.12.1), libssh-4 (>= 0.5.2), libboost-filesystem1.46.1 (>= 1.46.1), libboost-thread1.46.1 (>= 1.46.1), libsndfile1 (>= 1.0.25), libmagick++4 (>= 8:6.6.9.7), libxml++2.6-2 (>= 2.34.1), libxmlsec1 (>= 1.2.14-1.2build1), libboost-datetime1.46.1 (>= 1.46.1) +Depends: libc6 (>= 2.15), libwxgtk2.8-0 (>= 2.8.12.1), libssh-4 (>= 0.5.2), libboost-filesystem1.46.1 (>= 1.46.1), libboost-thread1.46.1 (>= 1.46.1), libsndfile1 (>= 1.0.25), libmagick++4 (>= 8:6.6.9.7), libxml++2.6-2 (>= 2.34.1), libxmlsec1 (>= 1.2.14-1.2build1), libboost-date-time1.46.1 (>= 1.46.1) Description: Generator of Digital Cinema Packages (DCPs) DCP-o-matic generates Digital Cinema Packages (DCPs) from video and audio files (such as those from DVDs or Blu-Rays) for presentation on DCI-compliant diff --git a/platform/linux/control-12.10-32 b/platform/linux/control-12.10-32 index 784a8f152..262657f6b 100644 --- a/platform/linux/control-12.10-32 +++ b/platform/linux/control-12.10-32 @@ -8,7 +8,7 @@ Homepage: http://dcpomatic.com/ Package: dcpomatic Architecture: i386 -Depends: libc6 (>= 2.15), libssh-4 (>= 0.5.2), libboost-filesystem1.49.0 (>= 1.49.0), libboost-thread1.49.0 (>= 1.49.0), libsndfile1 (>= 1.0.25), libmagick++5 (>= 8:6.7.7.10), libxml++2.6-2 (>= 2.34.2), libgtk2.0-0 (>= 2.24.13), libxmlsec1 (>= 1.2.18-2), libboost-datetime1.49.0 (>= 1.49.0) +Depends: libc6 (>= 2.15), libssh-4 (>= 0.5.2), libboost-filesystem1.49.0 (>= 1.49.0), libboost-thread1.49.0 (>= 1.49.0), libsndfile1 (>= 1.0.25), libmagick++5 (>= 8:6.7.7.10), libxml++2.6-2 (>= 2.34.2), libgtk2.0-0 (>= 2.24.13), libxmlsec1 (>= 1.2.18-2), libboost-date-time1.49.0 (>= 1.49.0) Description: Generator of Digital Cinema Packages (DCPs) DCP-o-matic generates Digital Cinema Packages (DCPs) from video and audio files (such as those from DVDs or Blu-Rays) for presentation on DCI-compliant diff --git a/platform/linux/control-12.10-64 b/platform/linux/control-12.10-64 index 6d69d51c2..5c5958d26 100644 --- a/platform/linux/control-12.10-64 +++ b/platform/linux/control-12.10-64 @@ -8,7 +8,7 @@ Homepage: http://dcpomatic.com/ Package: dcpomatic Architecture: amd64 -Depends: libc6 (>= 2.15), libssh-4 (>= 0.5.2), libboost-filesystem1.49.0 (>= 1.49.0), libboost-thread1.49.0 (>= 1.49.0), libsndfile1 (>= 1.0.25), libmagick++5 (>= 8:6.7.7.10), libxml++2.6-2 (>= 2.34.2), libgtk2.0-0 (>= 2.24.13), libxmlsec1 (>= 1.2.18-2), libboost-datetime1.49.0 (>= 1.49.0) +Depends: libc6 (>= 2.15), libssh-4 (>= 0.5.2), libboost-filesystem1.49.0 (>= 1.49.0), libboost-thread1.49.0 (>= 1.49.0), libsndfile1 (>= 1.0.25), libmagick++5 (>= 8:6.7.7.10), libxml++2.6-2 (>= 2.34.2), libgtk2.0-0 (>= 2.24.13), libxmlsec1 (>= 1.2.18-2), libboost-date-time1.49.0 (>= 1.49.0) Description: Generator of Digital Cinema Packages (DCPs) DCP-o-matic generates Digital Cinema Packages (DCPs) from video and audio files (such as those from DVDs or Blu-Rays) for presentation on DCI-compliant diff --git a/platform/linux/control-13.04-32 b/platform/linux/control-13.04-32 index 784a8f152..262657f6b 100644 --- a/platform/linux/control-13.04-32 +++ b/platform/linux/control-13.04-32 @@ -8,7 +8,7 @@ Homepage: http://dcpomatic.com/ Package: dcpomatic Architecture: i386 -Depends: libc6 (>= 2.15), libssh-4 (>= 0.5.2), libboost-filesystem1.49.0 (>= 1.49.0), libboost-thread1.49.0 (>= 1.49.0), libsndfile1 (>= 1.0.25), libmagick++5 (>= 8:6.7.7.10), libxml++2.6-2 (>= 2.34.2), libgtk2.0-0 (>= 2.24.13), libxmlsec1 (>= 1.2.18-2), libboost-datetime1.49.0 (>= 1.49.0) +Depends: libc6 (>= 2.15), libssh-4 (>= 0.5.2), libboost-filesystem1.49.0 (>= 1.49.0), libboost-thread1.49.0 (>= 1.49.0), libsndfile1 (>= 1.0.25), libmagick++5 (>= 8:6.7.7.10), libxml++2.6-2 (>= 2.34.2), libgtk2.0-0 (>= 2.24.13), libxmlsec1 (>= 1.2.18-2), libboost-date-time1.49.0 (>= 1.49.0) Description: Generator of Digital Cinema Packages (DCPs) DCP-o-matic generates Digital Cinema Packages (DCPs) from video and audio files (such as those from DVDs or Blu-Rays) for presentation on DCI-compliant diff --git a/platform/linux/control-13.04-64 b/platform/linux/control-13.04-64 index 6d69d51c2..5c5958d26 100644 --- a/platform/linux/control-13.04-64 +++ b/platform/linux/control-13.04-64 @@ -8,7 +8,7 @@ Homepage: http://dcpomatic.com/ Package: dcpomatic Architecture: amd64 -Depends: libc6 (>= 2.15), libssh-4 (>= 0.5.2), libboost-filesystem1.49.0 (>= 1.49.0), libboost-thread1.49.0 (>= 1.49.0), libsndfile1 (>= 1.0.25), libmagick++5 (>= 8:6.7.7.10), libxml++2.6-2 (>= 2.34.2), libgtk2.0-0 (>= 2.24.13), libxmlsec1 (>= 1.2.18-2), libboost-datetime1.49.0 (>= 1.49.0) +Depends: libc6 (>= 2.15), libssh-4 (>= 0.5.2), libboost-filesystem1.49.0 (>= 1.49.0), libboost-thread1.49.0 (>= 1.49.0), libsndfile1 (>= 1.0.25), libmagick++5 (>= 8:6.7.7.10), libxml++2.6-2 (>= 2.34.2), libgtk2.0-0 (>= 2.24.13), libxmlsec1 (>= 1.2.18-2), libboost-date-time1.49.0 (>= 1.49.0) Description: Generator of Digital Cinema Packages (DCPs) DCP-o-matic generates Digital Cinema Packages (DCPs) from video and audio files (such as those from DVDs or Blu-Rays) for presentation on DCI-compliant diff --git a/src/lib/image.cc b/src/lib/image.cc index dbea62d26..9a3aa8d45 100644 --- a/src/lib/image.cc +++ b/src/lib/image.cc @@ -185,18 +185,23 @@ Image::crop (Crop crop, bool aligned) const /** Blacken a YUV image whose bits per pixel is rounded up to 16 */ void -Image::yuv_16_black (uint16_t v) +Image::yuv_16_black (uint16_t v, bool alpha) { memset (data()[0], 0, lines(0) * stride()[0]); for (int i = 1; i < 3; ++i) { int16_t* p = reinterpret_cast (data()[i]); - for (int y = 0; y < size().height; ++y) { + for (int y = 0; y < lines(i); ++y) { + /* We divide by 2 here because we are writing 2 bytes at a time */ for (int x = 0; x < line_size()[i] / 2; ++x) { p[x] = v; } p += stride()[i] / 2; } } + + if (alpha) { + memset (data()[3], 0, lines(3) * stride()[3]); + } } uint16_t @@ -236,27 +241,63 @@ Image::make_black () case PIX_FMT_YUV422P9LE: case PIX_FMT_YUV444P9LE: - yuv_16_black (nine_bit_uv); + yuv_16_black (nine_bit_uv, false); break; case PIX_FMT_YUV422P9BE: case PIX_FMT_YUV444P9BE: - yuv_16_black (swap_16 (nine_bit_uv)); + yuv_16_black (swap_16 (nine_bit_uv), false); break; case PIX_FMT_YUV422P10LE: case PIX_FMT_YUV444P10LE: - yuv_16_black (ten_bit_uv); + yuv_16_black (ten_bit_uv, false); break; case PIX_FMT_YUV422P16LE: case PIX_FMT_YUV444P16LE: - yuv_16_black (sixteen_bit_uv); + yuv_16_black (sixteen_bit_uv, false); break; case PIX_FMT_YUV444P10BE: case PIX_FMT_YUV422P10BE: - yuv_16_black (swap_16 (ten_bit_uv)); + yuv_16_black (swap_16 (ten_bit_uv), false); + break; + + case AV_PIX_FMT_YUVA420P9BE: + case AV_PIX_FMT_YUVA422P9BE: + case AV_PIX_FMT_YUVA444P9BE: + yuv_16_black (swap_16 (nine_bit_uv), true); + break; + + case AV_PIX_FMT_YUVA420P9LE: + case AV_PIX_FMT_YUVA422P9LE: + case AV_PIX_FMT_YUVA444P9LE: + yuv_16_black (nine_bit_uv, true); + break; + + case AV_PIX_FMT_YUVA420P10BE: + case AV_PIX_FMT_YUVA422P10BE: + case AV_PIX_FMT_YUVA444P10BE: + yuv_16_black (swap_16 (ten_bit_uv), true); + break; + + case AV_PIX_FMT_YUVA420P10LE: + case AV_PIX_FMT_YUVA422P10LE: + case AV_PIX_FMT_YUVA444P10LE: + yuv_16_black (ten_bit_uv, true); + break; + + case AV_PIX_FMT_YUVA420P16BE: + case AV_PIX_FMT_YUVA422P16BE: + case AV_PIX_FMT_YUVA444P16BE: + yuv_16_black (swap_16 (sixteen_bit_uv), true); + break; + + case AV_PIX_FMT_YUVA420P16LE: + case AV_PIX_FMT_YUVA422P16LE: + case AV_PIX_FMT_YUVA444P16LE: + yuv_16_black (sixteen_bit_uv, true); break; case PIX_FMT_RGB24: diff --git a/src/lib/image.h b/src/lib/image.h index 6af74a8c5..e455f22c6 100644 --- a/src/lib/image.h +++ b/src/lib/image.h @@ -78,7 +78,7 @@ private: void allocate (); void swap (Image &); float bytes_per_pixel (int) const; - void yuv_16_black (uint16_t); + void yuv_16_black (uint16_t, bool); static uint16_t swap_16 (uint16_t); AVPixelFormat _pixel_format; ///< FFmpeg's way of describing the pixel format of this Image diff --git a/test/make_black_test.cc b/test/make_black_test.cc index 17c78d231..2960a596f 100644 --- a/test/make_black_test.cc +++ b/test/make_black_test.cc @@ -48,6 +48,24 @@ BOOST_AUTO_TEST_CASE (make_black_test) pix_fmts.push_back (AV_PIX_FMT_YUVJ420P); pix_fmts.push_back (AV_PIX_FMT_YUVJ422P); pix_fmts.push_back (AV_PIX_FMT_YUVJ444P); + pix_fmts.push_back (AV_PIX_FMT_YUVA420P9BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA422P9BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA444P9BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA420P9LE); + pix_fmts.push_back (AV_PIX_FMT_YUVA422P9LE); + pix_fmts.push_back (AV_PIX_FMT_YUVA444P9LE); + pix_fmts.push_back (AV_PIX_FMT_YUVA420P10BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA422P10BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA444P10BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA420P10LE); + pix_fmts.push_back (AV_PIX_FMT_YUVA422P10LE); + pix_fmts.push_back (AV_PIX_FMT_YUVA444P10LE); + pix_fmts.push_back (AV_PIX_FMT_YUVA420P16BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA422P16BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA444P16BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA420P16LE); + pix_fmts.push_back (AV_PIX_FMT_YUVA422P16LE); + pix_fmts.push_back (AV_PIX_FMT_YUVA444P16LE); int N = 0; for (list::const_iterator i = pix_fmts.begin(); i != pix_fmts.end(); ++i) { diff --git a/wscript b/wscript index 481c9e8cf..75bb681bb 100644 --- a/wscript +++ b/wscript @@ -3,7 +3,7 @@ import os import sys APPNAME = 'dcpomatic' -VERSION = '1.04pre' +VERSION = '1.06pre' def options(opt): opt.load('compiler_cxx')