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



  • @Stef7773 add -v to the ssh command to make it verbose and be able to debug. Also, we're pretty off-topic there, maybe you want to join the Telegram group to have real time support and not pollute that topic?



  • Getting this while trying to open camera on Kagura:

    https://pastebin.ubuntu.com/p/Rykm2N66F6/



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

    Getting this while trying to open camera on Kagura:

    https://pastebin.ubuntu.com/p/Rykm2N66F6/

    Same output for me on Kagura. Camera loads but all black.



  • Just out of curiosity; what is keeping the xenial_-_gst-droid from being merged for the OnePlus 3T images?

    Because the camera app on the 3T is completely broken. It can't take pictures and it can't record videos. But in order to have that working, one has to give up system-image updates, which is also not desirable.

    There's only an edge channel for the 3T anyway, so it would make sense to me to just merge this at least for that channel.

    For reference, it has also been merged for the PinePhone's development channel. The stock camera app still worked there, although the gstdroid version linked in the OP works better. But on the 3T currently nothing works, other than taking screenshots of the viewfinder.



  • The OnePlus 3(T), among other aarch64 devices, now has an RC channel. After switching to it and re-installing xenial_-_gst-droid with ubports-qa, I found that the camera wasn't working, even though I was still using the 3.1.3+gstdroid Camera app. It just showed the blue spinner infinitely like what happens without using gst-droid.

    After reverting to the Development channel and installing xenial_-_gst-droid again, I was able to take pictures like before.

    The RC channel only seems to be a couple of days behind on Development. Why isn't it possible to use this branch on RC?

    I also read that @Flohack said elsewhere that gst-droid will not be merged in OTA-13, which would be the first stable image for the OnePlus 3(T). If gst-droid doesn't work on RC and then probably also not on Stable, does that mean I have to keep using the Development channel for the next months?

    Like I posted a couple of weeks ago: why don't we merge this branch at least for the devices that have zero working camera support without gst-droid? The OnePlus 3T can't even take pictures on the stock RC, Development and edge images, which is quite limiting.

    When I look at /etc/apt/sources.list.d/ubports.list on my PinePhone, I see the following:

    deb http://repo.ubports.com/ xenial main
    deb http://repo.ubports.com/ xenial_-_edge main
    deb http://repo.ubports.com/ xenial_-_edge_-_pine main
    deb http://repo.ubports.com/ xenial_-_edge_-_wayland main
    

    This is because the PinePhone needs those branches to function, even though they're not stable and not suitable for all other devices.

    On the 3T it's only

    deb http://repo.ubports.com/ xenial main
    

    If we'd add

    deb http://repo.ubports.com/ xenial_-_gst-droid main
    

    on the image overlay, the images could probably just be built with gst-droid support integrated. It's not like we have much to lose on the 3T. Without it the camera doesn't work at all. This is likely true for other Halium 7.1 / aarch64 devices as well.

    I understand that gst-droid may cause regressions on older devices, but now we're shipping images with broken basic functionality for newer devices - that people are more likely to use in the current day - to avoid breaking the older ones. That doesn't seem right to me.



  • @peat_psuwit can you elaborate a bit? Thx!



  • By the way you could install the branch on RC or stable as well, did you try it?



  • @Flohack I tried it on RC and it did not work. It installed, but the camera app didn't take pictures. It just showed the spinner and got stuck.

    That is also what happens without gst-droid.

    There are no Stable images yet for the OnePlus 3T. See here.

    But am I correct that OTA-13 is expected to be the first stable image for all the phones here? I can't speak for all of them, but I do have two OnePlus 3T's, and without gst-droid the camera does not work at all. Not for pictures and not for videos.

    We'd be shipping a "Stable" release with a completely broken basic functionality - the ability to take pictures - without adding the gst-droid branch to at least the op3t images.



  • 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


Log in to reply