[gstreamer-bugs] [Bug 566604] Add RTMP client support

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Jun 2 08:19:02 PDT 2010


https://bugzilla.gnome.org/show_bug.cgi?id=566604
  GStreamer | don't know | git

--- Comment #26 from hyc <hyc at highlandsun.com> 2010-06-02 15:18:57 UTC ---
(In reply to comment #25)
> (In reply to comment #24)
> > (In reply to comment #21)
> > > (From update of attachment 162509 [details] [details] [details])
> > > The life-cycle of the RTMP object is horrible. So just a few notes:
> > 
> > What do you mean? It's one object per session.
> 
> You need a backing RTMP to use RTMP_SetupURL(), and that means re-parsing the
> URL everytime you disconnect/reconnect.

Since RTMP URLs frequently include an expiring authentication token, it's
unlikely in practice that you can disconnect and then reconnect with the same
URL.

> Note that RTMP_SetupURL() modifies the passed string in place, but you don't
> know whether it takes ownership of the string or not.

Hm, yeah, actually there is no need for it to be modifying the string. I'll fix
that.

> > > - code is from rtmpdump-2.2e
> > > - upstream code was copied, as they install a *static* library with a pc file
> > 
> > pkg-config stuff was added to ease integration with mplayer. I suggest you use
> > "make XCFLAGS=-fPIC" to build a library that can be linked into shared code,
> > that's what I use for libcurl.so.
> > 
> > Since the API is not frozen yet, it is too soon to be discussing a shared
> > library target for librtmp.
> 
> You could write that in text, and have breakage expected. Having a static
> library doesn't help here.

Pretty sure that's already clearly stated on the web site. Given that the
librtmp code originated as a bunch of files linked directly into the rtmpdump
command, the move to a self-contained library has probably missed a few things
here and there.

> I also had to do quite a few code changes (private functions not marked as
> static, declarations of functions which don't take arguments not having void in
> their arguments, quite a few problems with const char * vs. char *).
> 
> Let me know if you want those upstream, and I'll send you a patch.

Please do, thanks.
> 
> The indentation is a GStreamer-specific requirement.
> 
> > > - RTMP_Close() can't be used more than once (it frees some internal buffers)
> > 
> > RTMP_Close() frees everything associated with a session. What else would you
> > expect it to do?
> 
> Not the same thing I'd expect from RTMP_Free()? :)

Originally there was no RTMP_Alloc/RTMP_Free; I added that later so we can
start hiding the RTMP structure from applications. So since there was only
RTMP_Close, it had to do all cleanup.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.




More information about the Gstreamer-bugs mailing list