#2016(undetermined:new): undefined reference to `opj_version'
#2016: undefined reference to `opj_version' -------------------------------------+------------------------------------- Reporter: KSHawkEye | Owner: Type: defect | Status: new Priority: important | Component: Version: git- | undetermined master | Keywords: openjpeg Blocked By: | Blocking: Reproduced by developer: 0 | Analyzed by developer: 0 -------------------------------------+------------------------------------- I'm trying to compile the latest FFmpeg git with openjpeg 2.0.0 but keep getting an undefined reference to opj_version. I have already asked for help with this issue here: [http://code.google.com/p/openjpeg/issues/detail?id=200] Here: [http://sourceforge.net/mailarchive/message.php?msg_id=30209438] And one of my users on my forum posted about it here: [http://ffmpeg.zeranoe.com/forum/viewtopic.php?f=5&t=674&hilit=opj_version] I think openjpeg is failing to compile in static and is searching for some .dll file when FFmpeg tries to link to it. Some code that ''does'' compile with opj_version is: {{{ #include <stdlib.h> #include <stdio.h> #include <string.h> #include <openjpeg.h> int main(void) { printf("OPJ2 version is %s\n",opj_version()); return 0; } }}} Though I have no idea why that succeeds, and FFmpeg's test code: {{{ extern int opj_version(); int main(void){ opj_version(); } }}} fails. This command: $ i686-w64-mingw32-nm ./libopenjp2.a | grep opj_version Returns: 00000228 T _opj_version@0 So it looks like it is in the lib, but just keeps failing. Openjpeg 2.0.0 compiled without error. It also looks like FFmpeg is trying to test the lib with: {{{ BEGIN /tmp/ffconf.ns4yWT3Y.c 1 extern int opj_version(); 2 int main(void){ opj_version(); } END /tmp/ffconf.ns4yWT3Y.c i686-w64-mingw32-gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -U__STRICT_ANSI__ -std=c99 -fomit-frame-pointer -c -o /tmp/ffconf.ohUKczd4.o /tmp/ffconf.ns4yWT3Y.c i686-w64-mingw32-gcc -Wl,--as-needed -o /tmp/ffconf.hJciF3wT.exe /tmp/ffconf.ohUKczd4.o -lopenjpeg -lm -lz /tmp/ffconf.ohUKczd4.o:ffconf.ns4yWT3Y.c:(.text+0xc): undefined reference to `opj_version' collect2: error: ld returned 1 exit status ERROR: libopenjpeg not found }}} I'm happy to provide any further needed information to help get this fixed. -- Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2016> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker
#2016: Support libopenjpeg 2.0.0 -------------------------------------+------------------------------------- Reporter: KSHawkEye | Owner: Type: enhancement | Status: open Priority: wish | Component: Version: git-master | undetermined Keywords: libopenjpeg | Resolution: Blocking: | Blocked By: Analyzed by developer: 0 | Reproduced by developer: 0 -------------------------------------+------------------------------------- Changes (by cehoyos): * keywords: openjpeg => libopenjpeg * priority: important => wish * type: defect => enhancement * status: new => open Comment: openjpeg 1.5.1 is expected to work fine, please open an independent ticket if there are any problems with it. -- Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2016#comment:1> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker
#2016: Support libopenjpeg 2.0.0 -------------------------------------+------------------------------------- Reporter: KSHawkEye | Owner: Type: enhancement | Status: open Priority: wish | Component: Version: git-master | undetermined Keywords: libopenjpeg | Resolution: Blocking: | Blocked By: Analyzed by developer: 0 | Reproduced by developer: 0 -------------------------------------+------------------------------------- Comment (by KSHawkEye): Replying to [comment:1 cehoyos]:
openjpeg 1.5.1 is expected to work fine, please open an independent ticket if there are any problems with it.
So your saying that FFmpeg doesn't support 2.0.0? There is no reason why the new version should fail and the outdated to succeed. -- Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2016#comment:2> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker
#2016: Support libopenjpeg 2.0.0 -------------------------------------+------------------------------------- Reporter: KSHawkEye | Owner: Type: enhancement | Status: open Priority: wish | Component: Version: git-master | undetermined Keywords: libopenjpeg | Resolution: Blocking: | Blocked By: Analyzed by developer: 0 | Reproduced by developer: 0 -------------------------------------+------------------------------------- Comment (by cehoyos): I am not sure I understand you: Do you mean that when openjpeg support was implemented in 2009, the FFmpeg developers should have foreseen that the libopenjpeg developers will decide to change the name of the libopenjpeg library in 2012 from openjpeg.dll to libopenjp2.dll? (Note that I am not claiming the name change would be the only change from 1.5 to 2.0, I am just trying to explain that if an external library decides to change its API, there is generally no way to already support the new api when it gets released, so claiming that "there is no reason why the new version should fail and the outdated to succeed" seems like an overreaction to me.) -- Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2016#comment:3> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker
#2016: Support libopenjpeg 2.0.0 -------------------------------------+------------------------------------- Reporter: KSHawkEye | Owner: Type: enhancement | Status: open Priority: wish | Component: Version: git-master | undetermined Keywords: libopenjpeg | Resolution: Blocking: | Blocked By: Analyzed by developer: 0 | Reproduced by developer: 0 -------------------------------------+------------------------------------- Comment (by rogerdpack): for me, after renaming libopenjp2.a to libopenjpeg.a (to try and fake out ffmpeg), I get this: {{{ libavcodec/libavcodec.a(libopenjpegenc.o): In function `libopenjpeg_encode_frame’: /home/rdp/dev/ffmpeg-windows-build- helpers/sandbox/win32/ffmpeg_git/libavcodec/libopenjpegenc.c:421: undefined reference to `opj_cio_open’ /home/rdp/dev/ffmpeg-windows-build- helpers/sandbox/win32/ffmpeg_git/libavcodec/libopenjpegenc.c:433: undefined reference to `cio_tell’ /home/rdp/dev/ffmpeg-windows-build- helpers/sandbox/win32/ffmpeg_git/libavcodec/libopenjpegenc.c:442: undefined reference to `opj_cio_close’ /home/rdp/dev/ffmpeg-windows-build- helpers/sandbox/win32/ffmpeg_git/libavcodec/libopenjpegenc.c:435: undefined reference to `opj_cio_close’ /home/rdp/dev/ffmpeg-windows-build- helpers/sandbox/win32/ffmpeg_git/libavcodec/libopenjpegenc.c:428: undefined reference to `opj_cio_close’ libavcodec/libavcodec.a(libopenjpegenc.o): In function `libopenjpeg_encode_close’: /home/rdp/dev/ffmpeg-windows-build- helpers/sandbox/win32/ffmpeg_git/libavcodec/libopenjpegenc.c:450: undefined reference to `opj_destroy_compress’ libavcodec/libavcodec.a(libopenjpegenc.o): In function `libopenjpeg_encode_init’: /home/rdp/dev/ffmpeg-windows-build- helpers/sandbox/win32/ffmpeg_git/libavcodec/libopenjpegenc.c:203: undefined reference to `opj_set_event_mgr’ libavcodec/libavcodec.a(libopenjpegdec.o): In function `libopenjpeg_decode_frame’: /home/rdp/dev/ffmpeg-windows-build- helpers/sandbox/win32/ffmpeg_git/libavcodec/libopenjpegdec.c:268: undefined reference to `opj_set_event_mgr’ /home/rdp/dev/ffmpeg-windows-build- helpers/sandbox/win32/ffmpeg_git/libavcodec/libopenjpegdec.c:273: undefined reference to `opj_cio_open’ /home/rdp/dev/ffmpeg-windows-build- helpers/sandbox/win32/ffmpeg_git/libavcodec/libopenjpegdec.c:283: undefined reference to `opj_decode_with_info’ /home/rdp/dev/ffmpeg-windows-build- helpers/sandbox/win32/ffmpeg_git/libavcodec/libopenjpegdec.c:284: undefined reference to `opj_cio_close’ /home/rdp/dev/ffmpeg-windows-build- helpers/sandbox/win32/ffmpeg_git/libavcodec/libopenjpegdec.c:330: undefined reference to `opj_cio_open’ /home/rdp/dev/ffmpeg-windows-build- helpers/sandbox/win32/ffmpeg_git/libavcodec/libopenjpegdec.c:339: undefined reference to `opj_decode_with_info’ /home/rdp/dev/ffmpeg-windows-build- helpers/sandbox/win32/ffmpeg_git/libavcodec/libopenjpegdec.c:340: undefined reference to `opj_cio_close’ /home/rdp/dev/ffmpeg-windows-build- helpers/sandbox/win32/ffmpeg_git/libavcodec/libopenjpegdec.c:389: undefined reference to `opj_destroy_decompress’ /home/rdp/dev/ffmpeg-windows-build- helpers/sandbox/win32/ffmpeg_git/libavcodec/libopenjpegdec.c:288: undefined reference to `opj_destroy_decompress’ collect2: error: ld returned 1 exit status }}} Which I assume means that openjpeg has changed their internal api, with version 2, perhaps? (though I might be cross compiling libopenjpeg 2.0.0 wrong as well). -- Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2016#comment:4> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker
#2016: Support libopenjpeg 2.0.0 -------------------------------------+----------------------------------- Reporter: KSHawkEye | Owner: Type: enhancement | Status: open Priority: wish | Component: avcodec Version: git-master | Resolution: Keywords: libopenjpeg | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+----------------------------------- Changes (by richardpl): * component: undetermined => avcodec -- Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2016#comment:5> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker
#2016: Support libopenjpeg 2.0.0 -------------------------------------+----------------------------------- Reporter: KSHawkEye | Owner: Type: enhancement | Status: open Priority: wish | Component: avcodec Version: git-master | Resolution: Keywords: libopenjpeg | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+----------------------------------- Comment (by spookybathtub): Here we are 11 months later. Are there any plans to support openjpeg 2.0? I have it installed via MacPorts, so I have these files in /opt/local/include/openjpeg-2.0 {{{ openjpeg.h opj_config.h opj_stdint.h }}} -- Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2016#comment:6> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker
#2016: Support libopenjpeg 2.0.0 -------------------------------------+----------------------------------- Reporter: KSHawkEye | Owner: Type: enhancement | Status: open Priority: wish | Component: avcodec Version: git-master | Resolution: Keywords: libopenjpeg | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+----------------------------------- Comment (by llogan): You could supply a patch or offer a bounty/sponsor this feature request. We are volunteers. Features requests are limited mostly by manpower and developer interest, but maybe an offer of support will generate some more interest. -- Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2016#comment:7> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker
#2016: Support libopenjpeg 2.0.0 -------------------------------------+----------------------------------- Reporter: KSHawkEye | Owner: Type: enhancement | Status: open Priority: wish | Component: avcodec Version: git-master | Resolution: Keywords: libopenjpeg | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+----------------------------------- Comment (by muffins): I added a patch to `configure` so ffmpeg uses the openjpeg 2.0 lib, and the tail of a build log showing the errors resulting. I can see at some things are just name changes, but hopefully someone more familiar with the lib can help. -- Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2016#comment:8> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker
#2016: Support libopenjpeg 2.0.0 -------------------------------------+----------------------------------- Reporter: KSHawkEye | Owner: Type: enhancement | Status: open Priority: wish | Component: avcodec Version: git-master | Resolution: Keywords: libopenjpeg | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+----------------------------------- Changes (by hussam): * cc: hussam@… (added) -- Ticket URL: <https://trac.ffmpeg.org/ticket/2016#comment:9> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker
participants (1)
-
FFmpeg