[gstreamer-bugs] [Bug 611046] New: mpegtsmux: pcr problems

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Feb 24 23:36:58 PST 2010


https://bugzilla.gnome.org/show_bug.cgi?id=611046
  GStreamer | gst-plugins-bad | 0.10.26

           Summary: mpegtsmux: pcr problems
    Classification: Desktop
           Product: GStreamer
           Version: 0.10.26
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: dxssx.dxssx at gmail.com
         QAContact: gstreamer-bugs at lists.sourceforge.net
      GNOME target: ---
     GNOME version: ---


1. wrong frequency
gst-plugins-bad-0.10.12/gst/mpegtsmux/tsmux/tsmux.c

    if (stream->last_pcr == -1 ||
        (cur_pcr - stream->last_pcr >
            (TSMUX_CLOCK_FREQ / TSMUX_DEFAULT_PCR_FREQ))) {

Since pcr runs in clock TSMUX_SYS_CLOCK_FREQ, the comparison should be 
    if (stream->last_pcr == -1 ||
        (cur_pcr - stream->last_pcr >
            (TSMUX_SYS_CLOCK_FREQ / TSMUX_DEFAULT_PCR_FREQ))) {

2. imprecise pcr
gst-plugins-bad-0.10.12/gst/mpegtsmux/tsmux/tsmux.c

      cur_pcr = (cur_pts - TSMUX_PCR_OFFSET) *                                
          (TSMUX_SYS_CLOCK_FREQ / TSMUX_CLOCK_FREQ);  

This makes pcr a multiple of TSMUX_SYS_CLOCK_FREQ / TSMUX_CLOCK_FREQ (=300),
which makes pcr_ext always 0 in 
      pcr_ext = (pi->pcr % 300);

pcr should be generated from gsttime instead of mpegtime which has a low
precision after GSTTIME_TO_MPEGTIME.

-- 
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