diff --git a/libquicktime/.md5sum b/libquicktime/.md5sum index ec1d4ffb4..2c90010cc 100644 --- a/libquicktime/.md5sum +++ b/libquicktime/.md5sum @@ -1 +1,3 @@ +81b4b2ec9b540b4253e71da82f2f5ffd libquicktime-1.0.3-x264-65.patch +22b5b00396a5fee59fbf373fcaa995c0 libquicktime-1.0.3-x264lavc.patch 823191104cdd665c75d447c8f5f8bf7e libquicktime-1.0.3.tar.gz diff --git a/libquicktime/Pkgfile b/libquicktime/Pkgfile index a3b2a3be9..62b8b2001 100644 --- a/libquicktime/Pkgfile +++ b/libquicktime/Pkgfile @@ -1,4 +1,4 @@ -# Description: A library for reading and writing quicktime files. +# Description: A library based on quicktime4linux with extensions. # URL: http://libquicktime.sourceforge.net/ # Maintainer: Danny Rawlins, monster dot romster at gmail dot com # Packager: Younes Hafri, ycrux at club-internet dot fr @@ -7,10 +7,14 @@ name=libquicktime version=1.0.3 release=1 -source=(http://dl.sourceforge.net/sourceforge/$name/$name-$version.tar.gz) +source=(http://dl.sourceforge.net/sourceforge/$name/$name-$version.tar.gz + libquicktime-1.0.3-x264lavc.patch + libquicktime-1.0.3-x264-65.patch) build() { cd $name-$version + patch -p 0 -i $SRC/libquicktime-1.0.3-x264lavc.patch + patch -p 0 -i $SRC/libquicktime-1.0.3-x264-65.patch ./configure \ --prefix=/usr \ @@ -23,4 +27,3 @@ build() { make make DESTDIR=$PKG install } - diff --git a/libquicktime/libquicktime-1.0.3-x264-65.patch b/libquicktime/libquicktime-1.0.3-x264-65.patch new file mode 100644 index 000000000..e7fd04c9f --- /dev/null +++ b/libquicktime/libquicktime-1.0.3-x264-65.patch @@ -0,0 +1,76 @@ +Index: plugins/x264/lqt_x264.c +=================================================================== +RCS file: /cvsroot/libquicktime/libquicktime/plugins/x264/lqt_x264.c,v +retrieving revision 1.11 +diff -u -B -r1.11 lqt_x264.c +--- plugins/x264/lqt_x264.c 22 Sep 2008 18:24:49 -0000 1.11 ++++ plugins/x264/lqt_x264.c 5 Oct 2008 18:32:41 -0000 +@@ -323,11 +323,20 @@ + .real_name = TRS("Partition decision"), + .type = LQT_PARAMETER_INT, + .val_min = { .val_int = 1 }, ++#if X264_BUILD < 65 + .val_max = { .val_int = 7 }, ++#else ++ .val_max = { .val_int = 9 }, ++#endif + .val_default = { .val_int = 5 }, + .help_string = TRS("Subpixel motion estimation and partition decision " ++#if X264_BUILD < 65 + "quality: 1=fast, 7=best.") ++#else ++ "quality: 1=fast, 9=best.") ++#endif + }, ++#if X264_BUILD < 65 + { + .name = "x264_b_bframe_rdo", + .real_name = TRS("RD based mode decision for B-frames"), +@@ -338,6 +347,7 @@ + .help_string = TRS("RD based mode decision for B-frames. Requires partition " + "decision 6.") + }, ++#endif + { + .name = "x264_i_me_range", + .real_name = TRS("Search range"), +@@ -377,6 +387,7 @@ + .help_string = TRS("Allow each MB partition in P-frames to have it's own " + "reference number") + }, ++#if X264_BUILD < 65 + { + .name = "x264_b_bidir_me", + .real_name = TRS("Bidirectional ME"), +@@ -386,6 +397,7 @@ + .val_default = { .val_int = 0 }, + .help_string = TRS("Jointly optimize both MVs in B-frames") + }, ++#endif + { + .name = "x264_b_weighted_bipred", + .real_name = TRS("Weighted biprediction"), +Index: plugins/x264/x264.c +=================================================================== +RCS file: /cvsroot/libquicktime/libquicktime/plugins/x264/x264.c,v +retrieving revision 1.25 +diff -u -B -r1.25 x264.c +--- plugins/x264/x264.c 22 Sep 2008 22:01:40 -0000 1.25 ++++ plugins/x264/x264.c 5 Oct 2008 18:32:42 -0000 +@@ -880,12 +880,16 @@ + ENUMPARAM("x264_i_me_method", codec->params.analyse.i_me_method, me_methods); + + INTPARAM("x264_i_subpel_refine", codec->params.analyse.i_subpel_refine); ++#if X264_BUILD < 65 + INTPARAM("x264_b_bframe_rdo", codec->params.analyse.b_bframe_rdo); ++#endif + INTPARAM("x264_i_me_range", codec->params.analyse.i_me_range); + INTPARAM("x264_i_frame_reference", codec->params.i_frame_reference); + INTPARAM("x264_b_chroma_me", codec->params.analyse.b_chroma_me); + INTPARAM("x264_b_mixed_references", codec->params.analyse.b_mixed_references); ++#if X264_BUILD < 65 + INTPARAM("x264_b_bidir_me", codec->params.analyse.b_bidir_me); ++#endif + INTPARAM("x264_b_weighted_bipred", codec->params.analyse.b_weighted_bipred); + + ENUMPARAM("x264_i_direct_mv_pred", codec->params.analyse.i_direct_mv_pred, direct_modes); diff --git a/libquicktime/libquicktime-1.0.3-x264lavc.patch b/libquicktime/libquicktime-1.0.3-x264lavc.patch new file mode 100644 index 000000000..de44444f3 --- /dev/null +++ b/libquicktime/libquicktime-1.0.3-x264lavc.patch @@ -0,0 +1,191 @@ +Index: plugins/ffmpeg/audio.c +=================================================================== +RCS file: /cvsroot/libquicktime/libquicktime/plugins/ffmpeg/audio.c,v +retrieving revision 1.38 +retrieving revision 1.39 +diff -u -B -r1.38 -r1.39 +--- plugins/ffmpeg/audio.c 11 Nov 2007 00:38:12 -0000 1.38 ++++ plugins/ffmpeg/audio.c 22 Sep 2008 18:24:49 -0000 1.39 +@@ -670,9 +670,11 @@ + + // priv->ctx->block_align = s->data.audio.block_align; + // priv->ctx->bit_rate = s->codec_bitrate; +- ++#if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) + codec->avctx->bits_per_sample = quicktime_audio_bits(file, track); +- ++#else ++ codec->avctx->bits_per_coded_sample = quicktime_audio_bits(file, track); ++#endif + /* Some codecs need extra stuff */ + + if(codec->decoder->id == CODEC_ID_ALAC) +Index: plugins/ffmpeg/lqt_ffmpeg.c +=================================================================== +RCS file: /cvsroot/libquicktime/libquicktime/plugins/ffmpeg/lqt_ffmpeg.c,v +retrieving revision 1.78 +retrieving revision 1.79 +diff -u -B -r1.78 -r1.79 +--- plugins/ffmpeg/lqt_ffmpeg.c 5 Sep 2008 22:53:48 -0000 1.78 ++++ plugins/ffmpeg/lqt_ffmpeg.c 22 Sep 2008 18:24:49 -0000 1.79 +@@ -77,7 +77,7 @@ + PARAM_QCOMPRESS, \ + PARAM_QBLUR, \ + PARAM_QUANTIZER_NOISE_SHAPING, \ +- PARAM_FLAG_TRELLIS_QUANT ++ PARAM_TRELLIS + + #define ENCODE_PARAM_VIDEO_QUANTIZER_IP \ + ENCODE_PARAM_VIDEO_QUANTIZER_I, \ +Index: plugins/ffmpeg/params.c +=================================================================== +RCS file: /cvsroot/libquicktime/libquicktime/plugins/ffmpeg/params.c,v +retrieving revision 1.10 +retrieving revision 1.11 +diff -u -B -r1.10 -r1.11 +--- plugins/ffmpeg/params.c 5 Sep 2008 22:53:48 -0000 1.10 ++++ plugins/ffmpeg/params.c 22 Sep 2008 18:24:49 -0000 1.11 +@@ -242,7 +242,11 @@ + PARAM_FLAG("ff_flag_emu_edge",CODEC_FLAG_EMU_EDGE); + PARAM_FLAG("ff_flag_normalize_aqp",CODEC_FLAG_NORMALIZE_AQP); + PARAM_FLAG("ff_flag_alt_scan",CODEC_FLAG_ALT_SCAN); ++#if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) + PARAM_FLAG("ff_flag_trellis_quant",CODEC_FLAG_TRELLIS_QUANT); ++#else ++ PARAM_INT("ff_trellis",trellis); ++#endif + PARAM_FLAG("ff_flag_bitexact",CODEC_FLAG_BITEXACT); + PARAM_FLAG("ff_flag_ac_pred",CODEC_FLAG_AC_PRED); + PARAM_FLAG("ff_flag_h263p_umv",CODEC_FLAG_H263P_UMV); +Index: plugins/ffmpeg/params.h +=================================================================== +RCS file: /cvsroot/libquicktime/libquicktime/plugins/ffmpeg/params.h,v +retrieving revision 1.10 +retrieving revision 1.11 +diff -u -B -r1.10 -r1.11 +--- plugins/ffmpeg/params.h 3 Sep 2007 23:26:48 -0000 1.10 ++++ plugins/ffmpeg/params.h 22 Sep 2008 18:24:49 -0000 1.11 +@@ -1032,7 +1032,9 @@ + } + + /** Quantizer */ +-#define PARAM_FLAG_TRELLIS_QUANT \ ++#if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) ++ ++#define PARAM_TRELLIS \ + { \ + .name = "ff_flag_trellis_quant", \ + .real_name = TRS("Use trellis quantization"), \ +@@ -1042,6 +1044,18 @@ + .val_max = { .val_int = 1 }, \ + .help_string = TRS("Use trellis quantization (improves quality)") \ + } ++#else ++#define PARAM_TRELLIS \ ++ { \ ++ .name = "ff_trellis", \ ++ .real_name = TRS("Use trellis quantization"), \ ++ .type = LQT_PARAMETER_INT, \ ++ .val_default = { .val_int = 0 }, \ ++ .val_min = { .val_int = 0 }, \ ++ .val_max = { .val_int = 1 }, \ ++ .help_string = TRS("Use trellis quantization (improves quality)") \ ++ } ++#endif + + #define PARAM_FLAG_BITEXACT \ + { \ +Index: plugins/ffmpeg/video.c +=================================================================== +RCS file: /cvsroot/libquicktime/libquicktime/plugins/ffmpeg/video.c,v +retrieving revision 1.63 +retrieving revision 1.64 +diff -u -B -r1.63 -r1.64 +--- plugins/ffmpeg/video.c 28 May 2008 16:48:20 -0000 1.63 ++++ plugins/ffmpeg/video.c 22 Sep 2008 18:24:49 -0000 1.64 +@@ -377,7 +377,12 @@ + { + codec->avctx->width = width; + codec->avctx->height = height; ++ ++#if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) + codec->avctx->bits_per_sample = quicktime_video_depth(file, track); ++#else ++ codec->avctx->bits_per_coded_sample = quicktime_video_depth(file, track); ++#endif + + /* Set extradata: It's done differently for each codec */ + +Index: plugins/x264/lqt_x264.c +=================================================================== +RCS file: /cvsroot/libquicktime/libquicktime/plugins/x264/lqt_x264.c,v +retrieving revision 1.10 +retrieving revision 1.11 +diff -u -B -r1.10 -r1.11 +--- plugins/x264/lqt_x264.c 5 Sep 2008 22:53:50 -0000 1.10 ++++ plugins/x264/lqt_x264.c 22 Sep 2008 18:24:49 -0000 1.11 +@@ -64,6 +64,7 @@ + .val_max = { .val_int = 16 }, + .help_string = TRS("Number of B-frames between I and P"), + }, ++#if X264_BUILD < 63 + { + .name = "x264_b_bframe_adaptive", + .real_name = TRS("Adaptive B-frame decision"), +@@ -72,6 +73,18 @@ + .val_min = { .val_int = 0 }, + .val_max = { .val_int = 1 }, + }, ++#else ++ { ++ .name = "x264_i_bframe_adaptive", ++ .real_name = TRS("Adaptive B-frame decision"), ++ .type = LQT_PARAMETER_STRINGLIST, ++ .val_default = { .val_string = "Fast" }, ++ .stringlist_options = (char*[]){ TRS("None"), ++ TRS("Fast"), ++ TRS("Trellis"), ++ (char*)0 }, ++ }, ++#endif + { + .name = "x264_i_bframe_bias", + .real_name = TRS("B-frame bias"), +Index: plugins/x264/x264.c +=================================================================== +RCS file: /cvsroot/libquicktime/libquicktime/plugins/x264/x264.c,v +retrieving revision 1.23 +retrieving revision 1.24 +diff -u -B -r1.23 -r1.24 +--- plugins/x264/x264.c 5 Sep 2008 22:53:50 -0000 1.23 ++++ plugins/x264/x264.c 22 Sep 2008 18:24:49 -0000 1.24 +@@ -763,7 +763,15 @@ + { "Average bitrate", X264_RC_ABR }, + { "CRF based VBR", X264_RC_CRF } + }; +- ++ ++#if X264_BUILD >= 63 ++enum_t bframe_adaptives[] = ++ { ++ { "None", X264_B_ADAPT_NONE }, ++ { "Fast", X264_B_ADAPT_FAST }, ++ { "Trellis", X264_B_ADAPT_TRELLIS } ++ }; ++#endif + + static int set_parameter(quicktime_t *file, + int track, +@@ -777,7 +785,11 @@ + INTPARAM("x264_i_keyint_min", codec->params.i_keyint_min); + INTPARAM("x264_i_scenecut_threshold", codec->params.i_scenecut_threshold); + INTPARAM("x264_i_bframe", codec->params.i_bframe); +- INTPARAM("x264_b_bframe_adaptive", codec->params.b_bframe_adaptive); ++#if X264_BUILD < 63 ++ INTPARAM("x264_b_bframe_adaptive", codec->params.b_bframe_adaptive); ++#else ++ ENUMPARAM("x264_i_bframe_adaptive", codec->params.i_bframe_adaptive, bframe_adaptives); ++#endif + INTPARAM("x264_i_bframe_bias", codec->params.i_bframe_bias); + INTPARAM("x264_b_bframe_pyramid", codec->params.b_bframe_pyramid); +