gstreamer with libvdpau.

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

gstreamer with libvdpau.

mohammmed akhil
Hi,
I am a noob in gstreamer. I want to know how to play gstreamer using libvdpau,so that i can use Nvidia graphic accelerator capabilities to play full hd content. Any help will be highly appreciated. I have ubuntu 9.04 and ubuntu 10.04 machines.

Thanking one and all.

Best Regards.

On Wed, May 19, 2010 at 8:41 PM, <[hidden email]> wrote:
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. Re: gstreamer-devel Digest, Vol 48, Issue 37 (Edward Hervey)
  2. Re: mov multiple audio (Ivan Zoli)
  3. Trying to write a plugin but autogen.sh fails (Giorgio Buffa)
  4. Framestepping backwards doesn't work with MPEG2 PS        files. (wl2776)
  5. Bursts in UDP streaming (Alexis Berlemont)


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

Message: 1
Date: Wed, 19 May 2010 12:00:14 +0200
From: Edward Hervey <[hidden email]>
Subject: Re: [gst-devel] gstreamer-devel Digest, Vol 48, Issue 37
To: Discussion of the development of GStreamer
       <[hidden email]>
Message-ID: <1274263214.29023.97.camel@localhost>
Content-Type: text/plain; charset="UTF-8"

On Wed, 2010-05-19 at 15:24 +0530, abhisek shaw wrote:
> Hi,
>
> I have been trying to play Youtube videos using gstreamer but have not
> been successful in doing so.From what i could figure out, swfdec
> plug-in is required to play youtube vides because youtube supports
> flash video. As per gstreamer plug-in overview page, this plug-in
> should be available in "bad plugins". This plug-in has some external
> dependecy on libswfdec. Even after installing this library, this
> plug-in does not show in the list of the elements. The configure
> script in "bad plug-ins" searches for 0.3 version of swfdec, which is
> already obsolete. I have tried bypassing this , but "swfdec" plug-in
> is still not built.
>
> I have tried the following pipelines.
>
> gst-launch-0.10 souphttpsrc
> location="http://www.youtube.com/v/6R0NJMGVjf4?f=videos&c=gdataSample-YouTube-1&app=youtube_gdata"  ! decodebin ! ximagesink

 Don't do it like that. Use libgdata to get the flv/mp4 video link.
That url is for the flash player (and not for the actual video file).
 That's how the totem youtube plugin does it and it works like a charm.
Go check how they do it.

  Edward


>
> Setting pipeline to PAUSED ...
> Pipeline is PREROLLING ...
> ERROR: from
> element /GstPipeline:pipeline0/GstDecodeBin:decodebin0/ffdemux_swf:ffdemux_swf0: GStreamer encountered a general supporting library error.
> Additional debug info:
> gstffmpegdemux.c(1243): gst_ffmpegdemux_open
> (): /GstPipeline:pipeline0/GstDecodeBin:decodebin0/ffdemux_swf:ffdemux_swf0:
> Input/output error
> ERROR: pipeline doesn't want to preroll.
> Setting pipeline to NULL ...
> Freeing pipeline ...
>
> Any help would be greatly appreciated.
> Thanks,
> Shaw
> ------------------------------------------------------------------------------
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel





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

Message: 2
Date: Wed, 19 May 2010 12:20:32 +0200
From: Ivan Zoli <[hidden email]>
Subject: Re: [gst-devel] mov multiple audio
To: [hidden email]
Message-ID:
       <[hidden email]>
Content-Type: text/plain; charset=ISO-8859-1

Hallo,
I'm trying to record and .mov file with multiple audio tracks.
By now the file produced are playble with QuickTime,
but I hear both the tracks downmixed.
If I try the same pipeline with a .avi file (avimux), for example,
it works. Can anyone help me?
That's a sample of the pipeline I use:
gst-launch -v videotestsrc num-buffers=300 ! \
??video/x-raw-yuv,format=\(fourcc\)I420,width=640,height=480,frametate=\(fraction\)30/1
! \
??x264enc ! \
??queue name=video \
??audiotestsrc num-buffers=100 blocksize=3200 ! \
??audio/x-raw-int,rate=16000,channels=1,width=16,depth=16 ! \
??queue name=audio \
??audiotestsrc num-buffers=100 wave=9 blocksize=3200 ! \
??audio/x-raw-int,rate=16000,channels=1,width=16,depth=16 ! \
??queue name=audio2 \
??ffmux_mov name=mux ! \
??filesink location=test.mov ?\
??video.src ! mux.video_00 \
??audio.src ! mux.audio_00 \
??audio2.src ! mux.audio_01

I suppose that should be possible to set different language for
the two audio streams, in order to be selectable by the player,
but I don't know how.

