[Bug 791771] New: opusenc, opusdec: add option to disable phase inversion

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Dec 19 07:21:01 UTC 2017


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

            Bug ID: 791771
           Summary: opusenc, opusdec: add option to disable phase
                    inversion
    Classification: Platform
           Product: GStreamer
           Version: unspecified
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-base
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: marcan at marcan.st
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

http://opus-codec.org/docs/opus_api-1.2/group__opus__genericctls.html#ga10fa1f6eab136baf83c232afa989b6a8

When downmixing stereo streams to mono, having phase inversion enabled produces
terrible audio quality (it sounds like a low bitrate MP3), since frequency
bands randomly cancel out. This should be exposed in the encoder (to produce
bitstreams that always sound good when downmixed to mono, regardless of what
the decoder does), and in the decoder (to allow any arbitrary bitstream to
sound good when downmixed to mono, regardless of what the encoder did). On the
decoder, additionally, it should probably default to disabled (i.e.
OPUS_SET_PHASE_INVERSION_DISABLED(1)) when the output channel count is 1.

Here's a sample of just how bad decoding opus to mono without this enabled
sounds: https://mrcn.st/t/opus_decoding_test.ogg . This is 6 seconds of stereo
decoding, 3 seconds of mono decoding, repeatedly. The input bitstream is the
same in both cases, with phase inversion enabled, as is the case right now in
gstreamer. It gets *really* bad at 0:50 or so.

See also: https://tools.ietf.org/html/rfc8251#section-10

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