Re: tcpserversrc restarting (Antoine Martin)

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: tcpserversrc restarting (Antoine Martin)

General195
I have improved the tcpserversrc  to a retentive service to receive tcp data continually.

this is my code:

struct _GstTCPServerSrc {
  GstPushSrc element;

//../Add some gboolean vars
gboolean    recvError;           default = FALSE;
 gboolean        bReconnected;  default=TRUE;
}

Then   in    gst_tcp_server_src_create():

static GstFlowReturn
gst_tcp_server_src_create(GstPushSrc * psrc,
        GstBuffer ** outbuf) {
    GstTCPServerSrc *src;
    GstFlowReturn ret = GST_FLOW_OK;
/*    static gint indexPocket = 0;
    int i = 0;*/

    src = GST_TCP_SERVER_SRC (psrc);

    if (!GST_OBJECT_FLAG_IS_SET (src, GST_TCP_SERVER_SRC_OPEN))
        goto wrong_state;

restart:

//Libing begin
    if (src->client_sock_fd.fd >= 0) {
        if(src->recvError){
//            g_print("**********Client connection has closed fd=%d clientnum=%d**************\n",
//                    src->client_sock_fd.fd, src->clientnum);

            gst_poll_remove_fd(src->fdset, &src->client_sock_fd);
            gst_poll_fd_ctl_read(src->fdset, &src->server_sock_fd, TRUE);
            src->client_sock_fd.fd = -1;
            src->bReconnected = TRUE;
        }else{
            /* if we have a client, wait for read */
            gst_poll_fd_ctl_read(src->fdset, &src->server_sock_fd, FALSE);
            gst_poll_fd_ctl_read(src->fdset, &src->client_sock_fd, TRUE);
        }

    } else {
        /* else wait on server socket for connections */
        gst_poll_fd_ctl_read(src->fdset, &src->server_sock_fd, TRUE);
    }
//Libing end

//    g_print("Poll will wait!!!!~~~~~~\n");

    /* no action (0) is an error too in our case */
    if ((ret = gst_poll_wait(src->fdset, GST_CLOCK_TIME_NONE)) <= 0) {
        if (ret == -1 && errno == EBUSY)
            goto select_cancelled;
        else
            goto select_error;
    }

    /* if we have no client socket we can accept one now */
    if (src->client_sock_fd.fd < 0) {
        if (gst_poll_fd_can_read(src->fdset, &src->server_sock_fd)) {
            if ((src->client_sock_fd.fd = accept(src->server_sock_fd.fd,
                    (struct sockaddr *) &src->client_sin,
                    &src->client_sin_len)) == -1)
                goto accept_error;

            gst_poll_add_fd(src->fdset, &src->client_sock_fd);
            src->recvError = FALSE;

/*            g_print("**********Client has connected fd=%d clientnum=%d**************\n",
                    src->client_sock_fd.fd, src->clientnum);*/
        }
        /* and restart now to poll the socket. */
        goto restart;
    }

    GST_LOG_OBJECT(src, "asked for a buffer");

    switch (src->protocol) {
        case GST_TCP_PROTOCOL_NONE:{
            if((ret = gst_tcp_server_src_read_buffer(src, src->client_sock_fd.fd,
                    src->fdset, outbuf)) == GST_FLOW_OK){
                return ret;
            }else{
                g_print("____________Receive Error!\n");
                close(src->client_sock_fd.fd);
                src->recvError = TRUE;
                goto restart;
            }
            break;
        }
        case GST_TCP_PROTOCOL_GDP:{
            if (!src->caps_received) {
                GstCaps *caps;
                gchar *string;

                ret = gst_tcp_gdp_read_caps(GST_ELEMENT (src),
                        src->client_sock_fd.fd, src->fdset, &caps);

                if (ret == GST_FLOW_WRONG_STATE)
                    goto gdp_cancelled;

                if (ret != GST_FLOW_OK)
                    goto gdp_caps_read_error;

                src->caps_received = TRUE;
                string = gst_caps_to_string(caps);
                GST_DEBUG_OBJECT(src, "Received caps through GDP: %s", string);
                g_free(string);

                gst_pad_set_caps(GST_BASE_SRC_PAD (psrc), caps);
            }

            ret = gst_tcp_gdp_read_buffer(GST_ELEMENT (src),
                    src->client_sock_fd.fd, src->fdset, outbuf);

            if (ret == GST_FLOW_OK)
                gst_buffer_set_caps(*outbuf, GST_PAD_CAPS (GST_BASE_SRC_PAD (src)));

            break;
        }
        default:
            /* need to assert as buf == NULL */
            g_assert("Unhandled protocol type");
            break;
    }

    if (ret == GST_FLOW_OK) {
        GST_LOG_OBJECT    (src,
            "Returning buffer from _get of size %d, ts %"
            GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT
            ", offset %" G_GINT64_FORMAT ", offset_end %" G_GINT64_FORMAT,
            GST_BUFFER_SIZE (*outbuf),
            GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (*outbuf)),
            GST_TIME_ARGS (GST_BUFFER_DURATION (*outbuf)),
            GST_BUFFER_OFFSET (*outbuf), GST_BUFFER_OFFSET_END (*outbuf));
    }

    return ret;

    wrong_state:
    {
        GST_DEBUG_OBJECT (src, "connection to closed, cannot read data");
        return GST_FLOW_WRONG_STATE;
    }
    select_error:
    {
        GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL),
                ("Select error: %s", g_strerror (errno)));
        return GST_FLOW_ERROR;
    }
    select_cancelled:
    {
        GST_DEBUG_OBJECT (src, "select canceled");
        return GST_FLOW_WRONG_STATE;
    }
    accept_error:
    {
        GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, (NULL),
                ("Could not accept client on server socket: %s", g_strerror (errno)));
        return GST_FLOW_ERROR;
    }
    gdp_cancelled:
    {
        GST_DEBUG_OBJECT (src, "reading gdp canceled");
        return GST_FLOW_WRONG_STATE;
    }
    gdp_caps_read_error:
    {
        /* if we did not get canceled, report an error */
        if (ret != GST_FLOW_WRONG_STATE) {
            GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL),
                    ("Could not read caps through GDP"));
        }
        return ret;
    }
}



