application buffer to gstbuffer

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

application buffer to gstbuffer

Mehta, Neel

Hi.

 

I have an encoder which writes to a buffer, and I want to push that buffer to the rtpmp4vpay. So does there exist an element (or an element which I could edit) which could take in a custom buffer and output a GstBuffer, so that I can push this buffer to the rtpmp4vpay??? It would be good if such a framework exists.

 

Thanks in advance.

 

Regards,

Neel.


------------------------------------------------------------------------------
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Problem with changing command line command to code

zelalem
Hi all, I had a command line command that copies video streams from a network into a file. When I try to change it to a code I face with problem. There is no error and the file is created but the content of the file is empty. I have also used sync=FALSE for the filesink element. I used two bins one for the audio and another for the video and then put the two bins and the avimux and filesink in the pipeline and started the pipepline. I even checked the state of the pipeline and it is in running state, but the file is empty. Pease help me. The following is the case:

I wanted to change the following into a code:
gst-launch-0.10 -v avimux name=mux ! filesink location=videoandaudio.avi sync=true {udpsrc port=5000 caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H263-1998" num-buffers=5000 ! queue ! rtph263pdepay ! 'video/x-h263,width=320,height=240,framerate=(fraction)25/1' ! queue} ! mux.video_0 {udpsrc port=5002 caps="application/x-rtp,media=(string)audio,payload=(int)96, rate=(int)8000, encoding-name=(string)PCMA" ! queue ! rtppcmadepay ! 'audio/x-alaw, rate=(int)8000, channels=(int)1' ! queue} ! mux.audio_0;

And the following is what I did:
 gst_bin_add_many (GST_BIN (audbin),
            udpsource_audio, queue_audio, pcmadepay, NULL);
  gst_bin_add_many (GST_BIN (vidbin),
            udpsource_video, queue_video_1, h263depay, NULL);
  gst_bin_add_many (GST_BIN (pipeline), vidbin, audbin,
            avimuxer, filedes,  NULL);

  gst_element_link_many (udpsource_video, queue_video_1, h263depay, NULL);
  gboolean link_ok_video = gst_element_link_filtered (h263depay, avimuxer, caps_video_2); 

 gst_element_link_many (udpsource_audio, queue_audio, pcmadepay, NULL);
 gboolean link_ok_audio = gst_element_link_filtered (pcmadepay, avimuxer, caps_audio_2);

 gst_element_link_many (avimuxer, filedes, NULL);

 gboolean pipstate=gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING);

Thank you.

- Zelalem S.



Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! Try it!
------------------------------------------------------------------------------
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problem with changing command line command to code

Thabelo Mmbengeni-2
request Sink pad of your avimux, link it to your audiobin.

use gst-inspect "ELEMENT_TO_VIEW"  to view your element pads, some of them aren't always available. some are dynamic.
Hope that helps. 

On Tue, Jun 23, 2009 at 1:00 PM, Zelalem Sintayehu <[hidden email]> wrote:
Hi all, I had a command line command that copies video streams from a network into a file. When I try to change it to a code I face with problem. There is no error and the file is created but the content of the file is empty. I have also used sync=FALSE for the filesink element. I used two bins one for the audio and another for the video and then put the two bins and the avimux and filesink in the pipeline and started the pipepline. I even checked the state of the pipeline and it is in running state, but the file is empty. Pease help me. The following is the case:

I wanted to change the following into a code:
gst-launch-0.10 -v avimux name=mux ! filesink location=videoandaudio.avi sync=true {udpsrc port=5000 caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H263-1998" num-buffers=5000 ! queue ! rtph263pdepay ! 'video/x-h263,width=320,height=240,framerate=(fraction)25/1' ! queue} ! mux.video_0 {udpsrc port=5002 caps="application/x-rtp,media=(string)audio,payload=(int)96, rate=(int)8000, encoding-name=(string)PCMA" ! queue ! rtppcmadepay ! 'audio/x-alaw, rate=(int)8000, channels=(int)1' ! queue} ! mux.audio_0;

And the following is what I did:
 gst_bin_add_many (GST_BIN (audbin),
            udpsource_audio, queue_audio, pcmadepay, NULL);
  gst_bin_add_many (GST_BIN (vidbin),
            udpsource_video, queue_video_1, h263depay, NULL);
  gst_bin_add_many (GST_BIN (pipeline), vidbin, audbin,
            avimuxer, filedes,  NULL);

  gst_element_link_many (udpsource_video, queue_video_1, h263depay, NULL);
  gboolean link_ok_video = gst_element_link_filtered (h263depay, avimuxer, caps_video_2); 

 gst_element_link_many (udpsource_audio, queue_audio, pcmadepay, NULL);
 gboolean link_ok_audio = gst_element_link_filtered (pcmadepay, avimuxer, caps_audio_2);

 gst_element_link_many (avimuxer, filedes, NULL);

 gboolean pipstate=gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING);