Thank you

Ivan



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

Message: 3
Date: Wed, 19 May 2010 13:29:20 +0200
From: Giorgio Buffa <[hidden email]>
Subject: [gst-devel] Trying to write a plugin but autogen.sh fails
To: [hidden email]
Message-ID:
       <[hidden email]>
Content-Type: text/plain; charset="iso-8859-1"

Hello.

I'm trying to write my first GStreamer's plugin, following the suggestion in
"GStreamer Plugin Writer's Guide", chapter 3. I'm having a trouble with
autogen.sh

I've used tools/make_element, and adjusted the src/Makefile.am has stated by
the mentioned guide. When I launch autogen.sh it fails! I have no idea how
to handle this situation.

Here you are the messages autogen.sh prints on the console:

autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in `.'.
libtoolize: copying file `./ltmain.sh'
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and
libtoolize: rerunning libtoolize, to keep the correct libtool macros
in-tree.
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
autoreconf: running: /usr/local/override_order/bin/autoconf --force
configure.ac:29: error: possibly undefined macro: AC_MSG_ERROR
     If this token and others are legitimate, please use m4_pattern_allow.
     See the Autoconf documentation.
configure.ac:50: error: possibly undefined macro: AC_SUBST
autoreconf: /usr/local/override_order/bin/autoconf failed with exit status:
1
autogen.sh failed


I'm working on Mac OS X 10.6.3
The strange path /usr/local/override_order/bin/ is because autotools shipped
with Snow Leopard are a bit dated. I've installed m4, autoconf, automake and
libtool in /usr/local/override_order , which is first in my PATH environment
variable (I do not want to change the "standard" /usr/bin:/usr/local/bin
order). So my PATH variable is
/usr/local/override_order/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/usr/X11/bin

I've build and installed:
* gstreamer-0.10.29
* gst-plugins-base-0.10.29
* gst-plugins-good-0.10.22
* gst-ffmpef-0.10.10
GStreamer is working fine.

Thanks for any suggestion.
Best regards,
Giorgio Buffa
-------------- next part --------------
An HTML attachment was scrubbed...

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

Message: 4
Date: Wed, 19 May 2010 05:40:05 -0700 (PDT)
From: wl2776 <[hidden email]>
Subject: [gst-devel] Framestepping backwards doesn't work with MPEG2
       PS      files.
To: [hidden email]
Message-ID: <[hidden email]>
Content-Type: text/plain; charset=us-ascii


The playbin2 doesn't react on the new_step events when paused.
Current playing position, reported by _query_position doesn't change. The
displayed picture doesn't change also.

Framestepping forward is OK.

0. GStreamer is initialized with the keys --gst-debug=player:5,mpegpsdemux:3
where player is my private debug category.

1. My application creates the playbin2 instance to play the file.
It successfully opens and plays.

2. I pause the playbin2.

3. I position a playbin2 somewhere in the movie by clicking on a movie
progress bar on my form.
This issues the call

r=gst_element_seek_simple(GST_ELEMENT(m_player),
       GST_FORMAT_TIME,
       (GstSeekFlags)(GST_SEEK_FLAG_FLUSH|GST_SEEK_FLAG_KEY_UNIT),
       pos*GST_MSECOND);

where pos is the seek position.

GST_DEBUG rigth after this shows that r=1 (seek is successful), I also
observe the changing picture.

Debug shows the following.

0:00:11.316272000  3952   003D9118 INFO             mpegpsdemux
gstmpegdemux.c:1060:gst_flups_demux_do_seek:<mpegpsdemux0> sink segment
configured 0409D880, trying to go at SCR: 5535000
0:00:11.326286000  3952   003D9118 INFO             mpegpsdemux
gstmpegdemux.c:1082:gst_flups_demux_do_seek:<mpegpsdemux0> doing seek at
offset 42065920 SCR: 5534990 0:01:01.499888888
0:00:11.346315000  3952   003D9118 DEBUG                 player
gst_player.cpp:911:gst_player::set_position: direction=1, seek to 61500
msec, r=1
0:00:11.356329000  3952   040A06C0 INFO             mpegpsdemux
gstmpegdemux.c:533:gst_flups_demux_send_data:<mpegpsdemux0> sending new
segment: rate 1 applied_rate 1 start: 0:01:01.500011111, stop:
99:99:99.999999999, time: 0:01:01.500000000 to pad 0401E668
0:00:11.356329000  3952   040A06C0 INFO             mpegpsdemux
gstmpegdemux.c:533:gst_flups_demux_send_data:<mpegpsdemux0> sending new
segment: rate 1 applied_rate 1 start: 0:01:01.500011111, stop:
99:99:99.999999999, time: 0:01:01.500000000 to pad 0401EA50
0:00:11.486517000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:330:gst_player::bus_watch: message async-done(2097152) from
playbin0
0:00:11.486517000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:334:gst_player::bus_watch: current player position 61500ms
0:00:11.526574000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:341:gst_player::bus_watch: current segment: rate 1.000000 fmt
3 start 61500011111 stop -1 direction 1


