diff --git a/gstreamer1-libav-ffmpeg44-fix.patch b/gstreamer1-libav-ffmpeg44-fix.patch deleted file mode 100644 index 310a4d4..0000000 --- a/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/gstreamer1-libav.spec b/gstreamer1-libav.spec index 6e41719..a8e850a 100644 --- a/gstreamer1-libav.spec +++ b/gstreamer1-libav.spec @@ -1,11 +1,10 @@ Name: gstreamer1-libav Version: 1.18.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GStreamer 1.0 libav-based plug-ins 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 @@ -70,6 +69,9 @@ plug-in. %endif %changelog +* 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