Thank you.

- Zelalem S.



Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! Try it!

------------------------------------------------------------------------------
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel



------------------------------------------------------------------------------
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: application buffer to gstbuffer

Thiago Sousa Santos-2
In reply to this post by Mehta, Neel


On Tue, Jun 23, 2009 at 6:35 AM, Mehta, Neel <[hidden email]> wrote:

Hi.

 

I have an encoder which writes to a buffer, and I want to push that buffer to the rtpmp4vpay. So does there exist an element (or an element which I could edit) which could take in a custom buffer and output a GstBuffer, so that I can push this buffer to the rtpmp4vpay??? It would be good if such a framework exists.

You are looking for "appsrc", you feed him GstBuffers and it pushes them to the next element. More info here.
 

 

Thanks in advance.

 

Regards,

Neel.


------------------------------------------------------------------------------
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel




--
Thiago Sousa Santos

Embedded Systems and Pervasive Computing Lab (Embedded)
Center of Electrical Engineering and Informatics (CEEI)
Federal University of Campina Grande (UFCG)

------------------------------------------------------------------------------
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problem with changing command line command to code

zelalem
In reply to this post by Thabelo Mmbengeni-2
Hi Thabelo, thank you for your response. I requested a sink for both audio and video and linked it to avimux as follows:
gst_pad_link (gst_element_get_pad (h263depay, "src"),
        gst_element_get_pad (avimuxer, "video_0"));

gst_pad_link (gst_element_get_pad (pcmadepay, "src"),
        gst_element_get_pad (avimuxer, "audio_0"));

But the result is the same. It creates the file but the file is empty.  BTW, i had used gst_element_link_filtered instead of the above statements previously.

- Zelalem S.


Date: Tue, 23 Jun 2009 13:42:09 +0200
From: [hidden email]
To: [hidden email]
Subject: Re: [gst-devel] Problem with changing command line command to code

request Sink pad of your avimux, link it to your audiobin.

use gst-inspect "ELEMENT_TO_VIEW"  to view your element pads, some of them aren't always available. some are dynamic.
Hope that helps. 

On Tue, Jun 23, 2009 at 1:00 PM, Zelalem Sintayehu <[hidden email]> wrote:
Hi all, I had a command line command that copies video streams from a network into a file. When I try to change it to a code I face with problem. There is no error and the file is created but the content of the file is empty. I have also used sync=FALSE for the filesink element. I used two bins one for the audio and another for the video and then put the two bins and the avimux and filesink in the pipeline and started the pipepline. I even checked the state of the pipeline and it is in running state, but the file is empty. Pease help me. The following is the case:

I wanted to change the following into a code:
gst-launch-0.10 -v avimux name=mux ! filesink location=videoandaudio.avi sync=true {udpsrc port=5000 caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H263-1998" num-buffers=5000 ! queue ! rtph263pdepay ! 'video/x-h263,width=320,height=240,framerate=(fraction)25/1' ! queue} ! mux.video_0 {udpsrc port=5002 caps="application/x-rtp,media=(string)audio,payload=(int)96, rate=(int)8000, encoding-name=(string)PCMA" ! queue ! rtppcmadepay ! 'audio/x-alaw, rate=(int)8000, channels=(int)1' ! queue} ! mux.audio_0;

And the following is what I did:
 gst_bin_add_many (GST_BIN (audbin),
            udpsource_audio, queue_audio, pcmadepay, NULL);
  gst_bin_add_many (GST_BIN (vidbin),
            udpsource_video, queue_video_1, h263depay, NULL);
  gst_bin_add_many (GST_BIN (pipeline), vidbin, audbin,
            avimuxer, filedes,  NULL);

  gst_element_link_many (udpsource_video, queue_video_1, h263depay, NULL);
  gboolean link_ok_video = gst_element_link_filtered (h263depay, avimuxer, caps_video_2); 

 gst_element_link_many (udpsource_audio, queue_audio, pcmadepay, NULL);
 gboolean link_ok_audio = gst_element_link_filtered (pcmadepay, avimuxer, caps_audio_2);

 gst_element_link_many (avimuxer, filedes, NULL);

 gboolean pipstate=gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING);

Thank you.

- Zelalem S.



Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! Try it!

------------------------------------------------------------------------------
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel




Windows Live™: Keep your life in sync. Check it out!
------------------------------------------------------------------------------
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel