Skip to content

VPAAMP-550 default enable mp4demux in sprint (over qtdemux)#1591

Open
pstroffolino wants to merge 5 commits into
dev_sprint_25_2from
feature/VPAAMP-550
Open

VPAAMP-550 default enable mp4demux in sprint (over qtdemux)#1591
pstroffolino wants to merge 5 commits into
dev_sprint_25_2from
feature/VPAAMP-550

Conversation

@pstroffolino

Copy link
Copy Markdown
Contributor

Reason for Change: we believe the last few functional gaps with mp4demux have been fixed. enabling by default in June sprint, to ensure soak time in case any lingering subtle regressions

Risk: Medium

Test Guidance: regression-only

Reason for Change: we believe the last few functional gaps with mp4demux have been fixed.  enabling by default in June sprint, to ensure soak time in case any lingering subtle regressions

Risk: Medium

Test Guidance: regression-only

Signed-off-by: Philip Stroffolino <philip_stroffolino@cable.comcast.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Enables mp4demux by default (preferring it over qtdemux) by flipping the default value of the useMp4Demux boolean in AAMP’s config lookup table, to support June sprint soak/regression validation.

Changes:

  • Set the default for useMp4Demux to true in the boolean config table.

Comment thread AampConfig.cpp Outdated
pstroffolino and others added 4 commits June 10, 2026 09:57
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…ssor

UseMp4Demux is intended as a DASH-only alternative to qtdemux. However
InitializeMediaProcessor had no format guard, so setting useMp4Demux=true
by default caused all streams (HLS TS, HLS fMP4, TSB, etc.) to use
AampMp4Demuxer instead of IsoBmffProcessor. AampMp4Demuxer calls
Mp4Demux::Parse() expecting ISO BMFF boxes; feeding it MPEG-TS bytes
causes Parse() to find no samples, silently dropping every segment.

Changes:
- streamabstraction.cpp (InitializeMediaProcessor): add DASH format guard
  so AampMp4Demuxer is only instantiated when both UseMp4Demux=true and
  mMediaFormat==eMEDIAFORMAT_DASH. All other formats continue to use
  IsoBmffProcessor as before.

- fragmentcollector_hls.cpp (GetStreamFormat): remove the incorrect
  UseMp4Demux override that returned FORMAT_UNKNOWN for HLS video/audio.
  Since HLS never uses AampMp4Demuxer (after the above fix), it must
  always report the actual track output formats so that IsoBmffProcessor
  and the GStreamer pipeline caps are configured correctly.

Fixes: AAMP-IFRAME-4008-HLSTSTrickplay, AAMP-TSB-5005/5007/5011,
       AAMP-CONFIG-2027/2029, AAMP-CDAI-8012/8016, AAMP-LLD-1200 and
       all other non-DASH L2 test failures seen with useMp4Demux=true.
GetStreamFormat (MPD) was returning FORMAT_UNKNOWN when UseMp4Demux is
enabled. This caused ConfigurePipeline to skip pipeline teardown/rebuild
on seek retune (neither isInitialSetup nor isValidNewFormat was true),
which stalled playback after a period transition.

SetStreamCaps (InterfacePlayerRDK) was overwriting stream->format with
the ES codec format (H264/H265), but all routing decisions that require
the ES format already use the isMp4DemuxPlayback flag as a guard.
Overwriting stream->format caused CheckDiscontinuity to report the wrong
format, and broke the ConfigurePipeline reconfigure logic on the next
tune/seek because stream->format no longer matched FORMAT_ISO_BMFF.

Fix: GetStreamFormat always returns FORMAT_ISO_BMFF for DASH (same as
before UseMp4Demux was enabled). SetStreamCaps no longer overwrites
stream->format, preserving the FORMAT_ISO_BMFF set by ConfigurePipeline.
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.

2 participants