rebuilt to remove .la files
added ffmpeg5 patch [release 1.2.4-3mamba;Mon May 06 2024]
This commit is contained in:
parent
76639c5d22
commit
46579251f4
@ -1,101 +0,0 @@
|
|||||||
Upstream status: Mailed to libquicktime-devel@sf mailing list on 26/10/2009
|
|
||||||
Merged on 27/10/2009
|
|
||||||
|
|
||||||
Index: plugins/x264/lqt_x264.c
|
|
||||||
===================================================================
|
|
||||||
RCS file: /cvsroot/libquicktime/libquicktime/plugins/x264/lqt_x264.c,v
|
|
||||||
retrieving revision 1.13
|
|
||||||
diff -u -B -r1.13 lqt_x264.c
|
|
||||||
--- plugins/x264/lqt_x264.c 6 Dec 2008 14:03:10 -0000 1.13
|
|
||||||
+++ plugins/x264/lqt_x264.c 26 Oct 2009 11:02:55 -0000
|
|
||||||
@@ -94,6 +94,17 @@
|
|
||||||
.val_max = { .val_int = 100 },
|
|
||||||
.help_string = TRS("Influences how often B-frames are used"),
|
|
||||||
},
|
|
||||||
+#if X264_BUILD >= 78
|
|
||||||
+ {
|
|
||||||
+ .name = "x264_i_bframe_pyramid",
|
|
||||||
+ .real_name = TRS("B-frame pyramid"),
|
|
||||||
+ .type = LQT_PARAMETER_INT,
|
|
||||||
+ .val_default = { .val_int = 0 },
|
|
||||||
+ .val_min = { .val_int = 0 },
|
|
||||||
+ .val_max = { .val_int = 2 },
|
|
||||||
+ .help_string = TRS("Keep some B-frames as references")
|
|
||||||
+ },
|
|
||||||
+#else
|
|
||||||
{
|
|
||||||
.name = "x264_b_bframe_pyramid",
|
|
||||||
.real_name = TRS("B-frame pyramid"),
|
|
||||||
@@ -103,6 +114,7 @@
|
|
||||||
.val_max = { .val_int = 1 },
|
|
||||||
.help_string = TRS("Keep some B-frames as references")
|
|
||||||
},
|
|
||||||
+#endif
|
|
||||||
{
|
|
||||||
.name = "x264_ratecontrol",
|
|
||||||
.real_name = TRS("Ratecontrol"),
|
|
||||||
Index: plugins/x264/x264.c
|
|
||||||
===================================================================
|
|
||||||
RCS file: /cvsroot/libquicktime/libquicktime/plugins/x264/x264.c,v
|
|
||||||
retrieving revision 1.30
|
|
||||||
diff -u -B -r1.30 x264.c
|
|
||||||
--- plugins/x264/x264.c 11 Mar 2009 14:25:50 -0000 1.30
|
|
||||||
+++ plugins/x264/x264.c 26 Oct 2009 11:02:55 -0000
|
|
||||||
@@ -67,7 +67,11 @@
|
|
||||||
lqt_dump(" i_bframe: %d\n", params->i_bframe); // 0.. X264_BFRAME_MAX
|
|
||||||
lqt_dump(" b_bframe_adaptive: %d\n", params->b_bframe_adaptive);
|
|
||||||
lqt_dump(" i_bframe_bias: %d\n", params->i_bframe_bias);
|
|
||||||
+#if X264_BUILD >= 78
|
|
||||||
+ lqt_dump(" i_bframe_pyramid: %d\n", params->i_bframe_pyramid);
|
|
||||||
+#else
|
|
||||||
lqt_dump(" b_bframe_pyramid: %d\n", params->b_bframe_pyramid);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
lqt_dump(" b_deblocking_filter: %d\n", params->b_deblocking_filter);
|
|
||||||
lqt_dump(" i_deblocking_filter_alphac0: %d\n", params->i_deblocking_filter_alphac0); // -6..6
|
|
||||||
@@ -174,14 +178,21 @@
|
|
||||||
{
|
|
||||||
uint8_t *p = buf;
|
|
||||||
int i;
|
|
||||||
+#if X264_BUILD < 76
|
|
||||||
int s;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
for(i = 0; i < nnal; i++)
|
|
||||||
{
|
|
||||||
+#if X264_BUILD >= 76
|
|
||||||
+ memcpy(p, nals[i].p_payload, nals[i].i_payload);
|
|
||||||
+ p+=nals[i].i_payload;
|
|
||||||
+#else
|
|
||||||
s = x264_nal_encode(p, &size, 1, nals + i);
|
|
||||||
if(s < 0)
|
|
||||||
return -1;
|
|
||||||
p += s;
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
return p - buf;
|
|
||||||
@@ -407,7 +417,11 @@
|
|
||||||
|
|
||||||
pic_out.i_pts = 0;
|
|
||||||
/* Encode frames, get nals */
|
|
||||||
+#if X264_BUILD >= 76
|
|
||||||
+ if(x264_encoder_encode(codec->enc, &nal, &nnal, pic_in, &pic_out)<0)
|
|
||||||
+#else
|
|
||||||
if(x264_encoder_encode(codec->enc, &nal, &nnal, pic_in, &pic_out))
|
|
||||||
+#endif
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
/* Encode nals -> get h264 stream */
|
|
||||||
@@ -782,7 +796,11 @@
|
|
||||||
ENUMPARAM("x264_i_bframe_adaptive", codec->params.i_bframe_adaptive, bframe_adaptives);
|
|
||||||
#endif
|
|
||||||
INTPARAM("x264_i_bframe_bias", codec->params.i_bframe_bias);
|
|
||||||
+#if X264_BUILD >= 78
|
|
||||||
+ INTPARAM("x264_i_bframe_pyramid", codec->params.i_bframe_pyramid);
|
|
||||||
+#else
|
|
||||||
INTPARAM("x264_b_bframe_pyramid", codec->params.b_bframe_pyramid);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
ENUMPARAM("x264_i_rc_method", codec->params.rc.i_rc_method, rc_methods);
|
|
||||||
INTPARAM("x264_i_bitrate", codec->params.rc.i_bitrate);
|
|
@ -1,39 +0,0 @@
|
|||||||
diff -up libquicktime-1.1.5/utils/gtk/libquicktime_config.c.gtk libquicktime-1.1.5/utils/gtk/libquicktime_config.c
|
|
||||||
--- libquicktime-1.1.5/utils/gtk/libquicktime_config.c.gtk 2010-07-08 12:21:24.000000000 +0200
|
|
||||||
+++ libquicktime-1.1.5/utils/gtk/libquicktime_config.c 2010-07-08 12:22:45.000000000 +0200
|
|
||||||
@@ -112,8 +112,8 @@ static MainWindow * create_main_window()
|
|
||||||
G_CALLBACK(main_window_button_callback),
|
|
||||||
(gpointer)ret);
|
|
||||||
|
|
||||||
- GTK_WIDGET_SET_FLAGS (ret->close_button, GTK_CAN_DEFAULT);
|
|
||||||
- GTK_WIDGET_SET_FLAGS (ret->save_button, GTK_CAN_DEFAULT);
|
|
||||||
+ gtk_widget_set_can_default(GTK_WIDGET(ret->close_button), TRUE);
|
|
||||||
+ gtk_widget_set_can_default(GTK_WIDGET(ret->save_button), TRUE);
|
|
||||||
|
|
||||||
gtk_widget_show(ret->close_button);
|
|
||||||
gtk_widget_show(ret->save_button);
|
|
||||||
diff -up libquicktime-1.1.5/utils/gtk/lqt_gtk.c.gtk libquicktime-1.1.5/utils/gtk/lqt_gtk.c
|
|
||||||
--- libquicktime-1.1.5/utils/gtk/lqt_gtk.c.gtk 2010-07-08 12:27:26.000000000 +0200
|
|
||||||
+++ libquicktime-1.1.5/utils/gtk/lqt_gtk.c 2010-07-08 12:27:04.000000000 +0200
|
|
||||||
@@ -941,9 +941,9 @@ lqtgtk_create_codec_config_window(lqt_co
|
|
||||||
G_CALLBACK(codec_config_window_button_callback),
|
|
||||||
(gpointer)ret);
|
|
||||||
|
|
||||||
- GTK_WIDGET_SET_FLAGS (ret->apply_button, GTK_CAN_DEFAULT);
|
|
||||||
- GTK_WIDGET_SET_FLAGS (ret->close_button, GTK_CAN_DEFAULT);
|
|
||||||
- GTK_WIDGET_SET_FLAGS (ret->restore_button, GTK_CAN_DEFAULT);
|
|
||||||
+ gtk_widget_set_can_default(GTK_WIDGET(ret->apply_button), TRUE);
|
|
||||||
+ gtk_widget_set_can_default(GTK_WIDGET(ret->close_button), TRUE);
|
|
||||||
+ gtk_widget_set_can_default(GTK_WIDGET(ret->restore_button), TRUE);
|
|
||||||
|
|
||||||
gtk_widget_show(ret->apply_button);
|
|
||||||
gtk_widget_show(ret->close_button);
|
|
||||||
@@ -1240,7 +1240,7 @@ lqtgtk_create_codec_info_window(const lq
|
|
||||||
ret->mainbox = gtk_vbox_new(0, 10);
|
|
||||||
|
|
||||||
ret->close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
|
|
||||||
- GTK_WIDGET_SET_FLAGS (ret->close_button, GTK_CAN_DEFAULT);
|
|
||||||
+ gtk_widget_set_can_default(GTK_WIDGET(ret->close_button), TRUE);
|
|
||||||
|
|
||||||
g_signal_connect(G_OBJECT(ret->close_button), "clicked",
|
|
||||||
G_CALLBACK(codec_info_window_button_callback),
|
|
342
libquicktime-1.2.4-ffmpeg5.patch
Normal file
342
libquicktime-1.2.4-ffmpeg5.patch
Normal file
@ -0,0 +1,342 @@
|
|||||||
|
--- a/plugins/ffmpeg/audio.c
|
||||||
|
+++ b/plugins/ffmpeg/audio.c
|
||||||
|
@@ -423,8 +423,8 @@ static int a52_header_read(a52_header *
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
AVCodecContext * avctx;
|
||||||
|
- AVCodec * encoder;
|
||||||
|
- AVCodec * decoder;
|
||||||
|
+ AVCodec const * encoder;
|
||||||
|
+ AVCodec const * decoder;
|
||||||
|
|
||||||
|
int initialized;
|
||||||
|
|
||||||
|
@@ -512,7 +512,6 @@ static int decode_chunk_vbr(quicktime_t
|
||||||
|
|
||||||
|
#if DECODE_AUDIO4
|
||||||
|
AVFrame f;
|
||||||
|
- int got_frame;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
chunk_packets = lqt_audio_num_vbr_packets(file, track, track_map->cur_chunk, &num_samples);
|
||||||
|
@@ -548,13 +547,14 @@ static int decode_chunk_vbr(quicktime_t
|
||||||
|
codec->pkt.size = packet_size + AV_INPUT_BUFFER_PADDING_SIZE;
|
||||||
|
|
||||||
|
#if DECODE_AUDIO4
|
||||||
|
- frame_bytes = avcodec_decode_audio4(codec->avctx, &f,
|
||||||
|
- &got_frame, &codec->pkt);
|
||||||
|
- if(frame_bytes < 0)
|
||||||
|
+ if(avcodec_send_packet(codec->avctx, &codec->pkt) < 0 &&
|
||||||
|
+ avcodec_receive_frame(codec->avctx, &f) < 0)
|
||||||
|
{
|
||||||
|
lqt_log(file, LQT_LOG_ERROR, LOG_DOMAIN, "avcodec_decode_audio4 error");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
+ frame_bytes = codec->pkt.size;
|
||||||
|
+
|
||||||
|
bytes_decoded = f.nb_samples * 2 * track_map->channels;
|
||||||
|
memcpy(&codec->sample_buffer[track_map->channels *
|
||||||
|
(codec->sample_buffer_end -
|
||||||
|
@@ -615,7 +615,6 @@ static int decode_chunk(quicktime_t * fi
|
||||||
|
|
||||||
|
#if DECODE_AUDIO4
|
||||||
|
AVFrame f;
|
||||||
|
- int got_frame;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Read chunk */
|
||||||
|
@@ -764,14 +763,14 @@ static int decode_chunk(quicktime_t * fi
|
||||||
|
codec->pkt.size = codec->bytes_in_chunk_buffer + AV_INPUT_BUFFER_PADDING_SIZE;
|
||||||
|
|
||||||
|
#if DECODE_AUDIO4
|
||||||
|
-
|
||||||
|
- frame_bytes = avcodec_decode_audio4(codec->avctx, &f,
|
||||||
|
- &got_frame, &codec->pkt);
|
||||||
|
- if(frame_bytes < 0)
|
||||||
|
+ if(avcodec_send_packet(codec->avctx, &codec->pkt) < 0 ||
|
||||||
|
+ avcodec_receive_frame(codec->avctx, &f) < 0)
|
||||||
|
{
|
||||||
|
lqt_log(file, LQT_LOG_ERROR, LOG_DOMAIN, "avcodec_decode_audio4 error");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
+ frame_bytes = codec->pkt.size;
|
||||||
|
+
|
||||||
|
bytes_decoded = f.nb_samples * 2 * track_map->channels;
|
||||||
|
memcpy(&codec->sample_buffer[track_map->channels *
|
||||||
|
(codec->sample_buffer_end -
|
||||||
|
@@ -1198,7 +1197,6 @@ static int lqt_ffmpeg_encode_audio(quick
|
||||||
|
#if ENCODE_AUDIO2
|
||||||
|
AVFrame f;
|
||||||
|
AVPacket pkt;
|
||||||
|
- int got_packet;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if(!codec->initialized)
|
||||||
|
@@ -1274,15 +1272,11 @@ static int lqt_ffmpeg_encode_audio(quick
|
||||||
|
codec->avctx->frame_size * channels * 2,
|
||||||
|
1);
|
||||||
|
|
||||||
|
- if(avcodec_encode_audio2(codec->avctx, &pkt,
|
||||||
|
- &f, &got_packet) < 0)
|
||||||
|
+ if(avcodec_send_frame(codec->avctx, &f) < 0 ||
|
||||||
|
+ avcodec_receive_packet(codec->avctx, &pkt) < 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
- if(got_packet && pkt.size)
|
||||||
|
- frame_bytes = pkt.size;
|
||||||
|
- else
|
||||||
|
- frame_bytes = 0;
|
||||||
|
-
|
||||||
|
+ frame_bytes = pkt.size;
|
||||||
|
#else
|
||||||
|
frame_bytes = avcodec_encode_audio(codec->avctx, codec->chunk_buffer,
|
||||||
|
codec->chunk_buffer_alloc,
|
||||||
|
@@ -1474,8 +1468,9 @@ static int read_packet_ac3(quicktime_t *
|
||||||
|
}
|
||||||
|
|
||||||
|
void quicktime_init_audio_codec_ffmpeg(quicktime_codec_t * codec_base,
|
||||||
|
- quicktime_audio_map_t *atrack, AVCodec *encoder,
|
||||||
|
- AVCodec *decoder)
|
||||||
|
+ quicktime_audio_map_t *atrack,
|
||||||
|
+ const AVCodec *encoder,
|
||||||
|
+ const AVCodec *decoder)
|
||||||
|
{
|
||||||
|
quicktime_ffmpeg_audio_codec_t *codec;
|
||||||
|
|
||||||
|
--- a/plugins/ffmpeg/ffmpeg.h
|
||||||
|
+++ b/plugins/ffmpeg/ffmpeg.h
|
||||||
|
@@ -30,10 +30,12 @@
|
||||||
|
|
||||||
|
void quicktime_init_video_codec_ffmpeg(quicktime_codec_t * codec,
|
||||||
|
quicktime_video_map_t *vtrack,
|
||||||
|
- AVCodec *encoder, AVCodec *decoder);
|
||||||
|
+ const AVCodec *encoder,
|
||||||
|
+ const AVCodec *decoder);
|
||||||
|
void quicktime_init_audio_codec_ffmpeg(quicktime_codec_t * codec,
|
||||||
|
quicktime_audio_map_t *vtrack,
|
||||||
|
- AVCodec *encoder, AVCodec *decoder);
|
||||||
|
+ const AVCodec *encoder,
|
||||||
|
+ const AVCodec *decoder);
|
||||||
|
|
||||||
|
void lqt_ffmpeg_set_parameter(AVCodecContext * ctx,
|
||||||
|
#if LIBAVCODEC_VERSION_MAJOR >= 54
|
||||||
|
--- a/plugins/ffmpeg/lqt_ffmpeg.c
|
||||||
|
+++ b/plugins/ffmpeg/lqt_ffmpeg.c
|
||||||
|
@@ -315,8 +315,8 @@ struct CODECIDMAP
|
||||||
|
{
|
||||||
|
int id;
|
||||||
|
int index;
|
||||||
|
- AVCodec *encoder;
|
||||||
|
- AVCodec *decoder;
|
||||||
|
+ AVCodec const *encoder;
|
||||||
|
+ AVCodec const *decoder;
|
||||||
|
lqt_parameter_info_static_t * encode_parameters;
|
||||||
|
lqt_parameter_info_static_t * decode_parameters;
|
||||||
|
lqt_image_size_static_t * image_sizes;
|
||||||
|
@@ -947,7 +947,9 @@ static void ffmpeg_map_init(void)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if LIBAVCODEC_VERSION_MAJOR < 59
|
||||||
|
avcodec_register_all();
|
||||||
|
+#endif
|
||||||
|
// avcodec_init();
|
||||||
|
ffmpeg_num_video_codecs = 0;
|
||||||
|
ffmpeg_num_audio_codecs = 0;
|
||||||
|
--- a/plugins/ffmpeg/params.c
|
||||||
|
+++ b/plugins/ffmpeg/params.c
|
||||||
|
@@ -124,12 +124,14 @@ typedef struct
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
+#if LIBAVCODEC_VERSION_MAJOR < 59
|
||||||
|
enum_t prediction_method[] =
|
||||||
|
{
|
||||||
|
{ "Left", FF_PRED_LEFT },
|
||||||
|
{ "Plane", FF_PRED_PLANE },
|
||||||
|
{ "Median", FF_PRED_MEDIAN }
|
||||||
|
};
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
enum_t compare_func[] =
|
||||||
|
{
|
||||||
|
@@ -193,7 +195,9 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
|
||||||
|
PARAM_INT("ff_max_qdiff",max_qdiff);
|
||||||
|
PARAM_INT("ff_max_b_frames",max_b_frames);
|
||||||
|
PARAM_FLOAT("ff_b_quant_factor",b_quant_factor);
|
||||||
|
+#if LIBAVCODEC_VERSION_MAJOR < 59
|
||||||
|
PARAM_INT("ff_b_frame_strategy",b_frame_strategy);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#if LIBAVCODEC_VERSION_MAJOR >= 55
|
||||||
|
PARAM_DICT_INT("ff_luma_elim_threshold","luma_elim_threshold");
|
||||||
|
@@ -216,7 +220,9 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
|
||||||
|
PARAM_FLOAT("ff_spatial_cplx_masking",spatial_cplx_masking);
|
||||||
|
PARAM_FLOAT("ff_p_masking",p_masking);
|
||||||
|
PARAM_FLOAT("ff_dark_masking",dark_masking);
|
||||||
|
+#if LIBAVCODEC_VERSION_MAJOR < 59
|
||||||
|
PARAM_ENUM("ff_prediction_method",prediction_method,prediction_method);
|
||||||
|
+#endif
|
||||||
|
PARAM_ENUM("ff_me_cmp",me_cmp,compare_func);
|
||||||
|
PARAM_CMP_CHROMA("ff_me_cmp_chroma",me_cmp);
|
||||||
|
PARAM_ENUM("ff_me_sub_cmp",me_sub_cmp,compare_func);
|
||||||
|
@@ -227,17 +233,23 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
|
||||||
|
PARAM_CMP_CHROMA("ff_ildct_cmp_chroma",ildct_cmp);
|
||||||
|
PARAM_INT("ff_dia_size",dia_size);
|
||||||
|
PARAM_INT("ff_last_predictor_count",last_predictor_count);
|
||||||
|
+#if LIBAVCODEC_VERSION_MAJOR < 59
|
||||||
|
PARAM_INT("ff_pre_me",pre_me);
|
||||||
|
+#endif
|
||||||
|
PARAM_ENUM("ff_me_pre_cmp",me_pre_cmp,compare_func);
|
||||||
|
PARAM_CMP_CHROMA("ff_pre_me_cmp_chroma",me_pre_cmp);
|
||||||
|
PARAM_INT("ff_pre_dia_size",pre_dia_size);
|
||||||
|
PARAM_INT("ff_me_subpel_quality",me_subpel_quality);
|
||||||
|
PARAM_INT("ff_me_range",me_range);
|
||||||
|
PARAM_ENUM("ff_mb_decision",mb_decision,mb_decision);
|
||||||
|
+#if LIBAVCODEC_VERSION_MAJOR < 59
|
||||||
|
PARAM_INT("ff_scenechange_threshold",scenechange_threshold);
|
||||||
|
+#endif
|
||||||
|
PARAM_DICT_INT("ff_lmin", "lmin");
|
||||||
|
PARAM_DICT_INT("ff_lmax", "lmax");
|
||||||
|
+#if LIBAVCODEC_VERSION_MAJOR < 59
|
||||||
|
PARAM_INT("ff_noise_reduction",noise_reduction);
|
||||||
|
+#endif
|
||||||
|
PARAM_INT_SCALE("ff_rc_initial_buffer_occupancy",rc_initial_buffer_occupancy,1000);
|
||||||
|
|
||||||
|
#if LIBAVCODEC_VERSION_MAJOR >= 55
|
||||||
|
@@ -253,9 +265,13 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
|
||||||
|
PARAM_DICT_INT("ff_border_masking","border_mask");
|
||||||
|
PARAM_QP2LAMBDA("ff_mb_lmin", mb_lmin);
|
||||||
|
PARAM_QP2LAMBDA("ff_mb_lmax", mb_lmax);
|
||||||
|
+#if LIBAVCODEC_VERSION_MAJOR < 59
|
||||||
|
PARAM_INT("ff_me_penalty_compensation",me_penalty_compensation);
|
||||||
|
+#endif
|
||||||
|
PARAM_INT("ff_bidir_refine",bidir_refine);
|
||||||
|
+#if LIBAVCODEC_VERSION_MAJOR < 59
|
||||||
|
PARAM_INT("ff_brd_scale",brd_scale);
|
||||||
|
+#endif
|
||||||
|
PARAM_FLAG("ff_flag_qscale",AV_CODEC_FLAG_QSCALE);
|
||||||
|
PARAM_FLAG("ff_flag_4mv",AV_CODEC_FLAG_4MV);
|
||||||
|
PARAM_FLAG("ff_flag_qpel",AV_CODEC_FLAG_QPEL);
|
||||||
|
--- a/plugins/ffmpeg/video.c
|
||||||
|
+++ b/plugins/ffmpeg/video.c
|
||||||
|
@@ -61,8 +61,8 @@ enum AvidYuvRange
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
AVCodecContext * avctx;
|
||||||
|
- AVCodec * encoder;
|
||||||
|
- AVCodec * decoder;
|
||||||
|
+ AVCodec const * encoder;
|
||||||
|
+ AVCodec const * decoder;
|
||||||
|
int initialized;
|
||||||
|
|
||||||
|
int decoding_delay;
|
||||||
|
@@ -878,10 +878,12 @@ static int lqt_ffmpeg_decode_video(quick
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
- if(avcodec_decode_video2(codec->avctx,
|
||||||
|
- codec->frame,
|
||||||
|
- &got_pic,
|
||||||
|
- &codec->pkt) < 0)
|
||||||
|
+ if(avcodec_send_packet(codec->avctx, &codec->pkt) == 0 &&
|
||||||
|
+ avcodec_receive_frame(codec->avctx, codec->frame) == 0)
|
||||||
|
+ {
|
||||||
|
+ got_pic = 1;
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
{
|
||||||
|
lqt_log(file, LQT_LOG_ERROR, LOG_DOMAIN, "Skipping corrupted frame");
|
||||||
|
continue;
|
||||||
|
@@ -1062,10 +1064,8 @@ static void resync_ffmpeg(quicktime_t *f
|
||||||
|
#if LIBAVCODEC_BUILD >= ((52<<16)+(26<<8)+0)
|
||||||
|
codec->pkt.data = codec->buffer;
|
||||||
|
codec->pkt.size = buffer_size;
|
||||||
|
- avcodec_decode_video2(codec->avctx,
|
||||||
|
- codec->frame,
|
||||||
|
- &got_pic,
|
||||||
|
- &codec->pkt);
|
||||||
|
+ got_pic = (avcodec_send_packet(codec->avctx, &codec->pkt) == 0 &&
|
||||||
|
+ avcodec_receive_frame(codec->avctx, codec->frame) == 0);
|
||||||
|
#else
|
||||||
|
avcodec_decode_video(codec->avctx,
|
||||||
|
codec->frame,
|
||||||
|
@@ -1139,7 +1139,9 @@ static int init_imx_encoder(quicktime_t
|
||||||
|
codec->avctx->intra_dc_precision = 2;
|
||||||
|
codec->avctx->qmin = 1;
|
||||||
|
codec->avctx->qmax = 3;
|
||||||
|
+#if (LIBAVCODEC_VERSION_MAJOR < 59)
|
||||||
|
codec->avctx->rtp_payload_size = 1; // ??
|
||||||
|
+#endif
|
||||||
|
av_dict_set(&codec->options, "rc_buf_aggressivity", "0.25", 0);
|
||||||
|
codec->avctx->flags |= AV_CODEC_FLAG_INTERLACED_DCT|AV_CODEC_FLAG_LOW_DELAY;
|
||||||
|
|
||||||
|
@@ -1290,7 +1292,6 @@ static int lqt_ffmpeg_encode_video(quick
|
||||||
|
int stats_len;
|
||||||
|
#if ENCODE_VIDEO2
|
||||||
|
AVPacket pkt;
|
||||||
|
- int got_packet;
|
||||||
|
#endif
|
||||||
|
int64_t pts;
|
||||||
|
int kf;
|
||||||
|
@@ -1530,16 +1531,12 @@ static int lqt_ffmpeg_encode_video(quick
|
||||||
|
#if ENCODE_VIDEO2 // New
|
||||||
|
av_init_packet(&pkt);
|
||||||
|
pkt.data = codec->buffer;
|
||||||
|
- pkt.size = codec->buffer_alloc;
|
||||||
|
+ pkt.size = bytes_encoded = codec->buffer_alloc;
|
||||||
|
|
||||||
|
- if(avcodec_encode_video2(codec->avctx, &pkt, codec->frame, &got_packet) < 0)
|
||||||
|
+ if(avcodec_send_frame(codec->avctx, codec->frame) < 0 ||
|
||||||
|
+ avcodec_receive_packet(codec->avctx, &pkt) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
- if(got_packet)
|
||||||
|
- bytes_encoded = pkt.size;
|
||||||
|
- else
|
||||||
|
- bytes_encoded = 0;
|
||||||
|
-
|
||||||
|
pts = pkt.pts;
|
||||||
|
kf = !!(pkt.flags & AV_PKT_FLAG_KEY);
|
||||||
|
|
||||||
|
@@ -1621,7 +1618,6 @@ static int flush(quicktime_t *file, int
|
||||||
|
|
||||||
|
#if ENCODE_VIDEO2
|
||||||
|
AVPacket pkt;
|
||||||
|
- int got_packet;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Do nothing if we didn't encode anything yet */
|
||||||
|
@@ -1631,18 +1627,13 @@ static int flush(quicktime_t *file, int
|
||||||
|
#if ENCODE_VIDEO2
|
||||||
|
av_init_packet(&pkt);
|
||||||
|
pkt.data = codec->buffer;
|
||||||
|
- pkt.size = codec->buffer_alloc;
|
||||||
|
+ pkt.size = bytes_encoded = codec->buffer_alloc;
|
||||||
|
|
||||||
|
- if(avcodec_encode_video2(codec->avctx, &pkt, (AVFrame*)0, &got_packet) < 0)
|
||||||
|
+ if(avcodec_send_frame(codec->avctx, NULL) < 0 ||
|
||||||
|
+ avcodec_receive_packet(codec->avctx, &pkt) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
- if(got_packet)
|
||||||
|
- bytes_encoded = pkt.size;
|
||||||
|
- else
|
||||||
|
- return 0;
|
||||||
|
-
|
||||||
|
pts = pkt.pts;
|
||||||
|
-
|
||||||
|
kf = !!(pkt.flags & AV_PKT_FLAG_KEY);
|
||||||
|
|
||||||
|
#else
|
||||||
|
@@ -1872,8 +1863,8 @@ static int init_compressed_dv(quicktime_
|
||||||
|
|
||||||
|
void quicktime_init_video_codec_ffmpeg(quicktime_codec_t * codec_base,
|
||||||
|
quicktime_video_map_t *vtrack,
|
||||||
|
- AVCodec *encoder,
|
||||||
|
- AVCodec *decoder)
|
||||||
|
+ const AVCodec *encoder,
|
||||||
|
+ const AVCodec *decoder)
|
||||||
|
{
|
||||||
|
quicktime_ffmpeg_video_codec_t *codec;
|
||||||
|
char *compressor;
|
@ -1,15 +1,13 @@
|
|||||||
Name: libquicktime
|
Name: libquicktime
|
||||||
Version: 1.2.4
|
Version: 1.2.4
|
||||||
Release: 2mamba
|
Release: 3mamba
|
||||||
Summary: Library for reading and writing quicktime files
|
Summary: Library for reading and writing quicktime files
|
||||||
Group: System/Libraries
|
Group: System/Libraries
|
||||||
Vendor: openmamba
|
Vendor: openmamba
|
||||||
Distribution: openmamba
|
Distribution: openmamba
|
||||||
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
|
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||||
URL: http://libquicktime.sourceforge.net/
|
URL: https://libquicktime.sourceforge.net/
|
||||||
Source: http://downloads.sourceforge.net/libquicktime/libquicktime-%{version}.tar.gz
|
Source: http://downloads.sourceforge.net/libquicktime/libquicktime-%{version}.tar.gz
|
||||||
Patch0: %{name}-1.1.3-x264.patch
|
|
||||||
Patch1: %{name}-1.2.1-gtk-2.22.patch
|
|
||||||
Patch2: libquicktime-1.2.4-CVE-2016-2399.patch
|
Patch2: libquicktime-1.2.4-CVE-2016-2399.patch
|
||||||
Patch3: libquicktime-1.2.4-CVE-2017-9122.patch
|
Patch3: libquicktime-1.2.4-CVE-2017-9122.patch
|
||||||
Patch4: libquicktime-1.2.4-faad2.patch
|
Patch4: libquicktime-1.2.4-faad2.patch
|
||||||
@ -18,49 +16,40 @@ Patch6: libquicktime-1.2.4-ffmpeg2.patch
|
|||||||
Patch7: libquicktime-1.2.4-ffmpeg29.patch
|
Patch7: libquicktime-1.2.4-ffmpeg29.patch
|
||||||
Patch8: libquicktime-1.2.4-ffmpeg4.patch
|
Patch8: libquicktime-1.2.4-ffmpeg4.patch
|
||||||
Patch9: libquicktime-1.2.4-libavutil.patch
|
Patch9: libquicktime-1.2.4-libavutil.patch
|
||||||
|
Patch10: libquicktime-1.2.4-ffmpeg5.patch
|
||||||
License: GPL
|
License: GPL
|
||||||
## AUTOBUILDREQ-BEGIN
|
## AUTOBUILDREQ-BEGIN
|
||||||
BuildRequires: glibc-devel
|
BuildRequires: glibc-devel
|
||||||
BuildRequires: ldconfig
|
|
||||||
BuildRequires: libGL-devel
|
|
||||||
BuildRequires: libICE-devel
|
BuildRequires: libICE-devel
|
||||||
BuildRequires: libSM-devel
|
BuildRequires: libSM-devel
|
||||||
BuildRequires: libX11-devel
|
BuildRequires: libX11-devel
|
||||||
BuildRequires: libXau-devel
|
|
||||||
BuildRequires: libXaw-devel
|
BuildRequires: libXaw-devel
|
||||||
BuildRequires: libXdmcp-devel
|
|
||||||
BuildRequires: libXext-devel
|
BuildRequires: libXext-devel
|
||||||
BuildRequires: libXt-devel
|
BuildRequires: libXt-devel
|
||||||
BuildRequires: libXv-devel
|
BuildRequires: libXv-devel
|
||||||
BuildRequires: libalsa-devel
|
BuildRequires: libalsa-devel
|
||||||
BuildRequires: libatk-devel
|
BuildRequires: libat-spi2-core-devel
|
||||||
BuildRequires: libavcodec-ffmpeg-devel
|
BuildRequires: libavcodec-ffmpeg-devel
|
||||||
BuildRequires: libbsd-devel
|
|
||||||
BuildRequires: libbzip2-devel
|
|
||||||
BuildRequires: libcairo-devel
|
BuildRequires: libcairo-devel
|
||||||
BuildRequires: libexpat-devel
|
|
||||||
BuildRequires: libfaac-devel
|
BuildRequires: libfaac-devel
|
||||||
BuildRequires: libfaad2-devel
|
BuildRequires: libfaad2-devel
|
||||||
BuildRequires: libfontconfig-devel
|
BuildRequires: libfontconfig-devel
|
||||||
BuildRequires: libfreetype-devel
|
BuildRequires: libfreetype-devel
|
||||||
BuildRequires: libgdk-pixbuf-devel
|
BuildRequires: libgdk-pixbuf-devel
|
||||||
BuildRequires: libglib-devel
|
BuildRequires: libglib-devel
|
||||||
BuildRequires: libgraphite2-devel
|
BuildRequires: libglvnd-devel
|
||||||
BuildRequires: libgtk2-devel
|
BuildRequires: libgtk2-devel
|
||||||
BuildRequires: libharfbuzz-devel
|
BuildRequires: libharfbuzz-devel
|
||||||
BuildRequires: libjpeg-devel
|
BuildRequires: libjpeg-devel
|
||||||
BuildRequires: liblame-devel
|
BuildRequires: liblame-devel
|
||||||
BuildRequires: libogg-devel
|
|
||||||
BuildRequires: liborc-devel
|
BuildRequires: liborc-devel
|
||||||
BuildRequires: libpango-devel
|
BuildRequires: libpango-devel
|
||||||
BuildRequires: libpng-devel
|
BuildRequires: libpng-devel
|
||||||
BuildRequires: libschroedinger-devel
|
BuildRequires: libschroedinger-devel
|
||||||
BuildRequires: libstdc++6-devel
|
BuildRequires: libsndio-devel
|
||||||
BuildRequires: libswscale-ffmpeg-devel
|
BuildRequires: libswscale-ffmpeg-devel
|
||||||
BuildRequires: libuuid-devel
|
|
||||||
BuildRequires: libvorbis-devel
|
BuildRequires: libvorbis-devel
|
||||||
BuildRequires: libx264-devel
|
BuildRequires: libx264-devel
|
||||||
BuildRequires: libxcb-devel
|
|
||||||
BuildRequires: libz-devel
|
BuildRequires: libz-devel
|
||||||
## AUTOBUILDREQ-END
|
## AUTOBUILDREQ-END
|
||||||
BuildRequires: libavc1394-devel >= 0.4.1
|
BuildRequires: libavc1394-devel >= 0.4.1
|
||||||
@ -96,14 +85,15 @@ Useful tools to operate on QuickTime files.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch2 -p1
|
%patch 2 -p1
|
||||||
%patch3 -p1
|
%patch 3 -p1
|
||||||
%patch4 -p1
|
%patch 4 -p1
|
||||||
%patch5 -p1
|
%patch 5 -p1
|
||||||
%patch6 -p1
|
%patch 6 -p1
|
||||||
%patch7 -p1
|
%patch 7 -p1
|
||||||
%patch8 -p1
|
%patch 8 -p1
|
||||||
%patch9 -p1
|
%patch 9 -p1
|
||||||
|
%patch 10 -p1 -b .ffmpeg5
|
||||||
|
|
||||||
autoreconf -f -i
|
autoreconf -f -i
|
||||||
|
|
||||||
@ -154,10 +144,8 @@ ln -s lqt %{buildroot}%{_includedir}/quicktime
|
|||||||
%defattr(-, root, root)
|
%defattr(-, root, root)
|
||||||
%{_includedir}/*
|
%{_includedir}/*
|
||||||
%{_libdir}/*.a
|
%{_libdir}/*.a
|
||||||
%{_libdir}/*.la
|
|
||||||
%{_libdir}/*.so
|
%{_libdir}/*.so
|
||||||
%{_libdir}/%{name}/*.a
|
%{_libdir}/%{name}/*.a
|
||||||
%{_libdir}/%{name}/*.la
|
|
||||||
%{_libdir}/pkgconfig/%{name}.pc
|
%{_libdir}/pkgconfig/%{name}.pc
|
||||||
%{_datadir}/doc/libquicktime/apiref/*
|
%{_datadir}/doc/libquicktime/apiref/*
|
||||||
%doc ChangeLog NEWS README TODO
|
%doc ChangeLog NEWS README TODO
|
||||||
@ -172,6 +160,10 @@ ln -s lqt %{buildroot}%{_includedir}/quicktime
|
|||||||
%{_mandir}/man1/*
|
%{_mandir}/man1/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon May 06 2024 Automatic Build System <autodist@openmamba.org> 1.2.4-3mamba
|
||||||
|
- rebuilt to remove .la files
|
||||||
|
- added ffmpeg5 patch
|
||||||
|
|
||||||
* Sat Dec 12 2020 Silvan Calarco <silvan.calarco@mambasoft.it> 1.2.4-2mamba
|
* Sat Dec 12 2020 Silvan Calarco <silvan.calarco@mambasoft.it> 1.2.4-2mamba
|
||||||
- rebuilt with debug package and patches from Arch linux
|
- rebuilt with debug package and patches from Arch linux
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user