SShortSingh.
Back to feed

How a developer shipped a libmpv-based video player on the Mac App Store

0
·1 views

Developer Reel, a local video player and library app for macOS, was successfully submitted to the Mac App Store despite most mpv-based players distributing outside it. The process took about a month from first commit to approval, with the biggest hurdle being a JIT-related crash caused by LuaJIT's memory allocator conflicting with App Store sandbox entitlement rules. The fix was a single build-flag change to disable Lua entirely, since the app never used mpv's scripting features, which also eliminated the need for two otherwise-required entitlements. Additional challenges included LGPL compliance with static linking, two sandbox traps that only surfaced after local testing, and a design rejection. The developer published the experience as a field guide for anyone integrating FFmpeg or libmpv into a sandboxed Mac app.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Developer learns primitives should enforce structure, not domain meaning

A software developer discovered an architectural flaw while auditing a foundational infrastructure primitive, finding it had been given authority to judge whether a value was meaningful rather than just structurally valid. The constraint had survived code reviews and redesigns, but closer examination revealed it was policing intent rather than enforcing memory safety or mathematical correctness. The issue came into focus with BoundedU64, where a restriction existed solely because domain semantics had been unconsciously embedded into pure mathematics. Removing the constraint required only a few lines of code, but the conceptual shift was significant: primitives should only verify structural validity and leave questions of meaning to higher domain layers. The experience reinforced a clear architectural principle — infrastructure owns structure, while meaning belongs to the domain.

0
ProgrammingDEV Community ·

Australia's Startup Ecosystem Has the Tools — But Founders Need a Better Map

Australia's digital economy startup scene has seen over 810 companies raise more than US$5.4 billion through end-2025, spanning sectors like fintech, biotech, and clean energy. In 2026, government funding programs are increasingly targeting the critical gap between seed capital and Series A, a stage where many startups historically stalled. Key support mechanisms include the R&D Tax Incentive, which offers tax offsets for genuine experimental development without a competitive pitch process, and the Industry Growth Program, which pairs founders with advisors before directing them to relevant funding. Despite this substantial support infrastructure, many founders remain unaware of what is available or how to navigate it effectively. A new research note prepared for the Superteam Australia bounty program aims to address this by providing founders with a structured, practical walkthrough of the ecosystem rather than a simple list of resources.

0
ProgrammingDEV Community ·

How a Developer Built a Fraud-Resistant Wallet Engine Using Kafka and TypeScript

A software developer has detailed the architecture behind a fintech wallet engine designed to handle credits, debits, and transfers without losing money even during system failures. The system is built on NestJS, PostgreSQL, Apache Kafka, and Redis, with each component serving a distinct role in ensuring reliability and auditability. A double-entry bookkeeping model is central to the design, ensuring every financial operation produces paired debit and credit ledger entries whose net sum must always equal zero. The Transactional Outbox pattern is used to guarantee that events are published to Kafka only after a database transaction is confirmed, preventing message loss. Redis handles idempotency checks to block duplicate requests, while running balance snapshots on each ledger entry allow full reconstruction of any wallet's history at any point in time.

0
ProgrammingDEV Community ·

Enterprise Voice Agent Pilot Exposed Critical Gateway Gaps, Not Model Failures

A voice agent deployed for a wealth management firm's enterprise pilot suffered four critical incidents within its first three weeks, despite strong staging metrics including 99.2% uptime and sub-280ms latency. The failures stemmed from missing infrastructure: an OpenAI rate limit hit during peak hours left an advisor's client on hold for four minutes, while no per-request audit logs existed to satisfy compliance review. The operations team also lacked per-tenant cost attribution and had no prompt version pinning, making it impossible to trace when a faulty prompt update began affecting responses. None of the incidents were caused by model quality issues; all were attributed to an underdeveloped gateway layer. The developer concluded that an enterprise-grade gateway must handle per-tenant rate limiting, cost tagging, guardrail enforcement, immutable audit logging, and automatic multi-provider failover.

How a developer shipped a libmpv-based video player on the Mac App Store · ShortSingh