diff --git a/multimedia/py-av/files/patch-git-upstream-PR-1110 b/multimedia/py-av/files/patch-git-upstream-PR-1110 new file mode 100644 index 000000000000..fbfa494326e7 --- /dev/null +++ b/multimedia/py-av/files/patch-git-upstream-PR-1110 @@ -0,0 +1,238 @@ +From 8871e13848cbf78615ba7b429d301adc071841ea Mon Sep 17 00:00:00 2001 +From: Mattias Wadman +Date: Tue, 21 Mar 2023 17:01:22 +0100 +Subject: [PATCH] Update to ffmpeg 6.0 + +Removed and renamed constants with entry from API changes +https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/HEAD:/doc/APIchanges + +Remove use of AVCodecContext.sub_text_format + 2021-09-20 - 176b8d785bf - lavc 59.9.100 - avcodec.h + Deprecate AVCodecContext.sub_text_format and the corresponding + AVOptions. It is unused since the last major bump. + +AV_CODEC_CAP_TRUNCATED removed: + 2021-09-20 - dd846bc4a91 - lavc 59.8.100 - avcodec.h codec.h + Deprecate AV_CODEC_FLAG_TRUNCATED and AV_CODEC_CAP_TRUNCATED, + as they are redundant with parsers. + +AV_CODEC_CAP_AUTO_THREADS renamed to AV_CODEC_CAP_AUTO_THREADS + 2021-03-16 - 7d09579190 - lavc 58.132.100 - codec.h + Add AV_CODEC_CAP_OTHER_THREADS as a new name for + AV_CODEC_CAP_AUTO_THREADS. AV_CODEC_CAP_AUTO_THREADS + is now deprecated. + +AV_CODEC_CAP_INTRA_ONLY removed (use AV_CODEC_PROP_INTRA_ONLY instead): +AV_CODEC_CAP_LOSSLESS removed (use AV_CODEC_PROP_LOESSNES instead): + 2020-05-21 - 13b1bbff0b - lavc 58.86.101 - avcodec.h + Deprecated AV_CODEC_CAP_INTRA_ONLY and AV_CODEC_CAP_LOSSLESS. + +AV_CODEC_FLAG_TRUNCATED removed: +AV_CODEC_CAP_TRUNCATED removed: + 2021-09-20 - dd846bc4a91 - lavc 59.8.100 - avcodec.h codec.h + Deprecate AV_CODEC_FLAG_TRUNCATED and AV_CODEC_CAP_TRUNCATED, + as they are redundant with parsers. + +AV_CODEC_FLAG2_DROP_FRAME_TIMECODE removed: + Not API changelog but was removed in f843460eb790d37e444e5946628f228421916537: + avcodec/avcodec: Remove AV_CODEC_FLAG2_DROP_FRAME_TIMECODE + + It has been deprecated in 94d68a4 + and can't be set via AVOptions. The only codecs that use it + (the MPEG-1/2 encoders) have private options for this. + So remove it. + +AVFMT_FLAG_PRIV_OPT removed: + 2021-03-03 - 2ff40b98ec - lavf 58.70.100 - avformat.h + Deprecate AVFMT_FLAG_PRIV_OPT. It will do nothing + as soon as av_demuxer_open() is removed. + +Related to #1106 +--- + av/codec/codec.pyx | 12 ++++-------- + av/codec/context.pyx | 11 ----------- + av/container/core.pyx | 3 --- + include/libavcodec/avcodec.pxd | 10 +--------- + include/libavformat/avformat.pxd | 1 - + scripts/activate.sh | 2 +- + 6 files changed, 6 insertions(+), 33 deletions(-) + +diff --git a/av/codec/codec.pyx b/av/codec/codec.pyx +index ad3198fd..978d4277 100644 +--- av/codec/codec.pyx ++++ av/codec/codec.pyx +@@ -52,7 +52,6 @@ Capabilities = define_enum('Capabilities', 'av.codec', ( + """Codec uses get_buffer() for allocating buffers and supports custom allocators. + If not set, it might not use get_buffer() at all or use operations that + assume the buffer was allocated by avcodec_default_get_buffer."""), +- ('TRUNCATED', lib.AV_CODEC_CAP_TRUNCATED), + ('HWACCEL', 1 << 4), + ('DELAY', lib.AV_CODEC_CAP_DELAY, + """Encoder or decoder requires flushing with NULL input at the end in order to +@@ -102,8 +101,10 @@ Capabilities = define_enum('Capabilities', 'av.codec', ( + """Codec supports slice-based (or partition-based) multithreading."""), + ('PARAM_CHANGE', lib.AV_CODEC_CAP_PARAM_CHANGE, + """Codec supports changed parameters at any point."""), +- ('AUTO_THREADS', lib.AV_CODEC_CAP_AUTO_THREADS, +- """Codec supports avctx->thread_count == 0 (auto)."""), ++ ('AUTO_THREADS', lib.AV_CODEC_CAP_OTHER_THREADS, ++ """Codec supports multithreading through a method other than slice- or ++ frame-level multithreading. Typically this marks wrappers around ++ multithreading-capable external libraries."""), + ('VARIABLE_FRAME_SIZE', lib.AV_CODEC_CAP_VARIABLE_FRAME_SIZE, + """Audio encoder supports receiving a different number of samples in each call."""), + ('AVOID_PROBING', lib.AV_CODEC_CAP_AVOID_PROBING, +@@ -114,10 +115,6 @@ Capabilities = define_enum('Capabilities', 'av.codec', ( + the stream. + A decoder marked with this flag should only be used as last resort + choice for probing."""), +- ('INTRA_ONLY', lib.AV_CODEC_CAP_INTRA_ONLY, +- """Codec is intra only."""), +- ('LOSSLESS', lib.AV_CODEC_CAP_LOSSLESS, +- """Codec is lossless."""), + ('HARDWARE', lib.AV_CODEC_CAP_HARDWARE, + """Codec is backed by a hardware implementation. Typically used to + identify a non-hwaccel hardware decoder. For information about hwaccels, use +@@ -312,7 +309,6 @@ cdef class Codec(object): + + draw_horiz_band = capabilities.flag_property('DRAW_HORIZ_BAND') + dr1 = capabilities.flag_property('DR1') +- truncated = capabilities.flag_property('TRUNCATED') + hwaccel = capabilities.flag_property('HWACCEL') + delay = capabilities.flag_property('DELAY') + small_last_frame = capabilities.flag_property('SMALL_LAST_FRAME') +diff --git a/av/codec/context.pyx b/av/codec/context.pyx +index 5c831461..2cdf7ef5 100644 +--- av/codec/context.pyx ++++ av/codec/context.pyx +@@ -96,9 +96,6 @@ Flags = define_enum('Flags', __name__, ( + """Only decode/encode grayscale."""), + ('PSNR', lib.AV_CODEC_FLAG_PSNR, + """error[?] variables will be set during encoding."""), +- ('TRUNCATED', lib.AV_CODEC_FLAG_TRUNCATED, +- """Input bitstream might be truncated at a random location +- instead of only at frame boundaries."""), + ('INTERLACED_DCT', lib.AV_CODEC_FLAG_INTERLACED_DCT, + """Use interlaced DCT."""), + ('LOW_DELAY', lib.AV_CODEC_FLAG_LOW_DELAY, +@@ -122,8 +119,6 @@ Flags2 = define_enum('Flags2', __name__, ( + """Skip bitstream encoding."""), + ('LOCAL_HEADER', lib.AV_CODEC_FLAG2_LOCAL_HEADER, + """Place global headers at every keyframe instead of in extradata."""), +- ('DROP_FRAME_TIMECODE', lib.AV_CODEC_FLAG2_DROP_FRAME_TIMECODE, +- """Timecode is in drop frame format. DEPRECATED!!!!"""), + ('CHUNKS', lib.AV_CODEC_FLAG2_CHUNKS, + """Input bitstream might be truncated at a packet boundaries + instead of only at frame boundaries."""), +@@ -168,10 +163,6 @@ cdef class CodecContext(object): + self.ptr.thread_count = 0 + self.ptr.thread_type = 2 + +- # Use "ass" format for subtitles (default as of FFmpeg 5.0), not the +- # deprecated "ass_with_timings" formats. +- self.ptr.sub_text_format = 0 +- + def _get_flags(self): + return self.ptr.flags + +@@ -195,7 +186,6 @@ cdef class CodecContext(object): + loop_filter = flags.flag_property('LOOP_FILTER') + gray = flags.flag_property('GRAY') + psnr = flags.flag_property('PSNR') +- truncated = flags.flag_property('TRUNCATED') + interlaced_dct = flags.flag_property('INTERLACED_DCT') + low_delay = flags.flag_property('LOW_DELAY') + global_header = flags.flag_property('GLOBAL_HEADER') +@@ -219,7 +209,6 @@ cdef class CodecContext(object): + fast = flags2.flag_property('FAST') + no_output = flags2.flag_property('NO_OUTPUT') + local_header = flags2.flag_property('LOCAL_HEADER') +- drop_frame_timecode = flags2.flag_property('DROP_FRAME_TIMECODE') + chunks = flags2.flag_property('CHUNKS') + ignore_crop = flags2.flag_property('IGNORE_CROP') + show_all = flags2.flag_property('SHOW_ALL') +diff --git a/av/container/core.pyx b/av/container/core.pyx +index d21893c4..1c5c75b8 100755 +--- av/container/core.pyx ++++ av/container/core.pyx +@@ -157,8 +157,6 @@ Flags = define_enum('Flags', __name__, ( + This flag is mainly intended for testing."""), + ('SORT_DTS', lib.AVFMT_FLAG_SORT_DTS, + "Try to interleave outputted packets by dts (using this flag can slow demuxing down)."), +- ('PRIV_OPT', lib.AVFMT_FLAG_PRIV_OPT, +- "Enable use of private options by delaying codec open (this could be made default once all code is converted)."), + ('FAST_SEEK', lib.AVFMT_FLAG_FAST_SEEK, + "Enable fast, but inaccurate seeks for some formats."), + ('SHORTEST', lib.AVFMT_FLAG_SHORTEST, +@@ -329,7 +327,6 @@ cdef class Container(object): + flush_packets = flags.flag_property('FLUSH_PACKETS') + bit_exact = flags.flag_property('BITEXACT') + sort_dts = flags.flag_property('SORT_DTS') +- priv_opt = flags.flag_property('PRIV_OPT') + fast_seek = flags.flag_property('FAST_SEEK') + shortest = flags.flag_property('SHORTEST') + auto_bsf = flags.flag_property('AUTO_BSF') +diff --git a/include/libavcodec/avcodec.pxd b/include/libavcodec/avcodec.pxd +index 1e611180..0334b18e 100644 +--- include/libavcodec/avcodec.pxd ++++ include/libavcodec/avcodec.pxd +@@ -39,7 +39,6 @@ cdef extern from "libavcodec/avcodec.h" nogil: + cdef enum: + AV_CODEC_CAP_DRAW_HORIZ_BAND + AV_CODEC_CAP_DR1 +- AV_CODEC_CAP_TRUNCATED + # AV_CODEC_CAP_HWACCEL + AV_CODEC_CAP_DELAY + AV_CODEC_CAP_SMALL_LAST_FRAME +@@ -51,11 +50,9 @@ cdef extern from "libavcodec/avcodec.h" nogil: + AV_CODEC_CAP_FRAME_THREADS + AV_CODEC_CAP_SLICE_THREADS + AV_CODEC_CAP_PARAM_CHANGE +- AV_CODEC_CAP_AUTO_THREADS ++ AV_CODEC_CAP_OTHER_THREADS + AV_CODEC_CAP_VARIABLE_FRAME_SIZE + AV_CODEC_CAP_AVOID_PROBING +- AV_CODEC_CAP_INTRA_ONLY +- AV_CODEC_CAP_LOSSLESS + AV_CODEC_CAP_HARDWARE + AV_CODEC_CAP_HYBRID + AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE +@@ -76,7 +73,6 @@ cdef extern from "libavcodec/avcodec.h" nogil: + AV_CODEC_FLAG_LOOP_FILTER + AV_CODEC_FLAG_GRAY + AV_CODEC_FLAG_PSNR +- AV_CODEC_FLAG_TRUNCATED + AV_CODEC_FLAG_INTERLACED_DCT + AV_CODEC_FLAG_LOW_DELAY + AV_CODEC_FLAG_GLOBAL_HEADER +@@ -89,7 +85,6 @@ cdef extern from "libavcodec/avcodec.h" nogil: + AV_CODEC_FLAG2_FAST + AV_CODEC_FLAG2_NO_OUTPUT + AV_CODEC_FLAG2_LOCAL_HEADER +- AV_CODEC_FLAG2_DROP_FRAME_TIMECODE + AV_CODEC_FLAG2_CHUNKS + AV_CODEC_FLAG2_IGNORE_CROP + AV_CODEC_FLAG2_SHOW_ALL +@@ -224,9 +219,6 @@ cdef extern from "libavcodec/avcodec.h" nogil: + int frame_size + int channel_layout + +- # Subtitles. +- int sub_text_format +- + #: .. todo:: ``get_buffer`` is deprecated for get_buffer2 in newer versions of FFmpeg. + int get_buffer(AVCodecContext *ctx, AVFrame *frame) + void release_buffer(AVCodecContext *ctx, AVFrame *frame) +diff --git a/include/libavformat/avformat.pxd b/include/libavformat/avformat.pxd +index ed3e503f..06029d9f 100644 +--- include/libavformat/avformat.pxd ++++ include/libavformat/avformat.pxd +@@ -146,7 +146,6 @@ cdef extern from "libavformat/avformat.h" nogil: + AVFMT_FLAG_FLUSH_PACKETS + AVFMT_FLAG_BITEXACT + AVFMT_FLAG_SORT_DTS +- AVFMT_FLAG_PRIV_OPT + AVFMT_FLAG_FAST_SEEK + AVFMT_FLAG_SHORTEST + AVFMT_FLAG_AUTO_BSF +