Skip to content

qtdemux: compensate wrong data offset for MSS fragments

Moved to monorepo from gst-plugins-good!627 (closed) plus qtdemux test setup clean-ups.


commit 1
Author: Hosang Lee <hosang10.lee@lge.com>
Date:   Tue Jun 16 15:18:37 2020 +0900

    qtdemux: compensate wrong data offset for MSS fragments
    
    A data offset with an offset smaller than the moof length is wrong
    in smooth streaming streams.
    
    The samples will not be located and eventually playback will
    error out. So compensate assuming data is in mdat following moof.

commit 2
Author: Tim-Philipp Müller <tim@centricular.com>
Date:   Fri Jan 27 02:17:47 2023 +0000

    tests: qtdemux: use binary files for samples
    
    Instead of hexdumping it in a 360k header file.

commit 3
Author: Hosang Lee <hosang10.lee@lge.com>
Date:   Tue Jun 16 15:18:37 2020 +0900

    tests: qtdemux: add test for MSS fragment wrong data offset compensation
    
    A data offset with an offset smaller than the moof length is wrong
    in smooth streaming streams. The samples will not be located and
    eventually playback will error out. So compensate assuming data
    is in mdat following moof.

Modified the unit test here to

  1. read the mss fragment from a file instead of dumping the file contents as an hex array to that giant header file (now removed, see first commit)
  2. generate the 'wrong' mss fragments on the fly by copying the pristine fragment and changing the offset in the right place programmatically, so we don't have to store a second file that differs in just one byte from the original one.

Merge request reports