Skip to content

Latest commit

 

History

History
44 lines (29 loc) · 11.7 KB

THIRD_PARTY.md

File metadata and controls

44 lines (29 loc) · 11.7 KB

Third-party content

ProjectM TV Engine is this project's maintained, extensively modified fork of projectM, based on unreleased projectM 4.2 master, pinned to commit 6f6480746. It is built from the pinned upstream sources plus the retained ProjectM TV-specific patches in tools/projectm-patches/. This is a development snapshot, not an upstream 4.2 release. The engine name does not replace projectM's attribution or LGPL 2.1 licence. The app and the core AAR consumed by Milkbeat use this engine; their release version and artifact checksums identify the distributed build.

Content Source License
xCrash local native crash capture, pinned to 86dea4fa0cdbae68b63e9b34436fa20b51244d11; Java and both ARM libraries are compiled from the vendored source. No upload component. The pin's latest native changes predate its 2025 documentation update. xCrash; import provenance MIT, BSD-2-Clause/BSD-3-Clause and public-domain components; complete upstream notices in third_party/xcrash/LICENSE and the core's bundled META-INF/licenses/xcrash-LICENSE.txt
ZXing Core 3.5.4, QR encoding for the temporary custom-pack upload dialog (no camera integration) ZXing Apache 2.0; license and notice are bundled under app/src/main/assets/licenses/
Unreleased projectM 4.2 master, built from source: git submodule third_party/projectm pinned to commit 6f64807467e312034883a4389e6aa80a675458bc, with projectm-eval pinned to 22fb0cfd8f2dfbcd2b68f2443e7f44e19b32c09a, plus tools/projectm-patches/ for TV rendering, HLSL compatibility and evaluator compatibility. CMake's numeric version is 4.2.0; it does not identify an upstream release. Linked statically into libprojectmtv.so. Current candidate audit patches0017–0033 follow MilkDrop2 source contracts for opacity, centered custom-wave input windows, gamma-only epsilon, named EEL constants, inverse aspect/fresh wave-point host inputs, negative odd echo orientation, legacy oscillator-Y/triangle diagonal/per-pixel traversal/angle seam, local RGB clamping, border fan coverage, original line sample caps, discrete custom dots and circle closure. Per-instance shape thickness and the latest completed motion field retain the original authored behavior within the documented conversion and fragment-production domains. See the current audit ledger for exact live numbering, source provenance and focused Native4K evidence. Nonzero parsed booleans and tiny arithmetic recovery remain deferred owner proposals. Prior frozen artifacts keep their historical patch numbers. Final combined integration remains separate. Current patch0016 preserves the released per-viewport static mesh/upload caching; see cache evidence. Current patch0015 follows MilkDrop 2.25c’s CPU negative warp-power expression after float conversion, preserving nonfinite domains; see the power investigation. Current patch0014 follows MilkDrop 2.25c for the authored legacy colour-shading amount and mode-1 waveform opacity/open topology; see the focused evidence. Current patch0013 removes the redundant composite UV half-texel bias, following MilkDrop 2’s D3D9 composite-grid setup. Current patch0012 aligns custom shape fills and outlines with MilkDrop 2’s D3D9 pixel centres, using each actual draw target’s dimensions. Historical patch0051 is ported as current0011: CPU warp sine/cosine after emitted-float conversion, following MilkDrop 2 and adapted to 4.2 separate VertexBuffers. Current patch0035 retains the diagnostic API for switching the program binary cache from patch0001; the app setting is retired and caching stays enabled. Patch0036 protects Imagination/PowerVR framebuffer retirement using the Chromium/Skia complete-FBO workaround, attributed in its header; affected Fire TV runtime qualification is separate. Patch0037 adapts our upstream PR #1047, commit ba122baa24cd1794c2a413ec8e308c8ab6e9e4fe, to share line geometry/shaders and instanced Mesh drawing in Renderer while retaining Android prewarming, cached uniform locations and preset-specific policies. Patch0038 replaces framebuffer blits with cached textured copies on Imagination/PowerVR contexts, following the source-bound Fire TV report; it retains colour/alpha, auxiliary-attachment routing and context ownership. See the compatibility evidence. The upstream and patch value report records the current patch series, GPU image evidence and attribution; its linked archive preserves historical dispositions. projectM LGPL 2.1
Cream of the Crop presets (core/src/main/assets/presets) presets-cream-of-the-crop, curated by Jason Fletcher CC0 1.0 as distributed by this project, see Presets and textures
MilkDrop texture pack (core/src/main/assets/textures, 64 of its 67 images; prayerwheel, VITRIOL and kaite removed, see below) presets-milkdrop-texture-pack at commit 6368812f27bc747b517218fbf89d21d59afce4d9: textures originally released with MilkDrop plus community textures used by many presets CC0 1.0 as distributed by this project, see Presets and textures. The upstream repository has no licence file; its README says: "It is highly recommended including this texture pack in any projectM application that ships with bundled presets."
10 more textures (core/src/main/assets/textures: rose, shub1, grad3, test, skull, plane, AbalonyStosich, noise64, chloemall, chloemallCornerMask) "MilkDrop 135k+ Presets MegaPack 2026", collected by Incubo_ (Winamp forums), folder textures/. Referenced by 206 bundled presets and missing from the pack above. plane and AbalonyStosich are byte-identical to the copies in SourceForge mdpresetpack (2019). noise64, chloemall and chloemallCornerMask are the MegaPack's PNG versions, not the DXT-compressed DDS files, which most Android TV GPUs cannot use. CC0 1.0 as distributed by this project, see Presets and textures. The MegaPack states no licence for its textures; its PRESET LICENSE.txt covers only ShaderToy-converted presets, none of which are bundled.

