* Mon Aug 26 2013 Hans de Goede <j.w.r.degoede@gmail.com> - 1.2.4-10

- Really fix build with FFmpeg 2.0x
el8
Hans de Goede 12 years ago
parent ee8eed490a
commit b2652a3e23

@ -1,6 +1,22 @@
--- plugins/ffmpeg/params.c 2012/03/07 14:10:41 1.18 diff -up libquicktime-1.2.4/plugins/ffmpeg/audio.c.backport libquicktime-1.2.4/plugins/ffmpeg/audio.c
+++ plugins/ffmpeg/params.c 2013/05/07 09:18:51 1.19 --- libquicktime-1.2.4/plugins/ffmpeg/audio.c.backport 2012-03-29 21:44:28.000000000 +0200
@@ -101,6 +101,17 @@ +++ libquicktime-1.2.4/plugins/ffmpeg/audio.c 2013-08-26 12:14:47.099995207 +0200
@@ -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 */
diff -up libquicktime-1.2.4/plugins/ffmpeg/params.c.backport libquicktime-1.2.4/plugins/ffmpeg/params.c
--- libquicktime-1.2.4/plugins/ffmpeg/params.c.backport 2012-03-07 15:10:41.000000000 +0100
+++ libquicktime-1.2.4/plugins/ffmpeg/params.c 2013-08-26 12:14:47.098995232 +0200
@@ -101,6 +101,17 @@ typedef struct
} \ } \
} }
@ -18,7 +34,7 @@
#define PARAM_DICT_FLAG(name, dict_name) \ #define PARAM_DICT_FLAG(name, dict_name) \
{ \ { \
if(!strcasecmp(name, key)) \ if(!strcasecmp(name, key)) \
@@ -202,8 +213,15 @@ @@ -202,8 +213,15 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
PARAM_INT("ff_max_b_frames",max_b_frames); PARAM_INT("ff_max_b_frames",max_b_frames);
PARAM_FLOAT("ff_b_quant_factor",b_quant_factor); PARAM_FLOAT("ff_b_quant_factor",b_quant_factor);
PARAM_INT("ff_b_frame_strategy",b_frame_strategy); PARAM_INT("ff_b_frame_strategy",b_frame_strategy);
@ -34,7 +50,7 @@
PARAM_INT("ff_strict_std_compliance",strict_std_compliance); PARAM_INT("ff_strict_std_compliance",strict_std_compliance);
PARAM_QP2LAMBDA("ff_b_quant_offset",b_quant_offset); PARAM_QP2LAMBDA("ff_b_quant_offset",b_quant_offset);
PARAM_INT("ff_rc_min_rate",rc_min_rate); PARAM_INT("ff_rc_min_rate",rc_min_rate);
@@ -241,8 +259,15 @@ @@ -241,8 +259,15 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
PARAM_QP2LAMBDA("ff_lmax", lmax); PARAM_QP2LAMBDA("ff_lmax", lmax);
PARAM_INT("ff_noise_reduction",noise_reduction); PARAM_INT("ff_noise_reduction",noise_reduction);
PARAM_INT_SCALE("ff_rc_initial_buffer_occupancy",rc_initial_buffer_occupancy,1000); PARAM_INT_SCALE("ff_rc_initial_buffer_occupancy",rc_initial_buffer_occupancy,1000);
@ -50,7 +66,7 @@
PARAM_INT("ff_thread_count",thread_count); PARAM_INT("ff_thread_count",thread_count);
PARAM_INT("ff_me_threshold",me_threshold); PARAM_INT("ff_me_threshold",me_threshold);
PARAM_INT("ff_mb_threshold",mb_threshold); PARAM_INT("ff_mb_threshold",mb_threshold);
@@ -272,8 +297,16 @@ @@ -272,8 +297,16 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
PARAM_FLAG("ff_flag_bitexact",CODEC_FLAG_BITEXACT); PARAM_FLAG("ff_flag_bitexact",CODEC_FLAG_BITEXACT);
PARAM_FLAG("ff_flag_ac_pred",CODEC_FLAG_AC_PRED); PARAM_FLAG("ff_flag_ac_pred",CODEC_FLAG_AC_PRED);
// PARAM_FLAG("ff_flag_h263p_umv",CODEC_FLAG_H263P_UMV); // Unused // PARAM_FLAG("ff_flag_h263p_umv",CODEC_FLAG_H263P_UMV); // Unused
@ -67,7 +83,7 @@
#if LIBAVCODEC_VERSION_MAJOR >= 54 #if LIBAVCODEC_VERSION_MAJOR >= 54
PARAM_DICT_FLAG("ff_flag_h263p_aiv", "aiv"); PARAM_DICT_FLAG("ff_flag_h263p_aiv", "aiv");
@@ -288,7 +321,6 @@ @@ -288,7 +321,6 @@ void lqt_ffmpeg_set_parameter(AVCodecCon
PARAM_FLAG("ff_flag_loop_filter",CODEC_FLAG_LOOP_FILTER); PARAM_FLAG("ff_flag_loop_filter",CODEC_FLAG_LOOP_FILTER);
PARAM_FLAG("ff_flag_closed_gop",CODEC_FLAG_CLOSED_GOP); PARAM_FLAG("ff_flag_closed_gop",CODEC_FLAG_CLOSED_GOP);
PARAM_FLAG2("ff_flag2_fast",CODEC_FLAG2_FAST); PARAM_FLAG2("ff_flag2_fast",CODEC_FLAG2_FAST);
@ -75,23 +91,10 @@
PARAM_ENUM("ff_coder_type",coder_type,coder_type); PARAM_ENUM("ff_coder_type",coder_type,coder_type);
} }
--- plugins/ffmpeg/audio.c 2012/03/29 19:44:28 1.61 diff -up libquicktime-1.2.4/plugins/ffmpeg/video.c.backport libquicktime-1.2.4/plugins/ffmpeg/video.c
+++ plugins/ffmpeg/audio.c 2013/04/21 21:54:58 1.62 --- libquicktime-1.2.4/plugins/ffmpeg/video.c.backport 2012-02-25 20:46:56.000000000 +0100
@@ -45,6 +45,11 @@ +++ libquicktime-1.2.4/plugins/ffmpeg/video.c 2013-08-26 12:21:24.272962173 +0200
#define ENCODE_AUDIO 1 @@ -400,7 +400,17 @@ static void lqt_ffmpeg_setup_decoding_co
#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/video.c 2012/11/27 15:46:40 1.117
+++ plugins/ffmpeg/video.c 2013/06/05 15:10:48 1.123
@@ -469,7 +469,17 @@
codec->reinterpret_pix_fmt = codec->avctx->pix_fmt; codec->reinterpret_pix_fmt = codec->avctx->pix_fmt;
/* First we try codec-specific colormodel matching. */ /* First we try codec-specific colormodel matching. */
@ -110,7 +113,7 @@
{ {
/* FFMpeg supports PIX_FMT_YUV422P and PIX_FMT_YUV422P10 for DNxHD, which /* FFMpeg supports PIX_FMT_YUV422P and PIX_FMT_YUV422P10 for DNxHD, which
we sometimes interpret as PIX_FMT_YUVJ422P and PIX_FMT_YUVJ422P10. */ we sometimes interpret as PIX_FMT_YUVJ422P and PIX_FMT_YUVJ422P10. */
@@ -731,12 +741,13 @@ @@ -662,12 +672,13 @@ static void lqt_ffmpeg_imx_setup_decodin
codec->y_offset = codec->avctx->height - trak->tkhd.track_height; codec->y_offset = codec->avctx->height - trak->tkhd.track_height;
vtrack->height_extension = 0; vtrack->height_extension = 0;
} else { } else {
@ -126,7 +129,7 @@
/* Now we need a larger temp_frame */ /* Now we need a larger temp_frame */
if (vtrack->temp_frame) { if (vtrack->temp_frame) {
@@ -952,8 +963,9 @@ @@ -883,8 +894,9 @@ static int lqt_ffmpeg_decode_video(quick
&got_pic, &got_pic,
&codec->pkt) < 0) &codec->pkt) < 0)
{ {
@ -138,7 +141,7 @@
} }
#if LIBAVCODEC_VERSION_MAJOR >= 54 #if LIBAVCODEC_VERSION_MAJOR >= 54
@@ -976,15 +988,16 @@ @@ -907,15 +919,16 @@ static int lqt_ffmpeg_decode_video(quick
codec->buffer, codec->buffer,
buffer_size) < 0) buffer_size) < 0)
{ {
@ -158,7 +161,7 @@
} }
} }
@@ -1041,9 +1054,11 @@ @@ -972,9 +985,11 @@ static int lqt_ffmpeg_decode_video(quick
vtrack->chroma_placement = LQT_CHROMA_PLACEMENT_MPEG2; vtrack->chroma_placement = LQT_CHROMA_PLACEMENT_MPEG2;
vtrack->ci.id = LQT_COMPRESSION_D10; vtrack->ci.id = LQT_COMPRESSION_D10;
@ -173,7 +176,7 @@
} }
if(codec->avctx->sample_aspect_ratio.num) if(codec->avctx->sample_aspect_ratio.num)
@@ -1358,7 +1373,7 @@ @@ -1138,7 +1153,7 @@ static int init_imx_encoder(quicktime_t
codec->avctx->gop_size = 0; codec->avctx->gop_size = 0;
codec->avctx->intra_dc_precision = 2; codec->avctx->intra_dc_precision = 2;
codec->avctx->qmin = 1; codec->avctx->qmin = 1;
@ -182,7 +185,7 @@
codec->avctx->rtp_payload_size = 1; // ?? codec->avctx->rtp_payload_size = 1; // ??
codec->avctx->rc_buffer_aggressivity = 0.25; codec->avctx->rc_buffer_aggressivity = 0.25;
codec->avctx->flags |= CODEC_FLAG_INTERLACED_DCT|CODEC_FLAG_LOW_DELAY; codec->avctx->flags |= CODEC_FLAG_INTERLACED_DCT|CODEC_FLAG_LOW_DELAY;
@@ -1613,6 +1628,7 @@ @@ -1294,6 +1309,7 @@ static int lqt_ffmpeg_encode_video(quick
#endif #endif
int64_t pts; int64_t pts;
int kf; int kf;
@ -190,7 +193,7 @@
if(!row_pointers) if(!row_pointers)
{ {
@@ -1667,7 +1683,12 @@ @@ -1335,7 +1351,12 @@ static int lqt_ffmpeg_encode_video(quick
codec->avctx->height = height; codec->avctx->height = height;
lqt_ffmpeg_setup_encoding_colormodel(vtrack); lqt_ffmpeg_setup_encoding_colormodel(vtrack);
@ -204,23 +207,23 @@
lqt_get_pixel_aspect(file, track, &pixel_width, &pixel_height); lqt_get_pixel_aspect(file, track, &pixel_width, &pixel_height);
codec->avctx->sample_aspect_ratio.num = pixel_width; codec->avctx->sample_aspect_ratio.num = pixel_width;
codec->avctx->sample_aspect_ratio.den = pixel_height; codec->avctx->sample_aspect_ratio.den = pixel_height;
@@ -1878,6 +1899,7 @@ @@ -1540,6 +1561,7 @@ static int lqt_ffmpeg_encode_video(quick
else else
bytes_encoded = 0; bytes_encoded = 0;
+ encoded_data = pkt.data; // May be different from codec->buffer! + encoded_data = pkt.data; // May be different from codec->buffer!
pts = pkt.pts * codec->encoding_pts_factor; pts = pkt.pts;
kf = !!(pkt.flags & AV_PKT_FLAG_KEY); kf = !!(pkt.flags & AV_PKT_FLAG_KEY);
@@ -1891,6 +1913,7 @@ @@ -1553,6 +1575,7 @@ static int lqt_ffmpeg_encode_video(quick
if(bytes_encoded < 0) if(bytes_encoded < 0)
return -1; return -1;
+ encoded_data = codec->buffer; + encoded_data = codec->buffer;
pts = codec->avctx->coded_frame->pts * encoding_pts_factor; pts = codec->avctx->coded_frame->pts;
kf = codec->avctx->coded_frame->key_frame; kf = codec->avctx->coded_frame->key_frame;
@@ -1916,9 +1939,13 @@ @@ -1575,9 +1598,13 @@ static int lqt_ffmpeg_encode_video(quick
kf); kf);
result = !quicktime_write_data(file, result = !quicktime_write_data(file,
@ -232,10 +235,10 @@
+ av_free_packet(&pkt); + av_free_packet(&pkt);
+#endif +#endif
+ +
// Must go before lqt_write_frame_header() which increments vtrack->cur_chunk. lqt_write_frame_footer(file, track);
// cur_chunk is a frame number in storage order.
maybe_add_sdtp_entry(file, vtrack->cur_chunk, track); /* Write stats */
@@ -2346,7 +2373,8 @@ @@ -1959,7 +1986,8 @@ void quicktime_init_video_codec_ffmpeg(q
quicktime_match_32(compressor, "mx5p") || quicktime_match_32(compressor, "mx5p") ||
quicktime_match_32(compressor, "mx3n") || quicktime_match_32(compressor, "mx3n") ||
quicktime_match_32(compressor, "mx4n") || quicktime_match_32(compressor, "mx4n") ||

@ -1,13 +1,12 @@
Summary: Library for reading and writing Quicktime files Summary: Library for reading and writing Quicktime files
Name: libquicktime Name: libquicktime
Version: 1.2.4 Version: 1.2.4
Release: 9%{?dist} Release: 10%{?dist}
License: LGPLv2+ License: LGPLv2+
Group: System Environment/Libraries Group: System Environment/Libraries
URL: http://libquicktime.sourceforge.net/ URL: http://libquicktime.sourceforge.net/
Source0: http://downloads.sourceforge.net/libquicktime/%{name}-%{version}.tar.gz Source0: http://downloads.sourceforge.net/libquicktime/%{name}-%{version}.tar.gz
Patch0: libquicktime-backport.patch Patch0: libquicktime-backport.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: libdv-devel BuildRequires: libdv-devel
BuildRequires: libpng-devel libjpeg-devel libGLU-devel BuildRequires: libpng-devel libjpeg-devel libGLU-devel
@ -28,7 +27,8 @@ Group: Applications/Multimedia
%package devel %package devel
Summary: Development files for libquicktime Summary: Development files for libquicktime
Group: Development/Libraries Group: Development/Libraries
Requires: %{name} = %{version}-%{release} zlib-devel pkgconfig Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: zlib-devel
# -------------------------------------------------------------------- # --------------------------------------------------------------------
@ -57,7 +57,7 @@ enhancements. This package contains development files for %{name}.
%prep %prep
%setup -q %setup -q
%patch0 -p0 %patch0 -p1
# -------------------------------------------------------------------- # --------------------------------------------------------------------
@ -82,7 +82,6 @@ make %{?_smp_mflags}
# -------------------------------------------------------------------- # --------------------------------------------------------------------
%install %install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p"
find $RPM_BUILD_ROOT%{_libdir} -type f -a -name \*.la -exec rm {} \; find $RPM_BUILD_ROOT%{_libdir} -type f -a -name \*.la -exec rm {} \;
@ -90,25 +89,18 @@ find $RPM_BUILD_ROOT%{_libdir} -type f -a -name \*.la -exec rm {} \;
%find_lang %{name} %find_lang %{name}
# --------------------------------------------------------------------
%clean
rm -rf $RPM_BUILD_ROOT
# -------------------------------------------------------------------- # --------------------------------------------------------------------
%post -p /sbin/ldconfig %post -p /sbin/ldconfig
%postun -p /sbin/ldconfig %postun -p /sbin/ldconfig
%files -f %{name}.lang %files -f %{name}.lang
%defattr(-,root,root,-)
%doc COPYING README TODO %doc COPYING README TODO
%{_libdir}/%{name}*.so.* %{_libdir}/%{name}*.so.*
%dir %{_libdir}/%{name} %dir %{_libdir}/%{name}
%{_libdir}/%{name}/lqt_*.so %{_libdir}/%{name}/lqt_*.so
%files utils %files utils
%defattr(-,root,root,-)
%{_bindir}/libquicktime_config %{_bindir}/libquicktime_config
%{_bindir}/lqt_transcode %{_bindir}/lqt_transcode
%{_bindir}/lqtplay %{_bindir}/lqtplay
@ -123,7 +115,6 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man1/lqtplay.1* %{_mandir}/man1/lqtplay.1*
%files devel %files devel
%defattr(-,root,root,-)
%{_includedir}/lqt/ %{_includedir}/lqt/
%{_libdir}/pkgconfig/libquicktime.pc %{_libdir}/pkgconfig/libquicktime.pc
%{_libdir}/%{name}*.so %{_libdir}/%{name}*.so
@ -131,6 +122,9 @@ rm -rf $RPM_BUILD_ROOT
# -------------------------------------------------------------------- # --------------------------------------------------------------------
%changelog %changelog
* Mon Aug 26 2013 Hans de Goede <j.w.r.degoede@gmail.com> - 1.2.4-10
- Really fix build with FFmpeg 2.0x
* Tue Aug 20 2013 Nicolas Chauvet <kwizart@gmail.com> - 1.2.4-9 * Tue Aug 20 2013 Nicolas Chauvet <kwizart@gmail.com> - 1.2.4-9
- Fix build with FFmpeg 2.0x - Fix build with FFmpeg 2.0x

Loading…
Cancel
Save