[gstreamer-bugs] [Bug 566604] Add RTMP client support
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Wed Jun 2 07:42:52 PDT 2010
https://bugzilla.gnome.org/show_bug.cgi?id=566604
GStreamer | don't know | git
--- Comment #25 from Bastien Nocera <hadess at hadess.net> 2010-06-02 14:42:47 UTC ---
(In reply to comment #24)
> (In reply to comment #21)
> > (From update of attachment 162509 [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.
I would have expected a separate URL object for example.
Note that RTMP_SetupURL() modifies the passed string in place, but you don't
know whether it takes ownership of the string or not.
> > - 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.
> > - upstream code was cleaned up to compile with GStreamer's warnings on, and
> > re-indented
>
> The code uses GNU indent style. Frankly I prefer K&R style but it is what it
> is.
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.
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()? :)
> > - additional properties (which I removed from the old plugin), probably need
> > adding back, at least the swfURL one or the plugin would only handle rtmpe
> > support.
>
> I believe it would be a mistake to add specific support for individual librtmp
> options to applications; the maintenance burden will be pretty significant
> since new requirements turn up pretty frequently. Better to just take advantage
> of RTMP_SetupURL() and tack on arbitrary options to the URL.
OK. I'm only familiar with the RTMP protocol from my earlier attempts, but I
agree. If it's not necessary to use additional arguments, that means it'll work
better out of the box.
> Since the curl code just does a straight dump (no seeking) it's probably not
> the best model. You should also take a look at the ffmpeg support, which
> supports seeking.
>
> http://git.ffmpeg.org/?p=ffmpeg;a=blob;f=libavformat/librtmp.c;h=dd7640aaebaf94315ba153835d3daa66ea77bb81;hb=HEAD
I was looking for it yesterday and couldn't find it. Thanks.
> The XBMC patch might also be illustrative
>
> http://trac.xbmc.org/ticket/8971
Cool.
--
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