[Bug 726381] New: avdec_h264 and possibly other libav decoders: latency regression

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Mar 14 15:46:54 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=726381
  GStreamer | gst-libav | 1.x

           Summary: avdec_h264 and possibly other libav decoders: latency
                    regression
    Classification: Platform
           Product: GStreamer
           Version: 1.x
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: major
          Priority: Normal
         Component: gst-libav
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: lists at svrinformatica.it
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


avdec_h264 has more latency than ffdec_h264, please test with these pipelines:

server (use 0.10 since gdppay is a bit broken in 1.0):

gst-launch-0.10 v4l2src ! x264enc tune=zerolatency ! gdppay ! tcpserversink
host=127.0.0.1 port=3000 sync-method=2

client 1.0:

gst-launch-1.0 -v tcpclientsrc host=127.0.0.1 port=3000 ! gdpdepay ! fakesink
sync=false silent=false

client 0.10:

gst-launch-0.10 -v tcpclientsrc host=127.0.0.1 port=3000 ! gdpdepay  ! fakesink
sync=false

stop the server or kill both clients at the same time (kill -9 <pid1> <pid2>),
they will print exactly the same timestamp, for example:

/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain   *******
(fakesink0:sink) (8576 bytes, dts: 0:00:00.000000000, pts: 0:00:34.139030609,
duration: 0:00:00.033333333, offset: -1, offset_end: -1, flags: 00002000
delta-unit ) 0x7f43240069a0

/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain   *******
(fakesink0:sink) (8576 bytes, timestamp: 0:00:34.139030609, duration:
0:00:00.033333333, offset: -1, offset_end: -1, flags: 8192 ) 0x7fa300002bf0"

now change the client pipelines

client 1.0:

gst-launch-1.0 -v tcpclientsrc host=127.0.0.1 port=3000 ! gdpdepay ! avdec_h264
! fakesink sync=false silent=false

client 0.10:

gst-launch-0.10 -v tcpclientsrc host=127.0.0.1 port=3000 ! gdpdepay !
ffdec_h264 ! fakesink sync=false

stop the server or kill the clients, you see the delay:

/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain   *******
(fakesink0:sink) (1382400 bytes, dts: 0:00:39.664793944, pts:
0:00:39.664793944, duration: 0:00:00.033333333, offset: -1, offset_end: -1,
flags: 00004000 in-caps ) 0x7f8b50cf2740


/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain   *******
(fakesink0:sink) (1382400 bytes, timestamp: 0:00:39.896504848, duration:
0:00:00.033333333, offset: -1, offset_end: -1, flags: 256 delta_unit )
0x7fcd94002dc0"

so 1.0 has about 250 milliseconds delay more than 0.10 (I observed 0.5 second
too)

version used:

gstreamer 1.2.3
gstreamer 0.10.36

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