From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id 0Jh9NxTQrF70IgAA0tVLHw (envelope-from ) for ; Sat, 02 May 2020 01:42:44 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id YJpyCx7QrF63QAAA1q6Kng (envelope-from ) for ; Sat, 02 May 2020 01:42:54 +0000 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:470:142::17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 27C9F9437B0 for ; Sat, 2 May 2020 01:42:53 +0000 (UTC) Received: from localhost ([::1]:40704 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jUgvy-0000Uf-C6 for larch@yhetil.org; Fri, 01 May 2020 21:27:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51836) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jUgvo-0000Sj-R9 for guix-patches@gnu.org; Fri, 01 May 2020 21:27:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jUgvn-00035D-1o for guix-patches@gnu.org; Fri, 01 May 2020 21:27:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:39424) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jUgvm-00034J-1V for guix-patches@gnu.org; Fri, 01 May 2020 21:27:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jUgvl-0005Dk-VJ for guix-patches@gnu.org; Fri, 01 May 2020 21:27:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#40677] [PATCH V3 07/15] gnu: Add ffmpeg-jami. Resent-From: Jan Wielkiewicz Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 02 May 2020 01:27:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 40677 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 40677@debbugs.gnu.org Cc: Jan Wielkiewicz Received: via spool by 40677-submit@debbugs.gnu.org id=B40677.158838276319986 (code B ref 40677); Sat, 02 May 2020 01:27:01 +0000 Received: (at 40677) by debbugs.gnu.org; 2 May 2020 01:26:03 +0000 Received: from localhost ([127.0.0.1]:50969 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jUgup-0005CB-5I for submit@debbugs.gnu.org; Fri, 01 May 2020 21:26:03 -0400 Received: from smtpo.poczta.interia.pl ([217.74.65.208]:47008) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jUgun-0005BJ-VL for 40677@debbugs.gnu.org; Fri, 01 May 2020 21:26:02 -0400 X-Interia-R: Interia X-Interia-R-IP: 89.64.43.193 X-Interia-R-Helo: Received: from localhost.localdomain (89-64-43-193.dynamic.chello.pl [89.64.43.193]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by poczta.interia.pl (INTERIA.PL) with ESMTPSA; Sat, 2 May 2020 03:15:09 +0200 (CEST) From: Jan Wielkiewicz Date: Sat, 2 May 2020 03:14:42 +0200 Message-Id: <20200502011450.2676-8-tona_kosmicznego_smiecia@interia.pl> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200502011450.2676-1-tona_kosmicznego_smiecia@interia.pl> References: <20200502011450.2676-1-tona_kosmicznego_smiecia@interia.pl> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Interia-Antivirus: OK DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=interia.pl; s=biztos; t=1588382110; bh=PHZlNFIm4mwUmI1Q3e5NBOmN7j0dqzY4OBrlWSBXT0E=; h=X-Interia-R:X-Interia-R-IP:X-Interia-R-Helo:From:To:Cc:Subject: Date:Message-Id:X-Mailer:In-Reply-To:References:MIME-Version: Content-Transfer-Encoding:X-Interia-Antivirus; b=SnBGzHRQjqs9isg4EAJZj/na0V6gYtoM0anbGrgB6VROMnEtXhCdLzexLOiJUH5TE s55v99oWHXBJLO1kWE1exMd83RNxnlGv7Kx4vvToLBBUzWPwDJLg2skXCmYH93OBZG ucEbnQOj6xlN6rxToSwqHmnLU181EatAWtS9ZEp0= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Received-From: 209.51.188.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Spam: Yes Authentication-Results: aspmx1.migadu.com; dkim=fail (rsa verify failed) header.d=interia.pl header.s=biztos header.b=SnBGzHRQ; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 2001:470:142::17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Scan-Result: default: False [8.29 / 13.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; GENERIC_REPUTATION(0.00)[-0.49458868341238]; GREYLIST(0.00)[pass,meta]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(0.00)[+ip6:2001:470:142::/48:c]; R_DKIM_REJECT(1.00)[interia.pl:s=biztos]; DWL_DNSWL_FAIL(0.00)[2001:470:142::17:server fail]; FREEMAIL_FROM(0.00)[interia.pl]; BROKEN_CONTENT_TYPE(1.50)[]; R_MISSING_CHARSET(2.50)[]; IP_REPUTATION_HAM(0.00)[asn: 22989(0.16), country: US(-0.00), ip: 2001:470:142::17(-0.49)]; DKIM_TRACE(0.00)[interia.pl:-]; RCPT_COUNT_TWO(0.00)[2]; MX_GOOD(-0.50)[cached: eggs.gnu.org]; MAILLIST(-0.20)[mailman]; FORGED_RECIPIENTS_MAILLIST(0.00)[]; RECEIVED_SPAMHAUS_PBL(0.00)[89.64.43.193:received]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:22989, ipnet:2001:470:142::/48, country:US]; TAGGED_FROM(0.00)[larch=yhetil.org]; ARC_NA(0.00)[]; RECEIVED_SPAMHAUS_XBL(3.00)[89.64.43.193:received]; FROM_NEQ_ENVFROM(0.00)[tona_kosmicznego_smiecia@interia.pl,guix-patches-bounces@gnu.org]; FROM_HAS_DN(0.00)[]; URIBL_BLOCKED(0.00)[ffmpeg.org:url]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[interia.pl]; HAS_LIST_UNSUB(-0.01)[]; DNSWL_BLOCKED(0.00)[2001:470:142::17:from]; BAD_REP_POLICIES(0.10)[]; MID_CONTAINS_FROM(1.00)[]; FREEMAIL_CC(0.00)[interia.pl]; RCVD_COUNT_SEVEN(0.00)[9]; FORGED_SENDER_MAILLIST(0.00)[] X-Scanner: scn0 X-Spam-Score: 8.29 X-TUID: UiBLMT1SECH/ This package is needed, because Jami uses a modified version of ffmpeg, which provides GPU hardware acceleration, automatical adapting of bitrate and extra codecs. * gnu/packages/jami.scm (ffmpeg-jami): New variable. --- gnu/packages/jami.scm | 239 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 239 insertions(+) diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 8d34029918..0fc03b6088 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -186,6 +186,245 @@ "selftest: pjlib-test pjlib-util-test pjmedia-test")) #t))))))) +(define-public ffmpeg-jami + (let ((commit "59da9dcd7ef6277e4e04998ced71b05a6083c635") + (revision "0")) + (package + (inherit ffmpeg) + (name "ffmpeg-jami") + (version (git-version "4.2.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.ffmpeg.org/ffmpeg.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0cm58kd06lvslc7knnfajv5p63v4cc6502badjcic5m9izd03lz2")))) + (native-inputs + `(("SFL-patches" ,(jami-source)) + ("libiconv" ,libiconv) + ,@(package-native-inputs ffmpeg))) + (arguments + (append + '(#:tests? #f) + (substitute-keyword-arguments (package-arguments ffmpeg) + ((#:configure-flags '()) + (append '("--disable-everything" + "--enable-zlib" + "--enable-gpl" + "--enable-swscale" + "--enable-bsfs" + "--disable-filters" + "--disable-programs" + "--disable-postproc" + "--disable-protocols" + "--enable-protocol=crypto" + "--enable-protocol=file" + "--enable-protocol=rtp" + "--enable-protocol=srtp" + "--enable-protocol=tcp" + "--enable-protocol=udp" + "--enable-protocol=unix" + "--enable-protocol=pipe" + ;; enable muxers/demuxers + "--disable-demuxers" + "--disable-muxers" + "--enable-muxer=rtp" + "--enable-muxer=g722" + "--enable-muxer=h263" + "--enable-muxer=h264" + "--enable-muxer=hevc" + "--enable-muxer=webm" + "--enable-muxer=ogg" + "--enable-muxer=pcm_s16be" + "--enable-muxer=pcm_s16le" + "--enable-demuxer=rtp" + "--enable-demuxer=mjpeg" + "--enable-demuxer=mjpeg_2000" + "--enable-demuxer=mpegvideo" + "--enable-demuxer=gif" + "--enable-demuxer=image_jpeg_pipe" + "--enable-demuxer=image_png_pipe" + "--enable-demuxer=image_webp_pipe" + "--enable-demuxer=matroska" + "--enable-demuxer=m4v" + "--enable-demuxer=mp3" + "--enable-demuxer=ogg" + "--enable-demuxer=flac" + "--enable-demuxer=wav" + "--enable-demuxer=ac3" + "--enable-demuxer=g722" + "--enable-demuxer=pcm_mulaw" + "--enable-demuxer=pcm_alaw" + "--enable-demuxer=pcm_s16be" + "--enable-demuxer=pcm_s16le" + "--enable-demuxer=h263" + "--enable-demuxer=h264" + "--enable-demuxer=hevc" + ;; enable parsers + "--enable-parser=h263" + "--enable-parser=h264" + "--enable-parser=mpeg4video" + "--enable-parser=vp8" + "--enable-parser=vp9" + "--enable-parser=opus" + ;; encoders/decoders + "--enable-encoder=adpcm_g722" + "--enable-decoder=adpcm_g722" + "--enable-encoder=rawvideo" + "--enable-decoder=rawvideo" + "--enable-encoder=libx264" + "--enable-decoder=h264" + "--enable-encoder=pcm_alaw" + "--enable-decoder=pcm_alaw" + "--enable-encoder=pcm_mulaw" + "--enable-decoder=pcm_mulaw" + "--enable-encoder=mpeg4" + "--enable-decoder=mpeg4" + "--enable-encoder=libvpx_vp8" + "--enable-decoder=vp8" + "--enable-decoder=vp9" + "--enable-encoder=h263" + "--enable-encoder=h263p" + "--enable-decoder=h263" + "--enable-encoder=mjpeg" + "--enable-decoder=mjpeg" + "--enable-decoder=mjpegb" + "--enable-libspeex" + "--enable-libopus" + "--enable-libvpx" + "--enable-libx264" + "--enable-encoder=libspeex" + "--enable-decoder=libspeex" + "--enable-encoder=libopus" + "--enable-decoder=libopus" + ;; decoders for ringtones and audio streaming + "--enable-decoder=flac" + "--enable-decoder=vorbis" + "--enable-decoder=aac" + "--enable-decoder=ac3" + "--enable-decoder=eac3" + "--enable-decoder=mp3" + "--enable-decoder=pcm_u24be" + "--enable-decoder=pcm_u24le" + "--enable-decoder=pcm_u32be" + "--enable-decoder=pcm_u32le" + "--enable-decoder=pcm_u8" + "--enable-decoder=pcm_f16le" + "--enable-decoder=pcm_f24le" + "--enable-decoder=pcm_f32be" + "--enable-decoder=pcm_f32le" + "--enable-decoder=pcm_f64be" + "--enable-decoder=pcm_f64le" + "--enable-decoder=pcm_s16be" + "--enable-decoder=pcm_s16be_planar" + "--enable-decoder=pcm_s16le" + "--enable-decoder=pcm_s16le_planar" + "--enable-decoder=pcm_s24be" + "--enable-decoder=pcm_s24le" + "--enable-decoder=pcm_s24le_planar" + "--enable-decoder=pcm_s32be" + "--enable-decoder=pcm_s32le" + "--enable-decoder=pcm_s32le_planar" + "--enable-decoder=pcm_s64be" + "--enable-decoder=pcm_s64le" + "--enable-decoder=pcm_s8" + "--enable-decoder=pcm_s8_planar" + "--enable-decoder=pcm_u16be" + "--enable-decoder=pcm_u16le" + ;; encoders/decoders for images + "--enable-encoder=gif" + "--enable-decoder=gif" + "--enable-encoder=jpegls" + "--enable-decoder=jpegls" + "--enable-encoder=ljpeg" + "--enable-decoder=jpeg2000" + "--enable-encoder=png" + "--enable-decoder=png" + "--enable-encoder=bmp" + "--enable-decoder=bmp" + "--enable-encoder=tiff" + "--enable-decoder=tiff" + ;; filters + "--enable-filter=scale" + "--enable-filter=overlay" + "--enable-filter=amix" + "--enable-filter=amerge" + "--enable-filter=aresample" + "--enable-filter=format" + "--enable-filter=aformat" + "--enable-filter=fps" + "--enable-filter=transpose" + "--enable-filter=pad") + ;; platform specific options + (if (string-contains (%current-system) "linux") + '("--enable-pic" + "--extra-cxxflags=-fPIC --extra-cflags=-fPIC" + "--target-os=linux" + "--enable-indev=v4l2" + "--enable-indev=xcbgrab" + "--enable-vdpau" + "--enable-hwaccel=h264_vdpau" + "--enable-hwaccel=mpeg4_vdpau" + "--enable-vaapi" + "--enable-hwaccel=h264_vaapi" + "--enable-hwaccel=mpeg4_vaapi" + "--enable-hwaccel=h263_vaapi" + "--enable-hwaccel=vp8_vaapi" + "--enable-hwaccel=mjpeg_vaapi" + "--enable-encoder=h264_vaapi" + "--enable-encoder=vp8_vaapi" + "--enable-encoder=mjpeg_vaapi" + )) + (cond ((string?= (%current-system) "i386") + '("--arch=x86" + "--enable-cuvid" + "--enable-ffnvcodec" + "--enable-nvdec" + "--enable-nvenc" + "--enable-hwaccel=h264_nvdec" + "--enable-hwaccel=hevc_nvdec" + "--enable-hwaccel=vp8_nvdec" + "--enable-hwaccel=mjpeg_nvdec" + "--enable-encoder=h264_nvenc" + "--enable-encoder=hevc_nvenc")) + ((string?= (%current-system) "x86_64") + '("--arch=x86_64" + "--enable-cuvid" + "--enable-ffnvcodec" + "--enable-nvdec" + "--enable-nvenc" + "--enable-hwaccel=h264_nvdec" + "--enable-hwaccel=hevc_nvdec" + "--enable-hwaccel=vp8_nvdec" + "--enable-hwaccel=mjpeg_nvdec" + "--enable-encoder=h264_nvenc" + "--enable-encoder=hevc_nvenc")) + ((string?= (%current-system) "aarch64-linux") '("--arch=aarch64")) + ((string?= (%current-system) "arm64-linux") '("--arch=aarch64")) + ((string?= (%current-system) "arm") '("--arch=arm")) + (else '())))) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'make-git-checkout-writable + (lambda _ + (for-each make-file-writable (find-files ".")) + #t)) + (add-after 'unpack 'apply-patches + (lambda* (#:key inputs #:allow-other-keys) + (let ((jami-apply-dependency-patches ,jami-apply-dependency-patches)) + ;; These patches come from: + ;; "ring-project/daemon/contrib/src/ffmpeg/rules.mak". + (jami-apply-dependency-patches #:inputs inputs + #:dep-name "ffmpeg" + #:patches + '("remove-mjpeg-log" + "change-RTCP-ratio" + "rtp_ext_abs_send_time")) + #t))))))))))) + (define-public libring (package (name "libring") -- 2.26.2