How to: test GStreamer-droid based camera support in Ubuntu Touch (for Halium 7.1 based port)



  • With the delays on OTA-13, can this maybe be included after all on the OnePlus3/3T image by default?
    Since the images are device specific I don't see any disadvantage on enabling this on these devices like @kkeijzer was already saying, or am I missing something?



  • @poVoq The problem is we only have one common rootfs, so this would need to be added specifically for only one device or 2. We can have a discussion about it how this can be solved, but no ETA on it, sorry.



  • out of curiosity, does this have any effect on the devices that are already supported?



  • @tigerpro yes, unfortunately we had some regressions with that, thats one of the reasons it takes so long to get into the main rootfs.



  • @peat_psuwit said in How to: test GStreamer-droid based camera support in Ubuntu Touch (for Halium 7.1 based port):

    UPDATED: If you're running arm64 image, please also run apt install gstreamer1.0-droid nemo-qtmultimedia-plugins.

    This seems to be unnecessary as of OTA-13.
    I have installed this on my OnePlus3 and it seems to be working fine for photos.
    Only that the orientation of the photo seems to be always stuck in landscape instead of how the picture was actually taken is a bit annoying.
    Trying to record a video crashes the app, but that was expected according to the OnePlus3 device page.



  • @poVoq Yes this is unnecessary meanwhile @peat_psuwit can you take out this sentence for arm64 devices in the first post? Thx!



  • Hello @peat_psuwit I'm porting BQ U Plus (tenshi) and camera is the last issue: with version 3.1.1 it worked smoothly (some months ago when I needed to apt-mark hold nemo-qtmultimedia-plugins), but recently it stopped to work.
    I used your debug command and the output was:

    phablet@ubuntu-phablet:~$ (cd /opt/click.ubuntu.com/com.ubuntu.camera/current && GST_DEBUG=droidcamsrc:4 ./camera-app --desktop_file_hint=com.ubuntu.camera_camera)
    Loading module: 'libubuntu_application_api_touch_mirclient.so.3.0.0'
    library "libgui.so" wasn't loaded and RTLD_NOLOAD prevented it
    Creating a QMirClientScreen now
    Import path added "/opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/lib/arm-linux-gnueabihf"
    Camera app directory "/opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2"
    unity::action::ActionManager::ActionManager(QObject*):
    	Could not determine application identifier. HUD will not work properly.
    	Provide your application identifier in $APP_ID environment variable.
    QFSFileEngine::map: Mapping a file beyond its size is not portable
    
    (camera-app:8333): GLib-GObject-WARNING **: g_object_class_override_property: Can't find property to override for 'GstDroidCamSrc::exposure-mode'
    0:00:00.353958385  8333   0x536600 WARN             droidcamsrc gstdroidcamsrcquirks.c:238:gst_droidcamsrc_quirks_new: failed to load configuration file /etc/gst-droid/gstdroidcamsrcquirks.conf: No such file or directory
    0:00:00.362872604  8333   0x536600 WARN             droidcamsrc gstdroidcamsrcphotography.c:1287:gst_droidcamsrc_set_white_balance_mode:<camera_source> params for whitebalance not yet available. deferred applying value 0
    0:00:00.363590364  8333   0x536600 WARN             droidcamsrc gstdroidcamsrcquirks.c:238:gst_droidcamsrc_quirks_new: failed to load configuration file /etc/gst-droid/gstdroidcamsrcquirks.conf: No such file or directory
    0:00:00.364567135  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:363:gst_droidcamsrc_set_property:<droidcamsrc0> camera device set to 0
    0:00:00.365497916  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:572:gst_droidcamsrc_get_hw:<droidcamsrc0> Found 2 cameras
    0:00:00.365795208  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:550:gst_droidcamsrc_fill_info:<droidcamsrc0> camera 0 is facing 0 with orientation 0
    0:00:00.366648958  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:550:gst_droidcamsrc_fill_info:<droidcamsrc0> camera 1 is facing 1 with orientation 3
    0:00:00.366790364  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:363:gst_droidcamsrc_set_property:<droidcamsrc0> camera device set to 1
    0:00:00.643576041  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:363:gst_droidcamsrc_set_property:<camera_source> camera device set to 0
    qq= QDeclarativeCamera_QML_31(0x592b68) 0x6d1d18
    APP_ID isn't set, the handler can not be registered
    APP_ID isn't set, the handler ignored
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/ViewFinderExportConfirmation.qml:75:17: QML Item: Binding loop detected for property "height"
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/ViewFinderExportConfirmation.qml:75:17: QML Item: Binding loop detected for property "height"
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/ViewFinderExportConfirmation.qml:75:17: QML Item: Binding loop detected for property "height"
    qml: updateViewfinderResolution: viewfinder resolutions is not known yet.
    qml: updateViewfinderResolution: viewfinder resolutions is not known yet.
    0:00:01.573445416  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:375:gst_droidcamsrc_set_property:<camera_source> setting capture mode to: 1
    0:00:01.573573958  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:378:gst_droidcamsrc_set_property:<camera_source> not resetting the same mode
    
    (camera-app:8333): GStreamer-CRITICAL **: gst_caps_is_equal: assertion 'GST_IS_CAPS (caps1)' failed
    0:00:01.574062447  8333   0x536600 INFO             droidcamsrc gstdroidcamsrcphotography.c:1524:gst_droidcamsrc_set_and_apply:<camera_source> setting zoom to 0
    
    (camera-app:8333): GStreamer-WARNING **: Name 'video-encodebin' is not unique in bin 'camerabin', not adding
    
    (camera-app:8333): GStreamer-WARNING **: Name 'videobin-filesink' is not unique in bin 'camerabin', not adding
    
    (camera-app:8333): GStreamer-WARNING **: Name 'image-encodebin' is not unique in bin 'camerabin', not adding
    
    (camera-app:8333): GStreamer-WARNING **: Name 'imagebin-filesink' is not unique in bin 'camerabin', not adding
    
    (camera-app:8333): GStreamer-WARNING **: Name 'viewfinderbin-queue' is not unique in bin 'camerabin', not adding
    0:00:01.645777968  8333   0x536600 WARN             droidcamsrc gstdroidcamsrcquirks.c:238:gst_droidcamsrc_quirks_new: failed to load configuration file /etc/gst-droid/gstdroidcamsrcquirks.conf: No such file or directory
    0:00:01.646809895  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:363:gst_droidcamsrc_set_property:<droidcamsrc1> camera device set to 0
    0:00:01.647172031  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:572:gst_droidcamsrc_get_hw:<droidcamsrc1> Found 2 cameras
    0:00:01.647382864  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:550:gst_droidcamsrc_fill_info:<droidcamsrc1> camera 0 is facing 0 with orientation 0
    0:00:01.648015624  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:550:gst_droidcamsrc_fill_info:<droidcamsrc1> camera 1 is facing 1 with orientation 3
    0:00:01.648139322  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:363:gst_droidcamsrc_set_property:<droidcamsrc1> camera device set to 1
    qq= ResponsiveGridView_QMLTYPE_121_QML_126(0xa944c8) 0xa96380
    QFileSystemWatcher::removePaths: list is empty
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/MediaInfoPopover.qml:30:5: QML Item: Binding loop detected for property "height"
    file:///usr/lib/arm-linux-gnueabihf/qt5/qml/Ubuntu/Components/Popups/1.3/Popover.qml:250:9: QML Item: Binding loop detected for property "height"
    QFileSystemWatcher::addPaths: list is empty
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/MediaInfoPopover.qml:57: TypeError: Cannot read property 'Exif.Image.ImageWidth' of undefined
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/MediaInfoPopover.qml:57: TypeError: Cannot read property 'Exif.Image.ImageLength' of undefined
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/MediaInfoPopover.qml:57: TypeError: Cannot read property 'Exif.Image.DateTime' of undefined
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/MediaInfoPopover.qml:57: TypeError: Cannot read property 'Exif.Image.Model' of undefined
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/MediaInfoPopover.qml:57: TypeError: Cannot read property 'Exif.Image.Copyright' of undefined
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/MediaInfoPopover.qml:57: TypeError: Cannot read property 'Exif.Image.ExposureTime' of undefined
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/MediaInfoPopover.qml:57: TypeError: Cannot read property 'Exif.Image.FNumber' of undefined
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/MediaInfoPopover.qml:57: TypeError: Cannot read property 'Exif.Image.NewSubfileType' of undefined
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/SlideshowView.qml:47: TypeError: Cannot read property 'isSelected' of null
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/MediaInfoPopover.qml:62: TypeError: Cannot read property 'Exif.Photo.Flash' of undefined
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/MediaInfoPopover.qml:11: TypeError: Cannot read property 'url' of undefined
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/SlideshowView.qml:388: TypeError: Cannot call method 'getMedia' of null
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/SlideshowView.qml:422: TypeError: Cannot read property 'actions' of null
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/OptionButton.qml:24:39: Unable to assign [undefined] to QString
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/OptionButton.qml:33: TypeError: Cannot read property 'value' of undefined
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/OptionButton.qml:24:39: Unable to assign [undefined] to QString
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/ViewFinderOverlay.qml:241: TypeError: Cannot call method 'split' of undefined
    [PERFORMANCE]: Last frame took 38 ms to render.
    qml: optionsOverlayClose
    0:00:27.347974833  8333   0x536600 WARN             droidcamsrc gstdroidcamsrcquirks.c:238:gst_droidcamsrc_quirks_new: failed to load configuration file /etc/gst-droid/gstdroidcamsrcquirks.conf: No such file or directory
    0:00:27.349571031  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:363:gst_droidcamsrc_set_property:<droidcamsrc2> camera device set to 0
    0:00:27.350257021  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:572:gst_droidcamsrc_get_hw:<droidcamsrc2> Found 2 cameras
    0:00:27.351440823  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:550:gst_droidcamsrc_fill_info:<droidcamsrc2> camera 0 is facing 0 with orientation 0
    0:00:27.352224156  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:550:gst_droidcamsrc_fill_info:<droidcamsrc2> camera 1 is facing 1 with orientation 3
    0:00:27.352695562  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:363:gst_droidcamsrc_set_property:<droidcamsrc2> camera device set to 1
    file:///opt/click.ubuntu.com/com.ubuntu.camera/3.1.3+gstdroid2/ViewFinderOverlay.qml:241: TypeError: Cannot call method 'split' of undefined
    0:00:27.362486708  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:363:gst_droidcamsrc_set_property:<camera_source> camera device set to 1
    
    (camera-app:8333): GStreamer-WARNING **: Name 'video-encodebin' is not unique in bin 'camerabin', not adding
    
    (camera-app:8333): GStreamer-WARNING **: Name 'videobin-filesink' is not unique in bin 'camerabin', not adding
    
    (camera-app:8333): GStreamer-WARNING **: Name 'image-encodebin' is not unique in bin 'camerabin', not adding
    
    (camera-app:8333): GStreamer-WARNING **: Name 'imagebin-filesink' is not unique in bin 'camerabin', not adding
    
    (camera-app:8333): GStreamer-WARNING **: Name 'viewfinderbin-queue' is not unique in bin 'camerabin', not adding
    qml: optionsOverlayClose
    0:00:35.957019934  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:375:gst_droidcamsrc_set_property:<camera_source> setting capture mode to: 2
    0:00:35.970346497  8333   0x536600 WARN             droidcamsrc gstdroidcamsrcphotography.c:1310:gst_droidcamsrc_set_flash_mode:<camera_source> params for flash-mode not yet available. deferred applying value 1
    qml: updateViewfinderResolution: viewfinder resolutions is not known yet.
    0:00:35.975825351  8333   0x536600 INFO             droidcamsrc gstdroidcamsrcphotography.c:1524:gst_droidcamsrc_set_and_apply:<camera_source> setting zoom to 0
    0:00:37.759285715  8333   0x536600 INFO             droidcamsrc gstdroidcamsrc.c:375:gst_droidcamsrc_set_property:<camera_source> setting capture mode to: 1
    0:00:37.767823475  8333   0x536600 WARN             droidcamsrc gstdroidcamsrcphotography.c:1310:gst_droidcamsrc_set_flash_mode:<camera_source> params for flash-mode not yet available. deferred applying value 0
    qml: updateViewfinderResolution: viewfinder resolutions is not known yet.
    qml: optionsOverlayClose
    qml: optionsOverlayClose
    qml: optionsOverlayClose
    qml: optionsOverlayClose
    qt.qpa.mirclient: Attempted to deliver an event to a non-existent window, ignoring.
    qt.qpa.mirclient: Attempted to deliver an event to a non-existent window, ignoring.
    phablet@ubuntu-phablet:~$ 
    

    The system is up to date (edge): screen is black when opening the app and during all the command/tap I tried.
    Any guidance how to fix it? Thnx



  • Is still dev required or does it now also work on stable/rc (oneplus 3t)?



  • It works on stable/rc on OP3t



  • Ok, I have now a fresh flashed Oneplus 3t dev and I installed the GStreamer-droid based camera. In the camera app I see always a 2:2 layout but the pictures I shoot are in the layout I set (16:9 in my example).

    Screenshot:
    Screen.png

    Picture from the same position:
    Bild.png

    Anybody else with this problem? How could I fix this?


Log in to reply