We didn't receive a proper request from your browser.
Sorry about that. Please try refreshing and contact us if the problem persists.
CameraX based camera app for LineageOS - releases here https://sebaubuntu.dev/lineageapps.html
We didn't receive a proper request from your browser.
Sorry about that. Please try refreshing and contact us if the problem persists.
Please add an option to control the camera's White Balance manually
Since effects are only applicable to photo mode, icon should not appear on video mode
Hey i have issue on my rom. IDK it is on another rom's but messenger wrong sort of the photos. Photos maked this camera app is last on the list. I noticed it by name. The SS starts by "recived" another camera app name by date. That app too have a date but with the IMG prefix. If it not my rom issue you can delete this prefix to better use of this app.
We should be able to switch between wide crop ( 16:9 ) and full image ( 4:3 )
We had one before moving to CameraController, but now setting does nothing.
Hi,
I'd like to request a feature.
I think it would be great to be able to lock Exposure and Focus for shooting videos.
Generic CameraX changes in AOSP that will help us in the future:
Link | Description | Status |
---|---|---|
https://android-review.googlesource.com/c/platform/frameworks/support/+/2742215 | Proper video frame rate selector, video dynamic color range, mirror mode | Merged, waiting for release |
https://android-review.googlesource.com/c/platform/frameworks/support/+/2597686 | Persistent recording (Flip camera while recording) | Waiting for API exposure, gonna take a while for CameraController |
https://android-review.googlesource.com/c/platform/frameworks/support/+/2326153 | HFR (>=120fps) recording | Merged but API for it isn't public |
None | Concurrent camera mode | Merged in master, not exposed from CameraController |
https://android-review.googlesource.com/c/platform/frameworks/support/+/2740958 | Video and preview stabilization | Waiting for merge and release |
https://android-review.googlesource.com/c/platform/frameworks/support/+/2572510 | Audio amplitude | Maybe show on info island? |
Passkeys seems to be relevant now, Lens supports it, could be nice to have
Using position sensors we should show a guide to let the user know of the device azimuth of the current main axis
Will likely suffer of the same issue of grid view positioning ...
Before recording video , I can turn ON/OFF flash, But unable to do it during video recording.
The icon become grey
It would be great if this app can save img/vid to external drive
Most of cool apps have it, I guess we should too!
I would like to add some spanish translations to this project. Although there is a strings.xml file, most of the LineageOS app are translated via Crowdin. But I can't find the Crowdin for this app neither.
Should I contribute with a pull request? Or is there any Crowdin specific section that I'm missing.
Thanks :)
This should be needed for selfie sticks or remote camera shutter in some bands/watches.
This issue will track the status of adopting the UI from figma design by Vaz
With the current logic we cycle between all the available items, we should instead make the user able to pick only what they need.
Hello there.
I'm have just installed the latest official LineageOS rom but that doesn't include this camera on my device (Redmi 8A / Mi439), instead that bundles another camera having the package name "com.android.camera2". Is this intentional or an accidental mistake? If this is unintentional then where should I report it?
Thank you for your time.
Only torch mode can be used on videos, making flash button no-op
Is there a way to set a custom location to save pictures - videos ?
Currently we allow GPS tagging only if both coarse and fine are granted, while we should allow coarse only to be used
I don't even know where to start implementing that, but camera apps installed as system app should be able to handle other apps requests for a single photo/video (e.g. when uploading a photo from Chrome)
This can be done later once we start testing the app inline with LineageOS
The top bar items are hardcoded and visible regardless of supported items
Instead we should make it completely dynamic and adjust the item position based on already ( if any ) present items.
This is required for devices not supporting any camerax extension and without a flash.
Possible solution: use an horizontal linear layout, or possibly easier, make a little custom view class that extends a linear layout that handles everything for us
Currently we use a different shade of grey to show whether we have an available photo/video to open via gallery.
Instead it should use a cropped version of the photo or a frame of the video.
Both are available to us as an Uri, need to check what we should do in both cases.
When you start shooting a video with 60 fps, there is a forced tenfold zoom.
It's not uncommon for the slider to not have a linear progress in some specific ratio ( 0.7x in Pixel 6 ) as they switch to another lens
As a first step we need to add the current ratio inside the slider, further in the process ( if possible ) add some know steps in the UI.
Maybe it's because Aperture isn't configured for my device (Sony Xperia 10 IV / XQ-CC54) but external mics plugged in through the 3.5mm audio jack don't seem to work, only the onboard mic. It's definitely a niche use case but thought it would be nice to have.
An option to select the codec the video file will be saved would be useful.
From ActivityResultContracts:
/**
* An [ActivityResultContract] to
* [take small a picture][MediaStore.ACTION_IMAGE_CAPTURE] preview, returning it as a
* [Bitmap].
*
* This can be extended to override [createIntent] if you wish to pass additional
* extras to the Intent created by `super.createIntent()`.
*/
open class TakePicturePreview : ActivityResultContract<Void?, Bitmap?>() {
@CallSuper
override fun createIntent(context: Context, input: Void?): Intent {
return Intent(MediaStore.ACTION_IMAGE_CAPTURE)
}
final override fun getSynchronousResult(
context: Context,
input: Void?
): SynchronousResult<Bitmap?>? = null
@Suppress("DEPRECATION")
final override fun parseResult(resultCode: Int, intent: Intent?): Bitmap? {
return intent.takeIf { resultCode == Activity.RESULT_OK }?.getParcelableExtra("data")
}
}
/**
* An [ActivityResultContract] to
* [take a picture][MediaStore.ACTION_IMAGE_CAPTURE] saving it into the provided
* content-[Uri].
*
* Returns `true` if the image was saved into the given [Uri].
*
* This can be extended to override [createIntent] if you wish to pass additional
* extras to the Intent created by `super.createIntent()`.
*/
open class TakePicture : ActivityResultContract<Uri, Boolean>() {
@CallSuper
override fun createIntent(context: Context, input: Uri): Intent {
return Intent(MediaStore.ACTION_IMAGE_CAPTURE)
.putExtra(MediaStore.EXTRA_OUTPUT, input)
}
final override fun getSynchronousResult(
context: Context,
input: Uri
): SynchronousResult<Boolean>? = null
@Suppress("AutoBoxing")
final override fun parseResult(resultCode: Int, intent: Intent?): Boolean {
return resultCode == Activity.RESULT_OK
}
}
/**
* An [ActivityResultContract] to
* [take a video][MediaStore.ACTION_VIDEO_CAPTURE] saving it into the provided
* content-[Uri].
*
* Returns a thumbnail.
*
* This can be extended to override [createIntent] if you wish to pass additional
* extras to the Intent created by `super.createIntent()`.
*
*/
@Deprecated(
"""The thumbnail bitmap is rarely returned and is not a good signal to determine
whether the video was actually successfully captured. Use {@link CaptureVideo} instead."""
)
open class TakeVideo : ActivityResultContract<Uri, Bitmap?>() {
@CallSuper
override fun createIntent(context: Context, input: Uri): Intent {
return Intent(MediaStore.ACTION_VIDEO_CAPTURE)
.putExtra(MediaStore.EXTRA_OUTPUT, input)
}
final override fun getSynchronousResult(
context: Context,
input: Uri
): SynchronousResult<Bitmap?>? = null
@Suppress("DEPRECATION")
final override fun parseResult(resultCode: Int, intent: Intent?): Bitmap? {
return intent.takeIf { resultCode == Activity.RESULT_OK }?.getParcelableExtra("data")
}
}
/**
* An [ActivityResultContract] to
* [take a video][MediaStore.ACTION_VIDEO_CAPTURE] saving it into the provided
* content-[Uri].
*
* Returns `true` if the video was saved into the given [Uri].
*
* This can be extended to override [createIntent] if you wish to pass additional
* extras to the Intent created by `super.createIntent()`.
*/
open class CaptureVideo : ActivityResultContract<Uri, Boolean>() {
@CallSuper
override fun createIntent(context: Context, input: Uri): Intent {
return Intent(MediaStore.ACTION_VIDEO_CAPTURE)
.putExtra(MediaStore.EXTRA_OUTPUT, input)
}
final override fun getSynchronousResult(
context: Context,
input: Uri
): SynchronousResult<Boolean>? = null
@Suppress("AutoBoxing")
final override fun parseResult(resultCode: Int, intent: Intent?): Boolean {
return resultCode == Activity.RESULT_OK
}
}
If Selfie was started via the secure intent it shouldn't load the image and instead show a lock icon until a photo/video is taken, only then it'll be shown.
Don't know if this is not out of scope, but I am really missing a panorama function.
This is built for Lineage OS, but could it also be delivered by f-droid for users not getting it in the OS? E.g. users without lineage?
Option to save raw 16bit images(aka dng format) would be nice. Is this something that could be implemented in the future?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.