Camera application
Closed, ResolvedPublic

Description

Camera application with support for,

  • Taking pictures
  • Recording Videos

https://phabricator.kde.org/source/plasma-camera/

There is basic application already in place, however this needs UI makeover. Also current application is based on the Plasma Components and needs porting to the Kirigami components and Kirigami HIG.

Some tasks that needs doing,

  • Easy option to change between front and back camera
  • Easy option to view the taken pictures and videos, probably tighter integration with Koko/Pix.
  • Option to disable/enable flash light.

This application is using the Camera and VideoOutput QtMultimedia API. On the devices with halium QtMultimedia is using gst-droid interface internally while on the mainlined/open devices it is using the generic video4linux API, however for application this is implementation details and can be safely ignored as long as you use QtMultimedia API.

Alternative is to replace the Plasma Camera application with the Kamoso however kamoso is not using QtMultimedia which makes it impossible to use it on halium devices.

Knowledge Requirements: Willing to learn Qt/QML, CMake.

System Requirements: You can develop this application on normal Linux system, and test it in native Linux system. If you want to test it on Plasma Mobile system, you can use actual Mobile device.

Design Resources:

Development Resources:

bshah created this task.Sep 4 2017, 2:33 PM
bshah updated the task description. (Show Details)May 19 2018, 11:11 AM
bshah updated the task description. (Show Details)May 19 2018, 1:18 PM
bshah updated the task description. (Show Details)May 19 2018, 1:22 PM

Integration with Purpose for quick sharing/exporting of pictures would be nice

bshah triaged this task as Normal priority.May 27 2018, 11:27 AM
dkardarakos updated the task description. (Show Details)Jun 26 2018, 4:39 PM

I finished the initial port of the application to kirigami on my jbb/kirigami branch. The app should probably still be tested on a real device, but so far it worked fine with different webcams (also switching between multiple cameras works).

frmdstryr added a subscriber: frmdstryr.EditedOct 31 2018, 3:47 AM

Hi,

I tested it on a Nexus 5x with the bionic PM. Looks great!

Some observations

  • Switching cameras works
  • Switching capture mode works
  • Drawer looks great and works fine
  • There's a small grey bars above and below the preview image. Looks like the preview is not expanding to fill the whole area.
  • The thumbnail after taking a picture displayed is rotated 90 degrees clockwise but it's also like that in the file browser preview as well
  • Tapping the thumbnail does nothing. I see a msg in journalctl saying:
Oct 31 03:22:30 localhost org.kde.kded5[1358]: Unable to detect a launcher for 'file:///home/phablet/Pictures/IMG_00000003.jpg

as there's no default image viewer. Perhaps a tooltip message could indicate this

  • Zooming by dragging the bar does work however the zoom level does not seem correct. At 4x it is only slightly zoomed.
  • It is sometimes hard for it to "grab" the zoom slider and must be repeated a few times until it catches.
  • Pinch zoom is not working
  • Touching a spot on the zoom bar doesn't "jump" to a zoom level, not sure if that's intentional or not
  • Recording video is not working (crashes) but that didn't work on the original app for me
  • The resolution item in the drawer doesn't seem to do anything?

I'm new to PM and may have built and installed this incorrectly. I cloned the repo and did:

# clone and cd to repo then
git checkout jbb/kirigami
mkdir build
cd build
cmake ..
make
sudo make install

Hope this helps! Thanks!

Thank you very much for testing!
The resolution setting in the drawer actually works with my webcam, so maybe that's a hardware adaption problem.
With my webcam it looks like this, and switching the resolution also works:

Actually it seems like the same is true for the zoom level... it also looks correct when testing with the webcam.
The 90° rotation is also hardware specific. The camera app just rotates the preview at 90° on mobile devices, but not the actual output file.
Unfortunately I don't have access to a real mobile device with working camera, so I don't really know how I can debug this.
Video recording used to work, but currently doesn't with my webcam either. I don't think this is a bug in the camera app though.

I will look into fixing the pinch zoom, but it will be quite hard to debug without a touch screen :)

Are you using the edge or the normal image btw? If koko is installed, it should open when tapping on the thumbnail.

I attached a debian package build, so other testers don't have to build the app themselves

Yes, using the edge image.

Installed koko and tapping the image is still not opening (and logging the same message), so that's probably something else is working.

Sounds like most of these are device / hw / driver issues and not the app.

In any case, good work, thanks!

A few minor notes, tested on Nexus 5x (edge):

Touching a spot on the zoom bar doesn't "jump" to a zoom level, not sure if that's intentional or not

That works for me. It's just not very visible since it zooms only a little

Switch between Front and Back camera should be an action to be quicker to access

icon names shoudn't be translated, so so qsTr() around it

When the slider is at 100% the handle is slightly misplaced

@nicolasfella Thank you for pointing me to that mistake, seems like I added the translation of icons by accident :)

jbbgameich moved this task from PM 1.0 to Done on the Plasma: Mobile board.Jan 27 2020, 6:45 PM
jbbgameich edited projects, added Plasma: Mobile; removed Plasma: Mobile (PM 1.0).
bshah closed this task as Resolved.Mar 30 2020, 4:47 AM
bshah claimed this task.

While camera app does not work on the pinephone (Hardware implementation/issue), camera app already works and is available. So let's close this.