On Monday 26 February 2001 02:46, Marty Schoch wrote:
> I may be wrong on some of the specifics but this is what
> I've found. I've successfully gotten FreeAmp to switch
> between multiple bitrate mp3s.
> The problem really is that the pipeline is setup based on
> the first few frames of data received. It would be
> possible to signal the change through RTP, but I believe
> all mpeg audio uses the static payload type 14.
> So, you could have the code check each packet for it's format,
> but I think I tried that once, and the overhead was way too high.
> A more complicated solution would be to modify Obseqium to set
> the Market bit in the RTP header when it's about to change format.
> Then just have the player reconfigure the decoder when it
> detects the Market bit in the stream.
This seems an appropriate way to do it. I quote from RFC2250:
[2.1 RTP header usage]
M bit: Set to 1 whenever the timestamp is discontinuous
(such as might happen when a sender switches from one data
source to another). This allows the receiver and any
intervening RTP mixers or translators that are synchronizing
to the flow to ignore the difference between this timestamp
and any previous timestamp in their clock phase detectors.
Does either Obsequiem or Freeamp currently use this bit?
Whenever this bit is set, Freeamp should assume that the audio type (layer,
bitrate, whatever) has changed, and reconfigure itself appropriately. It
could also reset it's own time display to zero (if people want that - I do).
Do people agree?