[FFmpeg-devel] [PATCH/RFC] Ryan Martell's native mms code
Björn Axelsson
bjorn.axelsson
Thu Aug 9 16:16:53 CEST 2007
On Thu, 2007-08-09 at 16:02 +0200, Michael Niedermayer wrote:
> Hi
>
> On Thu, Aug 09, 2007 at 03:28:26PM +0200, Bj?rn Axelsson wrote:
> > On Thu, 2007-08-09 at 14:35 +0200, Reimar D?ffinger wrote:
> > > Hello,
> > > On Thu, Aug 09, 2007 at 02:24:08PM +0200, Bj?rn Axelsson wrote:
> > > > I have merged Ryan's native_mms work mentioned in an earlier mail with
> > > > the SVN trunk, to produce an easily reviewed patch. I have tried not to
> > > > change anything from Ryan's code except what was needed to make it
> > > > compile.
> > > >
> > > > native_mms.c is mostly and will still require substantial work until it
> > > > is acceptable. It should probably also be split up into three files: one
> > > > for common functions, one for tcp/udp and one for http.
> > >
> > > Actually I don't see why it needs to be a demuxer at all instead of only
> > > a protocol. At least in MPlayer splitting it this way works (though
> > > stream selection admittedly is ugly and possibly not suitable in this
> > > way for ffmpeg).
> >
> > I don't have enough knowledge about the ffmpeg internals to say whether
> > it is possible or not to implement it as a protocol instead. However, it
> > seems that rtsp is implemented as a demuxer and I would guess that
> > native_mms.c is based in part on rtsp.c.
>
> noone understands rtsp.c so this is not a good start ...
>
>
> > If mms was implemented as a protocol, the asf demuxer would have to take
> > over the application interface for much of the functionality such as
> > playing, pausing and seeking with different cases for file and mms
> > access. If that is acceptable I'll give it a try and see if I run into
> > any problems.
>
> hmm, is there more needed than
>
> asf_seek(stuff){
> if(mms){
> int ret= context->protocol.seek(stuff);
> flush_everything();
> return ret;
> }
> }
Yes. Since protocol.seek doesn't support timestamp seeking. It would
have to do something like this:
asf_seek(stuff){
if(mms){
int ret;
if(stuff & AV_SEEK_BYTE)
ret= context->protocol.seek(stuff);
else
ret= ff_mms_seek_timestamp(stuff);
flush_everything();
return ret;
}
}
--
Bj?rn Axelsson Phone: +46-(0)90-18 98 97
Intinor AB Fax: +46-(0)920-757 10
www.intinor.se
Interactive Television & Digital Media Distribution
More information about the ffmpeg-devel
mailing list