GstFlowReturn
gst_tcp_server_src_read_buffer (GstTCPServerSrc* src, int socket,
        GstPoll * fdset, GstBuffer ** buf)



--
Bercy Li
+8615954811012
[hidden email]


在2010-05-15 14:44:11,[hidden email] 写道: >Send gstreamer-devel mailing list submissions to > [hidden email] > >To subscribe or unsubscribe via the World Wide Web, visit > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel >or, via email, send a message with subject or body 'help' to > [hidden email] > >You can reach the person managing the list at > [hidden email] > >When replying, please edit your Subject line so it is more specific >than "Re: Contents of gstreamer-devel digest..." > > >Today's Topics: > >   1. tcpserversrc restarting (Antoine Martin) >   2. Re: GStreamer Conference 2010 (wl2776) >   3. Re: No EOS message at the end of file. (wl2776) >   4. Re: RTSP Seek and DVB subtitles (Alexander Olekhnovich) >   5. Framestepping backwards in MPEG2 files (wl2776) >   6. Pre-releases! gst-plugins-good 0.10.22.2, -ugly 0.10.14.2, >      -bad 0.10.18.2 (Tim-Philipp M?ller) >   7. Memory profiling and hunting memory leaks (Loc Nguyen) >   8. Re: Black-and-white output (Marco Ballesio) > > >---------------------------------------------------------------------- > >Message: 1 >Date: Fri, 14 May 2010 18:20:28 +0700 >From: Antoine Martin <[hidden email]> >Subject: [gst-devel] tcpserversrc restarting >To: "[hidden email]" > <[hidden email]> >Message-ID: <[hidden email]> >Content-Type: text/plain; charset=ISO-8859-1; format=flowed > >Hi, > >I have some code largely based on this tcpserversrc example: >http://www.jejik.com/articles/2007/01/streaming_audio_over_tcp_with_python-gstreamer/ > >I want to ensure that it keeps working after the first client  >disconnects, which is not the case by default. >At the moment, the tcp socket shows as "listening" but any further data  >sent will not be processed. > >I've tried unlink()ing the decoder when receiving EOS and re-adding a  >new one, but it complained that that there was an existing one with the  >same name. How do I free the resources to start again? How about even  >freeing the socket? > >I would rather not switch to using RTP... But if I have to I will, how  >does gstrtpbin deal with multiple clients connecting? > >Thanks >Antoine > > > >------------------------------ > >Message: 2 >Date: Fri, 14 May 2010 04:38:05 -0700 (PDT) >From: wl2776 <[hidden email]> >Subject: Re: [gst-devel] GStreamer Conference 2010 >To: [hidden email] >Message-ID: <[hidden email]> >Content-Type: text/plain; charset=us-ascii > > >Great to hear this. > >What's the registration fee? >--  >View this message in context: http://gstreamer-devel.966125.n4.nabble.com/GStreamer-Conference-2010-tp2123970p2216448.html >Sent from the GStreamer-devel mailing list archive at Nabble.com. > > > >------------------------------ > >Message: 3 >Date: Fri, 14 May 2010 05:34:17 -0700 (PDT) >From: wl2776 <[hidden email]> >Subject: Re: [gst-devel] No EOS message at the end of file. >To: [hidden email] >Message-ID: <[hidden email]> >Content-Type: text/plain; charset=us-ascii > > > >Wim Taymans wrote: >>  >> On Fri, 2010-05-14 at 11:42 +0100, Giles Atkinson wrote: >>>  > My problem is that the EOS message doesn't appear on playbin2's bus, >>> after >>>  > some manipulations with reverse and forward playback. But the playbin2 >>> is >>>  > surely at the end of file, as reported by _query_position(). >>  >> EOS should always be sent in the PLAYING state when the pipeline is EOS, >> if not, please file a bug with an example or a way to reproduce the >> strange behaviour that you are seeing. >>  > >Hmm... The problem is gone now. After rebuild. >--  >View this message in context: http://gstreamer-devel.966125.n4.nabble.com/No-EOS-message-at-the-end-of-file-tp2216227p2216515.html >Sent from the GStreamer-devel mailing list archive at Nabble.com. > > > >------------------------------ > >Message: 4 >Date: Fri, 14 May 2010 15:23:16 +0300 >From: Alexander Olekhnovich <[hidden email]> >Subject: Re: [gst-devel] RTSP Seek and DVB subtitles >To: Marc Leeman <[hidden email]>,  Discussion of the > development of GStreamer <[hidden email]> >Message-ID: > <[hidden email]> >Content-Type: text/plain; charset="iso-8859-1" > >Hi Marc, > >I think ppl are interested :) At least I would really like to have a look at >that. > >On Thu, May 13, 2010 at 7:24 PM, Marc Leeman <[hidden email]> wrote: > >> > Regarding dvb subtitles, there is a little bit of work going on. One >> > with gst-teletext to grab subtitles from teletext and another with >> > image subtitles. >> >> I've got a working implementation that I am willing to share if ppl are >> interested. >> >> You can use pango to get an approximate of a full TT page or just get >> the subs (page) in text format. >> >> Tested on a number of DVB-S streams with good result. >> >> -- >>  greetz, marc >> After an instrument has been assembled, extra components will be found >> on the bench. >> crichton 2.6.26 #1 PREEMPT Tue Jul 29 21:17:59 CDT 2008 GNU/Linux >> >> -----BEGIN PGP SIGNATURE----- >> Version: GnuPG v1.4.6 (GNU/Linux) >> >> iD8DBQFL7CfOUQpj09NWLeERAoeFAKDPbRQw/hGwVPZXD7/ll3NZdjEp8QCZAVsN >> 7CCwL8z16lUE6OgsbktpAWU= >> =lYBv >> -----END PGP SIGNATURE----- >> >> >> ------------------------------------------------------------------------------ >> >> >> _______________________________________________ >> gstreamer-devel mailing list >> [hidden email] >> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel >> >> > > >--  >Thank you, >Alexander Olekhnovich >-------------- next part -------------- >An HTML attachment was scrubbed... > >------------------------------ > >Message: 5 >Date: Fri, 14 May 2010 08:03:24 -0700 (PDT) >From: wl2776 <[hidden email]> >Subject: [gst-devel] Framestepping backwards in MPEG2 files >To: [hidden email] >Message-ID: <[hidden email]> >Content-Type: text/plain; charset=us-ascii > > >Is it complete? >My pipeline doesn't step one frame backwards. > >m_player is an instance of the playbin2. It has loaded the MPEG2 Program >Stream. >Then, the pipeline was paused before calling step_left > >void gst_player::step_left(void) >{GstFormat fmt=GST_FORMAT_TIME; >  >  if(m_player){ >    if(m_current_position>=40*GST_MSECOND){ >      gboolean rb=gst_element_seek(m_player,-1.0,GST_FORMAT_TIME, >                                          >(GstSeekFlags)(GST_SEEK_FLAG_FLUSH|GST_SEEK_FLAG_ACCURATE), >                                          >GST_SEEK_TYPE_SET,m_current_position,GST_SEEK_TYPE_SET,m_stream_duration); >      GST_DEBUG("seek backwards: %d",rb); >      GstEvent *event = gst_event_new_step (GST_FORMAT_BUFFERS, 1, 1.0, >TRUE, FALSE); >      rb=gst_element_send_event (m_player, event); >      GST_DEBUG("send step event: %d",rb); >    } >  } >} > > >Both _seek and _send_event(_new_step) return TRUE. >However, I don't see any changes in picture on the screen.  >After several calls to step_left() I get the EOS. >What am I doing wrong? >--  >View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Framestepping-backwards-in-MPEG2-files-tp2216718p2216718.html >Sent from the GStreamer-devel mailing list archive at Nabble.com. > > > >------------------------------ > >Message: 6 >Date: Fri, 14 May 2010 20:49:47 +0100 >From: Tim-Philipp M?ller <[hidden email]> >Subject: [gst-devel] Pre-releases! gst-plugins-good 0.10.22.2, -ugly > 0.10.14.2, -bad 0.10.18.2 >To: [hidden email] >Message-ID: <1273866587.26703.6.camel@zingle> >Content-Type: text/plain; charset="UTF-8" > >Hi, > >Below the latest pre-releases for gst-plugins-good, -ugly and -bad. > >Please test them thoroughly and file blocker bugs for all regressions or >other major issues you find at http://gstreamer.freedesktop.org/bugs/ > >Packagers please note some plugins/elements have moved from -bad to >-good (imagefreeze plugin, oss4 plugin, capsfilter element). > >md5sums and links: > >794e8d737657c60b2d6f4d44475d8b59  gst-plugins-good-0.10.22.2.tar.gz >59403cd259529dee36ad09435898d80f  gst-plugins-good-0.10.22.2.tar.bz2 > >http://gstreamer.freedesktop.org/src/gst-plugins-good/pre/gst-plugins-good-0.10.22.2.tar.gz >http://gstreamer.freedesktop.org/src/gst-plugins-good/pre/gst-plugins-good-0.10.22.2.tar.bz2 > >bafd26e74b2bacecb59fd6c938888ed0  gst-plugins-ugly-0.10.14.2.tar.gz >41bf784355cce044c0a7072c20fa053c  gst-plugins-ugly-0.10.14.2.tar.bz2 > >http://gstreamer.freedesktop.org/src/gst-plugins-ugly/pre/gst-plugins-ugly-0.10.14.2.tar.gz >http://gstreamer.freedesktop.org/src/gst-plugins-ugly/pre/gst-plugins-ugly-0.10.14.2.tar.bz2 > >2f5f14c58c50e1b476fb2a31af6270c4  gst-plugins-bad-0.10.18.2.tar.gz >fe4fde65ed036c927427a158f0165298  gst-plugins-bad-0.10.18.2.tar.bz2 > >http://gstreamer.freedesktop.org/src/gst-plugins-bad/pre/gst-plugins-bad-0.10.18.2.tar.gz >http://gstreamer.freedesktop.org/src/gst-plugins-bad/pre/gst-plugins-bad-0.10.18.2.tar.bz2 > >Cheers > -Tim > > > > > >------------------------------ > >Message: 7 >Date: Fri, 14 May 2010 16:19:22 -0700 >From: Loc Nguyen <[hidden email]> >Subject: [gst-devel] Memory profiling and hunting memory leaks >To: [hidden email] >Message-ID: <[hidden email]> >Content-Type: text/plain; charset=UTF-8; format=flowed > >Hey, I sent an email a few days ago but was never sent to the mailing  >list.  I'm trying to hunt down some memory leaks in gstreamer on  >Windows.  Can anyone advise on how core gstreamer devs are doing this?   >Any internal APIs that maybe useful for me to try? > >-Loc > > > >------------------------------ > >Message: 8 >Date: Sat, 15 May 2010 09:44:04 +0300 >From: Marco Ballesio <[hidden email]> >Subject: Re: [gst-devel] Black-and-white output >To: Discussion of the development of GStreamer > <[hidden email]> >Message-ID: > <[hidden email]> >Content-Type: text/plain; charset="iso-8859-1" > >Hi, > >On Wed, May 12, 2010 at 7:11 PM, Louis-Simon Houde <[hidden email]>wrote: > >>  Hello, >> >> The question might sound completely silly for you but does gstreamer needs >> a video card to generate video output on command line with its gst-launch >> command ? >> > >it shouldn't matter as long as you're not rendering the output on the card >itself.. can you please post the gst-launch command you're using? > >Regards > > >> >> I'm asking this question because we use gst-launch to generate video >> output. On one of the server, with identical command, the output is >> black-and-white. One of the server doesn't have any video card because it is >> hosted on Amazon EC2. >> >> Ubuntu versions are different also so it might be another cue. But it is >> the same gstreamer version on both servers. >> >> Thanks >> >> ------------------------------ >> 10 000 $ de magasinage avec Hotmail. Inscrivez-vous!<http://go.microsoft.com/?linkid=9729716> >> >> >> ------------------------------------------------------------------------------ >> >> >> _______________________________________________ >> gstreamer-devel mailing list >> [hidden email] >> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel >> >> >-------------- next part -------------- >An HTML attachment was scrubbed... > >------------------------------ > >------------------------------------------------------------------------------ > > > >------------------------------ > >_______________________________________________ >gstreamer-devel mailing list >[hidden email] >https://lists.sourceforge.net/lists/listinfo/gstreamer-devel > > >End of gstreamer-devel Digest, Vol 48, Issue 23 >***********************************************



