[Bug 654828] New: matroskamux: useless overhead on vorbis.

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Jul 18 03:06:53 PDT 2011


https://bugzilla.gnome.org/show_bug.cgi?id=654828
  GStreamer | gst-plugins-good | git

           Summary: matroskamux: useless overhead on vorbis.
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: bug-track at fisher-privat.net
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Current matroska/webm-mux create BlockGroup with timestamp and duration for
each vorbis block. IMHO it is a useless overhead.

Background:
Usually Blockgroup with duration used together with DefaultDuration to reduce
overhead. In case with vorbis we can't use DefaultDuration.
Vorbisencoder use variable block size. It variate from 64 to 8192 samples per
block. What minimal and maximal blocksizes will be used, depends on initial
settings (like sample rate and quality/bitrate), and some other decisions made
after start for specific sample groups.
After codec start we can ask minimal and maximal blocksize, and probably use
some middle one to calculate block duration, but this behavior may variate from
one codecversion to other.

So we can't use DefaultDuration.

About the use of BlockDuration. Since we know samplerate and probably can read
current blocksize of vorbis in blockheader, there is no sense to use
blockduration.

In case the blockduration is less as difference between current and next
timestamp, then we play silence in the rest of the time. If it is bigger, then
some thing is wrong and muxer is brocken. But we can't fix it if we write
blockduration.

Are there any other use for blockduration for vorbis? If not, it should be
removed.

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