From patchwork Fri Jul 13 20:14:05 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Beno=C3=AEt_Th=C3=A9baudeau?= X-Patchwork-Id: 170952 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from fraxinus.osuosl.org (fraxinus.osuosl.org [140.211.166.137]) by ozlabs.org (Postfix) with ESMTP id 3800D2C0301 for ; Sat, 14 Jul 2012 06:15:06 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id C324210BA87; Fri, 13 Jul 2012 20:15:04 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id EiLGHmXC9tfA; Fri, 13 Jul 2012 20:14:58 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id C209A10BA82; Fri, 13 Jul 2012 20:14:58 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 733988F753 for ; Fri, 13 Jul 2012 20:14:56 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 6A0D98ED48 for ; Fri, 13 Jul 2012 20:14:56 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hXRpzjSbPUgQ for ; Fri, 13 Jul 2012 20:14:54 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from zose-mta12.web4all.fr (zose-mta-12.w4a.fr [178.33.204.88]) by whitealder.osuosl.org (Postfix) with ESMTP id 07E1C8E85C for ; Fri, 13 Jul 2012 20:14:53 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by zose-mta12.web4all.fr (Postfix) with ESMTP id 56D6D90884; Fri, 13 Jul 2012 22:17:18 +0200 (CEST) X-Virus-Scanned: amavisd-new at zose1.web4all.fr Received: from zose-mta12.web4all.fr ([127.0.0.1]) by localhost (zose-mta12.web4all.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id P8bzoYxyz1-L; Fri, 13 Jul 2012 22:17:17 +0200 (CEST) Received: from zose-store12.web4all.fr (zose-store-12.w4a.fr [178.33.204.48]) by zose-mta12.web4all.fr (Postfix) with ESMTP id F3F52904EF; Fri, 13 Jul 2012 22:17:16 +0200 (CEST) Date: Fri, 13 Jul 2012 22:14:05 +0200 (CEST) From: =?utf-8?Q?Beno=C3=AEt_Th=C3=A9baudeau?= To: buildroot@busybox.net Message-ID: <1591143229.1340033.1342210445309.JavaMail.root@advansee.com> In-Reply-To: <17811032.1339793.1342209079006.JavaMail.root@advansee.com> MIME-Version: 1.0 X-Originating-IP: [88.188.188.98] X-Mailer: Zimbra 7.2.0_GA_2669 (ZimbraWebClient - FF3.0 (Win)/7.2.0_GA_2669) Cc: Thomas Petazzoni Subject: [Buildroot] [PATCH v3] libmad: Add optimization config options X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: buildroot-bounces@busybox.net Sender: buildroot-bounces@busybox.net Configuring libmad with --enable-speed compromises accuracy and can cause audio clipping in some cases (heard on ARM platform with some loud MP3s), so give users the choice of MAD optimizations. The default config corresponds to the default behavior of libmad's configure. Signed-off-by: Benoît Thébaudeau --- Note that, if applicable, the options are always passed with either '--enable-' or '--disable-' to be more robust than a simple omission, since this can avoid a mismatch in config options if the package version is changed and its new default configure options are different. Changes for v2: - Factorize the 'able' in the $(if ). Changes for v3 (according to Thomas Petazzoni's comments): - Undo v2. - Rename the speed vs. accuracy choice configs to BR2_PACKAGE_LIBMAD_OPTIMIZATION_*. - Use 'default' naming if neither speed nor accuracy is compromised for the other. .../package/libmad/Config.in | 41 ++++++++++++++++++++ .../package/libmad/libmad.mk | 6 ++- 2 files changed, 46 insertions(+), 1 deletion(-) diff --git buildroot.orig/package/libmad/Config.in buildroot/package/libmad/Config.in index 4d4f930..d0edc49 100644 --- buildroot.orig/package/libmad/Config.in +++ buildroot/package/libmad/Config.in @@ -6,3 +6,44 @@ config BR2_PACKAGE_LIBMAD without a floating-point unit. http://www.underbit.com/products/mad/ + +if BR2_PACKAGE_LIBMAD + +choice + prompt "Speed vs. accuracy" + default BR2_PACKAGE_LIBMAD_OPTIMIZATION_DEFAULT + +config BR2_PACKAGE_LIBMAD_OPTIMIZATION_DEFAULT + bool "Default" + help + Keep optimizations balanced between speed and accuracy. + +config BR2_PACKAGE_LIBMAD_OPTIMIZATION_SPEED + bool "Optimize for speed over accuracy" + help + Compromise accuracy for speed. + +config BR2_PACKAGE_LIBMAD_OPTIMIZATION_ACCURACY + bool "Optimize for accuracy over speed" + help + Compromise speed for accuracy. + +endchoice + +config BR2_PACKAGE_LIBMAD_SSO + bool "Subband synthesis optimization" + help + Use the subband synthesis optimization, with reduced accuracy. + +config BR2_PACKAGE_LIBMAD_ASO + bool "Architecture-specific optimizations" + default y + help + Use certain architecture-specific optimizations. + +config BR2_PACKAGE_LIBMAD_STRICT_ISO + bool "Strict ISO/IEC interpretations" + help + Use strict ISO/IEC interpretations. + +endif diff --git buildroot.orig/package/libmad/libmad.mk buildroot/package/libmad/libmad.mk index 6e53cf2..3c92d52 100644 --- buildroot.orig/package/libmad/libmad.mk +++ buildroot/package/libmad/libmad.mk @@ -30,6 +30,10 @@ LIBMAD_POST_INSTALL_TARGET_HOOKS += LIBMAD_INSTALL_TARGET_PC LIBMAD_CONF_OPT = \ --disable-debugging \ - --enable-speed + $(if $(BR2_PACKAGE_LIBMAD_OPTIMIZATION_SPEED),--enable-speed) \ + $(if $(BR2_PACKAGE_LIBMAD_OPTIMIZATION_ACCURACY),--enable-accuracy) \ + --$(if $(BR2_PACKAGE_LIBMAD_SSO),enable,disable)-sso \ + --$(if $(BR2_PACKAGE_LIBMAD_ASO),enable,disable)-aso \ + --$(if $(BR2_PACKAGE_LIBMAD_STRICT_ISO),enable,disable)-strict-iso $(eval $(call AUTOTARGETS))