[FFmpeg-devel] [PATCH] RTSP-MS 14/15: ASF packet parsing
Ronald S. Bultje
Fri Apr 17 23:25:28 CEST 2009
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.
It's fine, _but_ I would like to request you to be more helpful to get
this working. 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"
2) However, I should handle it with the common API which requires that
it is compliant
I've sent several patches that either use internal API to get it
correct, or that fix the demuxer to handle this non-compliant stream.
I need help from you in implementing an approach that works and that
is acceptable for you to commit.
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
of the padding. There is not supposed to be any padding, as MSDN tells
you, and apparently it does not honour min/max_pktsize. If you are
going to undo my work on getting this working, you'll need to provide
me better guidance as for how to correctly implement this in a way
that you'd accept for committing to SVN.
Alternatively, if you don't want SVN to playback RTSP streams from WMS
servers, just tell me and I'll stop working on this, it's a royal
waste of my time.
> Am i right in the assumtation that rm like asf could have been implemented
> through the common AVInputFormat API ?
It lacks most global and all packet headers and can thus not be parsed
with common AVInputFormat API. (I remember having this discussion with
you before...). RDT over RTSP is incomparable to to .RM files;
however, the packet layout is similar between RDT/RTSP and .RM, which
is why I share one function to descramble packet data, plus a caching
function for the case where a descrambled packet contains multiple
output packets. Also, the stream header in .RM files (part of the full
.RM header) is similar to the private data in the SDP of RDT/RTSP
streams, so that function is shared as well (parse_mdpr). In order to
generate a .RM file from RDT/RTSP streams, I'd need to implement a
complete .RM muxer in the RDT parser (see also mplayer, it takes this
approach and is ugly)...
More information about the ffmpeg-devel