Merge pull request #332111 from emilazy/push-qwxmuspvpmlw

python3Packages.ffmpeg-python: 0.2.0 -> 0.2.0-unstable-2022-07-11; patch out future dependency; add patches for FFmpeg 7
This commit is contained in:
Peder Bergebakken Sundt 2024-08-12 01:15:28 +02:00 committed by GitHub
commit 129f579cbb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 73 additions and 56 deletions

View File

@ -2,56 +2,67 @@
lib,
buildPythonPackage,
fetchFromGitHub,
ffmpeg_4,
future,
pytest-mock,
pytestCheckHook,
pythonAtLeast,
pythonOlder,
substituteAll,
fetchpatch2,
setuptools,
pytestCheckHook,
pytest-mock,
ffmpeg_7,
}:
buildPythonPackage rec {
buildPythonPackage {
pname = "ffmpeg-python";
version = "0.2.0";
format = "setuptools";
disabled = pythonOlder "3.7";
version = "0.2.0-unstable-2022-07-11";
pyproject = true;
src = fetchFromGitHub {
owner = "kkroening";
repo = "ffmpeg-python";
rev = version;
hash = "sha256-Dk3nHuYVlIiFF6nORZ5TVFkBXdoZUxLfoiz68V1tvlY=";
rev = "df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6";
hash = "sha256-jPiFhYRwfuS+vo6LsLw0+65NWy2A+B+EdC8SewZTRP4=";
};
propagatedBuildInputs = [ future ];
patches = [
(substituteAll {
src = ./ffmpeg-location.patch;
ffmpeg = ffmpeg_7;
})
# Remove dependency on `future`
# https://github.com/kkroening/ffmpeg-python/pull/795
(fetchpatch2 {
url = "https://github.com/kkroening/ffmpeg-python/commit/dce459d39ace25f03edbabdad1735064787568f7.patch?full_index=1";
hash = "sha256-ZptCFplL88d0p2s741ymHiwyDsDGVFylBJ8FTrZDGMc=";
})
# Fix ffmpeg/tests/test_ffmpeg.py: test_pipe() (v1: ignore duplicate frames)
# https://github.com/kkroening/ffmpeg-python/pull/726
(fetchpatch2 {
url = "https://github.com/kkroening/ffmpeg-python/commit/557ed8e81ff48c5931c9249ec4aae525347ecf85.patch?full_index=1";
hash = "sha256-XrL9yLaBg1tu63OYZauEb/4Ghp2zHtiF6vB+1YYbv1Y=";
})
# Fix `test__probe` on FFmpeg 7
# https://github.com/kkroening/ffmpeg-python/pull/848
(fetchpatch2 {
url = "https://github.com/kkroening/ffmpeg-python/commit/eeaa83398ba1d4e5b470196f7d4c7ca4ba9e8ddf.patch?full_index=1";
hash = "sha256-/qxez4RF/RPRr9nA+wp+XB49L3VNgnMwMQhFD2NwijU=";
})
];
build-system = [ setuptools ];
nativeCheckInputs = [
pytestCheckHook
pytest-mock
];
patches = [
(substituteAll {
src = ./ffmpeg-location.patch;
ffmpeg = ffmpeg_4;
})
];
postPatch = ''
substituteInPlace setup.py \
--replace "'pytest-runner'" ""
'';
pythonImportsCheck = [ "ffmpeg" ];
disabledTests = lib.optionals (pythonAtLeast "3.10") [ "test__output__video_size" ];
meta = with lib; {
meta = {
description = "Python bindings for FFmpeg - with complex filtering support";
homepage = "https://github.com/kkroening/ffmpeg-python";
license = licenses.asl20;
maintainers = [ ];
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.emily ];
};
}

View File

@ -1,21 +1,21 @@
diff --git i/ffmpeg/_probe.py w/ffmpeg/_probe.py
index 41e8168..eb83b54 100644
--- i/ffmpeg/_probe.py
+++ w/ffmpeg/_probe.py
@@ -4,7 +4,7 @@ from ._run import Error
diff --git a/ffmpeg/_probe.py b/ffmpeg/_probe.py
index 090d7abf9e..07fb4d9459 100644
--- a/ffmpeg/_probe.py
+++ b/ffmpeg/_probe.py
@@ -4,7 +4,7 @@
from ._utils import convert_kwargs_to_cmd_line_args
-def probe(filename, cmd='ffprobe', **kwargs):
+def probe(filename, cmd='@ffmpeg@/bin/ffprobe', **kwargs):
-def probe(filename, cmd='ffprobe', timeout=None, **kwargs):
+def probe(filename, cmd='@ffmpeg@/bin/ffprobe', timeout=None, **kwargs):
"""Run ffprobe on the specified file and return a JSON representation of the output.
Raises:
diff --git i/ffmpeg/_run.py w/ffmpeg/_run.py
index afc504d..9445cca 100644
--- i/ffmpeg/_run.py
+++ w/ffmpeg/_run.py
@@ -172,7 +172,7 @@ def get_args(stream_spec, overwrite_output=False):
diff --git a/ffmpeg/_run.py b/ffmpeg/_run.py
index f42d1d7309..d3e1df9c80 100644
--- a/ffmpeg/_run.py
+++ b/ffmpeg/_run.py
@@ -174,7 +174,7 @@
@output_operator()
@ -23,8 +23,8 @@ index afc504d..9445cca 100644
+def compile(stream_spec, cmd='@ffmpeg@/bin/ffmpeg', overwrite_output=False):
"""Build command-line for invoking ffmpeg.
The :meth:`run` function uses this to build the commnad line
@@ -193,7 +193,7 @@ def compile(stream_spec, cmd='ffmpeg', overwrite_output=False):
The :meth:`run` function uses this to build the command line
@@ -195,7 +195,7 @@
@output_operator()
def run_async(
stream_spec,
@ -33,7 +33,7 @@ index afc504d..9445cca 100644
pipe_stdin=False,
pipe_stdout=False,
pipe_stderr=False,
@@ -289,7 +289,7 @@ def run_async(
@@ -299,7 +299,7 @@
@output_operator()
def run(
stream_spec,
@ -42,11 +42,11 @@ index afc504d..9445cca 100644
capture_stdout=False,
capture_stderr=False,
input=None,
diff --git i/ffmpeg/tests/test_ffmpeg.py w/ffmpeg/tests/test_ffmpeg.py
index 279a323..8d3b35c 100644
--- i/ffmpeg/tests/test_ffmpeg.py
+++ w/ffmpeg/tests/test_ffmpeg.py
@@ -24,7 +24,7 @@ TEST_OUTPUT_FILE2 = os.path.join(SAMPLE_DATA_DIR, 'out2.mp4')
diff --git a/ffmpeg/tests/test_ffmpeg.py b/ffmpeg/tests/test_ffmpeg.py
index 8dbc271a79..168e662e8d 100644
--- a/ffmpeg/tests/test_ffmpeg.py
+++ b/ffmpeg/tests/test_ffmpeg.py
@@ -26,7 +26,7 @@
BOGUS_INPUT_FILE = os.path.join(SAMPLE_DATA_DIR, 'bogus')
@ -55,7 +55,13 @@ index 279a323..8d3b35c 100644
def test_escape_chars():
@@ -423,7 +423,7 @@ def test_filter_text_arg_str_escape():
@@ -450,12 +450,12 @@
# def test_version():
-# subprocess.check_call(['ffmpeg', '-version'])
+# subprocess.check_call(['@ffmpeg@/bin/ffmpeg', '-version'])
def test__compile():
out_file = ffmpeg.input('dummy.mp4').output('dummy2.mp4')
@ -64,7 +70,7 @@ index 279a323..8d3b35c 100644
assert out_file.compile(cmd='ffmpeg.old') == [
'ffmpeg.old',
'-i',
@@ -490,7 +490,7 @@ def test__run__input_output(mocker):
@@ -530,7 +530,7 @@
@pytest.mark.parametrize('capture_stdout', [True, False])
@pytest.mark.parametrize('capture_stderr', [True, False])
def test__run__error(mocker, capture_stdout, capture_stderr):
@ -73,12 +79,12 @@ index 279a323..8d3b35c 100644
stream = _get_complex_filter_example()
with pytest.raises(ffmpeg.Error) as excinfo:
out, err = ffmpeg.run(
@@ -684,7 +684,7 @@ def test_pipe():
@@ -724,7 +724,7 @@
'pipe:1',
]
- cmd = ['ffmpeg'] + args
+ cmd = ['@ffmpeg@/bin/ffmpeg'] + args
p = subprocess.Popen(
cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE
)
cmd,
stdin=subprocess.PIPE,