diff options
author | Sven Gothel <[email protected]> | 2018-01-12 02:59:26 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2018-01-12 02:59:26 +0100 |
commit | eefec4bd8fd57de03c06d5c8a5fbdb210aa90604 (patch) | |
tree | 056a60e405d53840f2419f34504b7f95c9f80fa5 | |
parent | 236863bdc00677721a378bcd314d7c9d26bfb241 (diff) | |
parent | a99c70a39041e5e7002a596d9c6201e746ef6d73 (diff) |
Merge branch 'ffmpeg' into nvenc-encoder
159 files changed, 1034 insertions, 224 deletions
@@ -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=""$(SighToolLocation)" sign /sha1 $(SignThumbprint) $(SignTimestamp) $(SignTimestampServer) /v "$(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Platform)\Release\*.exe"" Condition="'$(SignThumbprint)' != ''" />
- <Exec Command=""$(SighToolLocation)" sign /sha1 $(SignThumbprint) $(SignTimestamp) $(SignTimestampServer) /v "$(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Platform)\Release\HandBrake*.dll"" 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=""$(SighToolLocation)" sign /sha1 $(SignThumbprint) $(SignTimestamp) $(SignTimestampServer) /v "$(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Platform)\Release\*Win_GUI.exe"" 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=""$(SighToolLocation)" sign /sha1 $(SignThumbprint) $(SignTimestamp) $(SignTimestampServer) /v "$(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Platform)\Release\*.exe"" Condition="'$(SignThumbprint)' != ''" />
- <Exec Command=""$(SighToolLocation)" sign /sha1 $(SignThumbprint) $(SignTimestamp) $(SignTimestampServer) /v "$(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Platform)\Release\HandBrake*.dll"" 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=""$(SighToolLocation)" sign /sha1 $(SignThumbprint) $(SignTimestamp) $(SignTimestampServer) /v "$(MSBuildProjectDirectory)\HandBrakeWPF\bin\$(Platform)\Release\*Win_GUI.exe"" Condition="'$(SignThumbprint)' != ''" />
|