After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 651543 - [encodebin] doesn't work with mpegts
[encodebin] doesn't work with mpegts
Status: RESOLVED NOTABUG
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-05-31 11:45 UTC by Christian Fredrik Kalager Schaller
Modified: 2011-06-01 14:27 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
simple python app showing issue (2.78 KB, text/x-python)
2011-05-31 11:45 UTC, Christian Fredrik Kalager Schaller
Details

Description Christian Fredrik Kalager Schaller 2011-05-31 11:45:58 UTC
Created attachment 188930 [details]
simple python app showing issue

Attached testcase shows that encodebin seems to refuse to run when mpegts is set as the container format. The same code works fine if I replace the container and codecs with asf or ogg for instance.
Comment 1 David Schleef 2011-06-01 00:10:55 UTC
Could someone knowledgeable in encodebin triage this bug to find out what is broken in mpegtsmux?  (I make assumptions, but...)
Comment 2 Christian Fredrik Kalager Schaller 2011-06-01 13:24:21 UTC
Did a GST_Debug log and found this:

 encodebin gstencodebin.c:1606:create_elements_and_pads:<encodebin0>^[[00m error: No available muxer for format video/mpegts, systemstream=(boolean)true
0:00:08.549977559 ^[[334m 1917^[[00m  0x89d8800 ^[[36mDEBUG  ^[[00m ^[[00;01;37;41m         GST_MESSAGE gstelement.c:1900:gst_element_message_full:<encodebin0>^[[00m start

Checking gst-inspect on mpegtsmux I don't see why it gets that response:
  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/mpegts
           systemstream: true
             packetsize: { 188, 192 }
Comment 3 Tim-Philipp Müller 2011-06-01 14:00:58 UTC
> No available muxer for format video/mpegts, systemstream=(boolean)true
>
> Checking gst-inspect on mpegtsmux I don't see why it gets that response:
> Capabilities: video/mpegts, systemstream=true, packetsize={ 188, 192 }

Does it work if you add a packetsize field?
Comment 4 Christian Fredrik Kalager Schaller 2011-06-01 14:05:12 UTC
Just tested, adding a packetsize field makes it work, but I assume that is not the 'correct' fix?
Comment 5 Tim-Philipp Müller 2011-06-01 14:14:00 UTC
I think that is the correct fix. You need to specify complete caps. If the packetsize field is in the template caps, it's required.
Comment 6 Christian Fredrik Kalager Schaller 2011-06-01 14:27:36 UTC
Ok, I agree that the severity of the bug is less, but this to me is not just about work/not work, but the API of encodebin. To me it seems natural that the minimum API of encodebin is the minimum needed to identify the muxer needed and everything else is optional data in case you are not happy to use the default.

The packetsize value is of course not part of the minimum required to identify the mpegts container format, ideally I should have been able to create a encodebin by just using "video/mpegts" as the caps, as that already provides us with the minimum needed to know which muxer to plug, at least until we get around to adding variants to the caps.