[Bug 791099] New: opusparse: does not subtract codec delay from buffer duration

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Dec 1 20:28:04 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=791099

            Bug ID: 791099
           Summary: opusparse: does not subtract codec delay from buffer
                    duration
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: All
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: aboya at igalia.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

opusparse is not subtracting codec delay from the buffer duration.

Generate test vector:
$ gst-launch-1.0 audiotestsrc num-buffers=1 samplesperbuffer=24000 !
audio/x-raw, rate=48000 ! opusenc ! identity error-after=2 ! webmmux ! filesink
location=/tmp/audio-clipping-test-vector.webm

Test:
$ gst-launch-1.0 -v pushfilesrc location=/tmp/audio-clipping-test-vector.webm \
  ! matroskademux ! identity name="after_matroskademux" silent=false \
  ! opusparse     ! identity name="after_opusparse" silent=false \
  ! opusdec       ! identity name="after_opusdec" silent=false \
  ! fakesink 2>&1 |grep chain

/GstPipeline:pipeline0/GstIdentity:after_matroskademux: last-message = chain  
******* (after_matroskademux:sink) (160 bytes, dts: none, pts:
0:00:00.000000000, duration: 0:00:00.013500000, offset: -1, offset_end: -1,
flags: 00004040 discont tag-memory , meta: GstAudioClippingMeta) 0x7f13c800a060
/GstPipeline:pipeline0/GstIdentity:after_opusparse: last-message = chain  
******* (after_opusparse:sink) (160 bytes, dts: 0:00:00.000000000, pts:
0:00:00.000000000, duration: 0:00:00.020000000, offset: 20000000, offset_end: 
960, flags: 00004040 discont tag-memory , meta: GstAudioClippingMeta)
0x7f13c800a060
/GstPipeline:pipeline0/GstIdentity:after_opusdec: last-message = chain  
******* (after_opusdec:sink) (1296 bytes, dts: none, pts: 0:00:00.000000000,
duration: 0:00:00.013500000, offset: -1, offset_end: -1, flags: 00000040
discont , meta: none) 0x7f13c800ab00

Note the inconsistency in durations and GstAudioClippingMeta:

Expected*:

matroskademux ------------> opusparse -----------> opusdec ------------>
                 13.5ms                  13.5ms                13.5ms
                clip meta               clip meta           no clip meta

Actual:

matroskademux ------------> opusparse -----------> opusdec ------------>
                 13.5ms                  20.0ms                13.5ms
                clip meta               clip meta           no clip meta

* I'm supposing that GstBuffer durations should already have
GstAudioClippingMeta subtracted. I could not find any hints in the
documentation one way or the other, so I'm picking sides with matroskademux
because is gst-plugins-good. In any case, the current behavior is definitively
inconsistent because matroskademux is subtracting them while opusparse is not.

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