jpegenc only decodes one frame, then stream stops

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

jpegenc only decodes one frame, then stream stops

Tim Hilden
hi,

I need gstreamer for the following: The frames of a video stream need to
be converted to jpeg images. So I connected a
filesrc-demuxer-decoder-jpegenc-identity-fakesink.
The identiry's "handoff"-signal is used to read the current frame and
store it to a file. The storing will be replaced with some more
processing later which is not part of gstreamer. But the problem is that
this stream only encodes the first frame. After that the stream is
"stuck". I did not get any error messages on the bus and the q_main_loop
is still running. So do I have to tell the jpegenc to encode the next
frame or anything?
The lack of doc and sample code is what makes programming gstreamer so
hard for me. That and the fact that I don't really want to use GLib and
main_loops, because it's for a QT app. But QT's phonon is way not enough
for what I need.

one more (simple) question: does a stream have to have a sink? Would the
fakesink be neccessary in my case?

Tim


------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: jpegenc only decodes one frame, then stream stops

Julien Isorce
Hi,

If you do not want to use glibmainloop inside qt code see :
"qt-opensource-src-4.4.3/include/QtGui/private/qguieventdispatcher_glib_p.h"

The other way is to use both qtmainloop and glibmainloop, here 3 examples:
http://diracvideo.org/git?p=gst-plugins-gl.git;a=tree;f=tests/examples/qt;h=925d3f5b596ceaabdbb360f69498315a09f30614;hb=42b9175bfd7179037ef4989cec0c4550811d19e0

Julien



2009/1/20 Tim Hilden <[hidden email]>
hi,

I need gstreamer for the following: The frames of a video stream need to
be converted to jpeg images. So I connected a
filesrc-demuxer-decoder-jpegenc-identity-fakesink.
The identiry's "handoff"-signal is used to read the current frame and
store it to a file. The storing will be replaced with some more
processing later which is not part of gstreamer. But the problem is that
this stream only encodes the first frame. After that the stream is
"stuck". I did not get any error messages on the bus and the q_main_loop
is still running. So do I have to tell the jpegenc to encode the next
frame or anything?
The lack of doc and sample code is what makes programming gstreamer so
hard for me. That and the fact that I don't really want to use GLib and
main_loops, because it's for a QT app. But QT's phonon is way not enough
for what I need.

one more (simple) question: does a stream have to have a sink? Would the
fakesink be neccessary in my case?

Tim


------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: jpegenc only decodes one frame, then stream stops

Jan Schmidt-6
In reply to this post by Tim Hilden
On Tue, 2009-01-20 at 17:23 +0100, Tim Hilden wrote:

> hi,
>
> I need gstreamer for the following: The frames of a video stream need to
> be converted to jpeg images. So I connected a
> filesrc-demuxer-decoder-jpegenc-identity-fakesink.
> The identiry's "handoff"-signal is used to read the current frame and
> store it to a file. The storing will be replaced with some more
> processing later which is not part of gstreamer. But the problem is that
> this stream only encodes the first frame. After that the stream is
> "stuck". I did not get any error messages on the bus and the q_main_loop
> is still running. So do I have to tell the jpegenc to encode the next
> frame or anything?
> The lack of doc and sample code is what makes programming gstreamer so
> hard for me. That and the fact that I don't really want to use GLib and
> main_loops, because it's for a QT app. But QT's phonon is way not enough
> for what I need.
>
> one more (simple) question: does a stream have to have a sink? Would the
> fakesink be neccessary in my case?
>

jpegenc per-se encodes multiple incoming video frames into a sequence of jpeg buffers, as this pipeline shows:
gst-launch filesrc location=blah.avi ! decodebin ! jpegenc ! identity !
fakesink -v

I'm not sure where your problem is from there... perhaps you're not
linking something properly and the pipeline is shutting down. In that
case though, you should definitely be seeing an error message on the
bus.

Yes, your pipeline needs a sink of some sort for the buffers to end up
and be disposed. The overhead isn't high. In fact though, fakesink has a
handoff signal and signal-handoffs property too - so you can just
connect to that directly, and forgo the identity element.

Alternatively, you can also look at the appsink element, which will give
you the ability to pull the buffers at your leisure, instead of having
to handle them in the handoff. It might increase the minimum version of
GStreamer you require though - appsink is only available in a stable
form as of 0.10.22 of gst-plugins-base.

See:
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-appsink.html

Cheers,
J.
--
Jan Schmidt <[hidden email]>


------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: jpegenc only decodes one frame, then stream stops

John Buckley
In reply to this post by Tim Hilden
Hello,
Did this ever get resolved?  I'm having the same problem.
My command line looks like this.  It captures the first fram and freezes with no errors.
gst-launch v4l2src ! image/jpeg,width=320,framerate=30/1,rate=30 ! jpegdec ! ffmpegcolorspace ! ximagesink    

John Buckley

Tim Hilden wrote
hi,

I need gstreamer for the following: The frames of a video stream need to
be converted to jpeg images. So I connected a
filesrc-demuxer-decoder-jpegenc-identity-fakesink.
The identiry's "handoff"-signal is used to read the current frame and
store it to a file. The storing will be replaced with some more
processing later which is not part of gstreamer. But the problem is that
this stream only encodes the first frame. After that the stream is
"stuck". I did not get any error messages on the bus and the q_main_loop
is still running. So do I have to tell the jpegenc to encode the next
frame or anything?
The lack of doc and sample code is what makes programming gstreamer so
hard for me. That and the fact that I don't really want to use GLib and
main_loops, because it's for a QT app. But QT's phonon is way not enough
for what I need.

one more (simple) question: does a stream have to have a sink? Would the
fakesink be neccessary in my case?

Tim


------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: jpegenc only decodes one frame, then stream stops

Stefan Sauer
In reply to this post by Tim Hilden
John Buckley wrote:
> Hello,
> Did this ever get resolved?  I'm having the same problem.
> My command line looks like this.  It captures the first fram and freezes
> with no errors.
> gst-launch v4l2src ! image/jpeg,width=320,framerate=30/1,rate=30 ! jpegdec !
> ffmpegcolorspace ! ximagesink    
>
>  
this syntax is not correct:

gst-launch v4l2src ! "image/jpeg,width=320,framerate=(fraction)30/1" ! jpegdec !
ffmpegcolorspace ! ximagesink

Stefan

> John Buckley
>
>
> Tim Hilden wrote:
>  
>> hi,
>>
>> I need gstreamer for the following: The frames of a video stream need to
>> be converted to jpeg images. So I connected a
>> filesrc-demuxer-decoder-jpegenc-identity-fakesink.
>> The identiry's "handoff"-signal is used to read the current frame and
>> store it to a file. The storing will be replaced with some more
>> processing later which is not part of gstreamer. But the problem is that
>> this stream only encodes the first frame. After that the stream is
>> "stuck". I did not get any error messages on the bus and the q_main_loop
>> is still running. So do I have to tell the jpegenc to encode the next
>> frame or anything?
>> The lack of doc and sample code is what makes programming gstreamer so
>> hard for me. That and the fact that I don't really want to use GLib and
>> main_loops, because it's for a QT app. But QT's phonon is way not enough
>> for what I need.
>>
>> one more (simple) question: does a stream have to have a sink? Would the
>> fakesink be neccessary in my case?
>>
>> Tim
>>
>>
>> ------------------------------------------------------------------------------
>> This SF.net email is sponsored by:
>> SourcForge Community
>> SourceForge wants to tell your story.
>> http://p.sf.net/sfu/sf-spreadtheword
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>
>>
>>    
>
>  


------------------------------------------------------------------------------
Download Intel&reg; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel