Summary: | encodebin element missing -> camerabin2 fails on osx. | ||
---|---|---|---|
Product: | GStreamer SDK | Reporter: | Mario Kleiner <mario.kleiner> |
Component: | General | Assignee: | bugs |
Status: | REOPENED --- | QA Contact: | |
Severity: | normal | ||
Priority: | high | CC: | mario.kleiner |
Version: | 2013.6 | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | Test application |
Description
Mario Kleiner
2012-09-29 21:15:55 UTC
Thanks for reporting, this is fixed in GIT now and this fix will be included in the next release. Retested with 2012.11 SDK. This time the encodebin plugin which was omitted last time is bundled, but now it fails one step further. If i set camerabin2's "mode" property to 2 for video recording i get: Error from element image-encodebin: Your GStreamer installation is missing a plug-in. Additional debug info: gstencodebin.c(1703): create_elements_and_pads (): /GstCameraBin2:ptbvideocapturepipeline/GstEncodeBin:image-encodebin: No available muxer for format 0x124383980. If instead i leave it at its default of 1 for still image capture, it complains about some missing jpeg encoder: ERROR: Pipeline doesn't want to pause. Got message #59 from element "image-encodebin" (element): missing-plugin, type=(string)encoder, detail=(GstCaps)image/jpeg, name=(string)"JPEG\ encoder"; Missing element: JPEG encoder Got message #60 from element "image-encodebin" (error): GstMessageError, gerror=(GError)NULL, debug=(string)"gstencodebin.c\(1703\):\ create_elements_and_pads\ \(\):\ /GstCameraBin2:camerabin20/GstEncodeBin:image-encodebin:\012No\ available\ muxer\ for\ format\ 00000000056C9400"; ERROR: from element /GstCameraBin2:camerabin20/GstEncodeBin:image-encodebin: Your GStreamer installation is missing a plug-in. Additional debug info: gstencodebin.c(1703): create_elements_and_pads (): /GstCameraBin2:camerabin20/GstEncodeBin:image-encodebin: No available muxer for format 00000000056C9400 e.g, by calling gst-launch -v -m camerabin2 In any case, now different other required plugins are missing for camerabin2 to work. Could somebody please test this with some webcam and make sure that at least basic video capture works, before marking the bug as fixed? thanks, -mario I can confirm that, it looks like jpegparse or any other element is missing. The error message is a bit misleading Hello, can you check if you have jpegenc and jifmux in your sdk version? You can try running the following commands from your gst-sdk environment. gst-inspect-0.10 jpegenc gst-inspect-0.10 jifmux I'm testing with current gstreamer-sdk git and I got those 2 installed. Unfortunatelly at the moment I have no cameras connected to my osx computer, so I'm unable to properly get camerabin2 running. So I wrote a small script that sets videotestsrc as the video source for camerabin2 and it works with current git of gstreamer-sdk. Created attachment 78985 [details]
Test application
Attaching the test application here for reference
Retesting with 2013.6, camerabin2 still doesn't work at all with default settings. I found a workaround for my app, so the problem is "solved" for my purpose, as shown in this commit: <https://github.com/kleinerm/Psychtoolbox-3/commit/ce2b0c63fb7c74101dce752c10cee02c318cdb8d> My hunch from reading through the gstencodebin.c code is that maybe the missing "jifmux" plugin or other missing jpeg muxer (formatter?) in the SDK is causing the problem? Below is the debug output without the workaround, with "image-profile" property left at its default value. best, -mario 0:00:01.661788000 1604 0x7f894cb1b600 DEBUG encodebin gstencodebin.c:1355:_create_stream_group: Done creating elements, adding StreamGroup to our controlled stream list 0:00:01.661817000 1604 0x7f894cb1b600 INFO GST_STATES gstelement.c:2479:gst_element_continue_state:<muxer> completed state change to NULL 0:00:01.661858000 1604 0x7f894cb1b600 INFO GST_ELEMENT_PADS gstelement.c:979:gst_element_get_static_pad: found pad videobin-capsfilter:src 0:00:01.661907000 1604 0x7f894cb1b600 INFO GST_PADS gstpad.c:1978:gst_pad_link_prepare: trying to link videobin-capsfilter:src and video-encodebin:video_0 0:00:01.693754000 1604 0x7f894cb1b600 INFO GST_PADS gstpad.c:2161:gst_pad_link_full: linked videobin-capsfilter:src and video-encodebin:video_0, successful 0:00:01.693830000 1604 0x7f894cb1b600 DEBUG encodebin gstencodebin.c:1937:gst_encode_bin_set_profile:<image-encodebin> profile : Psychtoolbox audio/video 0:00:01.693840000 1604 0x7f894cb1b600 DEBUG encodebin gstencodebin.c:1918:gst_encode_bin_setup_profile: Setting up profile Psychtoolbox audio/video (type:container) 0:00:01.693847000 1604 0x7f894cb1b600 DEBUG encodebin gstencodebin.c:1647:create_elements_and_pads: Current profile : Psychtoolbox audio/video 0:00:01.693853000 1604 0x7f894cb1b600 DEBUG encodebin gstencodebin.c:1582:_get_muxer: Getting list of muxers for format 0x7f894d0a9900 0:00:01.693900000 1604 0x7f894cb1b600 WARN encodebin gstencodebin.c:1698:create_elements_and_pads: No available muxer for 0x7f894d0a9900 0:00:01.693982000 1604 0x7f894cb1b600 WARN encodebin gstencodebin.c:1705:create_elements_and_pads:<image-encodebin> error: No available muxer for format 0x7f894d0a9900 0:00:01.694002000 1604 0x7f894cb1b600 INFO GST_ERROR_SYSTEM gstelement.c:1983:gst_element_message_full:<image-encodebin> posting message: Your GStreamer installation is missing a plug-in. 0:00:01.694019000 1604 0x7f894cb1b600 INFO GST_ERROR_SYSTEM gstelement.c:2006:gst_element_message_full:<image-encodebin> posted error message: Your GStreamer installation is missing a plug-in. 0:00:01.694029000 1604 0x7f894cb1b600 DEBUG encodebin gstencodebin.c:1889:gst_encode_bin_tear_down_profile: Tearing down profile Psychtoolbox audio/video 0:00:01.694089000 1604 0x7f894cb1b600 INFO GST_ELEMENT_PADS gstelement.c:979:gst_element_get_static_pad: found pad imagebin-capsfilter:src 0:00:01.694109000 1604 0x7f894cb1b600 DEBUG encodebin gstencodebin.c:705:gst_encode_bin_request_new_pad:<image-encodebin> templ:video_%d, name:(null) 0:00:01.694121000 1604 0x7f894cb1b600 DEBUG encodebin gstencodebin.c:670:request_pad_for_stream:<image-encodebin> name:(null) caps:0x0 0:00:01.694131000 1604 0x7f894cb1b600 DEBUG encodebin gstencodebin.c:611:next_unused_stream_profile:<image-encodebin> ptype:GstEncodingVideoProfile, caps:0x0 0:00:01.694142000 1604 0x7f894cb1b600 WARN encodebin gstencodebin.c:687:request_pad_for_stream:<image-encodebin> Couldn't find a compatible stream profile 0:00:01.696052000 1604 0x7f894cb1b600 INFO GST_STATES gstelement.c:2787:gst_element_change_state:<ptbvideocapturepipeline> have FAILURE change_state return 0:00:01.696106000 1604 0x7f894cb1b600 INFO GST_STATES gstbin.c:1784:gst_bin_get_state_func:<ptbvideocapturepipeline> getting state PTB-ERROR: Statechange failed with GST_STATE_CHANGE_FAILURE! PTB-ERROR: GStreamer videocapture engine reports this error: Error from element image-encodebin: Your GStreamer installation is missing a plug-in. Additional debug info: gstencodebin.c(1705): create_elements_and_pads (): /GstCameraBin2:ptbvideocapturepipeline/GstEncodeBin:image-encodebin: No available muxer for format 0x7f894d0a9900. Error in function OpenVideoCapture: Usage error In OpenVideoCapture: Opening the video capture device failed during camerabin2 pipeline zero -> ready. Reason given above. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.