4. I press "step left" button on my player's window.
This issues the call to my step_left() function

void gst_player::step_left(void)
{GstFormat fmt=GST_FORMAT_TIME;
 gboolean rb;

  if(m_player){
    if(m_current_position>=40*GST_MSECOND){
      if(m_direction>0) {
       m_direction=-1;
       flag_set(FLAG_STEP_LEFT1);
       rb=gst_element_seek(m_player,-1.0,GST_FORMAT_TIME,

(GstSeekFlags)(GST_SEEK_FLAG_FLUSH|GST_SEEK_FLAG_ACCURATE),

GST_SEEK_TYPE_SET,0,GST_SEEK_TYPE_SET,m_current_position);
       GST_DEBUG("seek backwards: %d",rb);
      }else{
       rb=gst_element_send_event (m_player,
                                gst_event_new_step (GST_FORMAT_BUFFERS, 1,
1.0, TRUE, FALSE));
       GST_DEBUG("send step event: %d",rb);
      }
    }
  }
}


This function tracks current playback direction, if it doesn't match, it
sends the seek event to turn the player to backwards playback.
The bus_watch watches for the async-done messages, checks the application's
internal flags and basing on them decides what caused the async-done message
and what to do next.

Here is the relevant code from my bus-watch.

case GST_MESSAGE_ASYNC_DONE:{
   GST_DEBUG("message %s(%d) from %s",

GST_MESSAGE_TYPE_NAME(msg),GST_MESSAGE_TYPE(msg),GST_MESSAGE_SRC_NAME(msg));
   GstFormat fmt=GST_FORMAT_TIME;

   gst_element_query_position(m_player,&fmt,&m_current_position);
   GST_DEBUG("current player position
%dms",GST_TIME_AS_MSECONDS(m_current_position));

   GstQuery *query=gst_query_new_segment(GST_FORMAT_TIME);
   gst_element_query(GST_ELEMENT(m_player),query);
   gdouble rate;
   gint64 start=-1,stop=-1;
   gst_query_parse_segment(query,&rate,&fmt,&start,&stop);
   GST_DEBUG("current segment: rate %lf fmt %d start %"G_GINT64_FORMAT
                      " stop %"G_GINT64_FORMAT" direction
%d",rate,fmt,start,stop,m_direction);
   gst_query_unref(query);

   if(m_flags & FLAG_GO_END){
     flag_unset(FLAG_GO_END);
    /* ... */
   }else if(m_flags & FLAG_STEP_LEFT1){
     flag_unset(FLAG_STEP_LEFT1);
     GST_DEBUG("flag_unset(FLAG_STEP_LEFT1);");
     rb=gst_element_send_event (m_player,
                 gst_event_new_step (GST_FORMAT_BUFFERS, 1, 1.0, TRUE,
FALSE));
     GST_DEBUG("send step event: %d",rb);
   }
}


Here is the debug output, resulted by several presses of the step_left
button

0:10:32.509504000  3952   003D9118 INFO             mpegpsdemux
gstmpegdemux.c:1060:gst_flups_demux_do_seek:<mpegpsdemux0> sink segment
configured 0409D880, trying to go at SCR: 5535000
0:10:32.519518000  3952   003D9118 INFO             mpegpsdemux
gstmpegdemux.c:1082:gst_flups_demux_do_seek:<mpegpsdemux0> doing seek at
offset 42065920 SCR: 5534990 0:01:01.499888888
0:10:32.519518000  3952   003D9118 DEBUG                 player
gst_player.cpp:940:gst_player::step_left: seek backwards: 1
0:10:32.519518000  3952   040A06C0 INFO             mpegpsdemux
gstmpegdemux.c:533:gst_flups_demux_send_data:<mpegpsdemux0> sending new
segment: rate -1 applied_rate 1 start: 0:00:00.000011111, stop:
0:01:01.500011111, time: 0:00:00.000000000 to pad 0401E668
0:10:32.990195000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:330:gst_player::bus_watch: message async-done(2097152) from
playbin0
0:10:32.990195000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:334:gst_player::bus_watch: current player position 61500ms
0:10:32.990195000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:341:gst_player::bus_watch: current segment: rate -1.000000
fmt 3 start 11111 stop 61500011111 direction -1
0:10:32.990195000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:354:gst_player::bus_watch: flag_unset(FLAG_STEP_LEFT1);
0:10:32.990195000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:356:gst_player::bus_watch: send step event: 1
0:10:33.000209000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:330:gst_player::bus_watch: message async-done(2097152) from
playbin0
0:10:33.000209000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:334:gst_player::bus_watch: current player position 61500ms
0:10:33.000209000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:341:gst_player::bus_watch: current segment: rate -1.000000
fmt 3 start 11111 stop 61500011111 direction -1
0:14:59.793840000  3952   003D9118 DEBUG                 player
gst_player.cpp:943:gst_player::step_left: send step event: 1
0:14:59.803854000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:330:gst_player::bus_watch: message async-done(2097152) from
playbin0
0:14:59.803854000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:334:gst_player::bus_watch: current player position 61500ms
0:14:59.803854000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:341:gst_player::bus_watch: current segment: rate -1.000000
fmt 3 start 11111 stop 61500011111 direction -1
0:15:02.467685000  3952   003D9118 DEBUG                 player
gst_player.cpp:943:gst_player::step_left: send step event: 1
0:15:02.467685000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:330:gst_player::bus_watch: message async-done(2097152) from
playbin0
0:15:02.467685000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:334:gst_player::bus_watch: current player position 61500ms
0:15:02.467685000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:341:gst_player::bus_watch: current segment: rate -1.000000
fmt 3 start 11111 stop 61500011111 direction -1
0:15:05.191601000  3952   003D9118 DEBUG                 player
gst_player.cpp:943:gst_player::step_left: send step event: 1
0:15:05.191601000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:330:gst_player::bus_watch: message async-done(2097152) from
playbin0
0:15:05.191601000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:334:gst_player::bus_watch: current player position 61500ms
0:15:05.191601000  3952   0404AEE0 DEBUG                 player
gst_player.cpp:341:gst_player::bus_watch: current segment: rate -1.000000
fmt 3 start 11111 stop 61500011111 direction -1


As can be seen, current position remains at 61500ms, the displayed picture
doesn't change. I repeat, m_player is the playbin2, and is paused.

--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Framestepping-backwards-doesn-t-work-with-MPEG2-PS-files-tp2222757p2222757.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.



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

Message: 5
Date: Wed, 19 May 2010 17:11:26 +0200
From: Alexis Berlemont <[hidden email]>
Subject: [gst-devel] Bursts in UDP streaming
To: [hidden email]
Message-ID:
       <[hidden email]>
Content-Type: text/plain; charset=ISO-8859-1

Hi,

I would like to understand why the following pipeline bursts groups of
packets every 100 ms:

filesrc ! mpegtsdemux ! mpegtsmux ! udpsink.

In order to understand this phenomena, I looked at the code of
gstmultiudpsink. I tried to find out which function was in charge of
checking the buffer timestamp and performing the real sleep.
If my understanding of the situation is correct, the call stack is like this:

gst_base_sink_render_object ->
gst_base_sink_do_sync ->
gst_base_sink_wait_clock -> ... gst_clock_id_wait

Am I correct ? Did I miss something ? anything ?

With a debugger, I tried to monitor the value of the argument "time"
in the function gst_base_sink_wait_clock. As I was unable to use
tracepoints (because of threads), I add a dirty g_print in the source
code. So, I saw that the timestamp was increasing regularly by step of
40 ms.

If the step is 40 ms, does anyone have an idea why wireshark record
bursts every 100ms?

Does anyone know how to reduce the 40 ms step (it seems like the PCR
interval, doesn't it ? ) ?

Many thanks in advance.

Alexis.



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

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



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

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


End of gstreamer-devel Digest, Vol 48, Issue 39
***********************************************


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


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

Re: gstreamer with libvdpau.

Gwenole Beauchesne-3
Hi,

Le 20 mai 10 à 07:52, mohammmed akhil a écrit :

> I am a noob in gstreamer. I want to know how to play gstreamer using  
> libvdpau,so that i can use Nvidia graphic accelerator capabilities  
> to play full hd content. Any help will be highly appreciated. I have  
> ubuntu 9.04 and ubuntu 10.04 machines.

3 solutions, probably listed from the least to the most functional, by  
default, currently, and out-of-the box:
- There is an MPEG-2 decoder using VDPAU in gst-plugins-bad + patches  
to gst-ffmpeg
- gstreamer-vaapi + vdpau-video
- Fluendo's codec pack supporting both VA-API and VDPAU

BTW, the GStreamer stack on Ubuntu 9.04 looks ancient. So, Totem  
probably won't work out-of-the box. 9.10 or 10.04 are fine.

Regards,
Gwenole.
------------------------------------------------------------------------------

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