• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Eyevinn / mp4ff
83%
master: 83%

Build:
Build:
LAST BUILD BRANCH: fix/extract-protect-avc3-hev1
DEFAULT BRANCH: master
Repo Added 01 Nov 2024 09:40PM UTC
Files 221
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH fix/external-data-references
branch: fix/external-data-references
CHANGE BRANCH
x
Reset
  • fix/external-data-references
  • aac-asc-header
  • av1-crypto-rap
  • av1-update
  • avcc-encode-trailing-info
  • avcc-preserve-trailing-bytes
  • avs3
  • chore-bump-min-go-1.18
  • chore-bump-min-go-1.19
  • chore/changelog-union-merge
  • chore/codespell
  • chore/go-1.24-build-version
  • chore/prepare-v0.53.0
  • chore/prepare-v0.56.0
  • chore/prepare-v0.57.0
  • chore/prepare-v0.58.0
  • chore/remove-goreportcard-badge
  • ci/checkout-v7
  • codespell
  • colr-icc-decode
  • compressorname-length-clamp
  • dac4
  • decode-box-body-sr
  • defragment-core
  • defragment-hybrid
  • defragment-overlaps
  • docs/benchmarks
  • docs/changelog-dec3-joc
  • docs/claude-md-history
  • docs/defragment-wording
  • docs/encoding-and-changelog
  • docs/fix-doc-comment-drift
  • docs/fix-misleading-doc-comments
  • docs/install-instructions
  • docs/osc-badge-utm-2026-10-09
  • docs/trim-claude-md
  • elst-media-rate
  • esds-vocabulary
  • feat-aac-channel-config
  • feat-coll-box
  • feat-create-sei-nalu
  • feat-hevc-encrypt
  • feat-ivf
  • feat-lbli-sample-group
  • feat-lhvc-box
  • feat-linf-oinf-sample-groups
  • feat-mvhevc-builders
  • feat-mvhevc-cli
  • feat-trgr-track-group
  • feat-vexu-spatial-video
  • feat-vp-codec-sample-box
  • feat-vps-multilayer-extension
  • feat/av1-metadata-obu-cea608
  • feat/brands-check
  • feat/brands-defragmenter
  • feat/brands-general-type-box
  • feat/brands-generate
  • feat/caller-provided-memory
  • feat/clone-box
  • feat/dolby-vision-dvh1-dvhe
  • feat/dref-resolver
  • feat/fragment-reset
  • feat/hevc-hdr-boxes
  • feat/mdat-payload
  • feat/motion-jpeg
  • feat/mov-decoder
  • feat/paint-model-subtitle-boxes
  • feat/piff
  • feat/rsot-box
  • feat/saiz-v1-v2
  • feat/slice-header-into
  • feat/stream-read-mdat-data
  • feat/ttma-box
  • feature-encryption-boxes
  • feature/exporttfhd
  • fix-611-dataparts
  • fix-adts-frame-length
  • fix-avcdecoderconfig
  • fix-bound-more-bitstream-counts
  • fix-co64-size-overflow
  • fix-container-children-bounds
  • fix-ftyp-styp-short-payload
  • fix-goreleaser-brew
  • fix-hdlr-reserved
  • fix-hevc-ps-dos
  • fix-interleaved-sidx-boxes
  • fix-mime-box
  • fix-senc-panic
  • fix-senc-robustness
  • fix-short-esds-issue-393
  • fix-sliceheader-spsid
  • fix-sps-num-ref-frames-overflow
  • fix-ssix-box
  • fix-stsc
  • fix-subs-box
  • fix-trailing-avc1-bytes
  • fix-typos
  • fix-vps-ols0-necessary-layers
  • fix/annexb-trailing-zeros
  • fix/avc-deblock-offsets
  • fix/avc-hrd-cpb-cnt
  • fix/avc-param-set-ranges
  • fix/avc-pps-scaling-lists
  • fix/box-versions-above-1
  • fix/cenc-encrypt-conformance
  • fix/cenc-increment
  • fix/container-error-bounded
  • fix/container-size-underflow
  • fix/decoders-exact-box-size
  • fix/empty-trak-subtitle-header
  • fix/extract-protect-avc3-hev1
  • fix/get-sample-data-indexing
  • fix/hevc-multilayer-ext-sps
  • fix/hevc-slice-deblocking-inference
  • fix/issyncsampleflags
  • fix/leva-grouping-type
  • fix/mdat-mixed-data
  • fix/moov-decode-linear
  • fix/nalu-length-size-checks
  • fix/oob-panics
  • fix/prft-decode
  • fix/sample-data-inverted-interval
  • fix/sdtp-entry-depends-on
  • fix/segmenter-last-sample
  • fix/sei-nalu-short-panic
  • fix/sgpd-description-length-bound
  • fix/slice-header-seq-param-id
  • fix/stsc-containing-chunks
  • fix/stsc-sample-description-id
  • fix/stts-decode-time-bounds
  • fix/top-level-box-attribution
  • fix/trun-mdat-bounds
  • flac
  • fuzz-box
  • go-releaser
  • golangci-lint-v2
  • handle-trailing-avc1-bytes
  • hevc-ref-idx-255
  • hevc-vps
  • iMro0t-feature-encryption-boxes
  • iMro0t-fix-avcdecoderconfig
  • improve-av1
  • improved-crypt-tools
  • issue-492
  • labl-box
  • lpcm-format-flags
  • master
  • mdat-header-size
  • mdhd-dur-info
  • minimal-ac4
  • more-robust-decode
  • mp4-blackbox-test
  • mpeg-h
  • nalu-length-size
  • nalu-length-size-helpers
  • new-pssh-func
  • normalize-quicktime
  • opus
  • parse-joc-dolby-atmos
  • patch-1
  • perf/add-full-samples
  • perf/addfullsamples-always-parts
  • perf/bits-av1-allocs
  • perf/buffer-cmd-writers
  • perf/buffer-writetofile
  • perf/built-fragment-offsets
  • perf/bulk-table-decode
  • perf/cipher-hoist
  • perf/decode-allocs
  • perf/ebsp-allocs
  • perf/encode-allocs
  • perf/encrypt-allocs
  • perf/fragment-decoder
  • prepare-v0.60.0
  • qt-legacy-audio-entries
  • qt-sound-descriptions
  • refactor/styp-delegate
  • release-v0.59.0
  • release/v0.51.0
  • release/v0.52.0
  • release/v0.54.0
  • release/v0.55.0
  • remove-homebrew-cask
  • return-partial-files
  • sampleflags-test
  • sei-recovery-point
  • spherical-v1-no-xml
  • sphericalv1
  • stream-process
  • test-header-parsing
  • test-visualsampleentry
  • tkhd-preserve-matrix
  • update-changelog
  • update-coverage-job
  • update-docs
  • update-make
  • v0.48.0
  • v0.49.0
  • v0.50.0
  • vtpl1-master
  • vvc
  • vvc-nal-headers
  • wave-box
  • wave-box-followups
  • weird-dac3