网易为中小企业免费提供企业邮箱(自主域名)

------------------------------------------------------------------------------


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: tcpserversrc restarting (Antoine Martin)

Antoine Martin
libing195 wrote:
> I have improved the tcpserversrc  to a retentive service to receive tcp data continually.
Thanks for that, the only difficulty for me is that my current code is
pure python, and I dont fancy shipping my own gst modules for all the
platforms I want to support..

Have you looked at getting this merged upstream?

Cheers
Antoine


>
> this is my code:
>
> struct _GstTCPServerSrc {
>   GstPushSrc element;
>
> //../Add some gboolean vars
> gboolean    recvError;           default = FALSE;
>  gboolean        bReconnected;  default=TRUE;
> }
>
> Then   in    gst_tcp_server_src_create():
>
> static GstFlowReturn
> gst_tcp_server_src_create(GstPushSrc * psrc,
>         GstBuffer ** outbuf) {
>     GstTCPServerSrc *src;
>     GstFlowReturn ret = GST_FLOW_OK;
> /*    static gint indexPocket = 0;
>     int i = 0;*/
>
>     src = GST_TCP_SERVER_SRC (psrc);
>
>     if (!GST_OBJECT_FLAG_IS_SET (src, GST_TCP_SERVER_SRC_OPEN))
>         goto wrong_state;
>
> restart:
>
> //Libing begin
>     if (src->client_sock_fd.fd >= 0) {
>         if(src->recvError){
> //            g_print("**********Client connection has closed fd=%d clientnum=%d**************\n",
> //                    src->client_sock_fd.fd, src->clientnum);
>
>             gst_poll_remove_fd(src->fdset, &src->client_sock_fd);
>             gst_poll_fd_ctl_read(src->fdset, &src->server_sock_fd, TRUE);
>             src->client_sock_fd.fd = -1;
>             src->bReconnected = TRUE;
>         }else{
>             /* if we have a client, wait for read */
>             gst_poll_fd_ctl_read(src->fdset, &src->server_sock_fd, FALSE);
>             gst_poll_fd_ctl_read(src->fdset, &src->client_sock_fd, TRUE);
>         }
>
>     } else {
>         /* else wait on server socket for connections */
>         gst_poll_fd_ctl_read(src->fdset, &src->server_sock_fd, TRUE);
>     }
> //Libing end
>
> //    g_print("Poll will wait!!!!~~~~~~\n");
>
>     /* no action (0) is an error too in our case */
>     if ((ret = gst_poll_wait(src->fdset, GST_CLOCK_TIME_NONE)) <= 0) {
>         if (ret == -1 && errno == EBUSY)
>             goto select_cancelled;
>         else
>             goto select_error;
>     }
>
>     /* if we have no client socket we can accept one now */
>     if (src->client_sock_fd.fd < 0) {
>         if (gst_poll_fd_can_read(src->fdset, &src->server_sock_fd)) {
>             if ((src->client_sock_fd.fd = accept(src->server_sock_fd.fd,
>                     (struct sockaddr *) &src->client_sin,
>                     &src->client_sin_len)) == -1)
>                 goto accept_error;
>
>             gst_poll_add_fd(src->fdset, &src->client_sock_fd);
>             src->recvError = FALSE;
>
> /*            g_print("**********Client has connected fd=%d clientnum=%d**************\n",
>                     src->client_sock_fd.fd, src->clientnum);*/
>         }
>         /* and restart now to poll the socket. */
>         goto restart;
>     }
>
>     GST_LOG_OBJECT(src, "asked for a buffer");
>
>     switch (src->protocol) {
>         case GST_TCP_PROTOCOL_NONE:{
>             if((ret = gst_tcp_server_src_read_buffer(src, src->client_sock_fd.fd,
>                     src->fdset, outbuf)) == GST_FLOW_OK){
>                 return ret;
>             }else{
>                 g_print("____________Receive Error!\n");
>                 close(src->client_sock_fd.fd);
>                 src->recvError = TRUE;
>                 goto restart;
>             }
>             break;
>         }
>         case GST_TCP_PROTOCOL_GDP:{
>             if (!src->caps_received) {
>                 GstCaps *caps;
>                 gchar *string;
>
>                 ret = gst_tcp_gdp_read_caps(GST_ELEMENT (src),
>                         src->client_sock_fd.fd, src->fdset, &caps);
>
>                 if (ret == GST_FLOW_WRONG_STATE)
>                     goto gdp_cancelled;
>
>                 if (ret != GST_FLOW_OK)
>                     goto gdp_caps_read_error;
>
>                 src->caps_received = TRUE;
>                 string = gst_caps_to_string(caps);
>                 GST_DEBUG_OBJECT(src, "Received caps through GDP: %s", string);
>                 g_free(string);
>
>                 gst_pad_set_caps(GST_BASE_SRC_PAD (psrc), caps);
>             }
>
>             ret = gst_tcp_gdp_read_buffer(GST_ELEMENT (src),
>                     src->client_sock_fd.fd, src->fdset, outbuf);
>
>             if (ret == GST_FLOW_OK)
>                 gst_buffer_set_caps(*outbuf, GST_PAD_CAPS (GST_BASE_SRC_PAD (src)));
>
>             break;
>         }
>         default:
>             /* need to assert as buf == NULL */
>             g_assert("Unhandled protocol type");
>             break;
>     }
>
>     if (ret == GST_FLOW_OK) {
>         GST_LOG_OBJECT    (src,
>             "Returning buffer from _get of size %d, ts %"
>             GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT
>             ", offset %" G_GINT64_FORMAT ", offset_end %" G_GINT64_FORMAT,
>             GST_BUFFER_SIZE (*outbuf),
>             GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (*outbuf)),
>             GST_TIME_ARGS (GST_BUFFER_DURATION (*outbuf)),
>             GST_BUFFER_OFFSET (*outbuf), GST_BUFFER_OFFSET_END (*outbuf));
>     }
>
>     return ret;
>
>     wrong_state:
>     {
>         GST_DEBUG_OBJECT (src, "connection to closed, cannot read data");
>         return GST_FLOW_WRONG_STATE;
>     }
>     select_error:
>     {
>         GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL),
>                 ("Select error: %s", g_strerror (errno)));
>         return GST_FLOW_ERROR;
>     }
>     select_cancelled:
>     {
>         GST_DEBUG_OBJECT (src, "select canceled");
>         return GST_FLOW_WRONG_STATE;
>     }
>     accept_error:
>     {
>         GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, (NULL),
>                 ("Could not accept client on server socket: %s", g_strerror (errno)));
>         return GST_FLOW_ERROR;
>     }
>     gdp_cancelled:
>     {
>         GST_DEBUG_OBJECT (src, "reading gdp canceled");
>         return GST_FLOW_WRONG_STATE;
>     }
>     gdp_caps_read_error:
>     {
>         /* if we did not get canceled, report an error */
>         if (ret != GST_FLOW_WRONG_STATE) {
>             GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL),
>                     ("Could not read caps through GDP"));
>         }
>         return ret;
>     }
> }
>
>
> GstFlowReturn
> gst_tcp_server_src_read_buffer (GstTCPServerSrc* src, int socket,
>         GstPoll * fdset, GstBuffer ** buf)
>
>
>
> --
>
> Bercy Li
> +8615954811012
> [hidden email]
>
>
>
>
> 在2010-05-15 14:44:11,[hidden email] 写道:
>> Send gstreamer-devel mailing list submissions to
>> [hidden email]
>>
>> To subscribe or unsubscribe via the World Wide Web, visit
>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>> or, via email, send a message with subject or body 'help' to
>> [hidden email]
>>
>> You can reach the person managing the list at
>> [hidden email]
>>
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of gstreamer-devel digest..."
>>
>>
>> Today's Topics:
>>
>>   1. tcpserversrc restarting (Antoine Martin)
>>   2. Re: GStreamer Conference 2010 (wl2776)
>>   3. Re: No EOS message at the end of file. (wl2776)
>>   4. Re: RTSP Seek and DVB subtitles (Alexander Olekhnovich)
>>   5. Framestepping backwards in MPEG2 files (wl2776)
>>   6. Pre-releases! gst-plugins-good 0.10.22.2, -ugly 0.10.14.2,
>>      -bad 0.10.18.2 (Tim-Philipp M?ller)
>>   7. Memory profiling and hunting memory leaks (Loc Nguyen)
>>   8. Re: Black-and-white output (Marco Ballesio)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Fri, 14 May 2010 18:20:28 +0700
>> From: Antoine Martin <[hidden email]>
>> Subject: [gst-devel] tcpserversrc restarting
>> To: "[hidden email]"
>> <[hidden email]>
>> Message-ID: <[hidden email]>
>> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>>
>> Hi,
>>
>> I have some code largely based on this tcpserversrc example:
>> http://www.jejik.com/articles/2007/01/streaming_audio_over_tcp_with_python-gstreamer/
>>
>> I want to ensure that it keeps working after the first client
>> disconnects, which is not the case by default.
>> At the moment, the tcp socket shows as "listening" but any further data
>> sent will not be processed.
>>
>> I've tried unlink()ing the decoder when receiving EOS and re-adding a
>> new one, but it complained that that there was an existing one with the
>> same name. How do I free the resources to start again? How about even
>> freeing the socket?
>>
>> I would rather not switch to using RTP... But if I have to I will, how
>> does gstrtpbin deal with multiple clients connecting?
>>
>> Thanks
>> Antoine
>>
>>
>>
>> ------------------------------
>>
>> Message: 2
>> Date: Fri, 14 May 2010 04:38:05 -0700 (PDT)
>> From: wl2776 <[hidden email]>
>> Subject: Re: [gst-devel] GStreamer Conference 2010
>> To: [hidden email]
>> Message-ID: <[hidden email]>
>> Content-Type: text/plain; charset=us-ascii
>>
>>
>> Great to hear this.
>>
>> What's the registration fee?
>> --
>> View this message in context: http://gstreamer-devel.966125.n4.nabble.com/GStreamer-Conference-2010-tp2123970p2216448.html
>> Sent from the GStreamer-devel mailing list archive at Nabble.com.
>>
>>
>>
>> ------------------------------
>>
>> Message: 3
>> Date: Fri, 14 May 2010 05:34:17 -0700 (PDT)
>> From: wl2776 <[hidden email]>
>> Subject: Re: [gst-devel] No EOS message at the end of file.
>> To: [hidden email]
>> Message-ID: <[hidden email]>
>> Content-Type: text/plain; charset=us-ascii
>>
>>
>>
>> Wim Taymans wrote:
>>> On Fri, 2010-05-14 at 11:42 +0100, Giles Atkinson wrote:
>>>>  > My problem is that the EOS message doesn't appear on playbin2's bus,
>>>> after
>>>>  > some manipulations with reverse and forward playback. But the playbin2
>>>> is
>>>>  > surely at the end of file, as reported by _query_position().
>>> EOS should always be sent in the PLAYING state when the pipeline is EOS,
>>> if not, please file a bug with an example or a way to reproduce the
>>> strange behaviour that you are seeing.
>>>
>> Hmm... The problem is gone now. After rebuild.
>> --
>> View this message in context: http://gstreamer-devel.966125.n4.nabble.com/No-EOS-message-at-the-end-of-file-tp2216227p2216515.html
>> Sent from the GStreamer-devel mailing list archive at Nabble.com.
>>
>>
>>
>> ------------------------------
>>
>> Message: 4
>> Date: Fri, 14 May 2010 15:23:16 +0300
>> From: Alexander Olekhnovich <[hidden email]>
>> Subject: Re: [gst-devel] RTSP Seek and DVB subtitles
>> To: Marc Leeman <[hidden email]>, Discussion of the
>> development of GStreamer <[hidden email]>
>> Message-ID:
>> <[hidden email]>
>> Content-Type: text/plain; charset="iso-8859-1"
>>
>> Hi Marc,
>>
>> I think ppl are interested :) At least I would really like to have a look at
>> that.
>>
>> On Thu, May 13, 2010 at 7:24 PM, Marc Leeman <[hidden email]> wrote:
>>
>>>> Regarding dvb subtitles, there is a little bit of work going on. One
>>>> with gst-teletext to grab subtitles from teletext and another with
>>>> image subtitles.
>>> I've got a working implementation that I am willing to share if ppl are
>>> interested.
>>>
>>> You can use pango to get an approximate of a full TT page or just get
>>> the subs (page) in text format.
>>>
>>> Tested on a number of DVB-S streams with good result.
>>>
>>> --
>>>  greetz, marc
>>> After an instrument has been assembled, extra components will be found
>>> on the bench.
>>> crichton 2.6.26 #1 PREEMPT Tue Jul 29 21:17:59 CDT 2008 GNU/Linux
>>>
>>> -----BEGIN PGP SIGNATURE-----
>>> Version: GnuPG v1.4.6 (GNU/Linux)
>>>
>>> iD8DBQFL7CfOUQpj09NWLeERAoeFAKDPbRQw/hGwVPZXD7/ll3NZdjEp8QCZAVsN
>>> 7CCwL8z16lUE6OgsbktpAWU=
>>> =lYBv
>>> -----END PGP SIGNATURE-----
>>>
>>>
>>> ------------------------------------------------------------------------------
>>>
>>>
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> [hidden email]
>>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>>
>>>
>>
>> --
>> Thank you,
>> Alexander Olekhnovich
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>>
>> ------------------------------
>>
>> Message: 5
>> Date: Fri, 14 May 2010 08:03:24 -0700 (PDT)
>> From: wl2776 <[hidden email]>
>> Subject: [gst-devel] Framestepping backwards in MPEG2 files
>> To: [hidden email]
>> Message-ID: <[hidden email]>
>> Content-Type: text/plain; charset=us-ascii
>>
>>
>> Is it complete?
>> My pipeline doesn't step one frame backwards.
>>
>> m_player is an instance of the playbin2. It has loaded the MPEG2 Program
>> Stream.
>> Then, the pipeline was paused before calling step_left
>>
>> void gst_player::step_left(void)
>> {GstFormat fmt=GST_FORMAT_TIME;
>>
>>  if(m_player){
>>    if(m_current_position>=40*GST_MSECOND){
>>      gboolean rb=gst_element_seek(m_player,-1.0,GST_FORMAT_TIME,
>>                                        
>> (GstSeekFlags)(GST_SEEK_FLAG_FLUSH|GST_SEEK_FLAG_ACCURATE),
>>                                        
>> GST_SEEK_TYPE_SET,m_current_position,GST_SEEK_TYPE_SET,m_stream_duration);
>>      GST_DEBUG("seek backwards: %d",rb);
>>      GstEvent *event = gst_event_new_step (GST_FORMAT_BUFFERS, 1, 1.0,
>> TRUE, FALSE);
>>      rb=gst_element_send_event (m_player, event);
>>      GST_DEBUG("send step event: %d",rb);
>>    }
>>  }
>> }
>>
>>
>> Both _seek and _send_event(_new_step) return TRUE.
>> However, I don't see any changes in picture on the screen.
>> After several calls to step_left() I get the EOS.
>> What am I doing wrong?
>> --
>> View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Framestepping-backwards-in-MPEG2-files-tp2216718p2216718.html
>> Sent from the GStreamer-devel mailing list archive at Nabble.com.
>>
>>
>>
>> ------------------------------
>>
>> Message: 6
>> Date: Fri, 14 May 2010 20:49:47 +0100
>> From: Tim-Philipp M?ller <[hidden email]>
>> Subject: [gst-devel] Pre-releases! gst-plugins-good 0.10.22.2, -ugly
>> 0.10.14.2, -bad 0.10.18.2
>> To: [hidden email]
>> Message-ID: <1273866587.26703.6.camel@zingle>
>> Content-Type: text/plain; charset="UTF-8"
>>
>> Hi,
>>
>> Below the latest pre-releases for gst-plugins-good, -ugly and -bad.
>>
>> Please test them thoroughly and file blocker bugs for all regressions or
>> other major issues you find at http://gstreamer.freedesktop.org/bugs/
>>
>> Packagers please note some plugins/elements have moved from -bad to
>> -good (imagefreeze plugin, oss4 plugin, capsfilter element).
>>
>> md5sums and links:
>>
>> 794e8d737657c60b2d6f4d44475d8b59  gst-plugins-good-0.10.22.2.tar.gz
>> 59403cd259529dee36ad09435898d80f  gst-plugins-good-0.10.22.2.tar.bz2
>>
>> http://gstreamer.freedesktop.org/src/gst-plugins-good/pre/gst-plugins-good-0.10.22.2.tar.gz
>> http://gstreamer.freedesktop.org/src/gst-plugins-good/pre/gst-plugins-good-0.10.22.2.tar.bz2
>>
>> bafd26e74b2bacecb59fd6c938888ed0  gst-plugins-ugly-0.10.14.2.tar.gz
>> 41bf784355cce044c0a7072c20fa053c  gst-plugins-ugly-0.10.14.2.tar.bz2
>>
>> http://gstreamer.freedesktop.org/src/gst-plugins-ugly/pre/gst-plugins-ugly-0.10.14.2.tar.gz
>> http://gstreamer.freedesktop.org/src/gst-plugins-ugly/pre/gst-plugins-ugly-0.10.14.2.tar.bz2
>>
>> 2f5f14c58c50e1b476fb2a31af6270c4  gst-plugins-bad-0.10.18.2.tar.gz
>> fe4fde65ed036c927427a158f0165298  gst-plugins-bad-0.10.18.2.tar.bz2
>>
>> http://gstreamer.freedesktop.org/src/gst-plugins-bad/pre/gst-plugins-bad-0.10.18.2.tar.gz
>> http://gstreamer.freedesktop.org/src/gst-plugins-bad/pre/gst-plugins-bad-0.10.18.2.tar.bz2
>>
>> Cheers
>> -Tim
>>
>>
>>
>>
>>
>> ------------------------------
>>
>> Message: 7
>> Date: Fri, 14 May 2010 16:19:22 -0700
>> From: Loc Nguyen <[hidden email]>
>> Subject: [gst-devel] Memory profiling and hunting memory leaks
>> To: [hidden email]
>> Message-ID: <[hidden email]>
>> Content-Type: text/plain; charset=UTF-8; format=flowed
>>
>> Hey, I sent an email a few days ago but was never sent to the mailing
>> list.  I'm trying to hunt down some memory leaks in gstreamer on
>> Windows.  Can anyone advise on how core gstreamer devs are doing this?  
>> Any internal APIs that maybe useful for me to try?
>>
>> -Loc
>>
>>
>>
>> ------------------------------
>>
>> Message: 8
>> Date: Sat, 15 May 2010 09:44:04 +0300
>> From: Marco Ballesio <[hidden email]>
>> Subject: Re: [gst-devel] Black-and-white output
>> To: Discussion of the development of GStreamer
>> <[hidden email]>
>> Message-ID:
>> <[hidden email]>
>> Content-Type: text/plain; charset="iso-8859-1"
>>
>> Hi,
>>
>> On Wed, May 12, 2010 at 7:11 PM, Louis-Simon Houde <[hidden email]>wrote:
>>
>>>  Hello,
>>>
>>> The question might sound completely silly for you but does gstreamer needs
>>> a video card to generate video output on command line with its gst-launch
>>> command ?
>>>
>> it shouldn't matter as long as you're not rendering the output on the card
>> itself.. can you please post the gst-launch command you're using?
>>
>> Regards
>>
>>
>>> I'm asking this question because we use gst-launch to generate video
>>> output. On one of the server, with identical command, the output is
>>> black-and-white. One of the server doesn't have any video card because it is
>>> hosted on Amazon EC2.
>>>
>>> Ubuntu versions are different also so it might be another cue. But it is
>>> the same gstreamer version on both servers.
>>>
>>> Thanks
>>>
>>> ------------------------------
>>> 10 000 $ de magasinage avec Hotmail. Inscrivez-vous!<http://go.microsoft.com/?linkid=9729716>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>>
>>>
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> [hidden email]
>>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>>
>>>
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>>
>> ------------------------------
>>
>> ------------------------------------------------------------------------------
>>
>>
>>
>> ------------------------------
>>
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>
>>
>> End of gstreamer-devel Digest, Vol 48, Issue 23
>> ***********************************************
>>
>> ------------------------------------------------------------------------
>>
>> ------------------------------------------------------------------------------
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


------------------------------------------------------------------------------

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel