diff --git a/.gitignore b/.gitignore index 9cb4b32..46792f7 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/gst-libav-1.18.4.tar.xz +SOURCES/gst-libav-1.22.1.tar.xz diff --git a/.gstreamer1-libav.metadata b/.gstreamer1-libav.metadata index 4783ede..cc30b69 100644 --- a/.gstreamer1-libav.metadata +++ b/.gstreamer1-libav.metadata @@ -1 +1 @@ -3a0968181ad3deb82d2667174b013533ac2b4ea7 SOURCES/gst-libav-1.18.4.tar.xz +bfe4c11bda19073b325babb721201b7b26ee3ae2 SOURCES/gst-libav-1.22.1.tar.xz diff --git a/SOURCES/gst-ffmpeg-0.10.12-ChangeLog-UTF-8.patch b/SOURCES/gst-ffmpeg-0.10.12-ChangeLog-UTF-8.patch deleted file mode 100644 index 1651725..0000000 --- a/SOURCES/gst-ffmpeg-0.10.12-ChangeLog-UTF-8.patch +++ /dev/null @@ -1,9 +0,0 @@ -diff -U0 gst-ffmpeg-0.10.12/ChangeLog~ gst-ffmpeg-0.10.12/ChangeLog ---- gst-ffmpeg-0.10.12/ChangeLog~ 2011-07-20 12:09:57.000000000 +0200 -+++ gst-ffmpeg-0.10.12/ChangeLog 2011-09-04 10:20:50.064262797 +0200 -@@ -4277 +4277 @@ --2007-11-08 14:44:36 +0000 Ole André Vadla Ravnćs -+2007-11-08 14:44:36 +0000 Ole AndrĂ© Vadla RavnĂ„s -@@ -4281 +4281 @@ -- Patch by: Ole André Vadla Ravnćs -+ Patch by: Ole AndrĂ© Vadla RavnĂ„s diff --git a/SOURCES/gstreamer1-libav-ffmpeg44-fix.patch b/SOURCES/gstreamer1-libav-ffmpeg44-fix.patch deleted file mode 100644 index 310a4d4..0000000 --- a/SOURCES/gstreamer1-libav-ffmpeg44-fix.patch +++ /dev/null @@ -1,223 +0,0 @@ ---- gst-libav-1.18.2.old/ext/libav/gstavdemux.c 2021-02-26 16:47:35.842537392 -0800 -+++ gst-libav-1.18.2.new/ext/libav/gstavdemux.c 2021-02-26 16:47:55.137537967 -0800 -@@ -41,6 +41,211 @@ - typedef struct _GstFFMpegDemux GstFFMpegDemux; - typedef struct _GstFFStream GstFFStream; - -+typedef struct FFFrac { -+ int64_t val, num, den; -+} FFFrac; -+ -+struct AVStreamInternal { -+ /** -+ * Set to 1 if the codec allows reordering, so pts can be different -+ * from dts. -+ */ -+ int reorder; -+ -+ /** -+ * bitstream filter to run on stream -+ * - encoding: Set by muxer using ff_stream_add_bitstream_filter -+ * - decoding: unused -+ */ -+ AVBSFContext *bsfc; -+ -+ /** -+ * Whether or not check_bitstream should still be run on each packet -+ */ -+ int bitstream_checked; -+ -+ /** -+ * The codec context used by avformat_find_stream_info, the parser, etc. -+ */ -+ AVCodecContext *avctx; -+ /** -+ * 1 if avctx has been initialized with the values from the codec parameters -+ */ -+ int avctx_inited; -+ -+ enum AVCodecID orig_codec_id; -+ -+ /* the context for extracting extradata in find_stream_info() -+ * inited=1/bsf=NULL signals that extracting is not possible (codec not -+ * supported) */ -+ struct { -+ AVBSFContext *bsf; -+ AVPacket *pkt; -+ int inited; -+ } extract_extradata; -+ -+ /** -+ * Whether the internal avctx needs to be updated from codecpar (after a late change to codecpar) -+ */ -+ int need_context_update; -+ -+ int is_intra_only; -+ -+ FFFrac *priv_pts; -+ -+#define MAX_STD_TIMEBASES (30*12+30+3+6) -+ /** -+ * Stream information used internally by avformat_find_stream_info() -+ */ -+ struct { -+ int64_t last_dts; -+ int64_t duration_gcd; -+ int duration_count; -+ int64_t rfps_duration_sum; -+ double (*duration_error)[2][MAX_STD_TIMEBASES]; -+ int64_t codec_info_duration; -+ int64_t codec_info_duration_fields; -+ int frame_delay_evidence; -+ -+ /** -+ * 0 -> decoder has not been searched for yet. -+ * >0 -> decoder found -+ * <0 -> decoder with codec_id == -found_decoder has not been found -+ */ -+ int found_decoder; -+ -+ int64_t last_duration; -+ -+ /** -+ * Those are used for average framerate estimation. -+ */ -+ int64_t fps_first_dts; -+ int fps_first_dts_idx; -+ int64_t fps_last_dts; -+ int fps_last_dts_idx; -+ -+ } *info; -+ -+ AVIndexEntry *index_entries; /**< Only used if the format does not -+ support seeking natively. */ -+ int nb_index_entries; -+ unsigned int index_entries_allocated_size; -+ -+ int64_t interleaver_chunk_size; -+ int64_t interleaver_chunk_duration; -+ -+ /** -+ * stream probing state -+ * -1 -> probing finished -+ * 0 -> no probing requested -+ * rest -> perform probing with request_probe being the minimum score to accept. -+ */ -+ int request_probe; -+ /** -+ * Indicates that everything up to the next keyframe -+ * should be discarded. -+ */ -+ int skip_to_keyframe; -+ -+ /** -+ * Number of samples to skip at the start of the frame decoded from the next packet. -+ */ -+ int skip_samples; -+ -+ /** -+ * If not 0, the number of samples that should be skipped from the start of -+ * the stream (the samples are removed from packets with pts==0, which also -+ * assumes negative timestamps do not happen). -+ * Intended for use with formats such as mp3 with ad-hoc gapless audio -+ * support. -+ */ -+ int64_t start_skip_samples; -+ -+ /** -+ * If not 0, the first audio sample that should be discarded from the stream. -+ * This is broken by design (needs global sample count), but can't be -+ * avoided for broken by design formats such as mp3 with ad-hoc gapless -+ * audio support. -+ */ -+ int64_t first_discard_sample; -+ -+ /** -+ * The sample after last sample that is intended to be discarded after -+ * first_discard_sample. Works on frame boundaries only. Used to prevent -+ * early EOF if the gapless info is broken (considered concatenated mp3s). -+ */ -+ int64_t last_discard_sample; -+ -+ /** -+ * Number of internally decoded frames, used internally in libavformat, do not access -+ * its lifetime differs from info which is why it is not in that structure. -+ */ -+ int nb_decoded_frames; -+ -+ /** -+ * Timestamp offset added to timestamps before muxing -+ */ -+ int64_t mux_ts_offset; -+ -+ /** -+ * Internal data to check for wrapping of the time stamp -+ */ -+ int64_t pts_wrap_reference; -+ -+ /** -+ * Options for behavior, when a wrap is detected. -+ * -+ * Defined by AV_PTS_WRAP_ values. -+ * -+ * If correction is enabled, there are two possibilities: -+ * If the first time stamp is near the wrap point, the wrap offset -+ * will be subtracted, which will create negative time stamps. -+ * Otherwise the offset will be added. -+ */ -+ int pts_wrap_behavior; -+ -+ /** -+ * Internal data to prevent doing update_initial_durations() twice -+ */ -+ int update_initial_durations_done; -+ -+#define MAX_REORDER_DELAY 16 -+ -+ /** -+ * Internal data to generate dts from pts -+ */ -+ int64_t pts_reorder_error[MAX_REORDER_DELAY+1]; -+ uint8_t pts_reorder_error_count[MAX_REORDER_DELAY+1]; -+ -+ int64_t pts_buffer[MAX_REORDER_DELAY+1]; -+ -+ /** -+ * Internal data to analyze DTS and detect faulty mpeg streams -+ */ -+ int64_t last_dts_for_order_check; -+ uint8_t dts_ordered; -+ uint8_t dts_misordered; -+ -+ /** -+ * Internal data to inject global side data -+ */ -+ int inject_global_side_data; -+ -+ /** -+ * display aspect ratio (0 if unknown) -+ * - encoding: unused -+ * - decoding: Set by libavformat to calculate sample_aspect_ratio internally -+ */ -+ AVRational display_aspect_ratio; -+ -+ AVProbeData probe_data; -+ -+ /** -+ * last packet in packet_buffer for this stream when muxing. -+ */ -+ struct AVPacketList *last_in_packet_buffer; -+}; -+ - struct _GstFFStream - { - GstPad *pad; -@@ -483,7 +688,7 @@ gst_ffmpegdemux_do_seek (GstFFMpegDemux - GST_LOG_OBJECT (demux, "keyframeidx: %d", keyframeidx); - - if (keyframeidx >= 0) { -- fftarget = stream->index_entries[keyframeidx].timestamp; -+ fftarget = stream->internal->index_entries[keyframeidx].timestamp; - target = gst_ffmpeg_time_ff_to_gst (fftarget, stream->time_base); - - GST_LOG_OBJECT (demux, diff --git a/SPECS/gstreamer1-libav.spec b/SPECS/gstreamer1-libav.spec index 536b7bd..193a54f 100644 --- a/SPECS/gstreamer1-libav.spec +++ b/SPECS/gstreamer1-libav.spec @@ -1,11 +1,10 @@ Name: gstreamer1-libav -Version: 1.18.4 -Release: 2%{?dist} -Summary: GStreamer 1.0 libav-based plug-ins +Version: 1.22.1 +Release: 1%{?dist} +Summary: GStreamer FFmpeg/LibAV plugin License: LGPLv2+ URL: https://gstreamer.freedesktop.org/ Source0: %{url}/src/gst-libav/gst-libav-%{version}.tar.xz -Patch0: https://gitlab.freedesktop.org/gstreamer/gst-libav/uploads/1340cbe52e8384f4aa92b147b804f64f/gstreamer1-libav-ffmpeg44-fix.patch BuildRequires: gcc-c++ BuildRequires: meson @@ -14,17 +13,17 @@ BuildRequires: gstreamer1-plugins-base-devel >= %{version} BuildRequires: orc-devel BuildRequires: bzip2-devel BuildRequires: zlib-devel -BuildRequires: compat-ffmpeg4-devel +BuildRequires: ffmpeg-devel %description GStreamer is a streaming media framework, based on graphs of filters which operate on media data. Applications using this library can do anything from real-time sound processing to playing videos, and just about anything else media-related. Its plugin-based architecture means that new data -types or processing capabilities can be added simply by installing new +types or processing capabilities can be added simply by installing new plugins. -This package provides libav-based GStreamer plug-ins. +This package provides FFmpeg/LibAV GStreamer plugin. %if 0 # gstreamer1 uses hotdoc which isn't provided yet @@ -37,20 +36,18 @@ BuildArch: noarch GStreamer is a streaming media framework, based on graphs of elements which operate on media data. -This package contains the development documentation for the libav GStreamer -plug-in. +This package contains the development documentation for the FFmpeg/LibAV GStreamer +plugin. %endif %prep %autosetup -p1 -n gst-libav-%{version} - %build -export PKG_CONFIG_PATH="%{_libdir}/compat-ffmpeg4/pkgconfig" %meson \ - -D package-name='gst-libav 1.0 rpmfusion rpm' \ - -D package-origin='http://rpmfusion.org/' \ + -D package-name="MSVSphere GStreamer-libav package" \ + -D package-origin="http://msvsphere-os.ru" \ -D doc=disabled %meson_build @@ -66,16 +63,78 @@ export PKG_CONFIG_PATH="%{_libdir}/compat-ffmpeg4/pkgconfig" %if 0 %files devel-docs -# Take the dir and everything below it for proper dir ownership -%doc %{_datadir}/gtk-doc +%doc %{_datadir}/gtk-doc/gst-libav-1.0/ %endif %changelog -* Tue Jul 18 2023 Arkady L. Shane - 1.18.4-2 +* Mon Oct 23 2023 Arkady L. Shane - 1.22.5-1 - Rebuilt for MSVSphere 9.2 +- Debranding + +* Mon Mar 13 2023 Wim Taymans - 1.22.1-1 +- Update to 1.22.1 + +* Sun Mar 12 2023 Neal Gompa - 1.22.0-2 +- Patch and rebuild for ffmpeg 6.0 + +* Tue Jan 24 2023 Wim Taymans - 1.22.0-1 +- Update to 1.22.0 + +* Fri Jan 20 2023 Wim Taymans - 1.21.90-1 +- Update to 1.21.90 + +* Thu Jan 19 2023 Fedora Release Engineering - 1.20.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jan 11 2023 Neal Gompa - 1.20.5-1 +- Update to 1.20.5 + +* Mon Nov 21 2022 Neal Gompa - 1.20.4-1 +- Update to 1.20.4 + +* Fri Sep 09 2022 Neal Gompa - 1.20.3-5 +- Add arched provides for gstreamer1-libav name + +* Thu Sep 08 2022 Neal Gompa - 1.20.3-4 +- Rename to gstreamer1-plugin-libav to migrate to Fedora + +* Sun Sep 04 2022 Leigh Scott - 1:1.20.3-3 +- Add requires ffmpeg-libs + +* Sun Aug 07 2022 RPM Fusion Release Engineering - 1:1.20.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg + 5.1 + +* Fri Jul 22 2022 Vitaly Zaitsev - 1:1.20.3-1 +- Updated to version 1.20.3. + +* Mon Jul 18 2022 Leigh Scott - 1:1.20.0-2 +- Fix rfbz#6354 + +* Sun Feb 06 2022 SĂ©rgio Basto - 1:1.20.0-1 +- Update gstreamer1-libav to 1.20.0 + +* Mon Nov 15 2021 SĂ©rgio Basto - 1:1.19.3-2 +- Rebuilt for new ffmpeg snapshot + +* Mon Nov 15 2021 SĂ©rgio Basto - 1:1.19.3-1 +- Update gstreamer1-libav to 1.19.3 + +* Thu Nov 11 2021 Leigh Scott - 1:1.19.2-2 +- Rebuilt for new ffmpeg snapshot + +* Sat Oct 09 2021 SĂ©rgio Basto - 1:1.19.2-1 +- Update gstreamer1-libav to 1.19.2 + +* Mon Aug 02 2021 RPM Fusion Release Engineering - 1:1.19.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild +- gstreamer1.prov is broken and hangs, workarround it + +* Tue Jun 08 2021 Leigh Scott - 1.19.1-1 +- Update -* Mon Sep 05 2022 Leigh Scott - 1.18.4-2 -- Rebuild for ffmpeg +* Wed Mar 24 2021 Leigh Scott - 1.18.4-2 +- Drop patch * Wed Mar 17 2021 Leigh Scott - 1.18.4-1 - 1.18.4