After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 637639 - [x264enc] regression?, timing issues?
[x264enc] regression?, timing issues?
Status: RESOLVED INCOMPLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-ugly
0.10.16
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-12-20 08:16 UTC by Miguel Angel Cabrera Moya
Modified: 2015-01-24 09:07 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Miguel Angel Cabrera Moya 2010-12-20 08:16:53 UTC
I am doing gapless playback of matroska file with one h264 track.

With ugly 0.10.14 all works fine. With 0.10.16 the first file plays fine, when i switch to the second file the processing stops for about 6 to 9 seconds. I have a custom application with this issue, but i describe how to reproduce it.

Versions that I use in both cases:
gstreamer-0.10.31
gst-plugins-base-0.10.31
gst-plugins-good-0.10.26
gst-ffmpeg-0.10.11
gst-python-0.10.20

Versions that work:
gst-plugins-ugly-0.10.14
x264-snapshot-20090621-2245

Versions that don't work:
gst-plugins-ugly-0.10.16
x264-snapshot-20101201-2245

Files for reproducing the bug:
https://bugzilla.gnome.org/attachment.cgi?id=176582
https://bugzilla.gnome.org/attachment.cgi?id=176583

Source code to reproduce the bug:
#!/usr/bin/python
import pygst
pygst.require("0.10")
import gst
import gobject

class Player:
    def __init__(self, filename):
        bin = gst.parse_bin_from_description("queue ! x264enc ! queue ! ffdec_h264 ! xvimagesink", True)
        
        self.player = gst.element_factory_make("playbin2", "player")
        self.player.set_property("uri", filename)
        self.player.set_property("video-sink", bin)
        self.player.connect("about-to-finish", self.on_about_to_finish)

    def run(self):
        self.player.set_state(gst.STATE_PLAYING)
        loop = gobject.MainLoop()
        loop.run()

    def on_about_to_finish(self, player):
        player.set_property("uri", "file:///tmp/2010/11/26/48/C48_101126T141627115+060-141634693+060_0000040_189.mkv")

if __name__ == "__main__":
    gobject.threads_init()
    player = Player("file:///tmp/2010/11/26/48/C48_101126T141617936+060-141627110+060_0000045_200.mkv")
    player.run()
Comment 1 Miguel Angel Cabrera Moya 2010-12-20 08:18:50 UTC
Also i have reverted commit 8f039997f097ac5baa6a59350b2d41942a13232e in gst-plugins-base to make gapless playback work.
Comment 2 Miguel Angel Cabrera Moya 2011-01-17 19:45:38 UTC
I am working at this (in my spare time).
Comment 3 Tim-Philipp Müller 2013-01-06 16:03:37 UTC
What's up with this? Is it still an issue in 1.x ?
Comment 4 André Klapper 2015-01-24 09:07:26 UTC
(In reply to comment #3)
> What's up with this? Is it still an issue in 1.x ?

Hi Miguel, 
I am closing this bug report as no updated information has been provided.
Please feel free to reopen this bug if you can provide the information that was asked for in a previous comment.