summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2018-01-12 02:59:26 +0100
committerSven Gothel <[email protected]>2018-01-12 02:59:26 +0100
commiteefec4bd8fd57de03c06d5c8a5fbdb210aa90604 (patch)
tree056a60e405d53840f2419f34504b7f95c9f80fa5
parent236863bdc00677721a378bcd314d7c9d26bfb241 (diff)
parenta99c70a39041e5e7002a596d9c6201e746ef6d73 (diff)
Merge branch 'ffmpeg' into nvenc-encoder
-rw-r--r--LICENSE2
-rw-r--r--contrib/x264/A00-version-string.patch8
-rw-r--r--contrib/x264/module.defs17
-rw-r--r--graphics/AUTHORS23
-rw-r--r--graphics/CC_BY-SA_4.0_INT428
-rw-r--r--graphics/LICENSE19
-rw-r--r--gtk/src/appcast.c2
-rw-r--r--gtk/src/appcast.h2
-rw-r--r--gtk/src/audiohandler.c2
-rw-r--r--gtk/src/audiohandler.h2
-rw-r--r--gtk/src/callbacks.c2
-rw-r--r--gtk/src/callbacks.h2
-rw-r--r--gtk/src/ghb-dvd.c2
-rw-r--r--gtk/src/ghb-dvd.h2
-rw-r--r--gtk/src/ghb.m44
-rw-r--r--gtk/src/ghbcellrenderertext.c2
-rw-r--r--gtk/src/ghbcellrenderertext.h2
-rw-r--r--gtk/src/ghbcompat.h2
-rw-r--r--gtk/src/hb-backend.c2
-rw-r--r--gtk/src/hb-backend.h2
-rw-r--r--gtk/src/icons.c2
-rw-r--r--gtk/src/icons.h2
-rw-r--r--gtk/src/main.c2
-rw-r--r--gtk/src/marshalers.c2
-rw-r--r--gtk/src/marshalers.h2
-rw-r--r--gtk/src/plist.c2
-rw-r--r--gtk/src/plist.h2
-rw-r--r--gtk/src/presets.c2
-rw-r--r--gtk/src/presets.h2
-rw-r--r--gtk/src/preview.c2
-rw-r--r--gtk/src/preview.h2
-rw-r--r--gtk/src/queuehandler.c4
-rw-r--r--gtk/src/queuehandler.h2
-rw-r--r--gtk/src/renderer_button.c2
-rw-r--r--gtk/src/renderer_button.h2
-rw-r--r--gtk/src/resources.c2
-rw-r--r--gtk/src/resources.h2
-rw-r--r--gtk/src/settings.c2
-rw-r--r--gtk/src/settings.h2
-rw-r--r--gtk/src/subtitlehandler.c2
-rw-r--r--gtk/src/subtitlehandler.h2
-rw-r--r--gtk/src/values.c2
-rw-r--r--gtk/src/values.h2
-rw-r--r--gtk/src/videohandler.c2
-rw-r--r--gtk/src/videohandler.h2
-rw-r--r--gtk/src/x264handler.c2
-rw-r--r--gtk/src/x264handler.h2
-rw-r--r--libhb/audio_remap.c2
-rw-r--r--libhb/audio_remap.h2
-rw-r--r--libhb/audio_resample.c2
-rw-r--r--libhb/audio_resample.h2
-rw-r--r--libhb/avfilter.c2
-rw-r--r--libhb/batch.c2
-rw-r--r--libhb/bd.c2
-rw-r--r--libhb/bits.h2
-rw-r--r--libhb/colormap.c2
-rw-r--r--libhb/colormap.h2
-rw-r--r--libhb/comb_detect.c2
-rw-r--r--libhb/common.c2
-rw-r--r--libhb/common.h2
-rw-r--r--libhb/compat.c2
-rw-r--r--libhb/compat.h2
-rw-r--r--libhb/cropscale.c2
-rw-r--r--libhb/decavcodec.c2
-rw-r--r--libhb/deccc608sub.c2
-rw-r--r--libhb/deccc608sub.h2
-rw-r--r--libhb/declpcm.c2
-rw-r--r--libhb/decomb.c2
-rw-r--r--libhb/decomb.h2
-rw-r--r--libhb/decpgssub.c2
-rw-r--r--libhb/decsrtsub.c2
-rw-r--r--libhb/decsrtsub.h2
-rw-r--r--libhb/decssasub.c5
-rw-r--r--libhb/decssasub.h2
-rw-r--r--libhb/dectx3gsub.c2
-rw-r--r--libhb/decutf8sub.c2
-rw-r--r--libhb/decvobsub.c2
-rw-r--r--libhb/demuxmpeg.c2
-rw-r--r--libhb/detelecine.c2
-rw-r--r--libhb/dvd.c2
-rw-r--r--libhb/dvd.h2
-rw-r--r--libhb/dvdnav.c2
-rw-r--r--libhb/eedi2.c2
-rw-r--r--libhb/eedi2.h2
-rw-r--r--libhb/enc_qsv.c8
-rw-r--r--libhb/encavcodec.c2
-rw-r--r--libhb/encavcodecaudio.c2
-rw-r--r--libhb/enctheora.c2
-rw-r--r--libhb/encvobsub.c2
-rw-r--r--libhb/encvorbis.c2
-rw-r--r--libhb/encx264.c50
-rw-r--r--libhb/encx264.h2
-rw-r--r--libhb/encx265.c2
-rw-r--r--libhb/fifo.c2
-rw-r--r--libhb/grayscale.c2
-rw-r--r--libhb/h264_common.h2
-rw-r--r--libhb/h265_common.h2
-rw-r--r--libhb/hb.c2
-rw-r--r--libhb/hb.h2
-rw-r--r--libhb/hb_dict.c2
-rw-r--r--libhb/hb_dict.h2
-rw-r--r--libhb/hb_json.c2
-rw-r--r--libhb/hb_json.h2
-rw-r--r--libhb/hbffmpeg.h2
-rw-r--r--libhb/hbtypes.h2
-rw-r--r--libhb/internal.h2
-rw-r--r--libhb/lang.c2
-rw-r--r--libhb/lang.h2
-rw-r--r--libhb/lapsharp.c2
-rw-r--r--libhb/mt_frame_filter.c2
-rw-r--r--libhb/muxavformat.c2
-rw-r--r--libhb/muxcommon.c2
-rw-r--r--libhb/nal_units.c2
-rw-r--r--libhb/nal_units.h2
-rw-r--r--libhb/nlmeans.c145
-rw-r--r--libhb/nlmeans.h2
-rw-r--r--libhb/nlmeans_x86.c2
-rw-r--r--libhb/param.c2
-rw-r--r--libhb/param.h2
-rw-r--r--libhb/platform/macosx/encca_aac.c2
-rw-r--r--libhb/plist.c2
-rw-r--r--libhb/plist.h2
-rw-r--r--libhb/ports.c4
-rw-r--r--libhb/ports.h2
-rw-r--r--libhb/preset.c2
-rw-r--r--libhb/preset.h2
-rw-r--r--libhb/qsv_common.c5
-rw-r--r--libhb/qsv_common.h2
-rw-r--r--libhb/reader.c2
-rw-r--r--libhb/rendersub.c2
-rw-r--r--libhb/scan.c2
-rw-r--r--libhb/stream.c2
-rw-r--r--libhb/sync.c2
-rw-r--r--libhb/taskset.c2
-rw-r--r--libhb/taskset.h2
-rw-r--r--libhb/unsharp.c2
-rw-r--r--libhb/vfr.c2
-rw-r--r--libhb/work.c2
-rw-r--r--macosx/English.lproj/MainWindow.xib34
-rw-r--r--macosx/HandBrake.xcodeproj/project.pbxproj4
-rw-r--r--macosx/Info.plist.m42
-rwxr-xr-xmacosx/hbsign134
-rw-r--r--macosx/module.defs2
-rw-r--r--macosx/module.rules1
-rw-r--r--macosx/module.xcodebuild8
-rw-r--r--make/configure.py8
-rwxr-xr-xmake/xcodemake5
-rwxr-xr-xscripts/mac-toolchain-build46
-rw-r--r--test/parsecsv.c2
-rw-r--r--test/parsecsv.h2
-rw-r--r--test/test.c2
-rw-r--r--win/CS/HandBrake.ApplicationServices/Properties/AssemblyInfo.cs2
-rw-r--r--win/CS/HandBrakeTools/Properties/AssemblyInfo.cs2
-rw-r--r--win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs2
-rw-r--r--win/CS/HandBrakeWPF/Properties/Resources.Designer.cs2
-rw-r--r--win/CS/HandBrakeWPF/Properties/Resources.resx2
-rw-r--r--win/CS/HandBrakeWPF/ViewModels/ChaptersViewModel.cs2
-rw-r--r--win/CS/HandBrakeWPF/Views/MainView.xaml20
-rw-r--r--win/CS/build.xml6
159 files changed, 1034 insertions, 224 deletions
diff --git a/LICENSE b/LICENSE
index 623f75251..83b291b35 100644
--- a/LICENSE
+++ b/LICENSE
@@ -15,3 +15,5 @@ redistributable. As a result, fdk-aac is by default not included in HandBrake.
If you wish to include fdk-aac in your personal build of HandBrake, you may do
so by passing --enable-fdk-aac to configure and making sure not to distribute
any resulting binaries. Please read the fdk-aac license for details.
+
+Graphic assets are covered by the license(s) specified in graphics/LICENSE.
diff --git a/contrib/x264/A00-version-string.patch b/contrib/x264/A00-version-string.patch
index 8e46d601c..2f7c9f96c 100644
--- a/contrib/x264/A00-version-string.patch
+++ b/contrib/x264/A00-version-string.patch
@@ -6,7 +6,7 @@ index 2b59b92..86b7198 100644
#include "x264_config.h"
--#define X264_BUILD 148
+-#define X264_BUILD 155
+/*
+ * Define the full version explicitly so that it survives a git --archive.
+ *
@@ -22,9 +22,9 @@ index 2b59b92..86b7198 100644
+#ifdef X264_POINTVER
+#undef X264_POINTVER
+#endif
-+#define X264_BUILD 148
-+#define X264_VERSION " r2708 86b7198"
-+#define X264_POINTVER "0.148.2708 86b7198"
++#define X264_BUILD 155
++#define X264_VERSION " r2893 b00bcaf"
++#define X264_POINTVER "0.155.2893 b00bcaf"
/* Application developers planning to link against a shared library version of
* libx264 from a Microsoft Visual Studio or similar development environment
diff --git a/contrib/x264/module.defs b/contrib/x264/module.defs
index 17b1e58ec..b8a5d2d5a 100644
--- a/contrib/x264/module.defs
+++ b/contrib/x264/module.defs
@@ -1,25 +1,20 @@
-$(eval $(call import.MODULE.defs,X264,x264,YASM PTHREADW32))
+$(eval $(call import.MODULE.defs,X264,x264,PTHREADW32))
$(eval $(call import.CONTRIB.defs,X264))
-X264.FETCH.url = https://download.handbrake.fr/handbrake/contrib/x264-snapshot-20160920-2245-stable.tar.bz2
-X264.FETCH.url += https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20160920-2245-stable.tar.bz2
-X264.FETCH.sha256 = 6ba2d848eabbca0d9d2c2a12b263e02f856a81fce87fbc74df52a1097c88e39c
+X264.FETCH.url = https://download.handbrake.fr/handbrake/contrib/x264-snapshot-20171225-2245.tar.bz2
+X264.FETCH.url += https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20171225-2245.tar.bz2
+X264.FETCH.sha256 = ea39f32ccb3bd3aeaccd663c8d210117be5d9cfbe89e1a8b5f631e0f7ed74954
X264.GCC.args.c_std =
X264.CONFIGURE.deps =
X264.CONFIGURE.shared =
-X264.CONFIGURE.extra = --bit-depth=8 --chroma-format=420
X264.CONFIGURE.extra += --disable-lavf --disable-ffms --disable-avs --disable-swscale --disable-gpac --disable-lsmash --disable-cli
-ifeq (1-mingw,$(BUILD.cross)-$(BUILD.system))
+ifeq (1,$(BUILD.cross))
+ X264.CONFIGURE.build =
X264.CONFIGURE.extra += --cross-prefix=$(BUILD.spec)-
X264.CONFIGURE.env.CFLAGS = CFLAGS="-I$(call fn.ABSOLUTE,$(CONTRIB.build/)include) $(call fn.ARGS,X264.GCC,*archs *sysroot *minver ?extra)"
X264.CONFIGURE.env.LDFLAGS = LDFLAGS="-L$(call fn.ABSOLUTE,$(CONTRIB.build/)lib) $(call fn.ARGS,X264.GCC,*archs *sysroot *minver)"
endif
-
-ifeq (1,$(FEATURE.local_yasm))
- X264.CONFIGURE.env.LOCAL_PATH = PATH="$(call fn.ABSOLUTE,$(CONTRIB.build/)bin):$(PATH)"
- X264.BUILD.env = PATH="$(call fn.ABSOLUTE,$(CONTRIB.build/)bin):$(PATH)"
-endif
diff --git a/graphics/AUTHORS b/graphics/AUTHORS
new file mode 100644
index 000000000..4e08289b8
--- /dev/null
+++ b/graphics/AUTHORS
@@ -0,0 +1,23 @@
+# HandBrake Graphic Assets Authors
+
+Nik Pawlak <[email protected]>
+
+- Icon master files
+ - v2/Master/Handbrake-Toolbar.psd.zip
+ - v2/Master/[email protected]
+ - v2/Master/StartIcons1.psd.zip
+- Related export assets
+
+Jamie Law <[email protected]>
+
+- Icon master files
+ - v2/Master/StartIcons2.psd.zip
+- Related export assets
+
+Bradley Sepos <[email protected]>
+
+- Icon master files
+ - v2/Master/*.ai
+ - v2/Master/*2.psd.zip
+ - v2/Master/*[email protected]
+- Related export assets
diff --git a/graphics/CC_BY-SA_4.0_INT b/graphics/CC_BY-SA_4.0_INT
new file mode 100644
index 000000000..fd662a7e6
--- /dev/null
+++ b/graphics/CC_BY-SA_4.0_INT
@@ -0,0 +1,428 @@
+Attribution-ShareAlike 4.0 International
+
+=======================================================================
+
+Creative Commons Corporation ("Creative Commons") is not a law firm and
+does not provide legal services or legal advice. Distribution of
+Creative Commons public licenses does not create a lawyer-client or
+other relationship. Creative Commons makes its licenses and related
+information available on an "as-is" basis. Creative Commons gives no
+warranties regarding its licenses, any material licensed under their
+terms and conditions, or any related information. Creative Commons
+disclaims all liability for damages resulting from their use to the
+fullest extent possible.
+
+Using Creative Commons Public Licenses
+
+Creative Commons public licenses provide a standard set of terms and
+conditions that creators and other rights holders may use to share
+original works of authorship and other material subject to copyright
+and certain other rights specified in the public license below. The
+following considerations are for informational purposes only, are not
+exhaustive, and do not form part of our licenses.
+
+ Considerations for licensors: Our public licenses are
+ intended for use by those authorized to give the public
+ permission to use material in ways otherwise restricted by
+ copyright and certain other rights. Our licenses are
+ irrevocable. Licensors should read and understand the terms
+ and conditions of the license they choose before applying it.
+ Licensors should also secure all rights necessary before
+ applying our licenses so that the public can reuse the
+ material as expected. Licensors should clearly mark any
+ material not subject to the license. This includes other CC-
+ licensed material, or material used under an exception or
+ limitation to copyright. More considerations for licensors:
+ wiki.creativecommons.org/Considerations_for_licensors
+
+ Considerations for the public: By using one of our public
+ licenses, a licensor grants the public permission to use the
+ licensed material under specified terms and conditions. If
+ the licensor's permission is not necessary for any reason--for
+ example, because of any applicable exception or limitation to
+ copyright--then that use is not regulated by the license. Our
+ licenses grant only permissions under copyright and certain
+ other rights that a licensor has authority to grant. Use of
+ the licensed material may still be restricted for other
+ reasons, including because others have copyright or other
+ rights in the material. A licensor may make special requests,
+ such as asking that all changes be marked or described.
+ Although not required by our licenses, you are encouraged to
+ respect those requests where reasonable. More_considerations
+ for the public:
+ wiki.creativecommons.org/Considerations_for_licensees
+
+=======================================================================
+
+Creative Commons Attribution-ShareAlike 4.0 International Public
+License
+
+By exercising the Licensed Rights (defined below), You accept and agree
+to be bound by the terms and conditions of this Creative Commons
+Attribution-ShareAlike 4.0 International Public License ("Public
+License"). To the extent this Public License may be interpreted as a
+contract, You are granted the Licensed Rights in consideration of Your
+acceptance of these terms and conditions, and the Licensor grants You
+such rights in consideration of benefits the Licensor receives from
+making the Licensed Material available under these terms and
+conditions.
+
+
+Section 1 -- Definitions.
+
+ a. Adapted Material means material subject to Copyright and Similar
+ Rights that is derived from or based upon the Licensed Material
+ and in which the Licensed Material is translated, altered,
+ arranged, transformed, or otherwise modified in a manner requiring
+ permission under the Copyright and Similar Rights held by the
+ Licensor. For purposes of this Public License, where the Licensed
+ Material is a musical work, performance, or sound recording,
+ Adapted Material is always produced where the Licensed Material is
+ synched in timed relation with a moving image.
+
+ b. Adapter's License means the license You apply to Your Copyright
+ and Similar Rights in Your contributions to Adapted Material in
+ accordance with the terms and conditions of this Public License.
+
+ c. BY-SA Compatible License means a license listed at
+ creativecommons.org/compatiblelicenses, approved by Creative
+ Commons as essentially the equivalent of this Public License.
+
+ d. Copyright and Similar Rights means copyright and/or similar rights
+ closely related to copyright including, without limitation,
+ performance, broadcast, sound recording, and Sui Generis Database
+ Rights, without regard to how the rights are labeled or
+ categorized. For purposes of this Public License, the rights
+ specified in Section 2(b)(1)-(2) are not Copyright and Similar
+ Rights.
+
+ e. Effective Technological Measures means those measures that, in the
+ absence of proper authority, may not be circumvented under laws
+ fulfilling obligations under Article 11 of the WIPO Copyright
+ Treaty adopted on December 20, 1996, and/or similar international
+ agreements.
+
+ f. Exceptions and Limitations means fair use, fair dealing, and/or
+ any other exception or limitation to Copyright and Similar Rights
+ that applies to Your use of the Licensed Material.
+
+ g. License Elements means the license attributes listed in the name
+ of a Creative Commons Public License. The License Elements of this
+ Public License are Attribution and ShareAlike.
+
+ h. Licensed Material means the artistic or literary work, database,
+ or other material to which the Licensor applied this Public
+ License.
+
+ i. Licensed Rights means the rights granted to You subject to the
+ terms and conditions of this Public License, which are limited to
+ all Copyright and Similar Rights that apply to Your use of the
+ Licensed Material and that the Licensor has authority to license.
+
+ j. Licensor means the individual(s) or entity(ies) granting rights
+ under this Public License.
+
+ k. Share means to provide material to the public by any means or
+ process that requires permission under the Licensed Rights, such
+ as reproduction, public display, public performance, distribution,
+ dissemination, communication, or importation, and to make material
+ available to the public including in ways that members of the
+ public may access the material from a place and at a time
+ individually chosen by them.
+
+ l. Sui Generis Database Rights means rights other than copyright
+ resulting from Directive 96/9/EC of the European Parliament and of
+ the Council of 11 March 1996 on the legal protection of databases,
+ as amended and/or succeeded, as well as other essentially
+ equivalent rights anywhere in the world.
+
+ m. You means the individual or entity exercising the Licensed Rights
+ under this Public License. Your has a corresponding meaning.
+
+
+Section 2 -- Scope.
+
+ a. License grant.
+
+ 1. Subject to the terms and conditions of this Public License,
+ the Licensor hereby grants You a worldwide, royalty-free,
+ non-sublicensable, non-exclusive, irrevocable license to
+ exercise the Licensed Rights in the Licensed Material to:
+
+ a. reproduce and Share the Licensed Material, in whole or
+ in part; and
+
+ b. produce, reproduce, and Share Adapted Material.
+
+ 2. Exceptions and Limitations. For the avoidance of doubt, where
+ Exceptions and Limitations apply to Your use, this Public
+ License does not apply, and You do not need to comply with
+ its terms and conditions.
+
+ 3. Term. The term of this Public License is specified in Section
+ 6(a).
+
+ 4. Media and formats; technical modifications allowed. The
+ Licensor authorizes You to exercise the Licensed Rights in
+ all media and formats whether now known or hereafter created,
+ and to make technical modifications necessary to do so. The
+ Licensor waives and/or agrees not to assert any right or
+ authority to forbid You from making technical modifications
+ necessary to exercise the Licensed Rights, including
+ technical modifications necessary to circumvent Effective
+ Technological Measures. For purposes of this Public License,
+ simply making modifications authorized by this Section 2(a)
+ (4) never produces Adapted Material.
+
+ 5. Downstream recipients.
+
+ a. Offer from the Licensor -- Licensed Material. Every
+ recipient of the Licensed Material automatically
+ receives an offer from the Licensor to exercise the
+ Licensed Rights under the terms and conditions of this
+ Public License.
+
+ b. Additional offer from the Licensor -- Adapted Material.
+ Every recipient of Adapted Material from You
+ automatically receives an offer from the Licensor to
+ exercise the Licensed Rights in the Adapted Material
+ under the conditions of the Adapter's License You apply.
+
+ c. No downstream restrictions. You may not offer or impose
+ any additional or different terms or conditions on, or
+ apply any Effective Technological Measures to, the
+ Licensed Material if doing so restricts exercise of the
+ Licensed Rights by any recipient of the Licensed
+ Material.
+
+ 6. No endorsement. Nothing in this Public License constitutes or
+ may be construed as permission to assert or imply that You
+ are, or that Your use of the Licensed Material is, connected
+ with, or sponsored, endorsed, or granted official status by,
+ the Licensor or others designated to receive attribution as
+ provided in Section 3(a)(1)(A)(i).
+
+ b. Other rights.
+
+ 1. Moral rights, such as the right of integrity, are not
+ licensed under this Public License, nor are publicity,
+ privacy, and/or other similar personality rights; however, to
+ the extent possible, the Licensor waives and/or agrees not to
+ assert any such rights held by the Licensor to the limited
+ extent necessary to allow You to exercise the Licensed
+ Rights, but not otherwise.
+
+ 2. Patent and trademark rights are not licensed under this
+ Public License.
+
+ 3. To the extent possible, the Licensor waives any right to
+ collect royalties from You for the exercise of the Licensed
+ Rights, whether directly or through a collecting society
+ under any voluntary or waivable statutory or compulsory
+ licensing scheme. In all other cases the Licensor expressly
+ reserves any right to collect such royalties.
+
+
+Section 3 -- License Conditions.
+
+Your exercise of the Licensed Rights is expressly made subject to the
+following conditions.
+
+ a. Attribution.
+
+ 1. If You Share the Licensed Material (including in modified
+ form), You must:
+
+ a. retain the following if it is supplied by the Licensor
+ with the Licensed Material:
+
+ i. identification of the creator(s) of the Licensed
+ Material and any others designated to receive
+ attribution, in any reasonable manner requested by
+ the Licensor (including by pseudonym if
+ designated);
+
+ ii. a copyright notice;
+
+ iii. a notice that refers to this Public License;
+
+ iv. a notice that refers to the disclaimer of
+ warranties;
+
+ v. a URI or hyperlink to the Licensed Material to the
+ extent reasonably practicable;
+
+ b. indicate if You modified the Licensed Material and
+ retain an indication of any previous modifications; and
+
+ c. indicate the Licensed Material is licensed under this
+ Public License, and include the text of, or the URI or
+ hyperlink to, this Public License.
+
+ 2. You may satisfy the conditions in Section 3(a)(1) in any
+ reasonable manner based on the medium, means, and context in
+ which You Share the Licensed Material. For example, it may be
+ reasonable to satisfy the conditions by providing a URI or
+ hyperlink to a resource that includes the required
+ information.
+
+ 3. If requested by the Licensor, You must remove any of the
+ information required by Section 3(a)(1)(A) to the extent
+ reasonably practicable.
+
+ b. ShareAlike.
+
+ In addition to the conditions in Section 3(a), if You Share
+ Adapted Material You produce, the following conditions also apply.
+
+ 1. The Adapter's License You apply must be a Creative Commons
+ license with the same License Elements, this version or
+ later, or a BY-SA Compatible License.
+
+ 2. You must include the text of, or the URI or hyperlink to, the
+ Adapter's License You apply. You may satisfy this condition
+ in any reasonable manner based on the medium, means, and
+ context in which You Share Adapted Material.
+
+ 3. You may not offer or impose any additional or different terms
+ or conditions on, or apply any Effective Technological
+ Measures to, Adapted Material that restrict exercise of the
+ rights granted under the Adapter's License You apply.
+
+
+Section 4 -- Sui Generis Database Rights.
+
+Where the Licensed Rights include Sui Generis Database Rights that
+apply to Your use of the Licensed Material:
+
+ a. for the avoidance of doubt, Section 2(a)(1) grants You the right
+ to extract, reuse, reproduce, and Share all or a substantial
+ portion of the contents of the database;
+
+ b. if You include all or a substantial portion of the database
+ contents in a database in which You have Sui Generis Database
+ Rights, then the database in which You have Sui Generis Database
+ Rights (but not its individual contents) is Adapted Material,
+
+ including for purposes of Section 3(b); and
+ c. You must comply with the conditions in Section 3(a) if You Share
+ all or a substantial portion of the contents of the database.
+
+For the avoidance of doubt, this Section 4 supplements and does not
+replace Your obligations under this Public License where the Licensed
+Rights include other Copyright and Similar Rights.
+
+
+Section 5 -- Disclaimer of Warranties and Limitation of Liability.
+
+ a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
+ EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
+ AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
+ ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
+ IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
+ WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
+ ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
+ KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
+ ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
+
+ b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
+ TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
+ NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
+ INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
+ COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
+ USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
+ ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
+ DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
+ IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
+
+ c. The disclaimer of warranties and limitation of liability provided
+ above shall be interpreted in a manner that, to the extent
+ possible, most closely approximates an absolute disclaimer and
+ waiver of all liability.
+
+
+Section 6 -- Term and Termination.
+
+ a. This Public License applies for the term of the Copyright and
+ Similar Rights licensed here. However, if You fail to comply with
+ this Public License, then Your rights under this Public License
+ terminate automatically.
+
+ b. Where Your right to use the Licensed Material has terminated under
+ Section 6(a), it reinstates:
+
+ 1. automatically as of the date the violation is cured, provided
+ it is cured within 30 days of Your discovery of the
+ violation; or
+
+ 2. upon express reinstatement by the Licensor.
+
+ For the avoidance of doubt, this Section 6(b) does not affect any
+ right the Licensor may have to seek remedies for Your violations
+ of this Public License.
+
+ c. For the avoidance of doubt, the Licensor may also offer the
+ Licensed Material under separate terms or conditions or stop
+ distributing the Licensed Material at any time; however, doing so
+ will not terminate this Public License.
+
+ d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
+ License.
+
+
+Section 7 -- Other Terms and Conditions.
+
+ a. The Licensor shall not be bound by any additional or different
+ terms or conditions communicated by You unless expressly agreed.
+
+ b. Any arrangements, understandings, or agreements regarding the
+ Licensed Material not stated herein are separate from and
+ independent of the terms and conditions of this Public License.
+
+
+Section 8 -- Interpretation.
+
+ a. For the avoidance of doubt, this Public License does not, and
+ shall not be interpreted to, reduce, limit, restrict, or impose
+ conditions on any use of the Licensed Material that could lawfully
+ be made without permission under this Public License.
+
+ b. To the extent possible, if any provision of this Public License is
+ deemed unenforceable, it shall be automatically reformed to the
+ minimum extent necessary to make it enforceable. If the provision
+ cannot be reformed, it shall be severed from this Public License
+ without affecting the enforceability of the remaining terms and
+ conditions.
+
+ c. No term or condition of this Public License will be waived and no
+ failure to comply consented to unless expressly agreed to by the
+ Licensor.
+
+ d. Nothing in this Public License constitutes or may be interpreted
+ as a limitation upon, or waiver of, any privileges and immunities
+ that apply to the Licensor or You, including from the legal
+ processes of any jurisdiction or authority.
+
+
+=======================================================================
+
+Creative Commons is not a party to its public
+licenses. Notwithstanding, Creative Commons may elect to apply one of
+its public licenses to material it publishes and in those instances
+will be considered the “Licensor.” The text of the Creative Commons
+public licenses is dedicated to the public domain under the CC0 Public
+Domain Dedication. Except for the limited purpose of indicating that
+material is shared under a Creative Commons public license or as
+otherwise permitted by the Creative Commons policies published at
+creativecommons.org/policies, Creative Commons does not authorize the
+use of the trademark "Creative Commons" or any other trademark or logo
+of Creative Commons without its prior written consent including,
+without limitation, in connection with any unauthorized modifications
+to any of its public licenses or any other arrangements,
+understandings, or agreements concerning use of licensed material. For
+the avoidance of doubt, this paragraph does not form part of the
+public licenses.
+
+Creative Commons may be contacted at creativecommons.org.
+
diff --git a/graphics/LICENSE b/graphics/LICENSE
new file mode 100644
index 000000000..fccc0ac5f
--- /dev/null
+++ b/graphics/LICENSE
@@ -0,0 +1,19 @@
+HandBrake Graphic Assets License
+
+Unless otherwise specified, all graphic assets are released under the
+Creative Commons Attribution-ShareAlike 4.0 International Public License.
+Generally speaking, the license permits reuse given proper attribution to the
+original works here and any modifications are publicly shared under the same
+license. Read the file CC_BY-SA_4.0_INT for details.
+
+Please read the file AUTHORS.markdown for a list of contributors. Attribution
+should be made in the following form:
+
+Copyright Author Name <author-email>
+Copyright HandBrake Team <https://handbrake.fr>
+Add your copyright here if sharing modifications
+
+This work is released under the
+Creative Commons Attribution-ShareAlike 4.0 International Public License
+License summary: https://creativecommons.org/licenses/by-sa/4.0/
+Full legal code: https://creativecommons.org/licenses/by-sa/4.0/legalcode
diff --git a/gtk/src/appcast.c b/gtk/src/appcast.c
index 2a2114b59..71ae6ff91 100644
--- a/gtk/src/appcast.c
+++ b/gtk/src/appcast.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* appcast.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* appcast.c is free software.
*
diff --git a/gtk/src/appcast.h b/gtk/src/appcast.h
index 8e9c2f86e..fa636bc3a 100644
--- a/gtk/src/appcast.h
+++ b/gtk/src/appcast.h
@@ -1,6 +1,6 @@
/*
* appcast.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* appcast.h is free software.
*
diff --git a/gtk/src/audiohandler.c b/gtk/src/audiohandler.c
index f6def5149..d21ff28d7 100644
--- a/gtk/src/audiohandler.c
+++ b/gtk/src/audiohandler.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* audiohandler.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* audiohandler.c is free software.
*
diff --git a/gtk/src/audiohandler.h b/gtk/src/audiohandler.h
index 342bf4980..45be4df0d 100644
--- a/gtk/src/audiohandler.h
+++ b/gtk/src/audiohandler.h
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* audiohandler.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* audiohandler.h is free software.
*
diff --git a/gtk/src/callbacks.c b/gtk/src/callbacks.c
index 5726f65bb..9c5b846fb 100644
--- a/gtk/src/callbacks.c
+++ b/gtk/src/callbacks.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* callbacks.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* callbacks.c is free software.
*
diff --git a/gtk/src/callbacks.h b/gtk/src/callbacks.h
index e12c52318..472ceea13 100644
--- a/gtk/src/callbacks.h
+++ b/gtk/src/callbacks.h
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* callbacks.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* callbacks.h is free software.
*
diff --git a/gtk/src/ghb-dvd.c b/gtk/src/ghb-dvd.c
index 5050d1679..dca919c2d 100644
--- a/gtk/src/ghb-dvd.c
+++ b/gtk/src/ghb-dvd.c
@@ -1,6 +1,6 @@
/*
* ghb-dvd.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* ghb-dvd.c is free software.
*
diff --git a/gtk/src/ghb-dvd.h b/gtk/src/ghb-dvd.h
index 0c7d55ef2..4b75b95c2 100644
--- a/gtk/src/ghb-dvd.h
+++ b/gtk/src/ghb-dvd.h
@@ -1,6 +1,6 @@
/*
* ghb-dvd.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* ghb-dvd.h is free software.
*
diff --git a/gtk/src/ghb.m4 b/gtk/src/ghb.m4
index 84bd42418..89089d8b2 100644
--- a/gtk/src/ghb.m4
+++ b/gtk/src/ghb.m4
@@ -543,8 +543,8 @@ conjunction with the "Forced" option.</property>
<property name="skip_pager_hint">True</property>
<property name="program_name">HandBrake</property>
<property name="version">0.9.2</property>
- <property name="copyright" translatable="yes">Copyright © 2008 - 2017 John Stebbins
-Copyright © 2004 - 2017, HandBrake Devs</property>
+ <property name="copyright" translatable="yes">Copyright © 2008 - John Stebbins
+Copyright © 2004 - , HandBrake Devs</property>
<property name="comments" translatable="yes">HandBrake is a GPL-licensed, multiplatform, multithreaded video transcoder.</property>
<property name="website">https://handbrake.fr</property>
<property name="website_label" translatable="yes">https://handbrake.fr</property>
diff --git a/gtk/src/ghbcellrenderertext.c b/gtk/src/ghbcellrenderertext.c
index 613e28fcd..eba5e28c2 100644
--- a/gtk/src/ghbcellrenderertext.c
+++ b/gtk/src/ghbcellrenderertext.c
@@ -1,6 +1,6 @@
/*
* ghbcellrenderertext.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* ghbcellrenderertext.c is free software.
*
diff --git a/gtk/src/ghbcellrenderertext.h b/gtk/src/ghbcellrenderertext.h
index 64fc9c2cc..12914a827 100644
--- a/gtk/src/ghbcellrenderertext.h
+++ b/gtk/src/ghbcellrenderertext.h
@@ -1,6 +1,6 @@
/*
* ghbcellrenderertext.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* ghbcellrenderertext.h is free software.
*
diff --git a/gtk/src/ghbcompat.h b/gtk/src/ghbcompat.h
index 17cb125e2..22623bd0c 100644
--- a/gtk/src/ghbcompat.h
+++ b/gtk/src/ghbcompat.h
@@ -1,6 +1,6 @@
/*
* ghbcompat.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* ghbcompat.h is free software.
*
diff --git a/gtk/src/hb-backend.c b/gtk/src/hb-backend.c
index f4c79c3e3..a3f5aa58a 100644
--- a/gtk/src/hb-backend.c
+++ b/gtk/src/hb-backend.c
@@ -1,6 +1,6 @@
/*
* hb-backend.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* hb-backend.c is free software.
*
diff --git a/gtk/src/hb-backend.h b/gtk/src/hb-backend.h
index e6b5c4883..9cc157a51 100644
--- a/gtk/src/hb-backend.h
+++ b/gtk/src/hb-backend.h
@@ -1,6 +1,6 @@
/*
* hb-backend.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* hb-backend.h is free software.
*
diff --git a/gtk/src/icons.c b/gtk/src/icons.c
index 0e889e0c6..f5b462a37 100644
--- a/gtk/src/icons.c
+++ b/gtk/src/icons.c
@@ -1,6 +1,6 @@
/*
* icons.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* icons.c is free software.
*
diff --git a/gtk/src/icons.h b/gtk/src/icons.h
index 1c32b156a..8a122803b 100644
--- a/gtk/src/icons.h
+++ b/gtk/src/icons.h
@@ -1,6 +1,6 @@
/*
* icons.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* icons.h is free software.
*
diff --git a/gtk/src/main.c b/gtk/src/main.c
index f347af03d..da0d85478 100644
--- a/gtk/src/main.c
+++ b/gtk/src/main.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* main.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* main.c is free software.
*
diff --git a/gtk/src/marshalers.c b/gtk/src/marshalers.c
index 911737af2..896fc4b33 100644
--- a/gtk/src/marshalers.c
+++ b/gtk/src/marshalers.c
@@ -1,6 +1,6 @@
/*
* marshalers.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* marshalers.c is free software.
*
diff --git a/gtk/src/marshalers.h b/gtk/src/marshalers.h
index 2e0969d31..bc193d1dc 100644
--- a/gtk/src/marshalers.h
+++ b/gtk/src/marshalers.h
@@ -1,6 +1,6 @@
/*
* marshalers.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* marshalers.h is free software.
*
diff --git a/gtk/src/plist.c b/gtk/src/plist.c
index a887bfbaa..81956a9c4 100644
--- a/gtk/src/plist.c
+++ b/gtk/src/plist.c
@@ -1,6 +1,6 @@
/*
* plist.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* plist.c is free software.
*
diff --git a/gtk/src/plist.h b/gtk/src/plist.h
index 689275156..a8d725753 100644
--- a/gtk/src/plist.h
+++ b/gtk/src/plist.h
@@ -1,6 +1,6 @@
/*
* plist.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* plist.h is free software.
*
diff --git a/gtk/src/presets.c b/gtk/src/presets.c
index 0f0315c3a..625d2ffcd 100644
--- a/gtk/src/presets.c
+++ b/gtk/src/presets.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* presets.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* presets.c is free software.
*
diff --git a/gtk/src/presets.h b/gtk/src/presets.h
index cd14d48ce..c4d8cbaa1 100644
--- a/gtk/src/presets.h
+++ b/gtk/src/presets.h
@@ -1,6 +1,6 @@
/*
* presets.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* presets.h is free software.
*
diff --git a/gtk/src/preview.c b/gtk/src/preview.c
index 508e284b9..e282c545c 100644
--- a/gtk/src/preview.c
+++ b/gtk/src/preview.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* preview.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* preview.c is free software.
*
diff --git a/gtk/src/preview.h b/gtk/src/preview.h
index 216e9e8df..3e7d9cd77 100644
--- a/gtk/src/preview.h
+++ b/gtk/src/preview.h
@@ -1,6 +1,6 @@
/*
* preview.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* preview.h is free software.
*
diff --git a/gtk/src/queuehandler.c b/gtk/src/queuehandler.c
index 5778ee486..ed3721ef0 100644
--- a/gtk/src/queuehandler.c
+++ b/gtk/src/queuehandler.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* queuehandler.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* queuehandler.c is free software.
*
@@ -205,7 +205,7 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *queueDict, GtkTreeIter *pite
title = ghb_dict_get_int(uiDict, "title");
start_point = ghb_dict_get_int(uiDict, "start_point");
end_point = ghb_dict_get_int(uiDict, "end_point");
- vol_name = ghb_dict_get_string(uiDict, "volume_label");
+ vol_name = ghb_dict_get_string(uiDict, "volume");
dest = ghb_dict_get_string(uiDict, "destination");
basename = g_path_get_basename(dest);
escape = g_markup_escape_text(basename, -1);
diff --git a/gtk/src/queuehandler.h b/gtk/src/queuehandler.h
index 34b052d0f..decb3b35d 100644
--- a/gtk/src/queuehandler.h
+++ b/gtk/src/queuehandler.h
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* queuehandler.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* queuehandler.h is free software.
*
diff --git a/gtk/src/renderer_button.c b/gtk/src/renderer_button.c
index 52e3c26bd..dd427d708 100644
--- a/gtk/src/renderer_button.c
+++ b/gtk/src/renderer_button.c
@@ -1,6 +1,6 @@
/*
* render_button.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* render_button.c is free software.
*
diff --git a/gtk/src/renderer_button.h b/gtk/src/renderer_button.h
index fe5035212..d8d5a4b97 100644
--- a/gtk/src/renderer_button.h
+++ b/gtk/src/renderer_button.h
@@ -1,6 +1,6 @@
/*
* render_button.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* render_button.h is free software.
*
diff --git a/gtk/src/resources.c b/gtk/src/resources.c
index 3fb95344f..231ef3279 100644
--- a/gtk/src/resources.c
+++ b/gtk/src/resources.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* resources.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* resources.c is free software.
*
diff --git a/gtk/src/resources.h b/gtk/src/resources.h
index a0e2b3f32..bd00ed40a 100644
--- a/gtk/src/resources.h
+++ b/gtk/src/resources.h
@@ -1,6 +1,6 @@
/*
* resources.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* resources.h is free software.
*
diff --git a/gtk/src/settings.c b/gtk/src/settings.c
index 467ee7b4d..48a19d19f 100644
--- a/gtk/src/settings.c
+++ b/gtk/src/settings.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* settings.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* settings.c is free software.
*
diff --git a/gtk/src/settings.h b/gtk/src/settings.h
index 13470e45f..6359d6a7a 100644
--- a/gtk/src/settings.h
+++ b/gtk/src/settings.h
@@ -1,6 +1,6 @@
/*
* settings.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* settings.h is free software.
*
diff --git a/gtk/src/subtitlehandler.c b/gtk/src/subtitlehandler.c
index 66ca478c1..85108cfb8 100644
--- a/gtk/src/subtitlehandler.c
+++ b/gtk/src/subtitlehandler.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* subtitlehandler.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* subtitlehandler.c is free software.
*
diff --git a/gtk/src/subtitlehandler.h b/gtk/src/subtitlehandler.h
index d29d781e9..46c0c573d 100644
--- a/gtk/src/subtitlehandler.h
+++ b/gtk/src/subtitlehandler.h
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* subtitlehandler.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* subtitlehandler.h is free software.
*
diff --git a/gtk/src/values.c b/gtk/src/values.c
index 40fff4a37..1d87650c4 100644
--- a/gtk/src/values.c
+++ b/gtk/src/values.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* values.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* values.c is free software.
*
diff --git a/gtk/src/values.h b/gtk/src/values.h
index f3a53180a..b6e1f8cb3 100644
--- a/gtk/src/values.h
+++ b/gtk/src/values.h
@@ -1,6 +1,6 @@
/*
* values.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* values.h is free software.
*
diff --git a/gtk/src/videohandler.c b/gtk/src/videohandler.c
index 0219e22cf..a02e58426 100644
--- a/gtk/src/videohandler.c
+++ b/gtk/src/videohandler.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* videohandler.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* videohandler.c is free software.
*
diff --git a/gtk/src/videohandler.h b/gtk/src/videohandler.h
index 33c07c282..d2b2dfb14 100644
--- a/gtk/src/videohandler.h
+++ b/gtk/src/videohandler.h
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* videohandler.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* videohandler.h is free software.
*
diff --git a/gtk/src/x264handler.c b/gtk/src/x264handler.c
index 75ef44c5f..c0fbb054a 100644
--- a/gtk/src/x264handler.c
+++ b/gtk/src/x264handler.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* x264handler.c
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* x264handler.c is free software.
*
diff --git a/gtk/src/x264handler.h b/gtk/src/x264handler.h
index 196cc5974..41969cbf0 100644
--- a/gtk/src/x264handler.h
+++ b/gtk/src/x264handler.h
@@ -1,7 +1,7 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* x264handler.h
- * Copyright (C) John Stebbins 2008-2017 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2018 <stebbins@stebbins>
*
* x264handler.h is free software.
*
diff --git a/libhb/audio_remap.c b/libhb/audio_remap.c
index 40a07ed0d..d32adfb02 100644
--- a/libhb/audio_remap.c
+++ b/libhb/audio_remap.c
@@ -1,6 +1,6 @@
/* audio_remap.c
*
- * Copyright (c) 2003-2017 HandBrake Team
+ * Copyright (c) 2003-2018 HandBrake Team
* This file is part of the HandBrake source code
* Homepage: <http://handbrake.fr/>
* It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/audio_remap.h b/libhb/audio_remap.h
index 602f12e86..f0a1f3494 100644
--- a/libhb/audio_remap.h
+++ b/libhb/audio_remap.h
@@ -1,6 +1,6 @@
/* audio_remap.h
*
- * Copyright (c) 2003-2017 HandBrake Team
+ * Copyright (c) 2003-2018 HandBrake Team
* This file is part of the HandBrake source code
* Homepage: <http://handbrake.fr/>
* It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/audio_resample.c b/libhb/audio_resample.c
index 35585dd66..23d82402d 100644
--- a/libhb/audio_resample.c
+++ b/libhb/audio_resample.c
@@ -1,6 +1,6 @@
/* audio_resample.c
*
- * Copyright (c) 2003-2017 HandBrake Team
+ * Copyright (c) 2003-2018 HandBrake Team
* This file is part of the HandBrake source code
* Homepage: <http://handbrake.fr/>
* It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/audio_resample.h b/libhb/audio_resample.h
index c6bde532d..a8a1e2ad8 100644
--- a/libhb/audio_resample.h
+++ b/libhb/audio_resample.h
@@ -1,6 +1,6 @@
/* audio_resample.h
*
- * Copyright (c) 2003-2017 HandBrake Team
+ * Copyright (c) 2003-2018 HandBrake Team
* This file is part of the HandBrake source code
* Homepage: <http://handbrake.fr/>
* It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/avfilter.c b/libhb/avfilter.c
index 9729a2c9c..b82621426 100644
--- a/libhb/avfilter.c
+++ b/libhb/avfilter.c
@@ -161,7 +161,7 @@ static AVFilterContext * append_filter( hb_filter_private_t * pv,
static int avfilter_init( hb_filter_object_t * filter, hb_filter_init_t * init )
{
- hb_filter_private_t * pv = filter->private_data;
+ hb_filter_private_t * pv = NULL;
char * sws_flags;
AVFilterContext * avfilter;
char * filter_args;
diff --git a/libhb/batch.c b/libhb/batch.c
index bab7ab983..1ae70d9ec 100644
--- a/libhb/batch.c
+++ b/libhb/batch.c
@@ -1,6 +1,6 @@
/* batch.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/bd.c b/libhb/bd.c
index 23af8934b..b63918040 100644
--- a/libhb/bd.c
+++ b/libhb/bd.c
@@ -1,6 +1,6 @@
/* dvd.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/bits.h b/libhb/bits.h
index 83b4759f6..150a8db60 100644
--- a/libhb/bits.h
+++ b/libhb/bits.h
@@ -1,6 +1,6 @@
/* bits.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/colormap.c b/libhb/colormap.c
index 29e34113a..7cb22f994 100644
--- a/libhb/colormap.c
+++ b/libhb/colormap.c
@@ -1,6 +1,6 @@
/* colormap.c
*
- * Copyright (c) 2003-2017 HandBrake Team
+ * Copyright (c) 2003-2018 HandBrake Team
* This file is part of the HandBrake source code
* Homepage: <http://handbrake.fr/>.
* It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/colormap.h b/libhb/colormap.h
index 542a012f1..cb214fdd6 100644
--- a/libhb/colormap.h
+++ b/libhb/colormap.h
@@ -1,6 +1,6 @@
/* colormap.h
*
- * Copyright (c) 2003-2017 HandBrake Team
+ * Copyright (c) 2003-2018 HandBrake Team
* This file is part of the HandBrake source code
* Homepage: <http://handbrake.fr/>.
* It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/comb_detect.c b/libhb/comb_detect.c
index b0059cacb..4051f936c 100644
--- a/libhb/comb_detect.c
+++ b/libhb/comb_detect.c
@@ -1,6 +1,6 @@
/* comb_detect.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/common.c b/libhb/common.c
index a6ee2c424..35150e756 100644
--- a/libhb/common.c
+++ b/libhb/common.c
@@ -1,6 +1,6 @@
/* common.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/common.h b/libhb/common.h
index e14a5049e..3f5f15540 100644
--- a/libhb/common.h
+++ b/libhb/common.h
@@ -1,6 +1,6 @@
/* common.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/compat.c b/libhb/compat.c
index c13584341..618fb52c0 100644
--- a/libhb/compat.c
+++ b/libhb/compat.c
@@ -1,6 +1,6 @@
/* compat.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/compat.h b/libhb/compat.h
index 3b5858cee..2af0c2e08 100644
--- a/libhb/compat.h
+++ b/libhb/compat.h
@@ -1,6 +1,6 @@
/* compat.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/cropscale.c b/libhb/cropscale.c
index 02e59eb29..aa91ee51a 100644
--- a/libhb/cropscale.c
+++ b/libhb/cropscale.c
@@ -1,6 +1,6 @@
/* cropscale.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/decavcodec.c b/libhb/decavcodec.c
index 836c7f1be..33752c720 100644
--- a/libhb/decavcodec.c
+++ b/libhb/decavcodec.c
@@ -1,6 +1,6 @@
/* decavcodec.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/deccc608sub.c b/libhb/deccc608sub.c
index ff044d28f..27b7e23b0 100644
--- a/libhb/deccc608sub.c
+++ b/libhb/deccc608sub.c
@@ -1,6 +1,6 @@
/* deccc608sub.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/deccc608sub.h b/libhb/deccc608sub.h
index 338d1182d..25a738f4f 100644
--- a/libhb/deccc608sub.h
+++ b/libhb/deccc608sub.h
@@ -1,6 +1,6 @@
/* deccc608sub.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/declpcm.c b/libhb/declpcm.c
index af43c8e1d..88776dedf 100644
--- a/libhb/declpcm.c
+++ b/libhb/declpcm.c
@@ -1,6 +1,6 @@
/* declpcm.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/decomb.c b/libhb/decomb.c
index d3a62cee3..28e96e046 100644
--- a/libhb/decomb.c
+++ b/libhb/decomb.c
@@ -1,6 +1,6 @@
/* decomb.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/decomb.h b/libhb/decomb.h
index 36b6fc54a..45ffbb7d5 100644
--- a/libhb/decomb.h
+++ b/libhb/decomb.h
@@ -1,6 +1,6 @@
/* decomb.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/decpgssub.c b/libhb/decpgssub.c
index 463c3b9e4..c0ce29bb0 100644
--- a/libhb/decpgssub.c
+++ b/libhb/decpgssub.c
@@ -1,6 +1,6 @@
/* decpgssub.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/decsrtsub.c b/libhb/decsrtsub.c
index f6b3fc28c..d4815dd81 100644
--- a/libhb/decsrtsub.c
+++ b/libhb/decsrtsub.c
@@ -1,6 +1,6 @@
/* decsrtsub.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/decsrtsub.h b/libhb/decsrtsub.h
index b4c604b32..13fe49301 100644
--- a/libhb/decsrtsub.h
+++ b/libhb/decsrtsub.h
@@ -1,6 +1,6 @@
/* decsrtsub.h
*
- * Copyright (c) 2003-2017 HandBrake Team
+ * Copyright (c) 2003-2018 HandBrake Team
* This file is part of the HandBrake source code
* Homepage: <http://handbrake.fr/>.
* It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/decssasub.c b/libhb/decssasub.c
index 18990c32c..4ad0b1558 100644
--- a/libhb/decssasub.c
+++ b/libhb/decssasub.c
@@ -1,6 +1,6 @@
/* decssasub.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
@@ -348,7 +348,10 @@ ssa_decode_line_to_mkv_ssa( hb_work_object_t * w, hb_buffer_t * in,
// when there is no layer field.
numPartsRead = sscanf( (char *)in_data, "Dialogue:%128[^,],", layerField );
if ( numPartsRead != 1 )
+ {
+ free(layerField);
goto fail;
+ }
styleToTextFields = (char *)find_field( in_data, in_data + in_size, 4 );
if ( styleToTextFields == NULL ) {
diff --git a/libhb/decssasub.h b/libhb/decssasub.h
index dc0fc2d73..91c696614 100644
--- a/libhb/decssasub.h
+++ b/libhb/decssasub.h
@@ -1,6 +1,6 @@
/* decssasub.h
*
- * Copyright (c) 2003-2017 HandBrake Team
+ * Copyright (c) 2003-2018 HandBrake Team
* This file is part of the HandBrake source code
* Homepage: <http://handbrake.fr/>.
* It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/dectx3gsub.c b/libhb/dectx3gsub.c
index 74cad6447..c6399e5e1 100644
--- a/libhb/dectx3gsub.c
+++ b/libhb/dectx3gsub.c
@@ -1,6 +1,6 @@
/* dectx3gsub.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/decutf8sub.c b/libhb/decutf8sub.c
index ad6787ad0..2d475f228 100644
--- a/libhb/decutf8sub.c
+++ b/libhb/decutf8sub.c
@@ -1,6 +1,6 @@
/* decutf8sub.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/decvobsub.c b/libhb/decvobsub.c
index 009c12e96..1ddb659ad 100644
--- a/libhb/decvobsub.c
+++ b/libhb/decvobsub.c
@@ -1,6 +1,6 @@
/* decvobsub.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/demuxmpeg.c b/libhb/demuxmpeg.c
index be1373edb..2b4d2e1c7 100644
--- a/libhb/demuxmpeg.c
+++ b/libhb/demuxmpeg.c
@@ -1,6 +1,6 @@
/* demuxmpeg.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/detelecine.c b/libhb/detelecine.c
index e5c5a48fb..f53ffcc49 100644
--- a/libhb/detelecine.c
+++ b/libhb/detelecine.c
@@ -1,6 +1,6 @@
/* detelecine.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/dvd.c b/libhb/dvd.c
index 4dfd81661..dee82eb3e 100644
--- a/libhb/dvd.c
+++ b/libhb/dvd.c
@@ -1,6 +1,6 @@
/* dvd.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/dvd.h b/libhb/dvd.h
index 4ecbf2420..ffa114167 100644
--- a/libhb/dvd.h
+++ b/libhb/dvd.h
@@ -1,6 +1,6 @@
/* dvd.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/dvdnav.c b/libhb/dvdnav.c
index acc30007b..bdcdcaae0 100644
--- a/libhb/dvdnav.c
+++ b/libhb/dvdnav.c
@@ -1,6 +1,6 @@
/* dvdnav.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/eedi2.c b/libhb/eedi2.c
index 899029b29..e12dbaef9 100644
--- a/libhb/eedi2.c
+++ b/libhb/eedi2.c
@@ -1,6 +1,6 @@
/* eedi2.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/eedi2.h b/libhb/eedi2.h
index b6e72ae34..fa04b71ba 100644
--- a/libhb/eedi2.h
+++ b/libhb/eedi2.h
@@ -1,6 +1,6 @@
/* eedi2.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/enc_qsv.c b/libhb/enc_qsv.c
index 05771b7e5..b5d387b44 100644
--- a/libhb/enc_qsv.c
+++ b/libhb/enc_qsv.c
@@ -304,9 +304,11 @@ static int qsv_hevc_make_header(hb_work_object_t *w, mfxSession session)
}
/* need more space for 10bits */
+ int bpp12 = 3;
if (pv->param.videoParam->mfx.FrameInfo.FourCC == MFX_FOURCC_P010)
{
hb_buffer_realloc(bitstream_buf,bitstream_buf->size*2);
+ bpp12 = 6;
}
bitstream.Data = bitstream_buf->data;
bitstream.MaxLength = bitstream_buf->alloc;
@@ -315,9 +317,9 @@ static int qsv_hevc_make_header(hb_work_object_t *w, mfxSession session)
mfxU16 Height = pv->param.videoParam->mfx.FrameInfo.Height;
mfxU16 Width = pv->param.videoParam->mfx.FrameInfo.Width;
frameSurface1.Info = pv->param.videoParam->mfx.FrameInfo;
- frameSurface1.Data.Y = av_mallocz(Width * Height * 3 / 2);
- frameSurface1.Data.VU = frameSurface1.Data.Y + Width * Height;
- frameSurface1.Data.Pitch = Width;
+ frameSurface1.Data.Y = av_mallocz(Width * Height * (bpp12 / 2.0));
+ frameSurface1.Data.VU = frameSurface1.Data.Y + Width * Height * (bpp12 == 6 ? 2 : 1);
+ frameSurface1.Data.Pitch = Width * (bpp12 == 6 ? 2 : 1);
/* Encode a single blank frame */
do
diff --git a/libhb/encavcodec.c b/libhb/encavcodec.c
index 5e637fb57..b30ce13f9 100644
--- a/libhb/encavcodec.c
+++ b/libhb/encavcodec.c
@@ -1,6 +1,6 @@
/* encavcodec.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/encavcodecaudio.c b/libhb/encavcodecaudio.c
index 544cd3304..206a3010d 100644
--- a/libhb/encavcodecaudio.c
+++ b/libhb/encavcodecaudio.c
@@ -1,6 +1,6 @@
/* encavcodecaudio.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/enctheora.c b/libhb/enctheora.c
index 00b4d18eb..636afa76f 100644
--- a/libhb/enctheora.c
+++ b/libhb/enctheora.c
@@ -1,6 +1,6 @@
/* enctheora.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/encvobsub.c b/libhb/encvobsub.c
index f5f12d891..44550d442 100644
--- a/libhb/encvobsub.c
+++ b/libhb/encvobsub.c
@@ -1,6 +1,6 @@
/* encvobsub.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/encvorbis.c b/libhb/encvorbis.c
index 053f3aaab..ac2b7892f 100644
--- a/libhb/encvorbis.c
+++ b/libhb/encvorbis.c
@@ -1,6 +1,6 @@
/* encvorbis.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/encx264.c b/libhb/encx264.c
index 26645213a..04ac22824 100644
--- a/libhb/encx264.c
+++ b/libhb/encx264.c
@@ -1,6 +1,6 @@
/* encx264.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
@@ -151,7 +151,11 @@ static void * x264_lib_open_ubuntu_10bit(void)
void hb_x264_global_init(void)
{
+#if X264_BUILD < 153
x264_apis[0].bit_depth = x264_bit_depth;
+#else
+ x264_apis[0].bit_depth = X264_BIT_DEPTH;
+#endif
x264_apis[0].param_default = x264_param_default;
x264_apis[0].param_default_preset = x264_param_default_preset;
x264_apis[0].param_apply_profile = x264_param_apply_profile;
@@ -164,13 +168,32 @@ void hb_x264_global_init(void)
x264_apis[0].encoder_close = x264_encoder_close;
x264_apis[0].picture_init = x264_picture_init;
+ if (x264_apis[0].bit_depth == 0)
+ {
+ // libx264 supports 8 and 10 bit
+ x264_apis[0].bit_depth = 8;
+ x264_apis[1].bit_depth = 10;
+ x264_apis[1].param_default = x264_param_default;
+ x264_apis[1].param_default_preset = x264_param_default_preset;
+ x264_apis[1].param_apply_profile = x264_param_apply_profile;
+ x264_apis[1].param_apply_fastfirstpass = x264_param_apply_fastfirstpass;
+ x264_apis[1].param_parse = x264_param_parse;
+ x264_apis[1].encoder_open = x264_encoder_open;
+ x264_apis[1].encoder_headers = x264_encoder_headers;
+ x264_apis[1].encoder_encode = x264_encoder_encode;
+ x264_apis[1].encoder_delayed_frames = x264_encoder_delayed_frames;
+ x264_apis[1].encoder_close = x264_encoder_close;
+ x264_apis[1].picture_init = x264_picture_init;
+ return;
+ }
+
// Invalidate other apis
x264_apis[1].bit_depth = -1;
// Attempt to dlopen a library for handling the bit-depth that we do
// not already have.
void *h;
- if (x264_bit_depth == 8)
+ if (x264_apis[0].bit_depth == 8)
{
h = x264_lib_open(libx264_10bit_names);
#if defined(SYS_LINUX)
@@ -190,8 +213,23 @@ void hb_x264_global_init(void)
}
int ii;
+ int dll_bitdepth = 0;
+#if X264_BUILD < 153
int *pbit_depth = (int*)hb_dlsym(h, "x264_bit_depth");
+ if (pbit_depth != NULL)
+ {
+ dll_bitdepth = *pbit_depth;
+ }
+#endif
x264_apis[1].param_default = hb_dlsym(h, "x264_param_default");
+#if X264_BUILD >= 153
+ if (x264_apis[1].param_default != NULL)
+ {
+ x264_param_t defaults;
+ x264_apis[1].param_default(&defaults);
+ dll_bitdepth = defaults.i_bitdepth;
+ }
+#endif
x264_apis[1].param_default_preset = hb_dlsym(h, "x264_param_default_preset");
x264_apis[1].param_apply_profile = hb_dlsym(h, "x264_param_apply_profile");
x264_apis[1].param_apply_fastfirstpass =
@@ -215,7 +253,7 @@ void hb_x264_global_init(void)
x264_apis[1].encoder_close = hb_dlsym(h, "x264_encoder_close");
x264_apis[1].picture_init = hb_dlsym(h, "x264_picture_init");
- if (pbit_depth != NULL &&
+ if (dll_bitdepth > 0 && dll_bitdepth != x264_apis[0].bit_depth &&
x264_apis[1].param_default != NULL &&
x264_apis[1].param_default_preset != NULL &&
x264_apis[1].param_apply_profile != NULL &&
@@ -228,7 +266,7 @@ void hb_x264_global_init(void)
x264_apis[1].encoder_close != NULL &&
x264_apis[1].picture_init != NULL)
{
- x264_apis[1].bit_depth = *pbit_depth;
+ x264_apis[1].bit_depth = dll_bitdepth;
}
}
@@ -321,6 +359,10 @@ int encx264Init( hb_work_object_t * w, hb_job_t * job )
return 1;
}
+#if X264_BUILD >= 153
+ param.i_bitdepth = bit_depth;
+#endif
+
/* If the PSNR or SSIM tunes are in use, enable the relevant metric */
if (job->encoder_tune != NULL && *job->encoder_tune)
{
diff --git a/libhb/encx264.h b/libhb/encx264.h
index 81348a9a9..ccc93afa0 100644
--- a/libhb/encx264.h
+++ b/libhb/encx264.h
@@ -1,6 +1,6 @@
/* encx264.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/encx265.c b/libhb/encx265.c
index 242dc6f1f..bc32a5e78 100644
--- a/libhb/encx265.c
+++ b/libhb/encx265.c
@@ -1,6 +1,6 @@
/* encx265.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/fifo.c b/libhb/fifo.c
index f2175e90c..8d869c8d9 100644
--- a/libhb/fifo.c
+++ b/libhb/fifo.c
@@ -1,6 +1,6 @@
/* fifo.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/grayscale.c b/libhb/grayscale.c
index 4d42f83c9..cb3a77ec9 100644
--- a/libhb/grayscale.c
+++ b/libhb/grayscale.c
@@ -1,6 +1,6 @@
/* grayscale.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/h264_common.h b/libhb/h264_common.h
index 09db213f3..422136e93 100644
--- a/libhb/h264_common.h
+++ b/libhb/h264_common.h
@@ -1,6 +1,6 @@
/* h264_common.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/h265_common.h b/libhb/h265_common.h
index ef156da42..f12c76dc0 100644
--- a/libhb/h265_common.h
+++ b/libhb/h265_common.h
@@ -1,6 +1,6 @@
/* h265_common.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/hb.c b/libhb/hb.c
index 41e8e3c34..733c3d2a3 100644
--- a/libhb/hb.c
+++ b/libhb/hb.c
@@ -1,6 +1,6 @@
/* hb.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/hb.h b/libhb/hb.h
index d26b32319..c8dfa8ebb 100644
--- a/libhb/hb.h
+++ b/libhb/hb.h
@@ -1,6 +1,6 @@
/* hb.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/hb_dict.c b/libhb/hb_dict.c
index 09b3855a8..393f0dd30 100644
--- a/libhb/hb_dict.c
+++ b/libhb/hb_dict.c
@@ -1,6 +1,6 @@
/* hb_dict.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/hb_dict.h b/libhb/hb_dict.h
index d02c7dd50..668854bdd 100644
--- a/libhb/hb_dict.h
+++ b/libhb/hb_dict.h
@@ -1,6 +1,6 @@
/* hb_dict.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/hb_json.c b/libhb/hb_json.c
index c267bf86d..672810efb 100644
--- a/libhb/hb_json.c
+++ b/libhb/hb_json.c
@@ -1,6 +1,6 @@
/* json.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/hb_json.h b/libhb/hb_json.h
index 54ac92a46..5749f1001 100644
--- a/libhb/hb_json.h
+++ b/libhb/hb_json.h
@@ -1,6 +1,6 @@
/* hb_json.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/hbffmpeg.h b/libhb/hbffmpeg.h
index 535e4b3f5..898e3ade1 100644
--- a/libhb/hbffmpeg.h
+++ b/libhb/hbffmpeg.h
@@ -1,6 +1,6 @@
/* hbffmpeg.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/hbtypes.h b/libhb/hbtypes.h
index 064ba7b6d..9cdabfa34 100644
--- a/libhb/hbtypes.h
+++ b/libhb/hbtypes.h
@@ -1,6 +1,6 @@
/* hbtypes.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/internal.h b/libhb/internal.h
index 4510f0e01..025c09008 100644
--- a/libhb/internal.h
+++ b/libhb/internal.h
@@ -1,6 +1,6 @@
/* internal.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/lang.c b/libhb/lang.c
index 91d5754f0..69fbfa7c8 100644
--- a/libhb/lang.c
+++ b/libhb/lang.c
@@ -1,6 +1,6 @@
/* lang.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/lang.h b/libhb/lang.h
index 88866b328..e3cb97ab5 100644
--- a/libhb/lang.h
+++ b/libhb/lang.h
@@ -1,6 +1,6 @@
/* lang.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/lapsharp.c b/libhb/lapsharp.c
index 5f1606d3c..59f7c174b 100644
--- a/libhb/lapsharp.c
+++ b/libhb/lapsharp.c
@@ -1,6 +1,6 @@
/* lapsharp.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/mt_frame_filter.c b/libhb/mt_frame_filter.c
index 7ae009c0e..e632bcd54 100644
--- a/libhb/mt_frame_filter.c
+++ b/libhb/mt_frame_filter.c
@@ -1,6 +1,6 @@
/* mt_frame_filter.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/muxavformat.c b/libhb/muxavformat.c
index 99ba9c9a4..6cacd6cee 100644
--- a/libhb/muxavformat.c
+++ b/libhb/muxavformat.c
@@ -1,6 +1,6 @@
/* muxavformat.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/muxcommon.c b/libhb/muxcommon.c
index 88072edad..196965bec 100644
--- a/libhb/muxcommon.c
+++ b/libhb/muxcommon.c
@@ -1,6 +1,6 @@
/* muxcommon.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/nal_units.c b/libhb/nal_units.c
index fe66eca9c..51c73518a 100644
--- a/libhb/nal_units.c
+++ b/libhb/nal_units.c
@@ -1,6 +1,6 @@
/* nal_units.c
*
- * Copyright (c) 2003-2017 HandBrake Team
+ * Copyright (c) 2003-2018 HandBrake Team
* This file is part of the HandBrake source code.
* Homepage: <http://handbrake.fr/>.
* It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/nal_units.h b/libhb/nal_units.h
index aae33e77e..71d8dad7f 100644
--- a/libhb/nal_units.h
+++ b/libhb/nal_units.h
@@ -1,6 +1,6 @@
/* nal_units.h
*
- * Copyright (c) 2003-2017 HandBrake Team
+ * Copyright (c) 2003-2018 HandBrake Team
* This file is part of the HandBrake source code.
* Homepage: <http://handbrake.fr/>.
* It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/nlmeans.c b/libhb/nlmeans.c
index 02433e3d3..d5dd4a2c1 100644
--- a/libhb/nlmeans.c
+++ b/libhb/nlmeans.c
@@ -1,7 +1,7 @@
/* nlmeans.c
Copyright (c) 2013 Dirk Farin
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
@@ -72,8 +72,8 @@
#define NLMEANS_PREFILTER_MODE_MEAN5X5 2
#define NLMEANS_PREFILTER_MODE_MEDIAN3X3 4
#define NLMEANS_PREFILTER_MODE_MEDIAN5X5 8
-#define NLMEANS_PREFILTER_MODE_RESERVED16 16 // Reserved
-#define NLMEANS_PREFILTER_MODE_RESERVED32 32 // Reserved
+#define NLMEANS_PREFILTER_MODE_CSM3X3 16
+#define NLMEANS_PREFILTER_MODE_CSM5X5 32
#define NLMEANS_PREFILTER_MODE_RESERVED64 64 // Reserved
#define NLMEANS_PREFILTER_MODE_RESERVED128 128 // Reserved
#define NLMEANS_PREFILTER_MODE_REDUCE25 256
@@ -252,8 +252,9 @@ static void nlmeans_alloc(const uint8_t *src,
dst->border = border;
nlmeans_border(dst->mem, dst->w, dst->h, dst->border);
- dst->mem_pre = dst->mem;
- dst->image_pre = dst->image;
+ dst->mem_pre = dst->mem;
+ dst->image_pre = dst->image;
+ dst->prefiltered = 0;
}
@@ -386,6 +387,99 @@ static void nlmeans_filter_median(const uint8_t *src,
}
+static void nlmeans_filter_csm(const uint8_t *src,
+ uint8_t *dst,
+ const int w,
+ const int h,
+ const int border,
+ const int size)
+{
+ // CSM filter
+ const int bw = w + 2 * border;
+ const int offset_min = -((size - 1) /2);
+ const int offset_max = (size + 1) /2;
+ uint8_t min, max,
+ min2, max2,
+ min3, max3,
+ median,
+ pixel;
+ for (int y = 0; y < h; y++)
+ {
+ for (int x = 0; x < w; x++)
+ {
+ for (int k = offset_min; k < offset_max; k++)
+ {
+ for (int j = offset_min; j < offset_max; j++)
+ {
+ if (k == 0 && j == 0)
+ {
+ // Ignore origin
+ goto end;
+ }
+ pixel = *(src + bw*(y+j) + (x+k));
+ if (k == offset_min && j == offset_min)
+ {
+ // Start calculating neighborhood thresholds
+ min = pixel;
+ max = min;
+ goto end;
+ }
+ if (pixel < min)
+ {
+ min = pixel;
+ }
+ if (pixel > max)
+ {
+ max = pixel;
+ }
+ }
+ end:
+ continue;
+ }
+
+ // Final neighborhood thresholds
+ // min = minimum neighbor pixel value
+ // max = maximum neighbor pixel value
+
+ // Median
+ median = (min + max) / 2;
+
+ // Additional thresholds for median-like filtering
+ min2 = (min + median) / 2;
+ max2 = (max + median) / 2;
+ min3 = (min2 + median) / 2;
+ max3 = (max2 + median) / 2;
+
+ // Clamp to thresholds
+ pixel = *(src + bw*(y) + (x));
+ if (pixel < min)
+ {
+ *(dst + bw*y + x) = min;
+ }
+ else if (pixel > max)
+ {
+ *(dst + bw*y + x) = max;
+ }
+ else if (pixel < min2)
+ {
+ *(dst + bw*y + x) = min2;
+ }
+ else if (pixel > max2)
+ {
+ *(dst + bw*y + x) = max2;
+ }
+ else if (pixel < min3)
+ {
+ *(dst + bw*y + x) = min3;
+ }
+ else if (pixel > max3)
+ {
+ *(dst + bw*y + x) = max3;
+ }
+ }
+ }
+}
+
static void nlmeans_filter_edgeboost(const uint8_t *src,
uint8_t *dst,
const int w,
@@ -493,7 +587,7 @@ static void nlmeans_prefilter(BorderedPlane *src,
const int filter_type)
{
hb_lock(src->mutex);
- if (src->prefiltered)
+ if (src->prefiltered == 1)
{
hb_unlock(src->mutex);
return;
@@ -502,7 +596,9 @@ static void nlmeans_prefilter(BorderedPlane *src,
if (filter_type & NLMEANS_PREFILTER_MODE_MEAN3X3 ||
filter_type & NLMEANS_PREFILTER_MODE_MEAN5X5 ||
filter_type & NLMEANS_PREFILTER_MODE_MEDIAN3X3 ||
- filter_type & NLMEANS_PREFILTER_MODE_MEDIAN5X5)
+ filter_type & NLMEANS_PREFILTER_MODE_MEDIAN5X5 ||
+ filter_type & NLMEANS_PREFILTER_MODE_CSM3X3 ||
+ filter_type & NLMEANS_PREFILTER_MODE_CSM5X5)
{
// Source image
@@ -523,7 +619,17 @@ static void nlmeans_prefilter(BorderedPlane *src,
}
// Filter plane; should already have at least 2px extra border on each side
- if (filter_type & NLMEANS_PREFILTER_MODE_MEDIAN5X5)
+ if (filter_type & NLMEANS_PREFILTER_MODE_CSM5X5)
+ {
+ // CSM 5x5
+ nlmeans_filter_csm(image, image_pre, w, h, border, 5);
+ }
+ else if (filter_type & NLMEANS_PREFILTER_MODE_CSM3X3)
+ {
+ // CSM 3x3
+ nlmeans_filter_csm(image, image_pre, w, h, border, 3);
+ }
+ else if (filter_type & NLMEANS_PREFILTER_MODE_MEDIAN5X5)
{
// Median 5x5
nlmeans_filter_median(image, image_pre, w, h, border, 5);
@@ -580,12 +686,17 @@ static void nlmeans_prefilter(BorderedPlane *src,
}
}
+ // Recreate borders
+ nlmeans_border(mem_pre, w, h, border);
+
// Assign result
src->mem_pre = mem_pre;
src->image_pre = image_pre;
-
- // Recreate borders
- nlmeans_border(mem_pre, w, h, border);
+ if (filter_type & NLMEANS_PREFILTER_MODE_PASSTHRU)
+ {
+ src->mem = src->mem_pre;
+ src->image = src->image_pre;
+ }
}
src->prefiltered = 1;
@@ -998,16 +1109,16 @@ static void nlmeans_filter_thread(void *thread_args_v)
for (int c = 0; c < 3; c++)
{
- if (pv->strength[c] == 0)
+ if (pv->prefilter[c] & NLMEANS_PREFILTER_MODE_PASSTHRU)
{
+ nlmeans_prefilter(&frame->plane[c], pv->prefilter[c]);
nlmeans_deborder(&frame->plane[c], buf->plane[c].data,
buf->plane[c].width, buf->plane[c].stride,
buf->plane[c].height);
continue;
}
- if (pv->prefilter[c] & NLMEANS_PREFILTER_MODE_PASSTHRU)
+ if (pv->strength[c] == 0)
{
- nlmeans_prefilter(&frame->plane[c], pv->prefilter[c]);
nlmeans_deborder(&frame->plane[c], buf->plane[c].data,
buf->plane[c].width, buf->plane[c].stride,
buf->plane[c].height);
@@ -1129,16 +1240,16 @@ static hb_buffer_t * nlmeans_filter_flush(hb_filter_private_t *pv)
for (int c = 0; c < 3; c++)
{
- if (pv->strength[c] == 0)
+ if (pv->prefilter[c] & NLMEANS_PREFILTER_MODE_PASSTHRU)
{
+ nlmeans_prefilter(&frame->plane[c], pv->prefilter[c]);
nlmeans_deborder(&frame->plane[c], buf->plane[c].data,
buf->plane[c].width, buf->plane[c].stride,
buf->plane[c].height);
continue;
}
- if (pv->prefilter[c] & NLMEANS_PREFILTER_MODE_PASSTHRU)
+ if (pv->strength[c] == 0)
{
- nlmeans_prefilter(&pv->frame[f].plane[c], pv->prefilter[c]);
nlmeans_deborder(&frame->plane[c], buf->plane[c].data,
buf->plane[c].width, buf->plane[c].stride,
buf->plane[c].height);
diff --git a/libhb/nlmeans.h b/libhb/nlmeans.h
index e0ede4a92..ae0f4f9f3 100644
--- a/libhb/nlmeans.h
+++ b/libhb/nlmeans.h
@@ -1,7 +1,7 @@
/* nlmeans.h
Copyright (c) 2013 Dirk Farin
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/nlmeans_x86.c b/libhb/nlmeans_x86.c
index c924ee221..79856b5d5 100644
--- a/libhb/nlmeans_x86.c
+++ b/libhb/nlmeans_x86.c
@@ -1,7 +1,7 @@
/* nlmeans_x86.c
Copyright (c) 2013 Dirk Farin
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/param.c b/libhb/param.c
index 11eb1733d..578b6a27a 100644
--- a/libhb/param.c
+++ b/libhb/param.c
@@ -1,6 +1,6 @@
/* param.c
*
- * Copyright (c) 2003-2017 HandBrake Team
+ * Copyright (c) 2003-2018 HandBrake Team
* This file is part of the HandBrake source code
* Homepage: <http://handbrake.fr/>.
* It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/param.h b/libhb/param.h
index 92afb44ad..eee5f9222 100644
--- a/libhb/param.h
+++ b/libhb/param.h
@@ -1,6 +1,6 @@
/* param.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/platform/macosx/encca_aac.c b/libhb/platform/macosx/encca_aac.c
index 5716cf399..22c35bbd9 100644
--- a/libhb/platform/macosx/encca_aac.c
+++ b/libhb/platform/macosx/encca_aac.c
@@ -1,6 +1,6 @@
/* encca_aac.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/plist.c b/libhb/plist.c
index 818e39b80..03b0df493 100644
--- a/libhb/plist.c
+++ b/libhb/plist.c
@@ -1,6 +1,6 @@
/* plist.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/plist.h b/libhb/plist.h
index e58db5887..8634b9e85 100644
--- a/libhb/plist.h
+++ b/libhb/plist.h
@@ -1,6 +1,6 @@
/* plist.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/ports.c b/libhb/ports.c
index 399ddecc8..5d71541ab 100644
--- a/libhb/ports.c
+++ b/libhb/ports.c
@@ -1,6 +1,6 @@
/* ports.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
@@ -1306,6 +1306,7 @@ void hb_system_sleep_private_enable(void *opaque)
if (opaque == NULL)
{
hb_error("hb_system_sleep: opaque is NULL");
+ return;
}
IOPMAssertionID *assertionID = (IOPMAssertionID*)opaque;
@@ -1336,6 +1337,7 @@ void hb_system_sleep_private_disable(void *opaque)
if (opaque == NULL)
{
hb_error("hb_system_sleep: opaque is NULL");
+ return;
}
IOPMAssertionID *assertionID = (IOPMAssertionID*)opaque;
diff --git a/libhb/ports.h b/libhb/ports.h
index 57723061b..f664170a4 100644
--- a/libhb/ports.h
+++ b/libhb/ports.h
@@ -1,6 +1,6 @@
/* ports.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/preset.c b/libhb/preset.c
index 2d05b1c72..5840714ce 100644
--- a/libhb/preset.c
+++ b/libhb/preset.c
@@ -1,6 +1,6 @@
/* preset.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/preset.h b/libhb/preset.h
index b90010553..09478e8fb 100644
--- a/libhb/preset.h
+++ b/libhb/preset.h
@@ -1,6 +1,6 @@
/* preset.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/qsv_common.c b/libhb/qsv_common.c
index 97348dd43..3470f49e3 100644
--- a/libhb/qsv_common.c
+++ b/libhb/qsv_common.c
@@ -1,6 +1,6 @@
/* qsv_common.c
*
- * Copyright (c) 2003-2017 HandBrake Team
+ * Copyright (c) 2003-2018 HandBrake Team
* This file is part of the HandBrake source code.
* Homepage: <http://handbrake.fr/>.
* It may be used under the terms of the GNU General Public License v2.
@@ -397,6 +397,7 @@ static int query_capabilities(mfxSession session, mfxVersion version, hb_qsv_inf
init_video_param(&inputParam);
inputParam.mfx.CodecId = info->codec_id;
inputParam.mfx.RateControlMethod = MFX_RATECONTROL_LA;
+ inputParam.mfx.TargetKbps = 5000;
memset(&videoParam, 0, sizeof(mfxVideoParam));
videoParam.mfx.CodecId = inputParam.mfx.CodecId;
@@ -411,6 +412,7 @@ static int query_capabilities(mfxSession session, mfxVersion version, hb_qsv_inf
inputParam.mfx.CodecId = info->codec_id;
inputParam.mfx.RateControlMethod = MFX_RATECONTROL_LA;
inputParam.mfx.FrameInfo.PicStruct = MFX_PICSTRUCT_FIELD_TFF;
+ inputParam.mfx.TargetKbps = 5000;
memset(&videoParam, 0, sizeof(mfxVideoParam));
videoParam.mfx.CodecId = inputParam.mfx.CodecId;
@@ -428,6 +430,7 @@ static int query_capabilities(mfxSession session, mfxVersion version, hb_qsv_inf
init_video_param(&inputParam);
inputParam.mfx.CodecId = info->codec_id;
inputParam.mfx.RateControlMethod = MFX_RATECONTROL_ICQ;
+ inputParam.mfx.ICQQuality = 20;
memset(&videoParam, 0, sizeof(mfxVideoParam));
videoParam.mfx.CodecId = inputParam.mfx.CodecId;
diff --git a/libhb/qsv_common.h b/libhb/qsv_common.h
index 620cb1aef..8ffd77994 100644
--- a/libhb/qsv_common.h
+++ b/libhb/qsv_common.h
@@ -1,6 +1,6 @@
/* qsv_common.h
*
- * Copyright (c) 2003-2017 HandBrake Team
+ * Copyright (c) 2003-2018 HandBrake Team
* This file is part of the HandBrake source code.
* Homepage: <http://handbrake.fr/>.
* It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/reader.c b/libhb/reader.c
index 53a8180a1..8d15ae8d6 100644
--- a/libhb/reader.c
+++ b/libhb/reader.c
@@ -1,6 +1,6 @@
/* reader.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/rendersub.c b/libhb/rendersub.c
index 26d1058c5..2cf92b058 100644
--- a/libhb/rendersub.c
+++ b/libhb/rendersub.c
@@ -1,6 +1,6 @@
/* rendersub.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/scan.c b/libhb/scan.c
index 8baeed356..5b3b0734d 100644
--- a/libhb/scan.c
+++ b/libhb/scan.c
@@ -1,6 +1,6 @@
/* scan.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/stream.c b/libhb/stream.c
index 34670160b..98778711b 100644
--- a/libhb/stream.c
+++ b/libhb/stream.c
@@ -1,6 +1,6 @@
/* stream.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/sync.c b/libhb/sync.c
index 72b779bde..3b1f6d183 100644
--- a/libhb/sync.c
+++ b/libhb/sync.c
@@ -1,6 +1,6 @@
/* sync.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/taskset.c b/libhb/taskset.c
index b759a963b..e05c87e82 100644
--- a/libhb/taskset.c
+++ b/libhb/taskset.c
@@ -1,6 +1,6 @@
/* taskset.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/taskset.h b/libhb/taskset.h
index 1b1739721..73a8f8d8d 100644
--- a/libhb/taskset.h
+++ b/libhb/taskset.h
@@ -1,6 +1,6 @@
/* taskset.h
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/unsharp.c b/libhb/unsharp.c
index 8f1c99e6b..445615b84 100644
--- a/libhb/unsharp.c
+++ b/libhb/unsharp.c
@@ -1,7 +1,7 @@
/* unsharp.c
Copyright (c) 2002 Rémi Guyomarch <rguyom at pobox.com>
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/vfr.c b/libhb/vfr.c
index 9f0e48263..ef7c1782d 100644
--- a/libhb/vfr.c
+++ b/libhb/vfr.c
@@ -1,6 +1,6 @@
/* vfr.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/libhb/work.c b/libhb/work.c
index 94720d5f2..28fa36bd8 100644
--- a/libhb/work.c
+++ b/libhb/work.c
@@ -1,6 +1,6 @@
/* work.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/macosx/English.lproj/MainWindow.xib b/macosx/English.lproj/MainWindow.xib
index f61d0d77f..d41ba57cc 100644
--- a/macosx/English.lproj/MainWindow.xib
+++ b/macosx/English.lproj/MainWindow.xib
@@ -343,7 +343,7 @@
</connections>
</textField>
<box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="1628">
- <rect key="frame" x="281" y="514" width="581" height="5"/>
+ <rect key="frame" x="312" y="514" width="550" height="5"/>
</box>
<box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="3205">
<rect key="frame" x="125" y="575" width="737" height="5"/>
@@ -578,12 +578,6 @@ Blu-ray and DVD sources often have multiple titles, the longest of which is typi
<binding destination="-2" name="title" keyPath="self.job.presetName" id="vO4-JB-o7Q"/>
</connections>
</menuItem>
- <menuItem title="New Preset…" id="nmZ-D3-Tl9">
- <connections>
- <action selector="showAddPresetPanel:" target="-2" id="4aq-W2-V8l"/>
- </connections>
- </menuItem>
- <menuItem isSeparatorItem="YES" id="oD9-5q-EMm"/>
</items>
</menu>
</popUpButtonCell>
@@ -623,6 +617,21 @@ Blu-ray and DVD sources often have multiple titles, the longest of which is typi
<binding destination="-2" name="textColor" keyPath="self.labelColor" id="NpP-Z0-hPs"/>
</connections>
</textField>
+ <button toolTip="Save New Preset" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="2vD-zN-YMe">
+ <rect key="frame" x="276" y="502" width="33" height="28"/>
+ <buttonCell key="cell" type="push" bezelStyle="rounded" image="NSAddTemplate" imagePosition="only" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="IOU-3L-nvB">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="smallSystem"/>
+ </buttonCell>
+ <connections>
+ <action selector="showAddPresetPanel:" target="-2" id="QgW-qo-eKy"/>
+ <binding destination="-2" name="enabled" keyPath="self.job" id="XiA-f4-ZO2">
+ <dictionary key="options">
+ <string key="NSValueTransformerName">NSIsNotNil</string>
+ </dictionary>
+ </binding>
+ </connections>
+ </button>
</subviews>
<constraints>
<constraint firstItem="5180" firstAttribute="leading" secondItem="1541" secondAttribute="trailing" constant="15" id="0Bt-0B-noA"/>
@@ -633,6 +642,7 @@ Blu-ray and DVD sources often have multiple titles, the longest of which is typi
<constraint firstItem="1548" firstAttribute="baseline" secondItem="1553" secondAttribute="baseline" id="5U2-Lr-4Qc"/>
<constraint firstItem="5180" firstAttribute="baseline" secondItem="5181" secondAttribute="baseline" id="7rI-Pr-24u"/>
<constraint firstItem="5181" firstAttribute="leading" secondItem="5180" secondAttribute="trailing" constant="8" id="88n-hD-lCW"/>
+ <constraint firstItem="2vD-zN-YMe" firstAttribute="leading" secondItem="bWH-Lp-mKY" secondAttribute="trailing" constant="8" id="9oq-nZ-scg"/>
<constraint firstItem="bWH-Lp-mKY" firstAttribute="baseline" secondItem="1627" secondAttribute="baseline" id="A8O-c5-J59"/>
<constraint firstItem="d0E-xw-bxh" firstAttribute="leading" secondItem="2" secondAttribute="leading" constant="-4" id="ANc-YO-rUk"/>
<constraint firstItem="5505" firstAttribute="leading" secondItem="1545" secondAttribute="trailing" constant="4" id="AlP-tE-q8e"/>
@@ -653,6 +663,7 @@ Blu-ray and DVD sources often have multiple titles, the longest of which is typi
<constraint firstItem="5513" firstAttribute="leading" secondItem="4NG-AB-JWs" secondAttribute="trailing" constant="8" id="LaE-py-QST"/>
<constraint firstItem="1554" firstAttribute="leading" secondItem="1553" secondAttribute="trailing" constant="4" id="Lrw-hs-Pdg"/>
<constraint firstItem="3203" firstAttribute="top" secondItem="2" secondAttribute="top" constant="16" id="MDg-nr-Pos"/>
+ <constraint firstItem="1628" firstAttribute="leading" secondItem="2vD-zN-YMe" secondAttribute="trailing" constant="8" id="NLi-5N-bLW"/>
<constraint firstItem="1539" firstAttribute="centerY" secondItem="3205" secondAttribute="centerY" id="O7P-Hr-rDa"/>
<constraint firstAttribute="trailing" secondItem="3203" secondAttribute="trailing" constant="20" id="PnZ-2e-abQ"/>
<constraint firstAttribute="trailing" secondItem="3205" secondAttribute="trailing" constant="20" id="QkZ-Q7-VGX"/>
@@ -665,6 +676,7 @@ Blu-ray and DVD sources often have multiple titles, the longest of which is typi
<constraint firstItem="1562" firstAttribute="leading" secondItem="PJi-21-hie" secondAttribute="trailing" constant="2" id="UgJ-hP-CRv"/>
<constraint firstAttribute="bottom" secondItem="d0E-xw-bxh" secondAttribute="bottom" id="Unb-Sk-dKC"/>
<constraint firstItem="1627" firstAttribute="leading" secondItem="2" secondAttribute="leading" constant="20" id="VV8-Hu-yZk"/>
+ <constraint firstItem="2vD-zN-YMe" firstAttribute="centerY" secondItem="bWH-Lp-mKY" secondAttribute="centerY" id="VpY-Jn-29g"/>
<constraint firstItem="4NG-AB-JWs" firstAttribute="leading" secondItem="5181" secondAttribute="trailing" constant="15" id="Xtb-eN-L1f"/>
<constraint firstItem="1540" firstAttribute="leading" secondItem="2" secondAttribute="leading" constant="20" id="YBA-8V-7wA"/>
<constraint firstItem="5493" firstAttribute="width" secondItem="1548" secondAttribute="width" id="Z4Q-52-cXt"/>
@@ -680,7 +692,6 @@ Blu-ray and DVD sources often have multiple titles, the longest of which is typi
<constraint firstItem="1540" firstAttribute="baseline" secondItem="1541" secondAttribute="baseline" id="gBD-ib-Qcp"/>
<constraint firstItem="gfs-4j-YSE" firstAttribute="centerY" secondItem="PJi-21-hie" secondAttribute="centerY" id="gR5-Tl-M5T"/>
<constraint firstItem="5523" firstAttribute="leading" secondItem="5493" secondAttribute="leading" id="gm6-wR-wHe"/>
- <constraint firstItem="1628" firstAttribute="leading" secondItem="bWH-Lp-mKY" secondAttribute="trailing" constant="8" id="hxV-pb-HlV"/>
<constraint firstAttribute="trailing" secondItem="1628" secondAttribute="trailing" constant="20" id="k3w-7F-PJy"/>
<constraint firstItem="5523" firstAttribute="baseline" secondItem="1548" secondAttribute="baseline" id="kfY-mQ-JIb"/>
<constraint firstItem="1541" firstAttribute="baseline" secondItem="5180" secondAttribute="baseline" id="l58-3I-TTV"/>
@@ -727,7 +738,7 @@ Blu-ray and DVD sources often have multiple titles, the longest of which is typi
</connections>
</toolbarItem>
<toolbarItem implicitItemIdentifier="A5F62853-5047-43C2-AD64-73654B0E34B2" label="Add Titles To Queue" paletteLabel="Add Titles To Queue" toolTip="Add Titles To Queue" image="addqueue" id="38K-hd-P5J">
- <size key="minSize" width="58" height="32"/>
+ <size key="minSize" width="58" height="25"/>
<size key="maxSize" width="58" height="32"/>
<popUpButton key="view" imageHugsTitle="YES" id="pJJ-0V-TQq">
<rect key="frame" x="28" y="14" width="58" height="25"/>
@@ -796,11 +807,11 @@ Blu-ray and DVD sources often have multiple titles, the longest of which is typi
<toolbarItem reference="8r8-nZ-dYs"/>
<toolbarItem reference="ZEH-cS-zXY"/>
<toolbarItem reference="DZZ-Fe-wjw"/>
- <toolbarItem reference="HCx-ku-nF7"/>
<toolbarItem reference="ZEH-cS-zXY"/>
<toolbarItem reference="byg-kj-sEM"/>
<toolbarItem reference="wTQ-KF-5KW"/>
<toolbarItem reference="wjB-Tl-5qq"/>
+ <toolbarItem reference="HCx-ku-nF7"/>
<toolbarItem reference="dK4-jt-v4K"/>
<toolbarItem reference="p7Q-L3-zcW"/>
<toolbarItem reference="qhv-9l-2FH"/>
@@ -809,7 +820,7 @@ Blu-ray and DVD sources often have multiple titles, the longest of which is typi
<connections>
<outlet property="delegate" destination="-2" id="M3v-Rc-7Ca"/>
</connections>
- <point key="canvasLocation" x="2048" y="-183"/>
+ <point key="canvasLocation" x="2263" y="-203"/>
</window>
<userDefaultsController representsSharedInstance="YES" id="5676"/>
<customView id="lZQ-gl-3wX" userLabel="Open Panel View">
@@ -875,6 +886,7 @@ Blu-ray and DVD sources often have multiple titles, the longest of which is typi
</customView>
</objects>
<resources>
+ <image name="NSAddTemplate" width="11" height="11"/>
<image name="activity" width="32" height="32"/>
<image name="addqueue" width="32" height="32"/>
<image name="encode" width="32" height="32"/>
diff --git a/macosx/HandBrake.xcodeproj/project.pbxproj b/macosx/HandBrake.xcodeproj/project.pbxproj
index 8fdec2031..17b667e8d 100644
--- a/macosx/HandBrake.xcodeproj/project.pbxproj
+++ b/macosx/HandBrake.xcodeproj/project.pbxproj
@@ -2123,6 +2123,7 @@
273F217214ADD2170021BE6D /* debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ PATH = $PATH;
PRODUCT_NAME = external;
};
name = debug;
@@ -2130,6 +2131,7 @@
273F217314ADD2170021BE6D /* release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ PATH = $PATH;
PRODUCT_NAME = external;
};
name = release;
@@ -2423,6 +2425,7 @@
A9A5CD9A1E32072F00947914 /* debug-sandbox */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ PATH = $PATH;
PRODUCT_NAME = external;
};
name = "debug-sandbox";
@@ -2666,6 +2669,7 @@
A9A5CDA01E32073800947914 /* release-sandbox */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ PATH = $PATH;
PRODUCT_NAME = external;
};
name = "release-sandbox";
diff --git a/macosx/Info.plist.m4 b/macosx/Info.plist.m4
index ec0e44df5..8b511b40b 100644
--- a/macosx/Info.plist.m4
+++ b/macosx/Info.plist.m4
@@ -58,7 +58,7 @@ dnl
<key>LSMinimumSystemVersion</key>
<string>${MACOSX_DEPLOYMENT_TARGET}</string>
<key>NSHumanReadableCopyright</key>
- <string>Copyright © 2003-2017 __HB_name Team.
+ <string>Copyright © 2003-2018 __HB_name Team.
GPLv2 license.</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
diff --git a/macosx/hbsign b/macosx/hbsign
new file mode 100755
index 000000000..2c70a2931
--- /dev/null
+++ b/macosx/hbsign
@@ -0,0 +1,134 @@
+#!/usr/bin/env bash
+# Copyright (C) 2012-2017 VLC authors and VideoLAN
+# Copyright (C) 2012-2014 Felix Paul Kühne <fkuehne at videolan dot org>
+# Copyright (C) 2018 Damiano Galassi <[email protected]>
+# Copyright (C) 2018 Bradley Sepos <[email protected]>
+#
+# Based on VLC's codesign.sh
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+
+NAME="hbsign"
+
+set -e
+set -u
+
+SELF="${0}"
+SELF_NAME=$(basename "${SELF}")
+HELP="\
+usage: ${SELF_NAME} [-h]
+ ${SELF_NAME} identity application [application2 ...]
+where:
+ -h display this help text"
+
+# Logs error message and exits
+function exit_with_error {
+ set +e
+ ERROR="${2}"
+ echo "${SELF_NAME}: ${ERROR}" >&2
+ PRINT_HELP="${3:-false}"
+ if [[ "${PRINT_HELP}" == true ]]; then
+ echo -e "${HELP}"
+ fi
+ exit "${1}"
+}
+
+LOG="${NAME}.log"
+touch "${LOG}" || exit_with_error 1 "${SELF_NAME}: unable to create log file ${LOG}"
+
+OPTIND=1
+while getopts ":h" OPT; do
+ case "${OPT}" in
+ h)
+ # Print help and exit
+ echo -e "${HELP}"
+ exit 0
+ ;;
+ :)
+ # Option without required argument
+ exit_with_error 1 "${SELF_NAME}: option -${OPTARG} requires a value" true
+ ;;
+ \?)
+ # Invalid option specified
+ exit_with_error 1 "${SELF_NAME}: invalid option: -${OPTARG}" true
+ ;;
+ esac
+done
+shift $((${OPTIND} - 1))
+IDENTITY="${1:-}"
+if [[ "${IDENTITY}" == '' ]]; then
+ exit_with_error 1 "${SELF_NAME}: identity not specified" true
+fi
+shift 1
+
+if [[ ${#@} -eq 0 ]]; then
+ exit_with_error 1 "${SELF_NAME}: application not specified" true
+fi
+
+function sign { # sign file_or_folder
+ codesign --force --verbose -s "${IDENTITY}" --prefix "fr.handbrake." "${1:-}" >>"${LOG}" 2>&1 || exit_with_error 1 "Signing failed. More info may be available in ${NAME}.log"
+}
+
+echo "Identity: ${IDENTITY}"
+
+for TARGET in "${@}"; do
+
+ TARGET="${TARGET#./}"
+ echo "${TARGET}:"
+
+ if [[ "${TARGET##*/}" == 'HandBrake.app' ]]; then
+ echo " Signing Frameworks"
+ find "${TARGET}"/Contents/Frameworks -type f -name ".DS_Store" -exec rm '{}' \; >/dev/null 2>&1
+ find "${TARGET}"/Contents/Frameworks -type f -name "*.textile" -exec rm '{}' \; >/dev/null 2>&1
+ find "${TARGET}"/Contents/Frameworks -type f -name "*.txt" -exec rm '{}' \; >/dev/null 2>&1
+ sign "${TARGET}"/Contents/Frameworks/HandBrakeKit.framework/Versions/A fr.handbrake.HandBrake
+ sign "${TARGET}"/Contents/Frameworks/Growl.framework/Versions/A com.growl.growlframework
+ sign "${TARGET}"/Contents/Frameworks/Sparkle.framework/Resources/Autoupdate.app org.sparkle-project.Sparkle.Autoupdate
+ sign "${TARGET}"/Contents/Frameworks/Sparkle.framework/Versions/A org.sparkle-project.Sparkle
+ for FILE in $(find "${TARGET}"/Contents/Frameworks -type f -name "*.h" -o -name "*.nib" -o -name "*.plist" -o -name "*.strings" -exec echo {} \; >/dev/null 2>&1)
+ do
+ sign "${FILE}"
+ done
+
+ echo " Signing Headers"
+ for FILE in $(find "${TARGET}"/Contents/MacOS/include -type f -exec echo {} \; >/dev/null 2>&1)
+ do
+ sign "${FILEF}"
+ done
+ fi
+
+ echo " Signing Executable"
+ sign "${TARGET}" fr.handbrake.HandBrake
+
+ if [[ "${TARGET##*/}" == 'HandBrake.app' ]]; then
+ echo " Validating Frameworks"
+ codesign --verify -vv "${TARGET}"/Contents/Frameworks/HandBrakeKit.framework >>"${LOG}" 2>&1 || exit_with_error 1 "Validation failed. More info may be available in ${NAME}.log"
+ codesign --verify -vv "${TARGET}"/Contents/Frameworks/Growl.framework >>"${LOG}" 2>&1 || exit_with_error 1 "Validation failed. More info may be available in ${NAME}.log"
+ codesign --verify -vv "${TARGET}"/Contents/Frameworks/Sparkle.framework >>"${LOG}" 2>&1 || exit_with_error 1 "Validation failed. More info may be available in ${NAME}.log"
+
+ echo " Validating Autoupdate.app"
+ codesign --verify -vv "${TARGET}"/Contents/Frameworks/Sparkle.framework/Versions/Current/Resources/Autoupdate.app >>"${LOG}" 2>&1 || exit_with_error 1 "Validation failed. More info may be available in ${NAME}.log"
+ fi
+
+ echo " Validating Bundle"
+ codesign --verify --deep --strict --verbose=4 "${TARGET}" >>"${LOG}" 2>&1 || exit_with_error 1 "Validation failed. More info may be available in ${NAME}.log"
+
+ echo " Validating Execution Privileges"
+ spctl -a -t exec -vv "${TARGET}" >>"${LOG}" 2>&1 || exit_with_error 1 "Validation failed. More info may be available in ${NAME}.log"
+
+done
+
+echo "Complete."
+exit 0
diff --git a/macosx/module.defs b/macosx/module.defs
index 031d881c9..622afc78d 100644
--- a/macosx/module.defs
+++ b/macosx/module.defs
@@ -99,3 +99,5 @@ MACOSX.XCODE_ARCHIVE = $(strip \
-exportOptionsPlist '$(MACOSX.src/)archive.plist' \
-exportPath '$(MACOSX.xarchive/)' \
-archivePath '$(MACOSX.xarchive/)' )
+
+MACOSX.SIGN = $(strip $(MACOSX.src/)hbsign '$(ID)' $(MACOSX.xroot/)HandBrake.app)
diff --git a/macosx/module.rules b/macosx/module.rules
index 077f814d0..8f8cd15fe 100644
--- a/macosx/module.rules
+++ b/macosx/module.rules
@@ -40,6 +40,7 @@ macosx.clean:
$(RM.exe) -rf $(MACOSX.xroot/)HandBrake.xcarchive
$(RM.exe) -rf $(MACOSX.xroot/)HandBrake.app
$(RM.exe) -f $(MACOSX.xroot/)HandBrakeCLI
+ $(RM.exe) -f $(MACOSX.xroot/)hbsign.log
$(RM.exe) -f $(MACOSX.m4.out)
$(RM.exe) -f $(MACOSX.osl.filelist)
diff --git a/macosx/module.xcodebuild b/macosx/module.xcodebuild
index b472b4da0..8f2f43dc7 100644
--- a/macosx/module.xcodebuild
+++ b/macosx/module.xcodebuild
@@ -1,10 +1,13 @@
## This file is processed only when shunting build through xcodebuild
-.PHONY: macosx.build macosx.archive macosx.clean macosx.install macosx.install-strip macosx.uninstall
+.PHONY: macosx.build macosx.sign macosx.archive macosx.clean macosx.install macosx.install-strip macosx.uninstall
macosx.build:
$(call MACOSX.XCODE,HandBrakeCLI HandBrake,build)
+macosx.sign:
+ $(call MACOSX.SIGN,HandBrakeCLI HandBrake,sign)
+
macosx.archive:
$(call MACOSX.XCODE_ARCHIVE,HandBrake-Distribution,archive)
@@ -28,6 +31,7 @@ macosx.uninstall:
$(RM.exe) -f $(PREFIX/)bin/HandBrakeCLI
build: macosx.build
+sign: macosx.sign
archive: macosx.archive
clean: macosx.clean
install: macosx.install
@@ -37,7 +41,7 @@ xclean: clean
###############################################################################
-MACOSX.goals = $(filter-out build archive clean install,$(MAKECMDGOALS))
+MACOSX.goals = $(filter-out build sign archive clean install,$(MAKECMDGOALS))
$(MACOSX.goals): __goals__
@true
diff --git a/make/configure.py b/make/configure.py
index 71f310ea5..0fa7e9a3b 100644
--- a/make/configure.py
+++ b/make/configure.py
@@ -1524,6 +1524,7 @@ try:
ranlib = ToolProbe( 'RANLIB.exe', 'ranlib' )
strip = ToolProbe( 'STRIP.exe', 'strip' )
tar = ToolProbe( 'TAR.exe', 'gtar', 'tar' )
+ nasm = ToolProbe( 'NASM.exe', 'nasm', abort=False, minversion=[2,13,0] )
yasm = ToolProbe( 'YASM.exe', 'yasm', abort=False, minversion=[1,2,0] )
autoconf = ToolProbe( 'AUTOCONF.exe', 'autoconf', abort=False )
automake = ToolProbe( 'AUTOMAKE.exe', 'automake', abort=False )
@@ -1584,6 +1585,13 @@ try:
for action in Action.actions:
action.run()
+ ## fail on missing or old nasm where needed
+ if host.match( '*-*-darwin*' ) or options.cross:
+ if Tools.nasm.fail:
+ raise AbortError( 'error: nasm missing\n' )
+ elif Tools.nasm.version.inadequate():
+ raise AbortError( 'error: minimum required nasm version is %s and %s is %s\n' % ('.'.join([str(i) for i in Tools.nasm.version.minversion]),Tools.nasm.pathname,Tools.nasm.version.svers) )
+
## enable local yasm when yasm probe fails or version is too old
## x264 requires 1.2.0+
if not options.enable_local_yasm:
diff --git a/make/xcodemake b/make/xcodemake
index 4b0c29119..78c5ff390 100755
--- a/make/xcodemake
+++ b/make/xcodemake
@@ -100,6 +100,11 @@ fi
if [ -n "$reconfigure" ]; then
echo "reconfiguring ($reconfigure)"
+ ## respect PATH priority
+ export PATH="${PATH#$SYSTEM_DEVELOPER_BIN_DIR:}:${SYSTEM_DEVELOPER_BIN_DIR}"
+ echo "Unclobbering PATH:"
+ echo " export PATH=\"${PATH}\""
+
if [ "$EXTERNAL_DRIVER" == "bootstrap" ]; then
driver="--xcode-driver=terminal"
else
diff --git a/scripts/mac-toolchain-build b/scripts/mac-toolchain-build
index 19cc73de8..b4f7a3eda 100755
--- a/scripts/mac-toolchain-build
+++ b/scripts/mac-toolchain-build
@@ -13,7 +13,7 @@ if ! MAKEJOBS=$(sysctl -n hw.ncpu 2>/dev/null); then
MAKEJOBS="4"
fi
SUDO=
-TOTAL=6
+TOTAL=7
# functions
function print_fail_and_exit {
@@ -53,7 +53,7 @@ cd "${TEMP_DIR}"
printf "Downloading [%02i/%02i] %s" "1" "${TOTAL}" "autoconf 2.69"
curl https://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz -o "autoconf-2.69.tar.gz" >/dev/null 2>&1 || print_fail_and_exit
echo -en "${CREL}"
-printf "Downloading [%02i/%02i] %s" "2" "${TOTAL}" "automake 1.15"
+printf "Downloading [%02i/%02i] %s" "2" "${TOTAL}" "automake 1.15.1"
curl https://ftp.gnu.org/gnu/automake/automake-1.15.1.tar.gz -o "automake-1.15.1.tar.gz" >/dev/null 2>&1 || print_fail_and_exit
echo -en "${CREL}"
printf "Downloading [%02i/%02i] %s" "3" "${TOTAL}" "cmake 3.9.6"
@@ -65,7 +65,10 @@ echo -en "${CREL}"
printf "Downloading [%02i/%02i] %s" "5" "${TOTAL}" "pkg-config 0.29.2"
curl https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz -o "pkg-config-0.29.2.tar.gz" >/dev/null 2>&1 || print_fail_and_exit
echo -en "${CREL}"
-printf "Downloading [%02i/%02i] %s" "6" "${TOTAL}" "yasm 1.3.0"
+printf "Downloading [%02i/%02i] %s" "6" "${TOTAL}" "nasm 2.13.02"
+curl http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.bz2 -o "nasm-2.13.02.tar.bz2" >/dev/null 2>&1 || print_fail_and_exit
+echo -en "${CREL}"
+printf "Downloading [%02i/%02i] %s" "7" "${TOTAL}" "yasm 1.3.0"
curl https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz -o "yasm-1.3.0.tar.gz" >/dev/null 2>&1 || print_fail_and_exit
echo -en "${CREL}"
printf "Downloading [%02i/%02i] complete.\n" "${TOTAL}" "${TOTAL}"
@@ -77,8 +80,8 @@ printf "Building [%02i/%02i] %s" "1" "${TOTAL}" "autoconf 2.69"
tar -xf autoconf-2.69.tar.gz >/dev/null 2>&1 || print_fail_and_exit
cd autoconf-2.69 >/dev/null 2>&1 || print_fail_and_exit
./configure --prefix="${PREFIX}" >../autoconf-2.69.log 2>&1 || print_fail_and_exit
-make --jobs="${MAKEJOBS}" >../autoconf-2.69.log 2>&1 || print_fail_and_exit
-${SUDO} make install >../autoconf-2.69.log 2>&1 || print_fail_and_exit
+make --jobs="${MAKEJOBS}" >>../autoconf-2.69.log 2>&1 || print_fail_and_exit
+${SUDO} make install >>../autoconf-2.69.log 2>&1 || print_fail_and_exit
echo -en "${CREL}"
# automake
@@ -88,8 +91,8 @@ printf "Building [%02i/%02i] %s" "2" "${TOTAL}" "automake 1.15.1"
tar -xf automake-1.15.1.tar.gz >/dev/null 2>&1 || print_fail_and_exit
cd automake-1.15.1 >/dev/null 2>&1 || print_fail_and_exit
./configure --prefix="${PREFIX}" >../automake-1.15.1.log 2>&1 || print_fail_and_exit
-make --jobs="${MAKEJOBS}" >../automake-1.15.1.log 2>&1 || print_fail_and_exit
-${SUDO} make install >../automake-1.15.1.log 2>&1 || print_fail_and_exit
+make --jobs="${MAKEJOBS}" >>../automake-1.15.1.log 2>&1 || print_fail_and_exit
+${SUDO} make install >>../automake-1.15.1.log 2>&1 || print_fail_and_exit
echo -en "${CREL}"
# cmake
@@ -100,8 +103,8 @@ echo "You may safely dismiss and ignore any prompt to install Java."
tar -xf cmake-3.9.6.tar.gz >/dev/null 2>&1 || print_fail_and_exit
cd cmake-3.9.6 >/dev/null 2>&1 || print_fail_and_exit
./configure --prefix="${PREFIX}" --no-qt-gui --system-curl >../cmake-3.9.6.log 2>&1 || print_fail_and_exit
-make --jobs="${MAKEJOBS}" >../cmake-3.9.6.log 2>&1 || print_fail_and_exit
-${SUDO} make install >../cmake-3.9.6.log 2>&1 || print_fail_and_exit
+make --jobs="${MAKEJOBS}" >>../cmake-3.9.6.log 2>&1 || print_fail_and_exit
+${SUDO} make install >>../cmake-3.9.6.log 2>&1 || print_fail_and_exit
# libtool
cd "${TEMP_DIR}"
@@ -110,8 +113,8 @@ printf "Building [%02i/%02i] %s" "4" "${TOTAL}" "libtool 2.4.6"
tar -xf libtool-2.4.6.tar.gz >/dev/null 2>&1 || print_fail_and_exit
cd libtool-2.4.6 >/dev/null 2>&1 || print_fail_and_exit
./configure --prefix="${PREFIX}" >../libtool-2.4.6.log 2>&1 || print_fail_and_exit
-make --jobs="${MAKEJOBS}" >../libtool-2.4.6.log 2>&1 || print_fail_and_exit
-${SUDO} make install >../libtool-2.4.6.log 2>&1 || print_fail_and_exit
+make --jobs="${MAKEJOBS}" >>../libtool-2.4.6.log 2>&1 || print_fail_and_exit
+${SUDO} make install >>../libtool-2.4.6.log 2>&1 || print_fail_and_exit
echo -en "${CREL}"
# pkg-config
@@ -121,19 +124,30 @@ printf "Building [%02i/%02i] %s" "5" "${TOTAL}" "pkg-config 0.29.2"
tar -xf pkg-config-0.29.2.tar.gz >/dev/null 2>&1 || print_fail_and_exit
cd pkg-config-0.29.2 >/dev/null 2>&1 || print_fail_and_exit
./configure --prefix="${PREFIX}" --with-internal-glib --disable-host-tool >../pkg-config-0.29.2.log 2>&1 || print_fail_and_exit
-make --jobs="${MAKEJOBS}" >../pkg-config-0.29.2.log 2>&1 || print_fail_and_exit
-${SUDO} make install >../pkg-config-0.29.2.log 2>&1 || print_fail_and_exit
+make --jobs="${MAKEJOBS}" >>../pkg-config-0.29.2.log 2>&1 || print_fail_and_exit
+${SUDO} make install >>../pkg-config-0.29.2.log 2>&1 || print_fail_and_exit
+echo -en "${CREL}"
+
+# nasm
+cd "${TEMP_DIR}"
+printf "Building [%02i/%02i] %s" "6" "${TOTAL}" "nasm 2.13.02"
+[[ "${SUDO}" != "" ]] && ${SUDO} -v
+tar -xf nasm-2.13.02.tar.bz2 >/dev/null 2>&1 || print_fail_and_exit
+cd nasm-2.13.02 >/dev/null 2>&1 || print_fail_and_exit
+./configure --prefix="${PREFIX}" --enable-sections --enable-lto >../nasm-2.13.02.log 2>&1 || print_fail_and_exit
+make --jobs="${MAKEJOBS}" AR=ar RANLIB=ranlib >>../nasm-2.13.02.log 2>&1 || print_fail_and_exit
+${SUDO} make install >>../nasm-2.13.02.log 2>&1 || print_fail_and_exit
echo -en "${CREL}"
# yasm
cd "${TEMP_DIR}"
-printf "Building [%02i/%02i] %s" "6" "${TOTAL}" "yasm 1.3.0"
+printf "Building [%02i/%02i] %s" "7" "${TOTAL}" "yasm 1.3.0"
[[ "${SUDO}" != "" ]] && ${SUDO} -v
tar -xf yasm-1.3.0.tar.gz >/dev/null 2>&1 || print_fail_and_exit
cd yasm-1.3.0 >/dev/null 2>&1 || print_fail_and_exit
./configure --prefix="${PREFIX}" >../yasm-1.3.0.log 2>&1 || print_fail_and_exit
-make --jobs="${MAKEJOBS}" >../yasm-1.3.0.log 2>&1 || print_fail_and_exit
-${SUDO} make install >../yasm-1.3.0.log 2>&1 || print_fail_and_exit
+make --jobs="${MAKEJOBS}" >>../yasm-1.3.0.log 2>&1 || print_fail_and_exit
+${SUDO} make install >>../yasm-1.3.0.log 2>&1 || print_fail_and_exit
echo -en "${CREL}"
# done
diff --git a/test/parsecsv.c b/test/parsecsv.c
index 154588f30..9b8761215 100644
--- a/test/parsecsv.c
+++ b/test/parsecsv.c
@@ -1,6 +1,6 @@
/* parsecsv.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/test/parsecsv.h b/test/parsecsv.h
index a4e64c7c9..39b1847c7 100644
--- a/test/parsecsv.h
+++ b/test/parsecsv.h
@@ -1,6 +1,6 @@
/* parsecsv.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/test/test.c b/test/test.c
index 3b599134e..4aacb0870 100644
--- a/test/test.c
+++ b/test/test.c
@@ -1,6 +1,6 @@
/* test.c
- Copyright (c) 2003-2017 HandBrake Team
+ Copyright (c) 2003-2018 HandBrake Team
This file is part of the HandBrake source code
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License v2.
diff --git a/win/CS/HandBrake.ApplicationServices/Properties/AssemblyInfo.cs b/win/CS/HandBrake.ApplicationServices/Properties/AssemblyInfo.cs
index 7155a8c70..2e140a74f 100644
--- a/win/CS/HandBrake.ApplicationServices/Properties/AssemblyInfo.cs
+++ b/win/CS/HandBrake.ApplicationServices/Properties/AssemblyInfo.cs
@@ -21,7 +21,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("HandBrake Team")]
[assembly: AssemblyProduct("HandBrake")]
-[assembly: AssemblyCopyright("Copyright © 2003-2017 HandBrake Team")]
+[assembly: AssemblyCopyright("Copyright © 2003-2018 HandBrake Team")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/win/CS/HandBrakeTools/Properties/AssemblyInfo.cs b/win/CS/HandBrakeTools/Properties/AssemblyInfo.cs
index 59e15a188..91ac43f56 100644
--- a/win/CS/HandBrakeTools/Properties/AssemblyInfo.cs
+++ b/win/CS/HandBrakeTools/Properties/AssemblyInfo.cs
@@ -22,7 +22,7 @@ using System.Windows;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("HandBrake Team")]
[assembly: AssemblyProduct("HandBrake")]
-[assembly: AssemblyCopyright("Copyright © 2003-2017 HandBrake Team ")]
+[assembly: AssemblyCopyright("Copyright © 2003-2018 HandBrake Team ")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs b/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs
index 04529d8eb..13c81ced7 100644
--- a/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs
+++ b/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs
@@ -22,7 +22,7 @@ using System.Windows;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("HandBrake Team")]
[assembly: AssemblyProduct("HandBrake")]
-[assembly: AssemblyCopyright("Copyright © 2003-2017 HandBrake Team ")]
+[assembly: AssemblyCopyright("Copyright © 2003-2018 HandBrake Team ")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/win/CS/HandBrakeWPF/Properties/Resources.Designer.cs b/win/CS/HandBrakeWPF/Properties/Resources.Designer.cs
index 947ea86da..8f70f5be4 100644
--- a/win/CS/HandBrakeWPF/Properties/Resources.Designer.cs
+++ b/win/CS/HandBrakeWPF/Properties/Resources.Designer.cs
@@ -61,7 +61,7 @@ namespace HandBrakeWPF.Properties {
}
/// <summary>
- /// Looks up a localized string similar to Copyright (C) 2003-2017 The HandBrake Team
+ /// Looks up a localized string similar to Copyright (C) 2003-2018 The HandBrake Team
///
///This program is free software; you can redistribute it and/or
///modify it under the terms of the GNU General Public License
diff --git a/win/CS/HandBrakeWPF/Properties/Resources.resx b/win/CS/HandBrakeWPF/Properties/Resources.resx
index f0c3f0316..936c39741 100644
--- a/win/CS/HandBrakeWPF/Properties/Resources.resx
+++ b/win/CS/HandBrakeWPF/Properties/Resources.resx
@@ -268,7 +268,7 @@ The above controls are only a subset of useful x264 parameters.
This box allows you to add or modify additional or current parameters as desired. </value>
</data>
<data name="About_GPL" xml:space="preserve">
- <value>Copyright (C) 2003-2017 The HandBrake Team
+ <value>Copyright (C) 2003-2018 The HandBrake Team
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
diff --git a/win/CS/HandBrakeWPF/ViewModels/ChaptersViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/ChaptersViewModel.cs
index 92420fbe9..023325c9b 100644
--- a/win/CS/HandBrakeWPF/ViewModels/ChaptersViewModel.cs
+++ b/win/CS/HandBrakeWPF/ViewModels/ChaptersViewModel.cs
@@ -179,7 +179,7 @@ namespace HandBrakeWPF.ViewModels
string fileExtension = null;
using (var dialog = new OpenFileDialog()
{
- Filter = string.Join("|", ChapterImporterCsv.FileFilter, ChapterImporterXml.FileFilter, ChapterImporterTxt.FileFilter),
+ Filter = string.Join("|", "All Supported Formats (*.csv;*.tsv,*.xml,*.txt)|*.csv;*.tsv;*.xml;*.txt", ChapterImporterCsv.FileFilter, ChapterImporterXml.FileFilter, ChapterImporterTxt.FileFilter),
FilterIndex = 1, // 1 based, the index value of the first filter entry is 1
CheckFileExists = true
})
diff --git a/win/CS/HandBrakeWPF/Views/MainView.xaml b/win/CS/HandBrakeWPF/Views/MainView.xaml
index d8e7a27fa..4de963c1f 100644
--- a/win/CS/HandBrakeWPF/Views/MainView.xaml
+++ b/win/CS/HandBrakeWPF/Views/MainView.xaml
@@ -304,7 +304,7 @@
<StackPanel Orientation="Horizontal" Grid.Row="1" Margin="0,5,0,0">
<Label FontWeight="Bold" Content="{x:Static Properties:ResourcesUI.MainView_Title}" />
<ComboBox Name="Titles"
- Width="160"
+ Width="100"
Margin="17,0,0,0"
ItemsSource="{Binding ScannedSource.Titles}"
ToolTip="{x:Static Properties:ResourcesTooltips.MainView_Title}"
@@ -323,24 +323,24 @@
</Style>
</ComboBox.Style>
</ComboBox>
- <Label Margin="8,0,0,0" FontWeight="Bold" Content="{x:Static Properties:ResourcesUI.MainView_Angle}" />
+ <Label Margin="5,0,0,0" FontWeight="Bold" Content="{x:Static Properties:ResourcesUI.MainView_Angle}" />
<ComboBox Name="Angles"
MinWidth="60"
- Margin="8,0,0,0"
+ Margin="2,0,0,0"
ItemsSource="{Binding Angles}"
SelectedItem="{Binding SelectedAngle}"
ToolTip="{x:Static Properties:ResourcesTooltips.MainView_Angle}" />
- <Label Margin="8,0,0,0" FontWeight="Bold" Content="{x:Static Properties:ResourcesUI.MainView_Range}" />
+ <Label Margin="2,0,0,0" FontWeight="Bold" Content="{x:Static Properties:ResourcesUI.MainView_Range}" />
<ComboBox Name="PointToPointMode"
MinWidth="80"
- Margin="8,0,0,0"
+ Margin="5,0,0,0"
ItemsSource="{Binding RangeMode}" ToolTip="{x:Static Properties:ResourcesTooltips.MainView_Range}"
SelectedItem="{Binding SelectedPointToPoint}" />
<ComboBox Name="StartPoint"
MinWidth="60"
- Margin="8,0,0,0"
+ Margin="5,0,0,0"
ItemsSource="{Binding StartEndRangeItems}"
SelectedItem="{Binding SelectedStartPoint}"
ToolTip="{x:Static Properties:ResourcesTooltips.MainView_StartPoint}"
@@ -350,7 +350,7 @@
<Controls:TimeSpanBox Number="{Binding SelectedStartPoint, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Minimum="0" AllowEmpty="False" ShowTimeSpan="{Binding IsTimespanRange}"
ToolTip="{x:Static Properties:ResourcesTooltips.MainView_StartPoint}"
- MinWidth="80" Margin="8,0,0,0" Visibility="{Binding ShowTextEntryForPointToPointMode,
+ MinWidth="72" Margin="5,0,0,0" Visibility="{Binding ShowTextEntryForPointToPointMode,
Converter={StaticResource boolToVisConverter},
ConverterParameter=false}" />
@@ -367,12 +367,12 @@
<Controls:TimeSpanBox Number="{Binding SelectedEndPoint, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Minimum="0" AllowEmpty="False" ShowTimeSpan="{Binding IsTimespanRange}"
ToolTip="{x:Static Properties:ResourcesTooltips.MainView_EndPoint}"
- MinWidth="80" Margin="8,0,0,0" Visibility="{Binding ShowTextEntryForPointToPointMode,
+ MinWidth="72" Margin="5,0,0,0" Visibility="{Binding ShowTextEntryForPointToPointMode,
Converter={StaticResource boolToVisConverter},
ConverterParameter=false}" />
- <Label Margin="4,0,0,0" Content="{x:Static Properties:ResourcesUI.MainView_Duration}" FontWeight="Bold" ToolTip="{x:Static Properties:ResourcesTooltips.MainView_Duration}" />
- <Label Margin="4,0,0,0" Content="{Binding Duration}" ToolTip="{x:Static Properties:ResourcesTooltips.MainView_Duration}" />
+ <Label Margin="2,0,0,0" Content="{x:Static Properties:ResourcesUI.MainView_Duration}" FontWeight="Bold" ToolTip="{x:Static Properties:ResourcesTooltips.MainView_Duration}" />
+ <Label Margin="0,0,0,0" Content="{Binding Duration}" ToolTip="{x:Static Properties:ResourcesTooltips.MainView_Duration}" />
</StackPanel>
</Grid>
diff --git a/win/CS/build.xml b/win/CS/build.xml
index 60c1a3c81..df3ef0ebe 100644
--- a/win/CS/build.xml
+++ b/win/CS/build.xml
@@ -9,7 +9,7 @@
msbuild build.xml /p:Platform=x64 /t:Nightly
msbuild build.xml /p:Platform=x64 /t:Release
Example with code signing:
- msbuild build.xml /p:Platform=x64 /t:Release /p:SignThumbprint=<sha1_hash> /p:SignTimestampServer=http://.....
+ msbuild build.xml /p:Platform=x64 /t:Release /p:SignThumbprint=XYZ /p:SignTimestampServer=http://time.certum.pl/
Reuqires: libhb.dll to be in the release folder.
@@ -64,8 +64,6 @@
<Exec Command="copy $(MSBuildProjectDirectory)\HandBrakeWPF\handbrakepineapple.ico $(MSBuildProjectDirectory)\HandBrakeWPF\bin\x64\Release /Y" Condition="$(Platform) == 'x64'" />
<Exec Command="xcopy $(MSBuildProjectDirectory)\doc $(MSBuildProjectDirectory)\HandBrakeWPF\bin\x86\Release\doc /I /Y" Condition="$(Platform) == 'x86'" />
<Exec Command="xcopy $(MSBuildProjectDirectory)\doc $(MSBuildProjectDirectory)\HandBrakeWPF\bin\x64\Release\doc /I /Y" Condition="$(Platform) == 'x64'" />
- <Exec Command="&quot;$(SighToolLocation)&quot; sign /sha1 $(SignThumbprint) $(SignTimestamp) $(SignTimestampServer) /v &quot;$(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Platform)\Release\*.exe&quot;" Condition="'$(SignThumbprint)' != ''" />
- <Exec Command="&quot;$(SighToolLocation)&quot; sign /sha1 $(SignThumbprint) $(SignTimestamp) $(SignTimestampServer) /v &quot;$(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Platform)\Release\HandBrake*.dll&quot;" Condition="'$(SignThumbprint)' != ''" />
<Exec Command="makensis $(MSBuildProjectDirectory)\HandBrakeWPF\bin\x86\Release\MakeNightly.nsi" Condition="$(Platform) == 'x86'" />
<Exec Command="makensis $(MSBuildProjectDirectory)\HandBrakeWPF\bin\x64\Release\MakeNightly64.nsi" Condition="$(Platform) == 'x64'" />
<Exec Command="&quot;$(SighToolLocation)&quot; sign /sha1 $(SignThumbprint) $(SignTimestamp) $(SignTimestampServer) /v &quot;$(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Platform)\Release\*Win_GUI.exe&quot;" Condition="'$(SignThumbprint)' != ''" />
@@ -78,8 +76,6 @@
<Exec Command="copy $(MSBuildProjectDirectory)\HandBrakeWPF\handbrakepineapple.ico $(MSBuildProjectDirectory)\HandBrakeWPF\bin\x64\Release /Y" Condition="$(Platform) == 'x64'" />
<Exec Command="xcopy $(MSBuildProjectDirectory)\doc $(MSBuildProjectDirectory)\HandBrakeWPF\bin\x86\Release\doc /I /Y" Condition="$(Platform) == 'x86'" />
<Exec Command="xcopy $(MSBuildProjectDirectory)\doc $(MSBuildProjectDirectory)\HandBrakeWPF\bin\x64\Release\doc /I /Y" Condition="$(Platform) == 'x64'" />
- <Exec Command="&quot;$(SighToolLocation)&quot; sign /sha1 $(SignThumbprint) $(SignTimestamp) $(SignTimestampServer) /v &quot;$(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Platform)\Release\*.exe&quot;" Condition="'$(SignThumbprint)' != ''" />
- <Exec Command="&quot;$(SighToolLocation)&quot; sign /sha1 $(SignThumbprint) $(SignTimestamp) $(SignTimestampServer) /v &quot;$(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Platform)\Release\HandBrake*.dll&quot;" Condition="'$(SignThumbprint)' != ''" />
<Exec Command="makensis $(MSBuildProjectDirectory)\HandBrakeWPF\bin\x86\Release\Installer.nsi" Condition="$(Platform) == 'x86'" />
<Exec Command="makensis $(MSBuildProjectDirectory)\HandBrakeWPF\bin\x64\Release\Installer64.nsi" Condition="$(Platform) == 'x64'" />
<Exec Command="&quot;$(SighToolLocation)&quot; sign /sha1 $(SignThumbprint) $(SignTimestamp) $(SignTimestampServer) /v &quot;$(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Platform)\Release\*Win_GUI.exe&quot;" Condition="'$(SignThumbprint)' != ''" />