Discussion:
failed link of audio to ac3parse
Rand Graham
2018-11-13 17:33:41 UTC
Permalink
Hello,

I am trying to find out why tsdemux fails to link the audio in the pipeline below.
The source has ac3 audio.
The tsdemux finds the audio track.
Gstreamer attempts to link tsdemux to ac3parse.
Why does gstreamer say the caps are incompatible?

gst-launch-1.0 -v -e mpegtsmux name=m ! hlssink target-duration='15' udpsrc multicast-iface=lo uri=udp://231.8.6.7:5309 ! tsdemux ! ac3parse ! avdec_eac3 ! audioconvert ! voaacenc bitrate=128000 ! m.

0:00:00.432638221 8327 0x1305400 INFO structure gststructure.c:2597:gst_structure_get_valist: Expected field 'channel-mask' in structure: audio/x-raw, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)1, layout=(string)interleaved;
0:00:00.433040355 8327 0x1305400 INFO GST_ELEMENT_PADS gstutils.c:1227:gst_element_get_compatible_pad:<ac3parse0> Could not find a compatible pad to link to tsdemux0:video_0_0031
0:00:00.433082164 8327 0x1305400 INFO GST_PADS gstutils.c:1035:gst_pad_check_link: trying to link tsdemux0:audio_0_0033 and ac3parse0:sink
0:00:00.433321928 8327 0x1305400 INFO structure gststructure.c:2597:gst_structure_get_valist: Expected field 'channel-mask' in structure: audio/x-raw, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)1, layout=(string)interleaved;
0:00:00.433674575 8327 0x1305400 INFO GST_ELEMENT_PADS gstelement.c:920:gst_element_get_static_pad: found pad ac3parse0:sink
0:00:00.433713938 8327 0x1305400 INFO GST_PADS gstutils.c:1588:prepare_link_maybe_ghosting: tsdemux0 and ac3parse0 in same bin, no need for ghost pads
0:00:00.433753875 8327 0x1305400 INFO GST_PADS gstpad.c:2378:gst_pad_link_prepare: trying to link tsdemux0:audio_0_0033 and ac3parse0:sink
0:00:00.434008825 8327 0x1305400 INFO structure gststructure.c:2597:gst_structure_get_valist: Expected field 'channel-mask' in structure: audio/x-raw, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)1, layout=(string)interleaved;
0:00:00.434310938 8327 0x1305400 INFO GST_PADS gstpad.c:2434:gst_pad_link_prepare: caps are incompatible


Regards,
Rand
Rand Graham
2018-11-27 20:50:33 UTC
Permalink
Can someone tell from the logs what the problem with linking the audio is?

Thanks,
Rand

From: gstreamer-devel [mailto:gstreamer-devel-***@lists.freedesktop.org] On Behalf Of Rand Graham
Sent: Tuesday, November 13, 2018 11:34 AM
To: Discussion of the development of and with GStreamer <gstreamer-***@lists.freedesktop.org>
Subject: failed link of audio to ac3parse

Hello,

I am trying to find out why tsdemux fails to link the audio in the pipeline below.
The source has ac3 audio.
The tsdemux finds the audio track.
Gstreamer attempts to link tsdemux to ac3parse.
Why does gstreamer say the caps are incompatible?

gst-launch-1.0 -v -e mpegtsmux name=m ! hlssink target-duration='15' udpsrc multicast-iface=lo uri=udp://231.8.6.7:5309 ! tsdemux ! ac3parse ! avdec_eac3 ! audioconvert ! voaacenc bitrate=128000 ! m.

0:00:00.432638221 8327 0x1305400 INFO structure gststructure.c:2597:gst_structure_get_valist: Expected field 'channel-mask' in structure: audio/x-raw, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)1, layout=(string)interleaved;
0:00:00.433040355 8327 0x1305400 INFO GST_ELEMENT_PADS gstutils.c:1227:gst_element_get_compatible_pad:<ac3parse0> Could not find a compatible pad to link to tsdemux0:video_0_0031
0:00:00.433082164 8327 0x1305400 INFO GST_PADS gstutils.c:1035:gst_pad_check_link: trying to link tsdemux0:audio_0_0033 and ac3parse0:sink
0:00:00.433321928 8327 0x1305400 INFO structure gststructure.c:2597:gst_structure_get_valist: Expected field 'channel-mask' in structure: audio/x-raw, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)1, layout=(string)interleaved;
0:00:00.433674575 8327 0x1305400 INFO GST_ELEMENT_PADS gstelement.c:920:gst_element_get_static_pad: found pad ac3parse0:sink
0:00:00.433713938 8327 0x1305400 INFO GST_PADS gstutils.c:1588:prepare_link_maybe_ghosting: tsdemux0 and ac3parse0 in same bin, no need for ghost pads
0:00:00.433753875 8327 0x1305400 INFO GST_PADS gstpad.c:2378:gst_pad_link_prepare: trying to link tsdemux0:audio_0_0033 and ac3parse0:sink
0:00:00.434008825 8327 0x1305400 INFO structure gststructure.c:2597:gst_structure_get_valist: Expected field 'channel-mask' in structure: audio/x-raw, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)1, layout=(string)interleaved;
0:00:00.434310938 8327 0x1305400 INFO GST_PADS gstpad.c:2434:gst_pad_link_prepare: caps are incompatible


