pymp4: init at 1.4.0 (#547409)

This commit is contained in:
Sandro
2026-08-18 13:57:08 +00:00
committed by GitHub
3 changed files with 58 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
--- a/src/pymp4/parser.py
+++ b/src/pymp4/parser.py
@@ -16,0 +17 @@
+from io import BytesIO
@@ -643,0 +645,8 @@
+class RelativePrefixed(Prefixed):
+ def _parse(self, stream, context, path):
+ length = self.lengthfield._parsereport(stream, context, path)
+ if self.includelength:
+ length -= self.lengthfield._sizeof(context, path)
+ data = stream_read(stream, length, path)
+ return self.subcon._parsereport(BytesIO(data), context, path)
+
@@ -645 +654 @@
-Box = Prefixed(Int32ub, Struct(
+Box = RelativePrefixed(Int32ub, Struct(

View File

@@ -0,0 +1,40 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
poetry-core,
construct,
pytestCheckHook,
}:
buildPythonPackage {
pname = "pymp4";
version = "1.4.0-unstable-2023-08-07";
pyproject = true;
src = fetchFromGitHub {
owner = "devine-dl";
repo = "pymp4";
rev = "33dc5d620f361cb49d713b60dcb2686ab8696f91";
hash = "sha256-tPIbehjYHg5+S62sorsWow+u/eBkqJYf6xMI8q4vEgY=";
};
patches = [ ./construct-2.10.70.patch ];
pythonRelaxDeps = [ "construct" ];
build-system = [ poetry-core ];
dependencies = [ construct ];
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "pymp4" ];
meta = {
description = "Python library for parsing and manipulating MP4 files";
homepage = "https://github.com/devine-dl/pymp4";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ bdim404 ];
};
}

View File

@@ -15442,6 +15442,8 @@ self: super: with self; {
pymorphy3-dicts-uk = callPackage ../development/python-modules/pymorphy3-dicts-uk { };
pymp4 = callPackage ../development/python-modules/pymp4 { };
pympler = callPackage ../development/python-modules/pympler { };
pymsgbox = callPackage ../development/python-modules/pymsgbox { };