[FFmpeg-devel] [PATCH] RTSP-MS 14/15: ASF packet parsing

Ronald S. Bultje rsbultje
Sat Apr 18 00:59:50 CEST 2009


On Fri, Apr 17, 2009 at 5:43 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> On Fri, Apr 17, 2009 at 05:25:28PM -0400, Ronald S. Bultje wrote:
>> On Fri, Apr 17, 2009 at 5:10 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
>> > we should undo the exporting of ff_asf_get_packet()
>> I sort of expected that.
> good, so if you are aware of it being a bad idea why did you even start
> on that path?

I didn't say that. I think it's the right way. I could see it coming
that you don't.

>> Over the past few emails, you've been telling me that:
>> 1) ASF over RTP is not "ASF" compliant, similar to h263, and you're
>> rejecting my code that makes the ASF demuxer handle this "stream"
> your patches made clear that the min packet size is not honored in these
> streams.
> there are many solutions, but bypassing the common api or randomly placing
> if(rtp) or if(eof which is equivalent top rtp) somewhere is not acceptable
> let me explain it that way, if you dump the stream that you feed to the asf
> demuxer to a single file and this cannot be subsequently demuxed with full
> seeking and error recovery then you did something wrong.
> a h263 rtp demuxer also MUST fix the stream before passing it to a h263
> decoder. it cant just call the decode_block() bypassing the decode_header()
> that would fail due to a misplaced byte.

So you want an ASF "interpreter" in rtp_asf.c? Or you want me to read
the min_pktsize from ASFDemuxContext and fill an extra buffer with
zeroes after every packet end to conform min_pktsize?

>> Just FYI, if I dump the RTP payload data to a file, as mentioned
>> before, it does _not_ play back with the current ASF demuxer, because
> as expected but does it play with the official demuxer from M$ ?
> or mplaye/vlc/xine?

They don't even open it, I have no idea why, there's no stdout/err
output or error message. I tried VLC, WMP and Quicktime with the
flip4mac (WMV for Quicktime, recommended by MS) plugin. No messages on
the commandline, nothing, for none of them, they all have an empty
playlist although they load the metadata of the stream. Like I said,
no idea why.

Mplayer is slightly more verbose and claims there's PCM data in the file:

Playing /tmp/strm.asf.
ASF file format detected.
[asfheader] Audio stream found, -aid 1
[asfheader] Audio stream found, -aid 2
[asfheader] Audio stream found, -aid 3
[asfheader] Audio stream found, -aid 4
ASF: No audio stream found -> no sound.
Clip info:
 name: Absolute Radio - LIVE from London, UK
 author: Virgin Radio
 copyright: TIML Radio Ltd
 comments: Absolute Radio - LIVE from London, UK
Opening audio decoder: [pcm] Uncompressed PCM audio decoder
AUDIO: 44100 Hz, 2 ch, s16le, 96.0 kbit/6.80% (ratio: 12003->176400)
Selected audio codec: [pcm] afm: pcm (Uncompressed PCM)

Which is totally ridiculous. So let's disregard mplayer for now...

> anyway could you elaborate on what is needed to convert RDT/SDP to RM?

Let's do that in a separate thread, this'll be a long one.


More information about the ffmpeg-devel mailing list