mirror of
https://github.com/terrapkg/packages.git
synced 2026-05-31 09:01:55 +00:00
chore(ffmpeg): Properly update spec and patches (#7189)
* fix(ffmpeg): Add VERSION_libnpp.txt * chore: Update properly * chore: Add new tracking files
This commit is contained in:
@@ -0,0 +1 @@
|
||||
0.5.0
|
||||
@@ -0,0 +1 @@
|
||||
0.5.1
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,7 @@
|
||||
--- a/libavcodec/lcevcdec.c
|
||||
+++ b/libavcodec/lcevcdec.c
|
||||
@@ -139,7 +139,7 @@ static int lcevc_send_frame(void *logctx
|
||||
diff -Naur ffmpeg-7.1.2.old/libavcodec/lcevcdec.c ffmpeg-7.1.2/libavcodec/lcevcdec.c
|
||||
--- ffmpeg-7.1.2.old/libavcodec/lcevcdec.c 2025-10-27 10:07:00.369472051 +0100
|
||||
+++ ffmpeg-7.1.2/libavcodec/lcevcdec.c 2025-10-27 10:07:01.223246583 +0100
|
||||
@@ -139,7 +139,7 @@
|
||||
if (!sd)
|
||||
return 1;
|
||||
|
||||
@@ -9,7 +10,7 @@
|
||||
if (res != LCEVC_Success)
|
||||
return AVERROR_EXTERNAL;
|
||||
|
||||
@@ -147,7 +147,7 @@ static int lcevc_send_frame(void *logctx
|
||||
@@ -147,7 +147,7 @@
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
@@ -18,9 +19,10 @@
|
||||
if (res != LCEVC_Success)
|
||||
return AVERROR_EXTERNAL;
|
||||
|
||||
--- a/libavfilter/vf_lcevc.c
|
||||
+++ b/libavfilter/vf_lcevc.c
|
||||
@@ -139,7 +139,7 @@ static int send_frame(AVFilterLink *inlink, AVFrame *in)
|
||||
diff -Naur ffmpeg-7.1.2.old/libavfilter/vf_lcevc.c ffmpeg-7.1.2/libavfilter/vf_lcevc.c
|
||||
--- ffmpeg-7.1.2.old/libavfilter/vf_lcevc.c 2025-10-27 10:07:00.732521928 +0100
|
||||
+++ ffmpeg-7.1.2/libavfilter/vf_lcevc.c 2025-10-27 10:07:01.223846623 +0100
|
||||
@@ -139,7 +139,7 @@
|
||||
return ret;
|
||||
|
||||
if (sd) {
|
||||
@@ -29,7 +31,7 @@
|
||||
if (res == LCEVC_Again)
|
||||
return AVERROR(EAGAIN);
|
||||
else if (res != LCEVC_Success) {
|
||||
@@ -148,7 +148,7 @@ static int send_frame(AVFilterLink *inlink, AVFrame *in)
|
||||
@@ -148,7 +148,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
diff -Naur ffmpeg-7.1.1.old/libavformat/avformat.h ffmpeg-7.1.1/libavformat/avformat.h
|
||||
--- ffmpeg-7.1.1.old/libavformat/avformat.h 2025-03-24 10:54:38.357759076 +0100
|
||||
+++ ffmpeg-7.1.1/libavformat/avformat.h 2025-03-24 10:54:39.096586841 +0100
|
||||
diff -Naur ffmpeg-7.1.2.old/libavformat/avformat.h ffmpeg-7.1.2/libavformat/avformat.h
|
||||
--- ffmpeg-7.1.2.old/libavformat/avformat.h 2025-10-27 10:07:00.895476692 +0100
|
||||
+++ ffmpeg-7.1.2/libavformat/avformat.h 2025-10-27 10:07:01.866348795 +0100
|
||||
@@ -1202,6 +1202,10 @@
|
||||
|
||||
struct AVCodecParserContext *av_stream_get_parser(const AVStream *s);
|
||||
@@ -12,9 +12,9 @@ diff -Naur ffmpeg-7.1.1.old/libavformat/avformat.h ffmpeg-7.1.1/libavformat/avfo
|
||||
#define AV_PROGRAM_RUNNING 1
|
||||
|
||||
/**
|
||||
diff -Naur ffmpeg-7.1.1.old/libavformat/utils.c ffmpeg-7.1.1/libavformat/utils.c
|
||||
--- ffmpeg-7.1.1.old/libavformat/utils.c 2025-03-24 10:54:38.360759112 +0100
|
||||
+++ ffmpeg-7.1.1/libavformat/utils.c 2025-03-24 10:54:39.097179227 +0100
|
||||
diff -Naur ffmpeg-7.1.2.old/libavformat/utils.c ffmpeg-7.1.2/libavformat/utils.c
|
||||
--- ffmpeg-7.1.2.old/libavformat/utils.c 2025-10-27 10:07:00.899476727 +0100
|
||||
+++ ffmpeg-7.1.2/libavformat/utils.c 2025-10-27 10:07:01.866992658 +0100
|
||||
@@ -44,6 +44,13 @@
|
||||
* various utility functions for use within FFmpeg
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure
|
||||
--- ffmpeg-7.1.2.old/configure 2025-10-27 10:07:02.273543997 +0100
|
||||
+++ ffmpeg-7.1.2/configure 2025-10-27 10:07:02.276510125 +0100
|
||||
@@ -4710,6 +4710,9 @@
|
||||
if $nvcc $nvccflags_default 2>&1 | grep -qi unsupported; then
|
||||
nvccflags_default="-gencode arch=compute_60,code=sm_60 -O2"
|
||||
fi
|
||||
+ if $nvcc $nvccflags_default 2>&1 | grep -qi unsupported; then
|
||||
+ nvccflags_default="-gencode arch=compute_75,code=sm_75 -O2"
|
||||
+ fi
|
||||
fi
|
||||
|
||||
set_default arch cc cxx doxygen pkg_config ranlib strip sysinclude \
|
||||
@@ -0,0 +1,454 @@
|
||||
diff -Naur ffmpeg-7.1.2.old/doc/outdevs.texi ffmpeg-7.1.2/doc/outdevs.texi
|
||||
--- ffmpeg-7.1.2.old/doc/outdevs.texi 2025-10-27 10:07:00.979477433 +0100
|
||||
+++ ffmpeg-7.1.2/doc/outdevs.texi 2025-10-27 10:07:02.002148270 +0100
|
||||
@@ -240,6 +240,10 @@
|
||||
outgoing VANC data will be dropped.
|
||||
Defaults to @samp{1048576}.
|
||||
|
||||
+@item block_until_available
|
||||
+Retries output if device appears unavailable. Retry rate is 60 times a second.
|
||||
+Defaults to @option{0}.
|
||||
+
|
||||
@end table
|
||||
|
||||
@subsection Examples
|
||||
diff -Naur ffmpeg-7.1.2.old/fftools/ffmpeg_sched.c ffmpeg-7.1.2/fftools/ffmpeg_sched.c
|
||||
--- ffmpeg-7.1.2.old/fftools/ffmpeg_sched.c 2025-10-27 10:07:01.220479559 +0100
|
||||
+++ ffmpeg-7.1.2/fftools/ffmpeg_sched.c 2025-10-27 10:07:02.002549025 +0100
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <stdatomic.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
+#include <unistd.h>
|
||||
|
||||
#include "cmdutils.h"
|
||||
#include "ffmpeg_sched.h"
|
||||
diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_common_c.h ffmpeg-7.1.2/libavdevice/decklink_common_c.h
|
||||
--- ffmpeg-7.1.2.old/libavdevice/decklink_common_c.h 2025-10-27 10:07:00.829476109 +0100
|
||||
+++ ffmpeg-7.1.2/libavdevice/decklink_common_c.h 2025-10-27 10:07:02.003002589 +0100
|
||||
@@ -74,6 +74,7 @@
|
||||
int64_t timestamp_align;
|
||||
int timing_offset;
|
||||
int wait_for_tc;
|
||||
+ int block_until_available;
|
||||
DecklinkSignalLossAction signal_loss_action;
|
||||
};
|
||||
|
||||
diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_common.cpp ffmpeg-7.1.2/libavdevice/decklink_common.cpp
|
||||
--- ffmpeg-7.1.2.old/libavdevice/decklink_common.cpp 2025-10-27 10:07:00.828476101 +0100
|
||||
+++ ffmpeg-7.1.2/libavdevice/decklink_common.cpp 2025-10-27 10:07:02.003115933 +0100
|
||||
@@ -25,7 +25,7 @@
|
||||
#include "libavformat/internal.h"
|
||||
}
|
||||
|
||||
-#include <DeckLinkAPI.h>
|
||||
+#include <DeckLinkAPI_v14_2_1.h>
|
||||
#ifdef _WIN32
|
||||
#include <DeckLinkAPI_i.c>
|
||||
#else
|
||||
@@ -53,6 +53,7 @@
|
||||
|
||||
#include "decklink_common.h"
|
||||
|
||||
+
|
||||
static IDeckLinkIterator *decklink_create_iterator(AVFormatContext *avctx)
|
||||
{
|
||||
IDeckLinkIterator *iter;
|
||||
@@ -512,8 +513,8 @@
|
||||
return AVERROR(EIO);
|
||||
|
||||
while (ret == 0 && iter->Next(&dl) == S_OK) {
|
||||
- IDeckLinkOutput *output_config;
|
||||
- IDeckLinkInput *input_config;
|
||||
+ IDeckLinkOutput_v14_2_1 *output_config;
|
||||
+ IDeckLinkInput_v14_2_1 *input_config;
|
||||
const char *display_name = NULL;
|
||||
const char *unique_name = NULL;
|
||||
AVDeviceInfo *new_device = NULL;
|
||||
@@ -527,14 +528,14 @@
|
||||
goto next;
|
||||
|
||||
if (show_outputs) {
|
||||
- if (dl->QueryInterface(IID_IDeckLinkOutput, (void **)&output_config) == S_OK) {
|
||||
+ if (dl->QueryInterface(IID_IDeckLinkOutput_v14_2_1, (void **)&output_config) == S_OK) {
|
||||
output_config->Release();
|
||||
add = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (show_inputs) {
|
||||
- if (dl->QueryInterface(IID_IDeckLinkInput, (void **)&input_config) == S_OK) {
|
||||
+ if (dl->QueryInterface(IID_IDeckLinkInput_v14_2_1, (void **)&input_config) == S_OK) {
|
||||
input_config->Release();
|
||||
add = 1;
|
||||
}
|
||||
diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_common.h ffmpeg-7.1.2/libavdevice/decklink_common.h
|
||||
--- ffmpeg-7.1.2.old/libavdevice/decklink_common.h 2025-10-27 10:07:00.831476127 +0100
|
||||
+++ ffmpeg-7.1.2/libavdevice/decklink_common.h 2025-10-27 10:07:02.003408083 +0100
|
||||
@@ -93,8 +93,8 @@
|
||||
struct decklink_ctx {
|
||||
/* DeckLink SDK interfaces */
|
||||
IDeckLink *dl;
|
||||
- IDeckLinkOutput *dlo;
|
||||
- IDeckLinkInput *dli;
|
||||
+ IDeckLinkOutput_v14_2_1 *dlo;
|
||||
+ IDeckLinkInput_v14_2_1 *dli;
|
||||
IDeckLinkConfiguration *cfg;
|
||||
IDeckLinkProfileAttributes *attr;
|
||||
decklink_output_callback *output_callback;
|
||||
@@ -134,7 +134,6 @@
|
||||
AVStream *klv_st;
|
||||
AVStream *teletext_st;
|
||||
uint16_t cdp_sequence_num;
|
||||
-
|
||||
/* Options */
|
||||
int list_devices;
|
||||
int list_formats;
|
||||
@@ -149,13 +148,16 @@
|
||||
BMDPixelFormat raw_format;
|
||||
DecklinkSignalLossAction signal_loss_action;
|
||||
|
||||
+
|
||||
int frames_preroll;
|
||||
int frames_buffer;
|
||||
|
||||
pthread_mutex_t mutex;
|
||||
pthread_cond_t cond;
|
||||
int frames_buffer_available_spots;
|
||||
+ int outstanding_frames;
|
||||
int autodetect;
|
||||
+ int block_until_available;
|
||||
|
||||
#if CONFIG_LIBKLVANC
|
||||
struct klvanc_context_s *vanc_ctx;
|
||||
@@ -249,3 +251,4 @@
|
||||
int64_t ff_decklink_packet_queue_peekpts(DecklinkPacketQueue *q);
|
||||
|
||||
#endif /* AVDEVICE_DECKLINK_COMMON_H */
|
||||
+
|
||||
diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_dec.cpp ffmpeg-7.1.2/libavdevice/decklink_dec.cpp
|
||||
--- ffmpeg-7.1.2.old/libavdevice/decklink_dec.cpp 2025-10-27 10:07:00.828476101 +0100
|
||||
+++ ffmpeg-7.1.2/libavdevice/decklink_dec.cpp 2025-10-27 10:07:02.003669356 +0100
|
||||
@@ -31,7 +31,7 @@
|
||||
#include "libavformat/internal.h"
|
||||
}
|
||||
|
||||
-#include <DeckLinkAPI.h>
|
||||
+#include <DeckLinkAPI_v14_2_1.h>
|
||||
|
||||
extern "C" {
|
||||
#include "config.h"
|
||||
@@ -56,6 +56,7 @@
|
||||
#include "decklink_common.h"
|
||||
#include "decklink_dec.h"
|
||||
|
||||
+extern bool operator==(const REFIID& me, const REFIID& other);
|
||||
#define MAX_WIDTH_VANC 1920
|
||||
const BMDDisplayMode AUTODETECT_DEFAULT_MODE = bmdModeNTSC;
|
||||
|
||||
@@ -105,13 +106,13 @@
|
||||
{bmdModeUnknown, 0, -1, -1, -1}
|
||||
};
|
||||
|
||||
-class decklink_allocator : public IDeckLinkMemoryAllocator
|
||||
+class decklink_allocator : public IDeckLinkMemoryAllocator_v14_2_1
|
||||
{
|
||||
public:
|
||||
decklink_allocator(): _refs(1) { }
|
||||
virtual ~decklink_allocator() { }
|
||||
|
||||
- // IDeckLinkMemoryAllocator methods
|
||||
+ // IDeckLinkMemoryAllocator_v14_2_1 methods
|
||||
virtual HRESULT STDMETHODCALLTYPE AllocateBuffer(unsigned int bufferSize, void* *allocatedBuffer)
|
||||
{
|
||||
void *buf = av_malloc(bufferSize + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||
@@ -129,7 +130,15 @@
|
||||
virtual HRESULT STDMETHODCALLTYPE Decommit() { return S_OK; }
|
||||
|
||||
// IUnknown methods
|
||||
- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; }
|
||||
+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv)
|
||||
+ {
|
||||
+ if (iid == IID_IDeckLinkMemoryAllocator_v14_2_1) {
|
||||
+ *ppv = (IDeckLinkMemoryAllocator_v14_2_1*)this;
|
||||
+ AddRef();
|
||||
+ return S_OK;
|
||||
+ }
|
||||
+ return E_NOINTERFACE;
|
||||
+ }
|
||||
virtual ULONG STDMETHODCALLTYPE AddRef(void) { return ++_refs; }
|
||||
virtual ULONG STDMETHODCALLTYPE Release(void)
|
||||
{
|
||||
@@ -472,7 +481,7 @@
|
||||
}
|
||||
|
||||
|
||||
-static void handle_klv(AVFormatContext *avctx, decklink_ctx *ctx, IDeckLinkVideoInputFrame *videoFrame, int64_t pts)
|
||||
+static void handle_klv(AVFormatContext *avctx, decklink_ctx *ctx, IDeckLinkVideoInputFrame_v14_2_1 *videoFrame, int64_t pts)
|
||||
{
|
||||
const uint8_t KLV_DID = 0x44;
|
||||
const uint8_t KLV_IN_VANC_SDID = 0x04;
|
||||
@@ -574,17 +583,25 @@
|
||||
}
|
||||
}
|
||||
|
||||
-class decklink_input_callback : public IDeckLinkInputCallback
|
||||
+class decklink_input_callback : public IDeckLinkInputCallback_v14_2_1
|
||||
{
|
||||
public:
|
||||
explicit decklink_input_callback(AVFormatContext *_avctx);
|
||||
~decklink_input_callback();
|
||||
|
||||
- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; }
|
||||
+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv)
|
||||
+ {
|
||||
+ if (iid == IID_IDeckLinkInputCallback_v14_2_1) {
|
||||
+ *ppv = (IDeckLinkInputCallback_v14_2_1*)this;
|
||||
+ AddRef();
|
||||
+ return S_OK;
|
||||
+ }
|
||||
+ return E_NOINTERFACE;
|
||||
+ }
|
||||
virtual ULONG STDMETHODCALLTYPE AddRef(void);
|
||||
virtual ULONG STDMETHODCALLTYPE Release(void);
|
||||
virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(BMDVideoInputFormatChangedEvents, IDeckLinkDisplayMode*, BMDDetectedVideoInputFormatFlags);
|
||||
- virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(IDeckLinkVideoInputFrame*, IDeckLinkAudioInputPacket*);
|
||||
+ virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(IDeckLinkVideoInputFrame_v14_2_1*, IDeckLinkAudioInputPacket*);
|
||||
|
||||
private:
|
||||
std::atomic<int> _refs;
|
||||
@@ -593,7 +610,7 @@
|
||||
int no_video;
|
||||
int64_t initial_video_pts;
|
||||
int64_t initial_audio_pts;
|
||||
- IDeckLinkVideoInputFrame* last_video_frame;
|
||||
+ IDeckLinkVideoInputFrame_v14_2_1* last_video_frame;
|
||||
};
|
||||
|
||||
decklink_input_callback::decklink_input_callback(AVFormatContext *_avctx) : _refs(1)
|
||||
@@ -625,7 +642,7 @@
|
||||
return ret;
|
||||
}
|
||||
|
||||
-static int64_t get_pkt_pts(IDeckLinkVideoInputFrame *videoFrame,
|
||||
+static int64_t get_pkt_pts(IDeckLinkVideoInputFrame_v14_2_1 *videoFrame,
|
||||
IDeckLinkAudioInputPacket *audioFrame,
|
||||
int64_t wallclock,
|
||||
int64_t abs_wallclock,
|
||||
@@ -679,7 +696,7 @@
|
||||
return pts;
|
||||
}
|
||||
|
||||
-static int get_bmd_timecode(AVFormatContext *avctx, AVTimecode *tc, AVRational frame_rate, BMDTimecodeFormat tc_format, IDeckLinkVideoInputFrame *videoFrame)
|
||||
+static int get_bmd_timecode(AVFormatContext *avctx, AVTimecode *tc, AVRational frame_rate, BMDTimecodeFormat tc_format, IDeckLinkVideoInputFrame_v14_2_1 *videoFrame)
|
||||
{
|
||||
IDeckLinkTimecode *timecode;
|
||||
int ret = AVERROR(ENOENT);
|
||||
@@ -701,7 +718,7 @@
|
||||
return ret;
|
||||
}
|
||||
|
||||
-static int get_frame_timecode(AVFormatContext *avctx, decklink_ctx *ctx, AVTimecode *tc, IDeckLinkVideoInputFrame *videoFrame)
|
||||
+static int get_frame_timecode(AVFormatContext *avctx, decklink_ctx *ctx, AVTimecode *tc, IDeckLinkVideoInputFrame_v14_2_1 *videoFrame)
|
||||
{
|
||||
AVRational frame_rate = ctx->video_st->r_frame_rate;
|
||||
int ret;
|
||||
@@ -726,7 +743,7 @@
|
||||
}
|
||||
|
||||
HRESULT decklink_input_callback::VideoInputFrameArrived(
|
||||
- IDeckLinkVideoInputFrame *videoFrame, IDeckLinkAudioInputPacket *audioFrame)
|
||||
+ IDeckLinkVideoInputFrame_v14_2_1 *videoFrame, IDeckLinkAudioInputPacket *audioFrame)
|
||||
{
|
||||
void *frameBytes;
|
||||
void *audioFrameBytes;
|
||||
@@ -1141,7 +1158,7 @@
|
||||
goto error;
|
||||
|
||||
/* Get input device. */
|
||||
- if (ctx->dl->QueryInterface(IID_IDeckLinkInput, (void **) &ctx->dli) != S_OK) {
|
||||
+ if (ctx->dl->QueryInterface(IID_IDeckLinkInput_v14_2_1, (void **) &ctx->dli) != S_OK) {
|
||||
av_log(avctx, AV_LOG_ERROR, "Could not open input device from '%s'\n",
|
||||
avctx->url);
|
||||
ret = AVERROR(EIO);
|
||||
diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_enc_c.c ffmpeg-7.1.2/libavdevice/decklink_enc_c.c
|
||||
--- ffmpeg-7.1.2.old/libavdevice/decklink_enc_c.c 2025-10-27 10:07:00.833476145 +0100
|
||||
+++ ffmpeg-7.1.2/libavdevice/decklink_enc_c.c 2025-10-27 10:07:02.004050964 +0100
|
||||
@@ -32,6 +32,7 @@
|
||||
{ "list_devices", "use ffmpeg -sinks decklink instead", OFFSET(list_devices), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, ENC | AV_OPT_FLAG_DEPRECATED},
|
||||
{ "list_formats", "list supported formats" , OFFSET(list_formats), AV_OPT_TYPE_INT , { .i64 = 0 }, 0, 1, ENC },
|
||||
{ "preroll" , "video preroll in seconds", OFFSET(preroll ), AV_OPT_TYPE_DOUBLE, { .dbl = 0.5 }, 0, 5, ENC },
|
||||
+ { "block_until_available", "wait for device to become available instead of raising error", OFFSET(block_until_available), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, ENC },
|
||||
{ "vanc_queue_size", "VANC queue buffer size", OFFSET(vanc_queue_size), AV_OPT_TYPE_INT64, { .i64 = (1024 * 1024)}, 0, INT64_MAX, ENC },
|
||||
#if BLACKMAGIC_DECKLINK_API_VERSION >= 0x0b000000
|
||||
{ "duplex_mode" , "duplex mode" , OFFSET(duplex_mode ), AV_OPT_TYPE_INT , { .i64 = 0 }, 0, 5, ENC, .unit = "duplex_mode"},
|
||||
diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_enc.cpp ffmpeg-7.1.2/libavdevice/decklink_enc.cpp
|
||||
--- ffmpeg-7.1.2.old/libavdevice/decklink_enc.cpp 2025-10-27 10:07:00.832476136 +0100
|
||||
+++ ffmpeg-7.1.2/libavdevice/decklink_enc.cpp 2025-10-27 10:07:02.004296918 +0100
|
||||
@@ -20,6 +20,8 @@
|
||||
*/
|
||||
|
||||
#include <atomic>
|
||||
+#include <unistd.h>
|
||||
+
|
||||
using std::atomic;
|
||||
|
||||
/* Include internal.h first to avoid conflict between winsock.h (used by
|
||||
@@ -28,7 +30,7 @@
|
||||
#include "libavformat/internal.h"
|
||||
}
|
||||
|
||||
-#include <DeckLinkAPI.h>
|
||||
+#include <DeckLinkAPI_v14_2_1.h>
|
||||
|
||||
extern "C" {
|
||||
#include "libavformat/avformat.h"
|
||||
@@ -47,8 +49,26 @@
|
||||
#include "libklvanc/pixels.h"
|
||||
#endif
|
||||
|
||||
+extern bool operator==(const REFIID& me, const REFIID& other){
|
||||
+ return me.byte0 == other.byte0 &&
|
||||
+ me.byte1 == other.byte1 &&
|
||||
+ me.byte2 == other.byte2 &&
|
||||
+ me.byte3 == other.byte3 &&
|
||||
+ me.byte4 == other.byte4 &&
|
||||
+ me.byte5 == other.byte5 &&
|
||||
+ me.byte6 == other.byte6 &&
|
||||
+ me.byte7 == other.byte7 &&
|
||||
+ me.byte8 == other.byte8 &&
|
||||
+ me.byte9 == other.byte9 &&
|
||||
+ me.byte10 == other.byte10 &&
|
||||
+ me.byte11 == other.byte11 &&
|
||||
+ me.byte12 == other.byte12 &&
|
||||
+ me.byte13 == other.byte13 &&
|
||||
+ me.byte14 == other.byte14 &&
|
||||
+ me.byte15 == other.byte15;
|
||||
+}
|
||||
/* DeckLink callback class declaration */
|
||||
-class decklink_frame : public IDeckLinkVideoFrame
|
||||
+class decklink_frame : public IDeckLinkVideoFrame_v14_2_1
|
||||
{
|
||||
public:
|
||||
decklink_frame(struct decklink_ctx *ctx, AVFrame *avframe, AVCodecID codec_id, int height, int width) :
|
||||
@@ -111,7 +131,16 @@
|
||||
_ancillary->AddRef();
|
||||
return S_OK;
|
||||
}
|
||||
- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; }
|
||||
+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv)
|
||||
+ {
|
||||
+ if (iid == IID_IDeckLinkVideoFrame_v14_2_1)
|
||||
+ {
|
||||
+ *ppv = (IDeckLinkVideoFrame_v14_2_1*)this;
|
||||
+ AddRef();
|
||||
+ return S_OK;
|
||||
+ }
|
||||
+ return E_NOINTERFACE;
|
||||
+ }
|
||||
virtual ULONG STDMETHODCALLTYPE AddRef(void) { return ++_refs; }
|
||||
virtual ULONG STDMETHODCALLTYPE Release(void)
|
||||
{
|
||||
@@ -138,10 +167,10 @@
|
||||
std::atomic<int> _refs;
|
||||
};
|
||||
|
||||
-class decklink_output_callback : public IDeckLinkVideoOutputCallback
|
||||
+class decklink_output_callback : public IDeckLinkVideoOutputCallback_v14_2_1
|
||||
{
|
||||
public:
|
||||
- virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(IDeckLinkVideoFrame *_frame, BMDOutputFrameCompletionResult result)
|
||||
+ virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(IDeckLinkVideoFrame_v14_2_1 *_frame, BMDOutputFrameCompletionResult result)
|
||||
{
|
||||
decklink_frame *frame = static_cast<decklink_frame *>(_frame);
|
||||
struct decklink_ctx *ctx = frame->_ctx;
|
||||
@@ -155,11 +184,22 @@
|
||||
ctx->frames_buffer_available_spots++;
|
||||
pthread_cond_broadcast(&ctx->cond);
|
||||
pthread_mutex_unlock(&ctx->mutex);
|
||||
-
|
||||
+ pthread_mutex_lock(&ctx->mutex);
|
||||
+ ctx->outstanding_frames--;
|
||||
+ pthread_mutex_unlock(&ctx->mutex);
|
||||
return S_OK;
|
||||
}
|
||||
virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped(void) { return S_OK; }
|
||||
- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; }
|
||||
+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv)
|
||||
+ {
|
||||
+ if (iid == IID_IDeckLinkVideoOutputCallback_v14_2_1)
|
||||
+ {
|
||||
+ *ppv = (IDeckLinkVideoOutputCallback_v14_2_1*)this;
|
||||
+ AddRef();
|
||||
+ return S_OK;
|
||||
+ }
|
||||
+ return E_NOINTERFACE;
|
||||
+ }
|
||||
virtual ULONG STDMETHODCALLTYPE AddRef(void) { return 1; }
|
||||
virtual ULONG STDMETHODCALLTYPE Release(void) { return 1; }
|
||||
};
|
||||
@@ -204,9 +244,14 @@
|
||||
av_log(avctx, AV_LOG_WARNING, "Could not enable video output with VANC! Trying without...\n");
|
||||
ctx->supports_vanc = 0;
|
||||
}
|
||||
- if (!ctx->supports_vanc && ctx->dlo->EnableVideoOutput(ctx->bmd_mode, bmdVideoOutputFlagDefault) != S_OK) {
|
||||
- av_log(avctx, AV_LOG_ERROR, "Could not enable video output!\n");
|
||||
- return -1;
|
||||
+ while (!ctx->supports_vanc && ctx->dlo->EnableVideoOutput(ctx->bmd_mode, bmdVideoOutputFlagDefault) != S_OK) {
|
||||
+ if (!ctx->block_until_available) {
|
||||
+ av_log(avctx, AV_LOG_ERROR, "Could not enable video output!\n");
|
||||
+ return -1;
|
||||
+ };
|
||||
+ av_log(avctx, AV_LOG_WARNING, "Could not enable video output, waiting for device...\n");
|
||||
+ usleep(1000000 / 60);
|
||||
+ continue;
|
||||
}
|
||||
|
||||
/* Set callback. */
|
||||
@@ -370,6 +415,10 @@
|
||||
struct decklink_cctx *cctx = (struct decklink_cctx *)avctx->priv_data;
|
||||
struct decklink_ctx *ctx = (struct decklink_ctx *)cctx->ctx;
|
||||
|
||||
+ av_log(avctx, AV_LOG_DEBUG, "Wating for %d outstanding frames to return their results\n", ctx->outstanding_frames);
|
||||
+ while (ctx->outstanding_frames > 0){
|
||||
+ usleep(1);
|
||||
+ }
|
||||
if (ctx->playback_started) {
|
||||
BMDTimeValue actual;
|
||||
ctx->dlo->StopScheduledPlayback(ctx->last_pts * ctx->bmd_tb_num,
|
||||
@@ -739,7 +788,7 @@
|
||||
ctx->first_pts = pkt->pts;
|
||||
|
||||
/* Schedule frame for playback. */
|
||||
- hr = ctx->dlo->ScheduleVideoFrame((class IDeckLinkVideoFrame *) frame,
|
||||
+ hr = ctx->dlo->ScheduleVideoFrame((class IDeckLinkVideoFrame_v14_2_1 *) frame,
|
||||
pkt->pts * ctx->bmd_tb_num,
|
||||
ctx->bmd_tb_num, ctx->bmd_tb_den);
|
||||
/* Pass ownership to DeckLink, or release on failure */
|
||||
@@ -750,6 +799,9 @@
|
||||
return AVERROR(EIO);
|
||||
}
|
||||
|
||||
+ pthread_mutex_lock(&ctx->mutex);
|
||||
+ ctx->outstanding_frames++;
|
||||
+ pthread_mutex_unlock(&ctx->mutex);
|
||||
ctx->dlo->GetBufferedVideoFrameCount(&buffered);
|
||||
av_log(avctx, AV_LOG_DEBUG, "Buffered video frames: %d.\n", (int) buffered);
|
||||
if (pkt->pts > 2 && buffered <= 2)
|
||||
@@ -850,6 +902,7 @@
|
||||
ctx->list_devices = cctx->list_devices;
|
||||
ctx->list_formats = cctx->list_formats;
|
||||
ctx->preroll = cctx->preroll;
|
||||
+ ctx->block_until_available = cctx->block_until_available;
|
||||
ctx->duplex_mode = cctx->duplex_mode;
|
||||
ctx->first_pts = AV_NOPTS_VALUE;
|
||||
if (cctx->link > 0 && (unsigned int)cctx->link < FF_ARRAY_ELEMS(decklink_link_conf_map))
|
||||
@@ -874,7 +927,7 @@
|
||||
return ret;
|
||||
|
||||
/* Get output device. */
|
||||
- if (ctx->dl->QueryInterface(IID_IDeckLinkOutput, (void **) &ctx->dlo) != S_OK) {
|
||||
+ if (ctx->dl->QueryInterface(IID_IDeckLinkOutput_v14_2_1, (void **) &ctx->dlo) != S_OK) {
|
||||
av_log(avctx, AV_LOG_ERROR, "Could not open output device from '%s'\n",
|
||||
avctx->url);
|
||||
ret = AVERROR(EIO);
|
||||
@@ -0,0 +1,12 @@
|
||||
diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure
|
||||
--- ffmpeg-7.1.2.old/configure 2025-10-27 10:07:01.862821941 +0100
|
||||
+++ ffmpeg-7.1.2/configure 2025-10-27 10:07:02.140469997 +0100
|
||||
@@ -6766,7 +6766,7 @@
|
||||
nvccflags=$nvccflags_default
|
||||
fi
|
||||
|
||||
-nvccflags="$nvccflags -std=c++11"
|
||||
+nvccflags="$nvccflags -std=c++14"
|
||||
|
||||
if enabled x86_64 || enabled ppc64 || enabled aarch64; then
|
||||
nvccflags="$nvccflags -m64"
|
||||
@@ -1,6 +1,6 @@
|
||||
diff -Naur ffmpeg-7.1.1.old/configure ffmpeg-7.1.1/configure
|
||||
--- ffmpeg-7.1.1.old/configure 2025-03-24 10:54:38.202757211 +0100
|
||||
+++ ffmpeg-7.1.1/configure 2025-03-24 10:54:38.618546808 +0100
|
||||
diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure
|
||||
--- ffmpeg-7.1.2.old/configure 2025-10-27 10:07:00.645474486 +0100
|
||||
+++ ffmpeg-7.1.2/configure 2025-10-27 10:07:01.726484024 +0100
|
||||
@@ -278,6 +278,7 @@
|
||||
--enable-libsrt enable Haivision SRT protocol via libsrt [no]
|
||||
--enable-libssh enable SFTP protocol via libssh [no]
|
||||
@@ -9,7 +9,7 @@ diff -Naur ffmpeg-7.1.1.old/configure ffmpeg-7.1.1/configure
|
||||
--enable-libtensorflow enable TensorFlow as a DNN module backend
|
||||
for DNN based filters like sr [no]
|
||||
--enable-libtesseract enable Tesseract, needed for ocr filter [no]
|
||||
@@ -1953,6 +1954,7 @@
|
||||
@@ -1955,6 +1956,7 @@
|
||||
libshaderc
|
||||
libshine
|
||||
libsmbclient
|
||||
@@ -17,7 +17,7 @@ diff -Naur ffmpeg-7.1.1.old/configure ffmpeg-7.1.1/configure
|
||||
libsnappy
|
||||
libsoxr
|
||||
libspeex
|
||||
@@ -3575,6 +3577,7 @@
|
||||
@@ -3579,6 +3581,7 @@
|
||||
libvpx_vp8_encoder_deps="libvpx"
|
||||
libvpx_vp9_decoder_deps="libvpx"
|
||||
libvpx_vp9_encoder_deps="libvpx"
|
||||
@@ -25,17 +25,17 @@ diff -Naur ffmpeg-7.1.1.old/configure ffmpeg-7.1.1/configure
|
||||
libvvenc_encoder_deps="libvvenc"
|
||||
libwebp_encoder_deps="libwebp"
|
||||
libwebp_anim_encoder_deps="libwebp"
|
||||
@@ -6997,6 +7000,7 @@
|
||||
enabled libspeex && require_pkg_config libspeex speex speex/speex.h speex_decoder_init
|
||||
enabled libsrt && require_pkg_config libsrt "srt >= 1.3.0" srt/srt.h srt_socket
|
||||
enabled libsvtav1 && require_pkg_config libsvtav1 "SvtAv1Enc >= 0.9.0" EbSvtAv1Enc.h svt_av1_enc_init_handle
|
||||
@@ -7028,6 +7031,7 @@
|
||||
die "ERROR: libtwolame must be installed and version must be >= 0.3.10"; }
|
||||
enabled libuavs3d && require_pkg_config libuavs3d "uavs3d >= 1.1.41" uavs3d.h uavs3d_decode
|
||||
enabled libv4l2 && require_pkg_config libv4l2 libv4l2 libv4l2.h v4l2_ioctl
|
||||
+enabled libsvtvp9 && require_pkg_config libsvtvp9 SvtVp9Enc EbSvtVp9Enc.h eb_vp9_svt_init_handle
|
||||
enabled libtensorflow && require libtensorflow tensorflow/c/c_api.h TF_Version -ltensorflow
|
||||
enabled libtesseract && require_pkg_config libtesseract tesseract tesseract/capi.h TessBaseAPICreate
|
||||
enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg
|
||||
diff -Naur ffmpeg-7.1.1.old/libavcodec/allcodecs.c ffmpeg-7.1.1/libavcodec/allcodecs.c
|
||||
--- ffmpeg-7.1.1.old/libavcodec/allcodecs.c 2025-03-24 10:54:38.119756212 +0100
|
||||
+++ ffmpeg-7.1.1/libavcodec/allcodecs.c 2025-03-24 10:54:38.619934060 +0100
|
||||
enabled libvidstab && require_pkg_config libvidstab "vidstab >= 0.98" vid.stab/libvidstab.h vsMotionDetectInit
|
||||
enabled libvmaf && require_pkg_config libvmaf "libvmaf >= 2.0.0" libvmaf.h vmaf_init
|
||||
enabled libvmaf && check_pkg_config libvmaf_cuda "libvmaf >= 2.0.0" libvmaf_cuda.h vmaf_cuda_state_init
|
||||
diff -Naur ffmpeg-7.1.2.old/libavcodec/allcodecs.c ffmpeg-7.1.2/libavcodec/allcodecs.c
|
||||
--- ffmpeg-7.1.2.old/libavcodec/allcodecs.c 2025-10-27 10:07:00.517473357 +0100
|
||||
+++ ffmpeg-7.1.2/libavcodec/allcodecs.c 2025-10-27 10:07:01.728697010 +0100
|
||||
@@ -796,6 +796,7 @@
|
||||
extern const FFCodec ff_libvo_amrwbenc_encoder;
|
||||
extern const FFCodec ff_libvorbis_encoder;
|
||||
@@ -44,9 +44,9 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/allcodecs.c ffmpeg-7.1.1/libavcodec/allco
|
||||
extern const FFCodec ff_libvpx_vp8_encoder;
|
||||
extern const FFCodec ff_libvpx_vp8_decoder;
|
||||
extern FFCodec ff_libvpx_vp9_encoder;
|
||||
diff -Naur ffmpeg-7.1.1.old/libavcodec/libsvt_vp9.c ffmpeg-7.1.1/libavcodec/libsvt_vp9.c
|
||||
--- ffmpeg-7.1.1.old/libavcodec/libsvt_vp9.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ ffmpeg-7.1.1/libavcodec/libsvt_vp9.c 2025-03-24 10:54:38.620176868 +0100
|
||||
diff -Naur ffmpeg-7.1.2.old/libavcodec/libsvt_vp9.c ffmpeg-7.1.2/libavcodec/libsvt_vp9.c
|
||||
--- ffmpeg-7.1.2.old/libavcodec/libsvt_vp9.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ ffmpeg-7.1.2/libavcodec/libsvt_vp9.c 2025-10-27 10:07:01.729099438 +0100
|
||||
@@ -0,0 +1,701 @@
|
||||
+/*
|
||||
+* Scalable Video Technology for VP9 encoder library plugin
|
||||
@@ -260,11 +260,11 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/libsvt_vp9.c ffmpeg-7.1.1/libavcodec/libs
|
||||
+ param->intra_period = avctx->gop_size - 1;
|
||||
+
|
||||
+ if (avctx->framerate.num > 0 && avctx->framerate.den > 0) {
|
||||
+ param->frame_rate_numerator = avctx->framerate.num;
|
||||
+ param->frame_rate_denominator = avctx->framerate.den * avctx->ticks_per_frame;
|
||||
+ param->frame_rate_numerator = avctx->framerate.num;
|
||||
+ param->frame_rate_denominator = avctx->framerate.den;
|
||||
+ } else {
|
||||
+ param->frame_rate_numerator = avctx->time_base.den;
|
||||
+ param->frame_rate_denominator = avctx->time_base.num * avctx->ticks_per_frame;
|
||||
+ param->frame_rate_numerator = avctx->time_base.den;
|
||||
+ param->frame_rate_denominator = avctx->time_base.num;
|
||||
+ }
|
||||
+
|
||||
+ if (param->rate_control_mode) {
|
||||
@@ -749,9 +749,9 @@ diff -Naur ffmpeg-7.1.1.old/libavcodec/libsvt_vp9.c ffmpeg-7.1.1/libavcodec/libs
|
||||
+ .defaults = eb_enc_defaults,
|
||||
+ .p.wrapper_name = "libsvt_vp9",
|
||||
+};
|
||||
diff -Naur ffmpeg-7.1.1.old/libavcodec/Makefile ffmpeg-7.1.1/libavcodec/Makefile
|
||||
--- ffmpeg-7.1.1.old/libavcodec/Makefile 2025-03-24 10:54:37.935753999 +0100
|
||||
+++ ffmpeg-7.1.1/libavcodec/Makefile 2025-03-24 10:54:38.620394147 +0100
|
||||
diff -Naur ffmpeg-7.1.2.old/libavcodec/Makefile ffmpeg-7.1.2/libavcodec/Makefile
|
||||
--- ffmpeg-7.1.2.old/libavcodec/Makefile 2025-10-27 10:07:00.259471080 +0100
|
||||
+++ ffmpeg-7.1.2/libavcodec/Makefile 2025-10-27 10:07:01.729297932 +0100
|
||||
@@ -1157,6 +1157,7 @@
|
||||
OBJS-$(CONFIG_LIBVORBIS_DECODER) += libvorbisdec.o
|
||||
OBJS-$(CONFIG_LIBVORBIS_ENCODER) += libvorbisenc.o \
|
||||
|
||||
@@ -1,4 +1,13 @@
|
||||
%define _distro_extra_cflags -Wno-incompatible-pointer-types
|
||||
%bcond bootstrap 0
|
||||
|
||||
%if %{with bootstrap}
|
||||
%bcond chromaprint 0
|
||||
%bcond lcevcdec 0
|
||||
%else
|
||||
%bcond chromaprint 1
|
||||
%bcond lcevcdec 1
|
||||
%endif
|
||||
|
||||
%global _lto_cflags %{nil}
|
||||
|
||||
%global avcodec_soversion 61
|
||||
@@ -13,7 +22,7 @@
|
||||
Summary: A complete solution to record, convert and stream audio and video
|
||||
Name: ffmpeg
|
||||
Version: 7.1.2
|
||||
Release: 3%?dist
|
||||
Release: 3%{?dist}
|
||||
License: LGPLv3+
|
||||
URL: http://%{name}.org/
|
||||
Epoch: 1
|
||||
@@ -22,17 +31,24 @@ Source0: http://%{name}.org/releases/%{name}-%{version}.tar.xz
|
||||
|
||||
# https://github.com/OpenVisualCloud/SVT-VP9/tree/master/ffmpeg_plugin
|
||||
Patch0: %{name}-svt-vp9.patch
|
||||
# https://github.com/HandBrake/HandBrake/tree/e117cfe7fca37abeec59ea4201e5d93ed7477746
|
||||
Patch2: %{name}-HandBrake.patch
|
||||
# https://github.com/HandBrake/HandBrake/tree/8902805364f00e0d420c4d4b33053a31d27045ab
|
||||
Patch1: %{name}-HandBrake.patch
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2240127
|
||||
# Reference: https://crbug.com/1306560
|
||||
Patch3: %{name}-chromium.patch
|
||||
Patch2: %{name}-chromium.patch
|
||||
# Fix build with recent NVCC:
|
||||
Patch3: %{name}-nvcc.patch
|
||||
# https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/f8a300c6739ea2ca648579d7faf3ae9811b9f19a
|
||||
Patch4: %{name}-cuda-13.patch
|
||||
# Support LCEVCdec 4.0+:
|
||||
Patch5: https://aur.archlinux.org/cgit/aur.git/plain/080-ffmpeg-lcevcdec4.0.0-fix.patch?h=ffmpeg-full#/%{name}-LCEVCdec-4.patch
|
||||
# https://github.com/magarnicle/FFmpeg/commits/DeckLink_SDK_14_4/
|
||||
Patch6: %{name}-decklink-14.patch
|
||||
|
||||
BuildRequires: AMF-devel >= 1.4.28
|
||||
BuildRequires: bzip2-devel
|
||||
BuildRequires: codec2-devel
|
||||
BuildRequires: decklink-devel >= 14.2
|
||||
BuildRequires: doxygen
|
||||
BuildRequires: frei0r-devel
|
||||
BuildRequires: gmp-devel
|
||||
@@ -41,7 +57,9 @@ BuildRequires: ilbc-devel
|
||||
BuildRequires: lame-devel >= 3.98.3
|
||||
BuildRequires: ladspa-devel
|
||||
BuildRequires: libavc1394-devel
|
||||
%if %{with chromaprint}
|
||||
BuildRequires: libchromaprint-devel
|
||||
%endif
|
||||
BuildRequires: libgcrypt-devel
|
||||
BuildRequires: libiec61883-devel
|
||||
BuildRequires: libklvanc-devel
|
||||
@@ -71,7 +89,6 @@ BuildRequires: pkgconfig(dav1d) >= 0.5.0
|
||||
BuildRequires: pkgconfig(davs2) >= 1.6.0
|
||||
BuildRequires: pkgconfig(dvdnav) >= 6.1.1
|
||||
BuildRequires: pkgconfig(fdk-aac)
|
||||
BuildRequires: pkgconfig(ffnvcodec) >= 12.0.16.0
|
||||
BuildRequires: pkgconfig(fontconfig)
|
||||
BuildRequires: pkgconfig(freetype2)
|
||||
BuildRequires: pkgconfig(fribidi)
|
||||
@@ -80,7 +97,9 @@ BuildRequires: pkgconfig(jack)
|
||||
BuildRequires: pkgconfig(kvazaar) >= 0.8.1
|
||||
BuildRequires: pkgconfig(lc3) >= 1.1.0
|
||||
BuildRequires: pkgconfig(lcms2) >= 2.13
|
||||
%if %{with lcevcdec}
|
||||
BuildRequires: pkgconfig(lcevc_dec) >= 2.0.0
|
||||
%endif
|
||||
BuildRequires: pkgconfig(libaribcaption) >= 1.1.1
|
||||
BuildRequires: pkgconfig(libass) >= 0.11.0
|
||||
BuildRequires: pkgconfig(libbluray)
|
||||
@@ -129,6 +148,7 @@ BuildRequires: pkgconfig(shaderc) >= 2019.1
|
||||
BuildRequires: pkgconfig(smbclient)
|
||||
BuildRequires: pkgconfig(speex)
|
||||
BuildRequires: pkgconfig(srt) >= 1.3.0
|
||||
BuildRequires: pkgconfig(SvtAv1Enc) >= 0.9.0
|
||||
BuildRequires: pkgconfig(tesseract)
|
||||
BuildRequires: pkgconfig(uavs3d) >= 1.1.41
|
||||
BuildRequires: pkgconfig(vapoursynth-script) >= 42
|
||||
@@ -142,6 +162,8 @@ BuildRequires: pkgconfig(xcb) >= 1.4
|
||||
BuildRequires: pkgconfig(xcb-shape)
|
||||
BuildRequires: pkgconfig(xcb-shm)
|
||||
BuildRequires: pkgconfig(xcb-xfixes)
|
||||
BuildRequires: pkgconfig(xevd) >= 0.4.1
|
||||
BuildRequires: pkgconfig(xeve) >= 0.4.3
|
||||
BuildRequires: pkgconfig(xext)
|
||||
BuildRequires: pkgconfig(x11)
|
||||
BuildRequires: pkgconfig(x264)
|
||||
@@ -152,17 +174,16 @@ BuildRequires: pkgconfig(zlib)
|
||||
BuildRequires: pkgconfig(zvbi-0.2) >= 0.2.28
|
||||
|
||||
%ifarch x86_64 aarch64
|
||||
BuildRequires: cuda-cudart-devel
|
||||
BuildRequires: cuda-nvcc
|
||||
BuildRequires: pkgconfig(ffnvcodec) >= 12.0.16.0
|
||||
%endif
|
||||
|
||||
%ifarch x86_64
|
||||
BuildRequires: pkgconfig(libmfx)
|
||||
BuildRequires: pkgconfig(libvmaf) >= 2.0.0
|
||||
BuildRequires: pkgconfig(SvtAv1Enc) >= 0.9.0
|
||||
BuildRequires: pkgconfig(SvtVp9Enc)
|
||||
BuildRequires: pkgconfig(vpl) >= 2.6
|
||||
#BuildRequires: pkgconfig(xevd) >= 0.4.1
|
||||
#BuildRequires: pkgconfig(xeve) >= 0.4.3
|
||||
%endif
|
||||
|
||||
Obsoletes: %{name}-free < %{epoch}:%{version}-%{release}
|
||||
@@ -413,8 +434,12 @@ This subpackage contains the headers for FFmpeg libswscale.
|
||||
--enable-avformat \
|
||||
--enable-alsa \
|
||||
--enable-bzlib \
|
||||
%if %{with chromaprint}
|
||||
--enable-chromaprint \
|
||||
--disable-cuda-nvcc \
|
||||
%else
|
||||
--disable-chromaprint \
|
||||
%endif
|
||||
--enable-decklink \
|
||||
--enable-frei0r \
|
||||
--enable-gcrypt \
|
||||
--enable-gmp \
|
||||
@@ -423,7 +448,6 @@ This subpackage contains the headers for FFmpeg libswscale.
|
||||
--enable-iconv \
|
||||
--enable-ladspa \
|
||||
--enable-lcms2 \
|
||||
--enable-libass \
|
||||
--enable-libaom \
|
||||
--enable-libaribb24 \
|
||||
--enable-libaribcaption \
|
||||
@@ -454,7 +478,11 @@ This subpackage contains the headers for FFmpeg libswscale.
|
||||
--enable-libkvazaar \
|
||||
--enable-liblc3 \
|
||||
--disable-liblensfun \
|
||||
%if %{with lcevcdec}
|
||||
--enable-liblcevc-dec \
|
||||
%else
|
||||
--disable-liblcevc-dec \
|
||||
%endif
|
||||
--enable-libmodplug \
|
||||
--enable-libmp3lame \
|
||||
--enable-libmysofa \
|
||||
@@ -480,6 +508,7 @@ This subpackage contains the headers for FFmpeg libswscale.
|
||||
--disable-libshine \
|
||||
--enable-libsmbclient \
|
||||
--enable-libsnappy \
|
||||
--enable-libsvtav1 \
|
||||
--enable-libsoxr \
|
||||
--enable-libspeex \
|
||||
--enable-libsrt \
|
||||
@@ -505,6 +534,8 @@ This subpackage contains the headers for FFmpeg libswscale.
|
||||
--enable-libxcb-shape \
|
||||
--enable-libxcb-shm \
|
||||
--enable-libxcb-xfixes \
|
||||
--enable-libxevd \
|
||||
--enable-libxeve \
|
||||
--enable-libxml2 \
|
||||
--enable-libxvid \
|
||||
--enable-libzimg \
|
||||
@@ -539,6 +570,8 @@ This subpackage contains the headers for FFmpeg libswscale.
|
||||
--prefix=%{_prefix} \
|
||||
--shlibdir=%{_libdir} \
|
||||
%ifarch x86_64 aarch64
|
||||
--enable-cuda-llvm \
|
||||
--enable-cuda-nvcc \
|
||||
--enable-cuvid \
|
||||
--enable-ffnvcodec \
|
||||
--enable-nvdec \
|
||||
@@ -546,12 +579,9 @@ This subpackage contains the headers for FFmpeg libswscale.
|
||||
--extra-cflags="-I%{_includedir}/cuda" \
|
||||
%endif
|
||||
%ifarch x86_64
|
||||
--enable-libsvtav1 \
|
||||
--enable-libsvtvp9 \
|
||||
--enable-libvmaf \
|
||||
--enable-libvpl \
|
||||
# --enable-libxevd \
|
||||
# --enable-libxeve \
|
||||
%endif
|
||||
|
||||
%make_build V=1
|
||||
|
||||
@@ -8,7 +8,8 @@ open_file("anda/multimedia/ffmpeg/VERSION_x264.txt", "w").write(bump::madoguchi(
|
||||
open_file("anda/multimedia/ffmpeg/VERSION_x265.txt", "w").write(bump::madoguchi("x265", labels.branch));
|
||||
open_file("anda/multimedia/ffmpeg/VERSION_tesseract.txt", "w").write(bump::bodhi("tesseract", bump::as_bodhi_ver(labels.branch)));
|
||||
open_file("anda/multimedia/ffmpeg/VERSION_vvenc.txt", "w").write(bump::madoguchi("vvenc-libs", labels.branch));
|
||||
// open_file("anda/multimedia/ffmpeg/VERSION_libnpp.txt", "w").write(bump::madoguchi("libnpp", labels.branch));
|
||||
open_file("anda/multimedia/ffmpeg/VERSION_xeve.txt", "w").write(bump::madoguchi("xeve", labels.branch));
|
||||
open_file("anda/multimedia/ffmpeg/VERSION_xevd.txt", "w").write(bump::madoguchi("xevd", labels.branch));
|
||||
open_file("anda/multimedia/ffmpeg/VERSION_LCEVCdec.txt", "w").write(bump::madoguchi("LCEVCdec", labels.branch));
|
||||
open_file("anda/multimedia/ffmpeg/VERSION_svt-av1.txt", "w").write(bump::bodhi("svt-av1", labels.branch));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user