Open Bug 1393039 Opened 7 years ago Updated 2 years ago

Add support for SamplingRateBox box

Categories

(Core :: Audio/Video: Playback, enhancement, P3)

enhancement

Tracking

()

Tracking Status
firefox57 --- affected

People

(Reporter: jya, Unassigned)

References

Details

The default AudioSampleEntry only supports a 16 bits fixed point. As such, the maximum sampling rate is 65535Hz.

If the sampling rate is greater, then per spec (ISO 14496-14 12.2.3.1) a AudioSampleEntryV1 should be used (version 1) with a SamplingRateBox()

Structure:
class AudioSampleEntryV1(codingname) extends SampleEntry (codingname){ 
   unsigned int(16) entry_version;  // must be 1,  
                              //   and   must   be   in   an   stsd   with   version   ==1   
   const unsigned int(16)[3] reserved = 0; 
   template unsigned int(16) channelcount;  // must be correct 
   template unsigned int(16) samplesize = 16; 
   unsigned int(16) pre_defined = 0; 
   const unsigned int(16) reserved = 0 ; 
   template unsigned int(32) samplerate = 1<<16; 
   // optional boxes follow 
   SamplingRateBox();   
   ChannelLayout();   
   // we permit any number of DownMix or DRC boxes: 
   DownMixInstructions()   [];   
   DRCCoefficientsBasic()   [];   
   DRCInstructionsBasic()   [];   
   DRCCoefficientsUniDRC()   [];   
   DRCInstructionsUniDRC()   [];   
   Box ();     // further boxes as needed 
} 

so samplerate has a value of 65536 and a SamplingRateBox will contain the sampling rate as a 32 bits integer.
Flags: needinfo?(ayang)
See Also: → 1393045
Note that ffmpeg currently can't generate such file, and only supports QT Extension v2 (see bug 1393045).

Upstream bug created:
https://trac.ffmpeg.org/ticket/6609
Do you have sample stream?
Assignee: nobody → ayang
Flags: needinfo?(ayang) → needinfo?(jyavenard)
I don't know of one..

only looking at the spec.

currently ffmpeg generates invalid content with a samplign rate value set at 0. and we can't play those.
Flags: needinfo?(jyavenard)

The bug assignee is inactive on Bugzilla, so the assignee is being reset.

Assignee: ayang → nobody
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.