Package Details: libquicktime 1.2.4-31

Git Clone URL: https://aur.archlinux.org/libquicktime.git (read-only, click to copy)
Package Base: libquicktime
Description: A library for reading and writing quicktime files
Upstream URL: http://libquicktime.sourceforge.net/
Licenses: LGPL2.1
Provides: libquicktime.so
Submitter: dvzrv
Maintainer: RAMChYLD
Last Packager: RAMChYLD
Votes: 4
Popularity: 0.000000
First Submitted: 2022-02-04 23:16 (UTC)
Last Updated: 2022-12-07 20:11 (UTC)

Required by (1)

Sources (10)

Latest Comments

« First ‹ Previous 1 2

aggraef commented on 2022-08-25 05:51 (UTC) (edited on 2022-08-25 05:55 (UTC) by aggraef)

The package works fine with ffmpeg4.4, it's just that due to some libtool weirdness libquicktime/lqt_ffmpeg.so gets relinked to libavcodec.so.59 during make install:

$ ldd src/libquicktime-1.2.4/plugins/ffmpeg/.libs/lqt_ffmpeg.so|grep avcodec
        libavcodec.so.58 => /usr/lib/libavcodec.so.58 (0x00007f3f258ba000)
$ ldd pkg/libquicktime/usr/lib/libquicktime/lqt_ffmpeg.so |grep avcodec
        libavcodec.so.59 => /usr/lib/libavcodec.so.59 (0x00007fd4ba6c8000)

This happens whenever ffmpeg and ffmpeg4.4 are installed at the same time. Which they usually are, because ffmpeg is a dependency of so many other packages. As a result, the lqt_ffmpeg plugin will not work properly. I can see this, e.g., in Pd's Gem library which suddenly can't load most video formats any more.

The only quick remedy for this that I could find is to just manually copy the lqt_ffmpeg.so file from the build directory to the staging area:

diff --git a/PKGBUILD b/PKGBUILD
index 6a0204e..e197e3d 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -107,5 +107,7 @@ package() {

   cd $pkgname-$pkgver
   make DESTDIR="$pkgdir" install
+  # fix mis-linkage of lqt_ffmpeg.so (libtool weirdness)
+  cp plugins/ffmpeg/.libs/lqt_ffmpeg.so "$pkgdir"/usr/lib/libquicktime
   install -vDm 644 {AUTHORS,ChangeLog,README,TODO} -t "${pkgdir}/usr/share/doc/${pkgname}"
 }

Now the packaged lqt_ffmpeg.so is linked properly:

$ ldd pkg/libquicktime/usr/lib/libquicktime/lqt_ffmpeg.so |grep avcodec
        libavcodec.so.58 => /usr/lib/libavcodec.so.58 (0x00007f3be41f7000)

And Gem happily loads and plays videos again. :)

dvzrv commented on 2022-03-14 11:03 (UTC)

Yes, this package needs to be fixed to work with ffmpeg4.4 or ffmpeg 5. Either way, libquicktime's upstream is dead. Feel free to adopt this package and fix it.

gnaggnoyil commented on 2022-03-14 10:26 (UTC)

Can confirm the same problem @arkades met when using an AUR helper. Is this due to ffmpeg API change or something?

arkades commented on 2022-02-19 16:17 (UTC)

I get several errors during makepkg:


params.c:129:17: error: 'FF_PRED_LEFT' undeclared here (not in a function)
  129 |     { "Left",   FF_PRED_LEFT },
      |                 ^~~~~~~~~~~~
params.c:130:17: error: 'FF_PRED_PLANE' undeclared here (not in a function)
  130 |     { "Plane",  FF_PRED_PLANE },
      |                 ^~~~~~~~~~~~~
params.c:131:17: error: 'FF_PRED_MEDIAN' undeclared here (not in a function)
  131 |     { "Median", FF_PRED_MEDIAN }
      |                 ^~~~~~~~~~~~~~
params.c: In function 'lqt_ffmpeg_set_parameter':
params.c:40:8: error: 'AVCodecContext' has no member named 'b_frame_strategy'
   40 |     ctx->var = *(int*)value;                         \
      |        ^~
params.c:196:3: note: in expansion of macro 'PARAM_INT'
  196 |   PARAM_INT("ff_b_frame_strategy",b_frame_strategy);
      |   ^~~~~~~~~
params.c:163:12: error: 'AVCodecContext' has no member named 'prediction_method'
  163 |         ctx->var = arr[i].i;                        \
      |            ^~
params.c:219:3: note: in expansion of macro 'PARAM_ENUM'
  219 |   PARAM_ENUM("ff_prediction_method",prediction_method,prediction_method);
      |   ^~~~~~~~~~
params.c:40:8: error: 'AVCodecContext' has no member named 'pre_me'
   40 |     ctx->var = *(int*)value;                         \
      |        ^~
params.c:230:3: note: in expansion of macro 'PARAM_INT'
  230 |   PARAM_INT("ff_pre_me",pre_me);
      |   ^~~~~~~~~
params.c:40:8: error: 'AVCodecContext' has no member named 'scenechange_threshold'
   40 |     ctx->var = *(int*)value;                         \
      |        ^~
params.c:237:3: note: in expansion of macro 'PARAM_INT'
  237 |   PARAM_INT("ff_scenechange_threshold",scenechange_threshold);
      |   ^~~~~~~~~
params.c:40:8: error: 'AVCodecContext' has no member named 'noise_reduction'
   40 |     ctx->var = *(int*)value;                         \
      |        ^~
params.c:240:3: note: in expansion of macro 'PARAM_INT'
  240 |   PARAM_INT("ff_noise_reduction",noise_reduction);
      |   ^~~~~~~~~
params.c:40:8: error: 'AVCodecContext' has no member named 'me_penalty_compensation'
   40 |     ctx->var = *(int*)value;                         \
      |        ^~
params.c:256:3: note: in expansion of macro 'PARAM_INT'
  256 |   PARAM_INT("ff_me_penalty_compensation",me_penalty_compensation);
      |   ^~~~~~~~~
params.c:40:8: error: 'AVCodecContext' has no member named 'brd_scale'
   40 |     ctx->var = *(int*)value;                         \
      |        ^~
params.c:258:3: note: in expansion of macro 'PARAM_INT'
  258 |   PARAM_INT("ff_brd_scale",brd_scale);
      |   ^~~~~~~~~
params.c:178:7: warning: variable 'found' set but not used [-Wunused-but-set-variable]
  178 |   int found = 0, i;
      |       ^~~~~

ector commented on 2022-02-05 19:34 (UTC)

I have this error whit yaourt :

patching file plugins/ffmpeg/video.c

Hunk #1 succeeded at 400 with fuzz 2.

Hunk #2 succeeded at 438 with fuzz 2.

Hunk #13 succeeded at 1590 with fuzz 1.

Hunk #14 succeeded at 1902 (offset -1 lines).

Hunk #15 succeeded at 1921 (offset -1 lines).

/tmp/yaourt-tmp-midfingr/aur-libquicktime/./PKGBUILD: riga 82: autoreconf:

comando non trovato

==> ERRORE: Si è verificato un errore in prepare().

L'operazione sta per essere interrotta...

==> ERRORE: Makepkg non è riuscito a compilare libquicktime.

==> Riavviare la compilazione di libquicktime [s/N]