Skip to content

Conversation

@varsill
Copy link
Contributor

@varsill varsill commented Jul 21, 2025

This PR:

  • adds Demuxer.ISOM.Engine
  • uses Demuxer.ISOM.Engine in the DemuxingSource
  • adds test checking the usage of the DemuxingSource

closes #776

TODO:

  • add support for kind pad option

@varsill varsill marked this pull request as ready for review July 22, 2025 12:22
@varsill varsill requested a review from mat-hek as a code owner July 22, 2025 12:22
@varsill varsill requested a review from FelonEkonom July 22, 2025 14:17
Comment on lines 7 to 8
Once the Demuxer identifies the tracks in the MP4, `t:new_tracks_t/0` notification
is sent for each of the tracks. The parent can then link `Pad.ref(:output, track_id)` for desired tracks.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be useful to allow kind: :audio | :video pad options like the demuxer does

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already support :kind pad option, apparently I've forgotten to describe that here :D

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've improved the moduledoc

any_of(
%Membrane.AAC{config: {:esds, _esds}},
%Membrane.H264{
stream_structure: {_avc, _dcr},
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we change _avc to :avc? This same in H265 below

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that _avc stands for either :avc1 or :avc3, I can add a guard

Comment on lines +14 to +16
A type representing a callback that is used to provide data to the demuxer.
The callback needs to accept the start position and size (both expressed in bytes) and
needs to return a binary of that size.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What if e.g. we demand more bytes than there are in the file we read?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It shouldn't demand more bytes that there are in the file (if it does, it means that there is a bug in the demuxing logic)

Co-authored-by: Mateusz Front <mateusz.front@swmansion.com>
varsill and others added 6 commits July 29, 2025 09:30
Co-authored-by: Mateusz Front <mateusz.front@swmansion.com>
Co-authored-by: Mateusz Front <mateusz.front@swmansion.com>
Co-authored-by: Mateusz Front <mateusz.front@swmansion.com>
@varsill varsill requested review from FelonEkonom and mat-hek July 29, 2025 07:41
@varsill varsill merged commit afb4d0b into master Jul 29, 2025
3 checks passed
@varsill varsill deleted the varsill/demuxer_with_source branch July 29, 2025 08:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MP4 ISOM Demuxer for unevenly distributed tracks

4 participants