Package Details: lib32-ffmpeg 1:3.1.3-1

Git Clone URL: https://aur.archlinux.org/lib32-ffmpeg.git (read-only)
Package Base: lib32-ffmpeg
Description: Complete solution to record, convert and stream audio and video (32 bit)
Upstream URL: http://ffmpeg.org/
Licenses: GPL3
Provides: libavcodec.so, libavdevice.so, libavfilter.so, libavformat.so, libavresample.so, libavutil.so, libpostproc.so, libswresample.so, libswscale.so
Submitter: lano1106
Maintainer: JonnyJD
Last Packager: JonnyJD
Votes: 14
Popularity: 2.033999
First Submitted: 2013-05-18 04:43
Last Updated: 2016-08-30 21:29

Required by (42)

Sources (2)

Latest Comments

versusvoid commented on 2016-09-22 05:21

@oxalin
Adding lib32-openjpeg2 to `depends` also wouldn't be a bad thing.

oxalin commented on 2016-08-31 22:54

@Enverex, there is another (new) known bug about undefinded references to openjpegenc.o after a recent change in the static openjpeg2 library... Briefly, it comes to "The FFmpeg code was setting OPJ_STATIC, and in master, OPJ_STATIC sets API method visibility to hidden (because it is a static build, so visibility not needed)."
See https://trac.ffmpeg.org/ticket/5694

The next ffmpeg release should contain the following fix: https://trac.ffmpeg.org/raw-attachment/ticket/5694/ffmpeg_opj2.patch

