[Bug 769413] alsasrc, v4l2src: getting repeated timestamps when capturing from multiple sources (multiple pipelines in single command)

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Thu Aug 4 11:29:51 UTC 2016


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

--- Comment #3 from Przemek <przemyslaw.gajos at gmail.com> ---
Hello,

I checked that the problem exists in GStreamer 1.8.2. (tested on my Ubuntu
16.04 LTS 64bit). Problem exists for both audio (capturing from alsasrc) and
video (capturing from v4l2src) and I believe it is driver-independent because I
checked for our capture cards and capturing from the Intel sound card.

The issue will happen every few (less than 10) runs of capture commands.

For audio (alsasrc), you can reproduce with following commands:
1) list alsa capture devices with;
 $arecord -l
2) capture from 2 sound devices with:
gst-launch-1.0 -v alsasrc device=hw:1,0 ! identity silent=false name=digital1 !
fakesink alsasrc device=hw:2,0 ! identity silent=false name=DIGITAL2 ! fakesink
| grep last-message | grep pts

Output of my tests: 
**** List of CAPTURE Hardware Devices ****
card 0: VisionSCHD4 [VisionSC-HD4+ Dig Node0], device 0: Audio Capture
[VisionSC-HD4+ Digital Node:0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: VisionSCHD4_1 [VisionSC-HD4+ Dig Node1], device 0: Audio Capture
[VisionSC-HD4+ Digital Node:1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: VisionSCHD4_2 [VisionSC-HD4+ Dig Node2], device 0: Audio Capture
[VisionSC-HD4+ Digital Node:2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: VisionSCHD4_3 [VisionSC-HD4+ Dig Node3], device 0: Audio Capture
[VisionSC-HD4+ Digital Node:3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 4: PCH [HDA Intel PCH], device 0: ALC662 rev1 Analog [ALC662 rev1 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 4: PCH [HDA Intel PCH], device 2: ALC662 rev1 Alt Analog [ALC662 rev1 Alt
Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

DATAPATH AUDIO:
$ gst-launch-1.0 -v alsasrc device=hw:1,0 ! identity silent=false name=digital1
! fakesink alsasrc device=hw:2,0 ! identity silent=false name=DIGITAL2 !
fakesink | grep last-message | grep pts
/GstPipeline:pipeline0/GstIdentity:DIGITAL2: last-message = chain   *******
(DIGITAL2:sink) (16384 bytes, dts: none, pts: 0:00:00.092879818, duration:
0:00:00.092879818, offset: 0, offset_end:  4096, flags: 00000040 discont )
0x7fbe3c0150e0
/GstPipeline:pipeline0/GstIdentity:DIGITAL2: last-message = chain   *******
(DIGITAL2:sink) (16384 bytes, dts: none, pts: 0:00:00.092879818, duration:
0:00:00.092879818, offset: 0, offset_end:  4096, flags: 00000040 discont )
0x7fbe3c0150e0
/GstPipeline:pipeline0/GstIdentity:digital1: last-message = chain   *******
(digital1:sink) (16384 bytes, dts: none, pts: 0:00:00.092879818, duration:
0:00:00.092879819, offset: 4096, offset_end:  8192, flags: 00000000 )
0x7fbe3c015850
/GstPipeline:pipeline0/GstIdentity:DIGITAL2: last-message = chain   *******
(DIGITAL2:sink) (16384 bytes, dts: none, pts: 0:00:00.185759637, duration:
0:00:00.092879818, offset: 8192, offset_end:  12288, flags: 00000000 )
0x7fbe3c0151f0
/GstPipeline:pipeline0/GstIdentity:digital1: last-message = chain   *******
(digital1:sink) (16384 bytes, dts: none, pts: 0:00:00.185759637, duration:
0:00:00.092879818, offset: 8192, offset_end:  12288, flags: 00000000 )
0x7fbe3c015960
/GstPipeline:pipeline0/GstIdentity:DIGITAL2: last-message = chain   *******
(DIGITAL2:sink) (16384 bytes, dts: none, pts: 0:00:00.278639455, duration:
0:00:00.092879819, offset: 12288, offset_end:  16384, flags: 00000000 )
0x7fbe3c015300
/GstPipeline:pipeline0/GstIdentity:digital1: last-message = chain   *******
(digital1:sink) (16384 bytes, dts: none, pts: 0:00:00.278639455, duration:
0:00:00.092879819, offset: 12288, offset_end:  16384, flags: 00000000 )
0x7fbe3c015a70
/GstPipeline:pipeline0/GstIdentity:DIGITAL2: last-message = chain   *******
(DIGITAL2:sink) (16384 bytes, dts: none, pts: 0:00:00.371519274, duration:
0:00:00.092879818, offset: 16384, offset_end:  20480, flags: 00000000 )
0x7fbe3c015410

In the above, 2 first timestamps are the same (0:00:00.092879818) for DIGITAL2
path.

INTEL AUDIO:
$ gst-launch-1.0 -v alsasrc device=hw:4,0 ! identity silent=false
name=intel_audio1 ! fakesink alsasrc device=hw:4,2 ! identity silent=false
name=INTEL_AUDIO2 ! fakesink | grep last-message | grep pts
/GstPipeline:pipeline0/GstIdentity:INTEL_AUDIO2: last-message = chain   *******
(INTEL_AUDIO2:sink) (1764 bytes, dts: none, pts: 0:00:00.020000000, duration:
0:00:00.010000000, offset: 0, offset_end:  441, flags: 00000040 discont )
0x7fedfc019060
/GstPipeline:pipeline0/GstIdentity:intel_audio1: last-message = chain   *******
(intel_audio1:sink) (1764 bytes, dts: none, pts: 0:00:00.010000000, duration:
0:00:00.010000000, offset: 441, offset_end:  882, flags: 00000000 )
0x7fedfc0197d0
/GstPipeline:pipeline0/GstIdentity:INTEL_AUDIO2: last-message = chain   *******
(INTEL_AUDIO2:sink) (1764 bytes, dts: none, pts: 0:00:00.030000000, duration:
0:00:00.010000000, offset: 1323, offset_end:  1764, flags: 00000000 )
0x7fedfc019170
/GstPipeline:pipeline0/GstIdentity:INTEL_AUDIO2: last-message = chain   *******
(INTEL_AUDIO2:sink) (1764 bytes, dts: none, pts: 0:00:00.030000000, duration:
0:00:00.010000000, offset: 1323, offset_end:  1764, flags: 00000000 )
0x7fedfc019170
/GstPipeline:pipeline0/GstIdentity:INTEL_AUDIO2: last-message = chain   *******
(INTEL_AUDIO2:sink) (1764 bytes, dts: none, pts: 0:00:00.040000000, duration:
0:00:00.010000000, offset: 1764, offset_end:  2205, flags: 00000000 )
0x7fedfc019280
/GstPipeline:pipeline0/GstIdentity:intel_audio1: last-message = chain   *******
(intel_audio1:sink) (1764 bytes, dts: none, pts: 0:00:00.030000000, duration:
0:00:00.010000000, offset: 1323, offset_end:  1764, flags: 00000000 )
0x7fedfc0199f0
/GstPipeline:pipeline0/GstIdentity:INTEL_AUDIO2: last-message = chain   *******
(INTEL_AUDIO2:sink) (1764 bytes, dts: none, pts: 0:00:00.050000000, duration:
0:00:00.010000000, offset: 2205, offset_end:  2646, flags: 00000000 )
0x7fedfc019390

In the above, second and third timestamp are the same (0:00:00.030000000) for
INTEL_AUDIO2 path.

INTEL AUDIO another try:
$ gst-launch-1.0 -v alsasrc device=hw:4,0 ! identity silent=false
name=intel_audio1 ! fakesink alsasrc device=hw:4,2 ! identity silent=false
name=INTEL_AUDIO2 ! fakesink | grep last-message | grep pts
/GstPipeline:pipeline0/GstIdentity:intel_audio1: last-message = chain   *******
(intel_audio1:sink) (1764 bytes, dts: none, pts: 0:00:00.000000000, duration:
0:00:00.010000000, offset: 0, offset_end:  441, flags: 00000040 discont )
0x7f4d6800f010
/GstPipeline:pipeline0/GstIdentity:intel_audio1: last-message = chain   *******
(intel_audio1:sink) (1764 bytes, dts: none, pts: 0:00:00.000000000, duration:
0:00:00.010000000, offset: 0, offset_end:  441, flags: 00000040 discont )
0x7f4d6800f010
/GstPipeline:pipeline0/GstIdentity:intel_audio1: last-message = chain   *******
(intel_audio1:sink) (1764 bytes, dts: none, pts: 0:00:00.010000000, duration:
0:00:00.010000000, offset: 441, offset_end:  882, flags: 00000000 )
0x7f4d6800f120
/GstPipeline:pipeline0/GstIdentity:INTEL_AUDIO2: last-message = chain   *******
(INTEL_AUDIO2:sink) (1764 bytes, dts: none, pts: 0:00:00.020000000, duration:
0:00:00.010000000, offset: 882, offset_end:  1323, flags: 00000000 )
0x7f4d6800f780
/GstPipeline:pipeline0/GstIdentity:intel_audio1: last-message = chain   *******
(intel_audio1:sink) (1764 bytes, dts: none, pts: 0:00:00.020000000, duration:
0:00:00.010000000, offset: 882, offset_end:  1323, flags: 00000000 )
0x7f4d6800f230
/GstPipeline:pipeline0/GstIdentity:INTEL_AUDIO2: last-message = chain   *******
(INTEL_AUDIO2:sink) (1764 bytes, dts: none, pts: 0:00:00.030000000, duration:
0:00:00.010000000, offset: 1323, offset_end:  1764, flags: 00000000 ) 

In the above, first 2 timestamps are duplicated (0:00:00.000000000) for
intel_audio1 path.

Thanks for your help on this,
Przemek

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