# HG changeset patch # User Pascal Bellard # Date 1399991138 0 # Node ID 6020e80e880a854b96927e0feafb749aecd25a71 # Parent dabffe4f6ce32784f8bbcbb976dfac737453ccce libquicktime: add ffmpeg patch diff -r dabffe4f6ce3 -r 6020e80e880a libquicktime/receipt --- a/libquicktime/receipt Tue May 13 14:15:55 2014 +0000 +++ b/libquicktime/receipt Tue May 13 14:25:38 2014 +0000 @@ -16,7 +16,7 @@ # Rules to configure and make the package. compile_rules() { - cd $src + patch -p0 < $stuff/ffmpeg.u ./configure --prefix=/usr \ --enable-gpl \ --with-ffmpeg \ diff -r dabffe4f6ce3 -r 6020e80e880a libquicktime/stuff/ffmpeg.u --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libquicktime/stuff/ffmpeg.u Tue May 13 14:25:38 2014 +0000 @@ -0,0 +1,91 @@ +--- plugins/ffmpeg/audio.c ++++ plugins/ffmpeg/audio.c +@@ -45,6 +45,11 @@ + #define ENCODE_AUDIO 1 + #endif + ++#ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE ++/* from libavcodec/avcodec.h dated Dec 23 2012 */ ++#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio ++#endif ++ + /* The following code was ported from gmerlin_avdecoder (http://gmerlin.sourceforge.net) */ + + /* MPEG Audio header parsing code */ +--- plugins/ffmpeg/params.c ++++ plugins/ffmpeg/params.c +@@ -101,6 +101,17 @@ + } \ + } + ++#define PARAM_DICT_INT(name, dict_name) \ ++ { \ ++ if(!strcasecmp(name, key)) \ ++ { \ ++ char buf[128]; \ ++ snprintf(buf, sizeof(buf), "%d", *(int*)value); \ ++ av_dict_set(options, dict_name, buf, 0); \ ++ found = 1; \ ++ } \ ++ } ++ + #define PARAM_DICT_FLAG(name, dict_name) \ + { \ + if(!strcasecmp(name, key)) \ +@@ -202,8 +213,15 @@ + PARAM_INT("ff_max_b_frames",max_b_frames); + PARAM_FLOAT("ff_b_quant_factor",b_quant_factor); + PARAM_INT("ff_b_frame_strategy",b_frame_strategy); ++ ++#if LIBAVCODEC_VERSION_MAJOR >= 55 ++ PARAM_DICT_INT("ff_luma_elim_threshold","luma_elim_threshold"); ++ PARAM_DICT_INT("ff_chroma_elim_threshold","chroma_elim_threshold"); ++#else + PARAM_INT("ff_luma_elim_threshold",luma_elim_threshold); + PARAM_INT("ff_chroma_elim_threshold",chroma_elim_threshold); ++#endif ++ + PARAM_INT("ff_strict_std_compliance",strict_std_compliance); + PARAM_QP2LAMBDA("ff_b_quant_offset",b_quant_offset); + PARAM_INT("ff_rc_min_rate",rc_min_rate); +@@ -241,8 +259,15 @@ + PARAM_QP2LAMBDA("ff_lmax", lmax); + PARAM_INT("ff_noise_reduction",noise_reduction); + PARAM_INT_SCALE("ff_rc_initial_buffer_occupancy",rc_initial_buffer_occupancy,1000); ++ ++#if LIBAVCODEC_VERSION_MAJOR >= 55 ++ PARAM_DICT_INT("ff_inter_threshold","inter_threshold"); ++ PARAM_DICT_INT("ff_quantizer_noise_shaping","quantizer_noise_shaping"); ++#else + PARAM_INT("ff_inter_threshold",inter_threshold); + PARAM_INT("ff_quantizer_noise_shaping",quantizer_noise_shaping); ++#endif ++ + PARAM_INT("ff_thread_count",thread_count); + PARAM_INT("ff_me_threshold",me_threshold); + PARAM_INT("ff_mb_threshold",mb_threshold); +@@ -272,8 +297,16 @@ + 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); // Unused ++ ++#if LIBAVCODEC_VERSION_MAJOR >= 55 ++ PARAM_DICT_FLAG("ff_flag_cbp_rd","cbp_rd"); ++ PARAM_DICT_FLAG("ff_flag_qp_rd","qp_rd"); ++ PARAM_DICT_FLAG("ff_flag2_strict_gop","strict_gop"); ++#else + PARAM_FLAG("ff_flag_cbp_rd",CODEC_FLAG_CBP_RD); + PARAM_FLAG("ff_flag_qp_rd",CODEC_FLAG_QP_RD); ++ PARAM_FLAG2("ff_flag2_strict_gop",CODEC_FLAG2_STRICT_GOP); ++#endif + + #if LIBAVCODEC_VERSION_MAJOR >= 54 + PARAM_DICT_FLAG("ff_flag_h263p_aiv", "aiv"); +@@ -288,7 +321,6 @@ + PARAM_FLAG("ff_flag_loop_filter",CODEC_FLAG_LOOP_FILTER); + PARAM_FLAG("ff_flag_closed_gop",CODEC_FLAG_CLOSED_GOP); + PARAM_FLAG2("ff_flag2_fast",CODEC_FLAG2_FAST); +- PARAM_FLAG2("ff_flag2_strict_gop",CODEC_FLAG2_STRICT_GOP); + PARAM_ENUM("ff_coder_type",coder_type,coder_type); + + }