Before this rebase, the maintained engine used upstream 4.1.7 (e0b0a967) plus the historical 49-patch series through main 43023889 (the original 44 plus the later sampler, blur, signed-zoom and live-control repairs). Up to app 1.9.4, the app shipped a prebuilt master snapshot, commit d89c09ef (August 2025); app 1.9.5 shipped prebuilt 4.1.7. These historical identities remain unchanged in release notes and evidence.

The separately stored laboratory preset martin + Se7enSlasher - pixies party (random texture edit).milk is recovered unchanged from Milkwave, commit e1c4210275153ffa7203430b0a8583600e383e79. Its exact byte identity, original macro trigger and source provenance are recorded in the regression coverage. The repository's distributed licence notice, including its BSD 3-Clause terms and additional usage wording, is retained verbatim. This is an external test fixture, stored outside the shipping app/core assets; it is not part of this project's bundled CC0 collection.

Presets and textures

The Aurora Ownership SOL/LUNA diagnostic packs were created by the user's predictor and supplied for the patch0010 experiment. Their frozen source and image bytes are retained as test evidence outside the shipping assets; they are not part of the bundled CC0 collection. The capture records the supplied forecast and actual GPU results separately.

This project distributes the bundled presets (core/src/main/assets/presets) and textures (core/src/main/assets/textures) under CC0 1.0 Universal (LICENSES/CC0-1.0.txt): free for any use, without conditions.

  • CC0 covers what this project holds: the selection and curation of the collection and any changes made to it (presets removed, textures converted from DDS to PNG).
  • The individual presets and textures are the work of their authors, who released them freely over the past two decades. Like projectM, whose preset repository treats them as public domain, this project distributes them on that basis and does not claim rights in them.
  • Authors who do not want their work included can open an issue in this repository; it will be removed.

Removed content

Nivush - Spiking Mandelbrot.milk was removed: it was the only preset whose texture (colors3) could not be found. Every remaining preset now has all the textures it references.

Removed in 1.9 because they show text, logos or people: Suff5, prayerwheel, winamp_woofer, VITRIOL, kaite, portal1, portal2. The presets that used them were removed as well. tools/check-presets.py (run by CI) keeps them out.

The historical 28-patch audit checkpoint carried0025 legacy traversal,0026 angle seam,0027 local RGB clamp and0028 border fan coverage; the circle closure proposal is deferred for its positive overall emulator cost. The shared nonzero file-boolean proposal is deferred outside shipping patches because its negative-wave witness adds measured render cost. Original MilkDrop2 source provenance and limited execution/capture qualification are recorded in the audit ledger; these source-derived GLES comparisons are not Windows/D3D recordings.

At the historical 28-patch checkpoint, the discrete/single custom-dot proposal was deferred after controlled Native4K mosaic timing. Its source-corrected final-output images and cost remain in the I22 owner packet. Live subsequent patch numbers shift down one; frozen identities are preserved.

Current audit patch0028 restores MilkDrop2 border strip-fan coverage by changing only eight triangle indices, based on original milkdropfs.cpp (both inspected MilkDrop2 copies are byte-identical). Current float colour/alpha and Native rendering policies remain retained; this is not Windows/D3D pixel equivalence. M02 source and Native evidence binds the original source attribution, finite controls, repeated captures and versioned predictor contract.

The user approved necessary authored-work cost for I19, I22 and I20 and production qualification of I24 and I16. Candidate patches0029–0033 implement those five changes; the older zero-added-cost decisions above remain historical evidence. The new series uses a simple captured style per shape instance and actual real-fragment UV publication. It adds no API, dependency, preset or release-version change. Current qualification distinguishes source controls, selected Native4K images, lifecycle checks and the still-pending isolated combined-cost/PR gates.