fosstodon.org is one of the many independent Mastodon servers you can use to participate in the fediverse.
Fosstodon is an invite only Mastodon instance that is open to those who are interested in technology; particularly free & open source software. If you wish to join, contact us for an invite.

Administered by:

Server stats:

8.8K
active users

#libobscura

0 posts0 participants0 posts today

Remember ?

The project didn't attract a huge community, but it did teach me stuff so obscure that few people apart from the authors understand it.

So I started writing it down, for everyone's benefit.

If you had questions about , I try to explain it on my :

dorotac.eu/posts/DMABUF/

Thanks to all the people who explained it to me. Some parts are really confusing.

(Please report mistakes.)

dorotac.euNotes on DMABUF and video

Hey fans!

Did you know that the project is actually made up of 11 crates maintained here?

Some new ones, some heavily modified forks.

There are several crates for video hardware support, but even if you're not a fan:

- error-backtrace (can you guess what it does?) libobscura.codeberg.page/priva
- const_enum for easier bindings gneration libobscura.codeberg.page/priva
- crispy, a bunch of for image processing libobscura.codeberg.page/priva

Check them out too!

libobscura.codeberg.pageerror_backtrace - RustAttaches backtraces to errrors. *

Woohoo, returned an image from the !

```
Buffer size: 823296, seq: 0, timestamp: 18178.362439 [s]
Writing to frame.GRBG
```

Now I'm scared to look at the data. It's probably garbage.

But the proof of concept is there: you can treat the Media Controller API as a database and query it for valid image pipeline configurations.

I wonder if the debayering still works.

But first, clean up and publish.

77 commits later, and has a scripting system good enough to initialize a

So it's back to the same functionality, except with extra complexity, lol.

Next up: organize the commits (don't leave a mess if you want contributors) and make sure works the same way.

Replied in thread

@martijnbraam Hey, there's someone else who invented everything :>

Hint hint.

More seriously, which module and Pi is that?

I have bought Module 2.0 and a Pi, uh, 4 B I think. Fighting to make configurations like these work right now.

Replied in thread

@janvlug @conservancy @karen I got sage advice from Karen: create something on Github for your project so you can lead people to your real repo and inform people about the problem.

I'll do that for .

Also can't wait for to federate. Without the help of network effects I am not sure Github can be dethroned.

Looking forward to :)
I'm on a spree, so I'm excited about the room. Maybe I can learn how to use or without crashing them. For now it's though.

Also, anyone with experience printing transparent pieces?
I already solved several problems, but I still leave fingerprints on the objects XD

Sorry for bad photo quality, doesn't support this laptop yet. Those are (going to be) board game pyramids btw.

I'm writing a hardware access library: .

A new idea just popped into my mind: use a special structure for anything that does I/O.

struct Io;

impl Io {
fn device_exists(&self) -> io::Result<bool>;
...
}

I'm thinking if I had an Io trait, I could abstract it and use a for .

Is anyone else doing it? Is it a good idea?

Huh, power of .

I need to find all leaves (interfaces) of a digraph (of entities).

That's 8 lines of Prolog:

next_entity(Eid, EidNext) :-
pad(Pid, Eid, source, _, _),
link(_, Pid, PidSink, _),
pad(PidSink, EidNext, sink, _, _).

next_interface(Eid, Iid) :-
interfacelink(_, Iid, Eid, _).
next_interface(Eid, Iid) :-
next_entity(Eid, EidNext), interfacelink(_, Iid, EidNext, _).

Before I integrated Prolog into , I spent 2 hours trying.

Who's going to ?

You? Then you have a chance to listen to my talk!

fahrplan.events.ccc.de/congres

2024-12-27 11:00–11:40, Saal GLITCH

about and in general stuck to .

It's a unique opportunity because my talks are made primarily for the people in the room. But if you miss it, you can catch me for a chat later :)

fahrplan.events.ccc.delibobscura: Cameras are difficult 38C3I'm not big-brained enough to use cameras on Linux, so I decided to write my own camera stack (based on a real story).

Help, there's in my !

$ ./config_query 'eq(A, config(_, 640, _, _)), A.'
camera.get_id() = "uvc:Integrated Camera"
Solution: "A = config(fourcc_YUYV, 640, 480, fraction(1, 30)),"
Solution: "A = config(fourcc_MJPG, 640, 480, fraction(1, 30)),"
fraction(1, 30)),"

Oh wait, it's just in the incoming feature.

The above query returns supported formats and frame rates at 640px wide.

This API is optional, but do learn some Prolog anyway.

Random advice:

If you're working on after dark, turn on the light in the room.

Seriously.

You will save yourself time bisecting why your app is only displaying black.

This is totally random advice, no particular reason at all.

grand opening!

Libobscura is a friendly library to use cameras on Linux.

At least that's the goal.

The objectives are:

- hard to use it wrong
- get a RGB buffer in ten lines of code
- easy to add support for new devices
- no mailing list :P

I want and other and workflows to become easy, and manufacturers to spend less time adding support (hi me 2 years ago).

More info on my : dorotac.eu/posts/libobscura/

dorotac.eulibobscura