Regards,
Rand
Bernhard Graaf
2018-11-28 18:31:07 UTC
Permalink
The audiostreams seams to be x-raw (not ac3).

Try to use your pipeline without the ac3 parser and decoder.

Voaacenc sink pad has the x-raw capabilities.



Bernhard



_____

Von: gstreamer-devel [mailto:gstreamer-devel-***@lists.freedesktop.org]
Im Auftrag von Rand Graham
Gesendet: Dienstag, 27. November 2018 21:51
An: Discussion of the development of and with GStreamer
Betreff: RE: failed link of audio to ac3parse



Can someone tell from the logs what the problem with linking the audio is?



Thanks,

Rand



From: gstreamer-devel [mailto:gstreamer-devel-***@lists.freedesktop.org]
On Behalf Of Rand Graham
Sent: Tuesday, November 13, 2018 11:34 AM
To: Discussion of the development of and with GStreamer
<gstreamer-***@lists.freedesktop.org>
Subject: failed link of audio to ac3parse



Hello,



I am trying to find out why tsdemux fails to link the audio in the pipeline
below.

The source has ac3 audio.

The tsdemux finds the audio track.

Gstreamer attempts to link tsdemux to ac3parse.

Why does gstreamer say the caps are incompatible?



gst-launch-1.0 -v -e mpegtsmux name=m ! hlssink target-duration='15'
udpsrc multicast-iface=lo uri=udp://231.8.6.7:5309 ! tsdemux ! ac3parse !
avdec_eac3 ! audioconvert ! voaacenc bitrate=128000 ! m.



0:00:00.432638221 8327 0x1305400 INFO structure
gststructure.c:2597:gst_structure_get_valist: Expected field 'channel-mask'
in structure: audio/x-raw, rate=(int){ 8000, 11025, 12000, 16000, 22050,
24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)1,
layout=(string)interleaved;

0:00:00.433040355 8327 0x1305400 INFO GST_ELEMENT_PADS
gstutils.c:1227:gst_element_get_compatible_pad:<ac3parse0> Could not find a
compatible pad to link to tsdemux0:video_0_0031

0:00:00.433082164 8327 0x1305400 INFO GST_PADS
gstutils.c:1035:gst_pad_check_link: trying to link tsdemux0:audio_0_0033 and
ac3parse0:sink

0:00:00.433321928 8327 0x1305400 INFO structure
gststructure.c:2597:gst_structure_get_valist: Expected field 'channel-mask'
in structure: audio/x-raw, rate=(int){ 8000, 11025, 12000, 16000, 22050,
24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)1,
layout=(string)interleaved;

0:00:00.433674575 8327 0x1305400 INFO GST_ELEMENT_PADS
gstelement.c:920:gst_element_get_static_pad: found pad ac3parse0:sink

0:00:00.433713938 8327 0x1305400 INFO GST_PADS
gstutils.c:1588:prepare_link_maybe_ghosting: tsdemux0 and ac3parse0 in same
bin, no need for ghost pads

0:00:00.433753875 8327 0x1305400 INFO GST_PADS
gstpad.c:2378:gst_pad_link_prepare: trying to link tsdemux0:audio_0_0033 and
ac3parse0:sink

0:00:00.434008825 8327 0x1305400 INFO structure
gststructure.c:2597:gst_structure_get_valist: Expected field 'channel-mask'
in structure: audio/x-raw, rate=(int){ 8000, 11025, 12000, 16000, 22050,
24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)1,
layout=(string)interleaved;

0:00:00.434310938 8327 0x1305400 INFO GST_PADS
gstpad.c:2434:gst_pad_link_prepare: caps are incompatible