02 Oct 2026 01:44PM UTC coverage: 82.603% (+0.004%) from 82.599%
37015048333

Pull #618

github

tobbee
fix(mp4): reject sample data stored in other files

A track's sample entries point through data_reference_index to dref entries. A url entry without the self-contained flag puts the data in another file, as in Unified Streaming dref MP4s (mp4split --use_dref, Remix output) and MP4Box -dref files. mp4ff ignored this and read the chunk offsets from the file's own mdat. Without an mdat, mp4ff-crop and the segmenter example panicked. With one, in a file mixing referenced and self-contained tracks, mp4ff-crop wrote the wrong bytes and kept the reference.

Add TrakBox.CheckDataIsSelfContained and call it from File.CopySampleData and from the tools that read progressive sample data. The check reads the self-contained flag from any data entry, since QuickTime alis entries set it too. A url entry without a location, a missing dref, or an index outside it count as self-contained, so files that worked before still do. MdatBox.ReadData and CopyData now return an error for a nil mdat.

prog_8s_dref.mp4 is made with MP4Box -dref -add prog_8s.mp4 and refers to prog_8s.mp4 in the same directory. alis is added to the codespell ignore list as a QuickTime data entry type.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pull Request #618: fix(mp4): reject sample data stored in other files

58 of 71 new or added lines in 10 files covered. (81.69%)

23181 of 28063 relevant lines covered (82.6%)

0.83 hits per line

Relevant lines Covered
Build:
Build:
28063 RELEVANT LINES 23181 COVERED LINES
0.83 HITS PER LINE
Source Files on fix/external-data-references
  • Tree
  • List 217
  • Changed 11
  • Source Changed 0
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
37015048333 fix/external-data-references fix(mp4): reject sample data stored in other files A track's sample entries point through data_reference_index to dref entries. A url entry without the self-contained flag puts the data in another file, as in Unified Streaming dref MP4s (mp4split... Pull #618 02 Oct 2026 01:45PM UTC tobbee github
82.6
See All Builds (638)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc