Compare commits

...

3 Commits
el9 ... i9-beta

3
.gitignore vendored

@ -1,2 +1 @@
/gst-libav-*.tar.xz
/gstreamer1-libav-*.src.rpm
SOURCES/gst-libav-1.22.1.tar.xz

@ -0,0 +1 @@
bfe4c11bda19073b325babb721201b7b26ee3ae2 SOURCES/gst-libav-1.22.1.tar.xz

@ -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,13 +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
* Mon Sep 05 2022 Leigh Scott <leigh123linux@gmail.com> - 1.18.4-2
- Rebuild for ffmpeg
* Mon Oct 23 2023 Arkady L. Shane <tigro@msvsphere-os.ru> - 1.22.5-1
- Rebuilt for MSVSphere 9.2
- Debranding
* Mon Mar 13 2023 Wim Taymans <wtaymans@redhat.com> - 1.22.1-1
- Update to 1.22.1
* Sun Mar 12 2023 Neal Gompa <ngompa@fedoraproject.org> - 1.22.0-2
- Patch and rebuild for ffmpeg 6.0
* Tue Jan 24 2023 Wim Taymans <wtaymans@redhat.com> - 1.22.0-1
- Update to 1.22.0
* Fri Jan 20 2023 Wim Taymans <wtaymans@redhat.com> - 1.21.90-1
- Update to 1.21.90
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.20.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Wed Jan 11 2023 Neal Gompa <ngompa@fedoraproject.org> - 1.20.5-1
- Update to 1.20.5
* Mon Nov 21 2022 Neal Gompa <ngompa@fedoraproject.org> - 1.20.4-1
- Update to 1.20.4
* Fri Sep 09 2022 Neal Gompa <ngompa@fedoraproject.org> - 1.20.3-5
- Add arched provides for gstreamer1-libav name
* Thu Sep 08 2022 Neal Gompa <ngompa@fedoraproject.org> - 1.20.3-4
- Rename to gstreamer1-plugin-libav to migrate to Fedora
* Sun Sep 04 2022 Leigh Scott <leigh123linux@gmail.com> - 1:1.20.3-3
- Add requires ffmpeg-libs
* Sun Aug 07 2022 RPM Fusion Release Engineering <sergiomb@rpmfusion.org> - 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 <vitaly@easycoding.org> - 1:1.20.3-1
- Updated to version 1.20.3.
* Mon Jul 18 2022 Leigh Scott <leigh123linux@gmail.com> - 1:1.20.0-2
- Fix rfbz#6354
* Sun Feb 06 2022 Sérgio Basto <sergio@serjux.com> - 1:1.20.0-1
- Update gstreamer1-libav to 1.20.0
* Mon Nov 15 2021 Sérgio Basto <sergio@serjux.com> - 1:1.19.3-2
- Rebuilt for new ffmpeg snapshot
* Mon Nov 15 2021 Sérgio Basto <sergio@serjux.com> - 1:1.19.3-1
- Update gstreamer1-libav to 1.19.3
* Thu Nov 11 2021 Leigh Scott <leigh123linux@gmail.com> - 1:1.19.2-2
- Rebuilt for new ffmpeg snapshot
* Sat Oct 09 2021 Sérgio Basto <sergio@serjux.com> - 1:1.19.2-1
- Update gstreamer1-libav to 1.19.2
* Mon Aug 02 2021 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 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 <leigh123linux@gmail.com> - 1.19.1-1
- Update
* Wed Mar 24 2021 Leigh Scott <leigh123linux@gmail.com> - 1.18.4-2
- Drop patch
* Wed Mar 17 2021 Leigh Scott <leigh123linux@gmail.com> - 1.18.4-1
- 1.18.4

@ -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 <ole.andre.ravnas@tandberg.com>
+2007-11-08 14:44:36 +0000 Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>
@@ -4281 +4281 @@
- Patch by: Ole André Vadla Ravnås <ole dot andre dot ravnas at tandberg dot com>
+ Patch by: Ole André Vadla Ravnås <ole dot andre dot ravnas at tandberg dot com>

@ -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,

@ -1 +0,0 @@
SHA512 (gst-libav-1.18.4.tar.xz) = 4eb10af6698f724bbc8d5b7b215e7349e6ff3b52e24b3987ee4077db1ae27ae0d6f25309adc50f0fccdf5af4d617634a7339ad1e5466a737c40a25c52c0d023f
Loading…
Cancel
Save