@JonnyJD
Meanwhile, maybe we would be better to add and apply that patch to the current package.
Proposed patch to PKGBUILD
---
diff --git a/PKGBUILD b/PKGBUILD
index 00b74d4..a190490 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -35,14 +35,23 @@ provides=(
'libavresample.so' 'libavutil.so' 'libpostproc.so' 'libswresample.so'
'libswscale.so'
)
-source=(http://ffmpeg.org/releases/$_pkgbasename-$pkgver.tar.bz2{,.asc})
+source=(
+ "http://ffmpeg.org/releases/$_pkgbasename-$pkgver.tar.bz2"{,.asc}
+ "https://trac.ffmpeg.org/raw-attachment/ticket/5694/ffmpeg_opj2.patch"
+)
validpgpkeys=('FCF986EA15E6E293A5644F10B4322F04D67658D8')
-sha256sums=('58bc89c65dd114d874efbf76f76368d03b5e407f0a3f42d5b40801c280968a38'
- 'SKIP')
+sha256sums=(
+ '58bc89c65dd114d874efbf76f76368d03b5e407f0a3f42d5b40801c280968a38'
+ 'SKIP'
+ 'SKIP'
+)

build() {
cd ${_pkgbasename}-${pkgver}

+ # Patching FFMPEG to compile againt a change in OpenJPEG2 static library until this patch is integrated in next release
+ patch -p1 < ../ffmpeg_opj2.patch
+
export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"

./configure \
---

To fix building against libopenjpeg2, you need both the 32 bit library AND the patch (for now).

Enverex commented on 2016-08-16 13:23

@JonnyJD - Just an FYI, installing lib32-openjpeg2 doesn't fix lib32-ffmpeg failing to build (with the /usr/bin/ld: libavcodec/libavcodec.so.57: hidden symbol `opj_setup_decoder' isn't defined error).

Removing openjpeg2 is the only way to have the build complete (doing an -Rdd then reinstalling it after this is built seems to be the easiest way to get around it).

mokkurkalve commented on 2016-08-15 12:57

Build fails for me thus:
(....snip....)
libavcodec/libopenjpegenc.o: In function `.L150':
libopenjpegenc.c:(.text+0xe4e): undefined reference to `opj_set_info_handler'
libopenjpegenc.c:(.text+0xe6e): undefined reference to `opj_setup_encoder'
libopenjpegenc.c:(.text+0xed4): undefined reference to `opj_stream_default_create'
libopenjpegenc.c:(.text+0xefd): undefined reference to `opj_stream_set_write_function'
libopenjpegenc.c:(.text+0xf0c): undefined reference to `opj_stream_set_skip_function'
libopenjpegenc.c:(.text+0xf1b): undefined reference to `opj_stream_set_seek_function'
libopenjpegenc.c:(.text+0xf2b): undefined reference to `opj_stream_set_user_data'
libopenjpegenc.c:(.text+0xf3c): undefined reference to `opj_start_compress'
libopenjpegenc.c:(.text+0xf4d): undefined reference to `opj_encode'
libopenjpegenc.c:(.text+0xfa4): undefined reference to `opj_end_compress'
libavcodec/libopenjpegenc.o: In function `libopenjpeg_encode_close':
libopenjpegenc.c:(.text.unlikely+0x1c): undefined reference to `opj_image_destroy'
libavcodec/libopenjpegenc.o: In function `libopenjpeg_encode_init':
libopenjpegenc.c:(.text.unlikely+0x6b): undefined reference to `opj_set_default_encoder_parameters'
libopenjpegenc.c:(.text.unlikely+0x138): undefined reference to `opj_image_destroy'
libopenjpegenc.c:(.text.unlikely+0x58c): undefined reference to `opj_image_create'
/usr/bin/ld: libavcodec/libavcodec.so.57: hidden symbol `opj_setup_decoder' isn't defined
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
make: *** [library.mak:100: libavcodec/libavcodec.so.57] Error 1
make: *** Waiting for unfinished jobs....
==> FEIL: En feil oppsto i build().
Avbryter...

zhenbo commented on 2016-08-06 04:58

As lib32-libvpx was updated and broke this dependency, I modified PKGBUILD to disable vpx support:
https://paste.fedoraproject.org/402477/45942314/

zhenbo commented on 2016-08-06 04:40

$ yaourt -Sua lib32-ffmpeg
error: failed to prepare transaction (could not satisfy dependencies)
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: lib32-ffmpeg: installing lib32-libvpx (1.6.0-2) breaks dependency 'libvpx.so=3-32'

This package needs to be updated

RunasSudo commented on 2016-06-06 08:10

Can confirm that installing lib32-openjpeg2 fixes the issue described by remussatala.

JonnyJD commented on 2016-05-08 16:48

It looks like you have openjpeg2 installed and these include files are detected by configure,
but you don't have https://aur.archlinux.org/packages/lib32-openjpeg2/ installed
so linking fails.

So in order to fix your build you either need to install lib32-openjpeg2 or remove openjpeg2.

See also:
https://trac.ffmpeg.org/ticket/5473

remussatala commented on 2016-05-01 15:47

libavcodec/vdpau.h:214:5: note: declared here
int av_vdpau_get_profile(AVCodecContext *avctx, VdpDecoderProfile *profile);
^
LD ffmpeg_g
libavcodec/libavcodec.so: undefined reference to `opj_stream_default_create'
libavcodec/libavcodec.so: undefined reference to `opj_destroy_codec'
libavcodec/libavcodec.so: undefined reference to `opj_read_header'
libavcodec/libavcodec.so: undefined reference to `opj_end_compress'
libavcodec/libavcodec.so: undefined reference to `opj_stream_destroy'
libavcodec/libavcodec.so: undefined reference to `opj_stream_set_skip_function'
libavcodec/libavcodec.so: undefined reference to `opj_stream_set_read_function'
libavcodec/libavcodec.so: undefined reference to `opj_set_error_handler'
libavcodec/libavcodec.so: undefined reference to `opj_stream_set_write_function'
libavcodec/libavcodec.so: undefined reference to `opj_set_warning_handler'
libavcodec/libavcodec.so: undefined reference to `opj_stream_set_user_data'
libavcodec/libavcodec.so: undefined reference to `opj_start_compress'
libavcodec/libavcodec.so: undefined reference to `opj_stream_set_user_data_length'
libavcodec/libavcodec.so: undefined reference to `opj_set_info_handler'
libavcodec/libavcodec.so: undefined reference to `opj_stream_set_seek_function'
collect2: error: ld returned 1 exit status
Makefile:128: recipe for target 'ffmpeg_g' failed
make: *** [ffmpeg_g] Error 1

JonnyJD commented on 2016-04-30 12:54

Please don't flag outdated when you have build problems.

Please also give the full error message. What you gave is generic and doesn't give me any info.
It builds completely fine for me.
I suspect a problem a problem with some dependency version, but I need more information. Use gist/pastebin whatever to post the full log if you don't know which message is the important one.

All comments