Regards,

Rand
Rand Graham
2018-11-30 20:56:33 UTC
Permalink
Bernhard,

Thanks for your suggestion.

Unfortunately, I still get a no more pads error if I remove the ac3 parser and decoder.

The thing is I know that the stream has ac3 audio from ffprobe for example:

Input #0, mpegts, from 'udp://@231.8.6.7:5309':
Duration: N/A, start: 31264.580500, bitrate: N/A
Program 1
Stream #0:3[0x31]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, max. 79975 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:4[0x33](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream #0:2[0x34](SPA): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 192 kb/

As far as I can tell from the log, gstreamer recognizes an ac3 audio track and fails to link the pads. But it doesn't give much information other than it failed to link. I can't tell why it failed to link.

Thanks,
Rand

From: gstreamer-devel [mailto:gstreamer-devel-***@lists.freedesktop.org] On Behalf Of Bernhard Graaf
Sent: Wednesday, November 28, 2018 12:31 PM
To: 'Discussion of the development of and with GStreamer' <gstreamer-***@lists.freedesktop.org>
Subject: AW: failed link of audio to ac3parse

The audiostreams seams to be x-raw (not ac3).
Try to use your pipeline without the ac3 parser and decoder.
Voaacenc sink pad has the x-raw capabilities.

Bernhard

________________________________
Von: gstreamer-devel [mailto:gstreamer-devel-***@lists.freedesktop.org] Im Auftrag von Rand Graham
Gesendet: Dienstag, 27. November 2018 21:51
An: Discussion of the development of and with GStreamer
Betreff: RE: failed link of audio to ac3parse

Can someone tell from the logs what the problem with linking the audio is?

Thanks,
Rand

From: gstreamer-devel [mailto:gstreamer-devel-***@lists.freedesktop.org] On Behalf Of Rand Graham
Sent: Tuesday, November 13, 2018 11:34 AM
To: Discussion of the development of and with GStreamer <gstreamer-***@lists.freedesktop.org<mailto:gstreamer-***@lists.freedesktop.org>>
Subject: failed link of audio to ac3parse

Hello,

I am trying to find out why tsdemux fails to link the audio in the pipeline below.
The source has ac3 audio.
The tsdemux finds the audio track.
Gstreamer attempts to link tsdemux to ac3parse.
Why does gstreamer say the caps are incompatible?

gst-launch-1.0 -v -e mpegtsmux name=m ! hlssink target-duration='15' udpsrc multicast-iface=lo uri=udp://231.8.6.7:5309 ! tsdemux ! ac3parse ! avdec_eac3 ! audioconvert ! voaacenc bitrate=128000 ! m.

0:00:00.432638221 8327 0x1305400 INFO structure gststructure.c:2597:gst_structure_get_valist: Expected field 'channel-mask' in structure: audio/x-raw, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)1, layout=(string)interleaved;
0:00:00.433040355 8327 0x1305400 INFO GST_ELEMENT_PADS gstutils.c:1227:gst_element_get_compatible_pad:<ac3parse0> Could not find a compatible pad to link to tsdemux0:video_0_0031
0:00:00.433082164 8327 0x1305400 INFO GST_PADS gstutils.c:1035:gst_pad_check_link: trying to link tsdemux0:audio_0_0033 and ac3parse0:sink
0:00:00.433321928 8327 0x1305400 INFO structure gststructure.c:2597:gst_structure_get_valist: Expected field 'channel-mask' in structure: audio/x-raw, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)1, layout=(string)interleaved;
0:00:00.433674575 8327 0x1305400 INFO GST_ELEMENT_PADS gstelement.c:920:gst_element_get_static_pad: found pad ac3parse0:sink
0:00:00.433713938 8327 0x1305400 INFO GST_PADS gstutils.c:1588:prepare_link_maybe_ghosting: tsdemux0 and ac3parse0 in same bin, no need for ghost pads
0:00:00.433753875 8327 0x1305400 INFO GST_PADS gstpad.c:2378:gst_pad_link_prepare: trying to link tsdemux0:audio_0_0033 and ac3parse0:sink
0:00:00.434008825 8327 0x1305400 INFO structure gststructure.c:2597:gst_structure_get_valist: Expected field 'channel-mask' in structure: audio/x-raw, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)1, layout=(string)interleaved;
0:00:00.434310938 8327 0x1305400 INFO GST_PADS gstpad.c:2434:gst_pad_link_prepare: caps are incompatible


Regards,
Rand

Loading...