banji-project / ring-issues

Old issues before it was moved to kde.org
0 stars 0 forks source link

New video with toolbar #6

Closed Elv13 closed 7 years ago

Elv13 commented 7 years ago

Track the requirements and progress. This feature has lower priority than the wizard, but has nevertheless been started and progress between reviews of the wizard. I will now switch back to the wizard as there is some things to change. Here's the current status:

Basic features

As shown above, the "big ticket items" are done, but some smaller sub-features still need to be completed before a working prototype can land in the code. The "big risk" items are done, everything else is low risk and requires no additional research/knowledge.

Common / useful features

None of those things are priorities, but users will expect them. None of them take much time to implement. Feel free to edit this message and re-order them.

Unknowns

Daemon issues found while testing

After extensive manual testing, the following features seems to fail due to daemon bugs.

Technicalities

I prototyped 2 versions. The first one use an OpenGL underlay. It doesn't seem to work correctly for my framebuffer. For some reason it only show a black background. The second uses a QQuickImageProvider. It works fine, but has extra overhead, takes more CPU and currently has a fixed frame rate. I will go ahead with the second prototype for now. I don't want to waste time on OpenGL issues while the other basic features are not ready. A QVideoFrame/QAbstractVideoBuffer version should also be researched / prototyped (eventually). Early versions of QtMultimedia were not suitable to display the GNU Ring / SFLPhone video feed. This may have changed. It comes down to the precise "dance" and mutex synchronization between multiple process. I need total and absolute control over the memory lifetime or the uchar[] will be auto-discarded while Qt is reading it, causing a segfault.

Other requirements

Whats definitely good there is the small left sidebar with options, of which we only need:

  • last calls (including new call option)
  • adressbook/contacts (including add/remove/edit contacts)
  • settings

This already exists in the other docks and can be combined with the video. The KDE mobile client has the QML version of those lists docks. I can enable them in the video canvas itself if you wish.

[[ADD OTHER REQUIREMENTS HERE]]

Elv13 commented 7 years ago

Hello,

I pushed the first version of the new video widget. It is an early preview and has the issues listed above.

@shadeslayer Please note Ring-KDE now depends on KF5::Declarative. @star-buck I am not sure it's good enough for extensive testing yet, but it's working often enough. The best way to see what it looks like is the video preview in settings -> video. The call video itself is still affected by a race condition when it shows up then disappear a second later about 50% of the time. That bug may or may not be in the daemon. I will fix that tomorrow.

Elv13 commented 7 years ago

The base features are complete and seem mostly reliable on my side.

pick11

star-buck commented 7 years ago

i was able to make a call and confirm the popup is showing.