<p>Hi,</p>
<p>Maybe worth a try:</p>
<p>Put an "queue" element before and after ffdec_h264 and use max-threads=<your_cpu_count>. I imagine it worked like this for me but maybe I just had luck...</p>
<p>Juraj</p>
<div class="gmail_quote">On Dec 13, 2012 2:03 AM, "Peter Rennert" <<a href="mailto:p.rennert@cs.ucl.ac.uk">p.rennert@cs.ucl.ac.uk</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Dear all,<br>
<br>
I want to increase the playback of a video quite drastically. At the moment I am playing a test video sequence with<br>
<br>
gst-launch-0.10 filesrc location=/path/to/my.mp4 ! qtdemux ! h264parse ! ffdec_h264 name=dec ! ffmpegcolorspace ! deinterlace ! xvimagesink<br>
<br>
and at some point the video speed cannot get increased further, because it uses only one CPU core to decode the video. Gstreamer starts complaining of getting behind the timestamps of the stream and crashes.<br>
<br>
I could think of two solutions:<br>
    - Is there a "native" way of making use of more than just a single core to decode the video frames? I tried to set "max-threads" of ffdec_h264 to 4, but it still only uses a single core.<br>
<br>
or,<br>
    - Is there a way of skipping frames? As I need only a "effective" framerate on the screen of about 25fps I could just decode the frames I need and skip the other frames. Then I would not need more CPU power than for realtime playback.<br>

<br>
or.<br>
    - Is there a way to split the stream after the qtdemux and use several decoders in a kind of decoder pool (distribute the frames between them) and unify the stream after?<br>
<br>
My videos are in H264 format. I am not sure if the non-keyframes are encoded with respect to the previous frame or with respect to the last key-frame. In that case I could try to filter the key-frames and send them to every decoder in the pool and decode the any frame with that as reference until the next key-frame. With some management I could try to merge the output of the pool decoder with a input-selector. But that sounds bulky :\ So if one knows how to get to one of the first two solutions, I would be very happy...<br>

<br>
<br>
Cheers,<br>
<br>
Peter<br>
<br>
PS I am happy to provide an example video. Maybe something is wrong with the encoding there that prevents ffdec_h264 to use multiple cores<br>
______________________________<u></u>_________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.<u></u>freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/<u></u>mailman/listinfo/gstreamer-<u></u>devel</a><br>
</blockquote></div>