> Actually its not impossible to create extradata from raw Opus streams.
> The extradata only contains a magic, #channes, padding, a sample rate and
> a channel_family.
> 
> We know the magic, the #channels can be found out via the packet's
> contents and whether it contains multiple packets, the padding would
> be 0 because its a stream, the sample rate is always 48000 (we purpusefully
> disrespect the container's sample rate in case of Opus, which this is),
> and the mapping family can be set to 255 to just let the decoder decide
> on the number of channels.
> 
> 
> > The RTP demuxer should start exporting extradata instead, if possible. 
> > Either generated from available stream information, or taken verbatim if 
> > present. Not sure how the RTP encapsulation for Opus is defined in this 
> > regard.
> >
> 
> Yes, I think that's the best solution. Just follow the steps I described 
> above, and
> to write it out you can check out the opus_write_extradata() function in
> libavcodec/opusenc.c.

Thank you for the feedback everyone. I agree, the RTP demuxer is the best place 
for this. I will resubmit the patch as such.

I have a question about "purposefully disrespecting the container sample rate". 
In the case of SDP, it is possible to include the sample rate of the source in 
the sprop-maxcapturerate parameter in the a=fmtp section. For example (Taken 
from RFC7587 Section 7): 

       m=audio 54312 RTP/AVP 101
       a=rtpmap:101 opus/48000/2
       a=fmtp:101 maxplaybackrate=16000; sprop-maxcapturerate=16000;
       maxaveragebitrate=20000; stereo=1; useinbandfec=1; usedtx=0
       a=ptime:40
       a=maxptime:40

In this case, would it be appropriate to set the sample rate in the opus header 
to 16000? I think in any case, we are allowed to set it to 0, but if the source 
sample rate is available we might as well use it.

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to