[Live-devel] [PATCH]MPEG1-Audio for Kasenna
Ross Finlayson
finlayson at live555.com
Wed Jul 5 05:45:07 PDT 2006
Grumble......
First, regarding the patch to "RTSPClient.cpp", please change it so
that you are not simply duplicating the assignment to "sdpFmt" in the
two branches. Since the only change between the two branches is
"video" vs "audio" in the "m=" line, you should be able to change
this so that it continues to assign "sdpFmt" only once.
Second, there is (to my knowledge) nothing wrong with
"StreamParser". Note that it is - as its name implies - meant for
parsing a *byte stream* source (from which you can read
arbitrarily-sized chunks of data). The problem is that you are not
feeding it a byte stream source. Instead, you are trying to feed it
a "BasicUDPSource", which "StreamParser" was not designed to read from.
Since your input (raw-UDP) packets contain MPEG audio frames as is,
then I don't see why you need any 'framer' object in front of the
"BasicUDPSource". Instead, just deliver the data, as is, to
VLC. What's that you say? VLC needs a presentation time? Gee, if
only there were some standard streaming media protocol that includes
a presentation timestamp - then Kasenna could have used that! Excuse
my sarcasm, but I hope you can see why I have such disdain for
Kasenna (a company which, by the way, I am in the process of putting
out of business).
If VLC can't handle playing MPEG audio data without a presentation
timestamp (but it should be able to, because it's able to play HTTP
MPEG audio streams just fine!), then I suggest writing a new
"MPEG1or2AudioStreamDiscreteFramer" (a subclass of "FramedFilter")
that - unlike "MPEG1or2AudioStreamFramer" - assumes that its input
data will be (integral multiples of) discrete MPEG audio
frames. (Don't tell me that Kasenna delivers its MPEG audio data so
that UDP packet boundaries don't align with MPEG audio frame
boundaries - then I'll really puke :-)
Ross Finlayson
Live Networks, Inc. (LIVE555.COM)
<http://www.live555.com/>
More information about the live-devel
mailing list