[Bug 712645] New: Quering basesink with negative rate less then -1.0 returns invalid value

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Nov 18 17:01:25 PST 2013


https://bugzilla.gnome.org/show_bug.cgi?id=712645
  GStreamer | gstreamer (core) | 0.10.36

           Summary: Quering basesink with negative rate less then -1.0
                    returns invalid value
    Classification: Platform
           Product: GStreamer
           Version: 0.10.36
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: major
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: dmitri at toubelis.org
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


I'm working on a player application and it implements the following logic: it
stops the pipeline, queries current position and uses the position in the
following seek. I noticed that it works fine for most scenarios however, if I
do this query when pipeline is playing in reverse with -2.0 or lower rate
(-4.0, -8.0, etc.) then the query returns a bizarre value. For example: let's
assume that the duration of the stream is 10 and the pipeline is playing on a
segment from 3 to 0. If I perform position query at around 2 the query will
return 7. I tested the pipeline with a xvimagesink and fakesink - both are
exerting the same behavior. I did not have a chance to test this at rate -1.0.

I work with 0.10.36 release of GStreamer but I looked at the commit log in 0.10
branch of the repository and I couldn't see anything that may be relevant to
this issue in post release.

I also looked through the source code of gstbasesink.c and this code on lines
4718..4721 looks somewhat suspicious:

    ...
    /* for negative rates we need to count back from the segment
     * duration. */
    if (rate < 0.0)
      time += duration;
    ...

It is hard for me to grasp the entire position querying logic, so I wonder if
someone more knowledgeable could look at this issue.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list