libquicktime:rebuild ffmpeg

This commit is contained in:
Rmys
2018-04-29 19:01:59 +03:00
parent 05222fc57d
commit c3a8812756
6 changed files with 1385 additions and 114 deletions
@@ -1,135 +1,98 @@
Binary files a/plugins/ffmpeg/.lqt_ffmpeg.c.swp and b/plugins/ffmpeg/.lqt_ffmpeg.c.swp differ
diff -rupN a/plugins/ffmpeg/ffmpeg.h b/plugins/ffmpeg/ffmpeg.h
--- a/plugins/ffmpeg/ffmpeg.h 2012-02-15 20:48:30.000000000 +0100
+++ b/plugins/ffmpeg/ffmpeg.h 2013-07-15 15:05:19.307534593 +0200
@@ -45,3 +45,7 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
Extracted from upstream CVS.
https://bugs.gentoo.org/show_bug.cgi?id=476498
Index: libquicktime-1.2.4/plugins/ffmpeg/audio.c
===================================================================
--- libquicktime-1.2.4.orig/plugins/ffmpeg/audio.c
+++ libquicktime-1.2.4/plugins/ffmpeg/audio.c
@@ -45,6 +45,11 @@
#define ENCODE_AUDIO 1
#endif
+#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
+#define CODEC_FLAG2_STRICT_GOP 0x00000002
+#define CODEC_FLAG_QP_RD 0x08000000
+#define CODEC_FLAG_CBP_RD 0x04000000
diff -rupN a/plugins/ffmpeg/lqt_ffmpeg.c b/plugins/ffmpeg/lqt_ffmpeg.c
--- a/plugins/ffmpeg/lqt_ffmpeg.c 2012-02-15 20:48:30.000000000 +0100
+++ b/plugins/ffmpeg/lqt_ffmpeg.c 2013-07-15 15:19:09.730831655 +0200
@@ -89,19 +89,8 @@ int ffmpeg_num_video_codecs = -1;
PARAM_QSCALE, \
PARAM_QCOMPRESS, \
PARAM_QBLUR, \
- PARAM_QUANTIZER_NOISE_SHAPING, \
PARAM_TRELLIS
-#define ENCODE_PARAM_VIDEO_QUANTIZER_IP \
- ENCODE_PARAM_VIDEO_QUANTIZER_I, \
- PARAM_I_QUANT_FACTOR, \
- PARAM_I_QUANT_OFFSET
-
-#define ENCODE_PARAM_VIDEO_QUANTIZER_IPB \
- ENCODE_PARAM_VIDEO_QUANTIZER_IP, \
- PARAM_B_QUANT_FACTOR, \
- PARAM_B_QUANT_OFFSET
-
#define ENCODE_PARAM_VIDEO_FRAMETYPES_IP \
{ \
.name = "frame_types", \
@@ -207,7 +196,6 @@ static lqt_parameter_info_static_t encod
ENCODE_PARAM_VIDEO_FRAMETYPES_IPB,
PARAM_FLAG_AC_PRED_MPEG4,
ENCODE_PARAM_VIDEO_RATECONTROL,
- ENCODE_PARAM_VIDEO_QUANTIZER_IPB,
PARAM_FLAG_CBP_RD,
ENCODE_PARAM_VIDEO_ME,
PARAM_FLAG_GMC,
@@ -225,7 +213,6 @@ static lqt_parameter_info_static_t encod
static lqt_parameter_info_static_t encode_parameters_dx50[] = {
ENCODE_PARAM_VIDEO_FRAMETYPES_IP,
ENCODE_PARAM_VIDEO_RATECONTROL,
- ENCODE_PARAM_VIDEO_QUANTIZER_IP,
ENCODE_PARAM_VIDEO_ME,
ENCODE_PARAM_VIDEO_ME_PRE,
ENCODE_PARAM_VIDEO_MASKING,
@@ -237,7 +224,6 @@ static lqt_parameter_info_static_t encod
static lqt_parameter_info_static_t encode_parameters_h263[] = {
ENCODE_PARAM_VIDEO_FRAMETYPES_IP,
ENCODE_PARAM_VIDEO_RATECONTROL,
- ENCODE_PARAM_VIDEO_QUANTIZER_IP,
ENCODE_PARAM_VIDEO_ME,
PARAM_FLAG_4MV,
ENCODE_PARAM_VIDEO_ME_PRE,
@@ -250,7 +236,6 @@ static lqt_parameter_info_static_t encod
static lqt_parameter_info_static_t encode_parameters_h263p[] = {
ENCODE_PARAM_VIDEO_FRAMETYPES_IP,
ENCODE_PARAM_VIDEO_RATECONTROL,
- ENCODE_PARAM_VIDEO_QUANTIZER_IP,
ENCODE_PARAM_VIDEO_ME,
PARAM_FLAG_4MV,
ENCODE_PARAM_VIDEO_ME_PRE,
@@ -264,7 +249,6 @@ static lqt_parameter_info_static_t encod
static lqt_parameter_info_static_t encode_parameters_msmpeg4v3[] = {
ENCODE_PARAM_VIDEO_FRAMETYPES_IP,
ENCODE_PARAM_VIDEO_RATECONTROL,
- ENCODE_PARAM_VIDEO_QUANTIZER_IP,
ENCODE_PARAM_VIDEO_ME,
ENCODE_PARAM_VIDEO_ME_PRE,
ENCODE_PARAM_VIDEO_MASKING,
diff -rupN a/plugins/ffmpeg/params.c b/plugins/ffmpeg/params.c
--- a/plugins/ffmpeg/params.c 2012-03-07 15:10:41.000000000 +0100
+++ b/plugins/ffmpeg/params.c 2013-07-15 15:09:38.214189953 +0200
@@ -202,8 +202,10 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
+#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 */
Index: libquicktime-1.2.4/plugins/ffmpeg/params.c
===================================================================
--- libquicktime-1.2.4.orig/plugins/ffmpeg/params.c
+++ libquicktime-1.2.4/plugins/ffmpeg/params.c
@@ -101,6 +101,17 @@ typedef struct
} \
}
+#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 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
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)
+
+#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 +243,10 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
@@ -241,8 +259,15 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
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 #if (LIBAVCODEC_VERSION_MAJOR < 55)
+
+#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);
diff -rupN a/plugins/ffmpeg/params.h b/plugins/ffmpeg/params.h
--- a/plugins/ffmpeg/params.h 2011-05-11 17:13:39.000000000 +0200
+++ b/plugins/ffmpeg/params.h 2013-07-15 15:09:04.860858069 +0200
@@ -177,6 +177,7 @@ the reference. Unused for constant quant
.val_max = { .val_int = 1 }, \
}
+#if (LIBAVCODEC_VERSION_MAJOR < 55)
#define PARAM_LUMA_ELIM_THRESHOLD \
{ \
.name = "ff_luma_elim_threshold", \
@@ -202,6 +203,7 @@ recommendation") \
chrominamce. Negative values also consider dc \
coefficient. 7 is JVT recommendation") \
}
@@ -272,8 +297,16 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
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
#define PARAM_STRICT_STANDARD_COMPLIANCE \
{ \
@@ -739,6 +741,7 @@ with max and/or min bitrate, this must b
/* Does nothing */
/** Frame types */
+#if (LIBAVCODEC_VERSION_MAJOR < 55)
#define PARAM_INTER_THRESHOLD \
{ \
.name = "ff_inter_threshold", \
@@ -759,6 +762,7 @@ with max and/or min bitrate, this must b
.help_string = TRS("Choose quantization such that noise will be masked by " \
"similar-frequency content in the image") \
#if LIBAVCODEC_VERSION_MAJOR >= 54
PARAM_DICT_FLAG("ff_flag_h263p_aiv", "aiv");
@@ -288,7 +321,6 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
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);
}
+#endif
/** Motion estimation */
#define PARAM_ME_THRESHOLD \