MP4/3GPP: Missing support for atom tsel (and consequence for multi-bitrate file).
I found that VLC 1.1.2 does not recognise a few mp4 boxes that are important for multi-trac video such as "tsel".
Here you can find the debug with those warning (and other 3GPP related box not treated).
mp4 debug: found Box: udta size 42
mp4 debug: found Box: tsel size 20
mp4 warning: unknown box type tsel (incompletely loaded)
mp4 debug: found Box: RMP4 size 14
mp4 warning: unknown box type RMP4 (incompletely loaded)
...
mp4 debug: found Box: udta size 270
mp4 debug: found Box: hnti size 242
mp4 debug: found Box: sdp size 234
mp4 warning: unknown box type sdp (incompletely loaded)
mp4 debug: found Box: tsel size 20
mp4 warning: unknown box type tsel (incompletely loaded)
As per http://www.mp4ra.org/atoms.html the tsel box is "Track selection (user-data)" and is define in 3GPP v6 ( http://www.mp4ra.org/specs.html#3 (closed)GPP => http://www.3gpp.org/ ).
To find the specs of the "tsel" box you have to look at 3GPP document.
Transparent end-to-end packet switched streaming service (PSS); 3GPP file format (3GP): http://www.3gpp.org/ftp/Specs/html-info/26244.htm
"tsel" was introduce in version 6 of 3GPP and can be found starting from Chapter 7.2 (Groupings of alternate tracks) in the following document: http://www.3gpp.org/ftp/Specs/archive/26_series/26.244/26244-600.zip
With this it is possible to specify Alternate group of tracks that should not be played simultaniously and must be choosen base on a criteria such as Language ‘lang’ or Bandwidth ‘bwas’.
GPAC version 0.4.5 as support for TrackSelection and can produce file with 3 video tracks.
Currently when VLC is exposed to a multiple video tracks file, it open all the video tracks. This is a bug and VLC should choose one of those, the discriminating factor should be the bandwidth. For a local file, it should be the track with the biggest bandwidth (as it should mean quality).
To fix this bug, the "tsel" box should be first properly read by VLC.
A similar bug exist for ASF file, but there the exclusion is properly parsed but the information is not properly used.
David Glaude