#๐ฅ-vesktop-development
1 messages ยท Page 5 of 1
oh wait and the go live button is shifted oddly
Go Back works properly tho
lemme commit what i have before my laptop dies
What about this idea?
Maybe better to not use it for now for not creating another one portal's picker
Or we can just replace whole streaming starting logic, but, maybe no sense of doing it
?
pressing go back just calls getDisplayMedia
because
well
it calls close
then getDisplayMedia
because getDisplayMedia is what's called to open a portal and then the screensharepicker
oohhh i have an idea as to why its called twice on window opens
ill look into it
Okay I do not quite understand how it works now but at least I helped to create idea ๐
here
this file should be the one
that line
line 60 seems like it may be the culprit of the second call to getDisplayMedia
maybe
i think this is bad UX
oh?
having two cancel buttons is confusing
true
leave it next to the preview
good point
stick to discords design
im gonna change that rq
modals / popups should always have one positive and one negative option
two negative options is confusing
fair
how set key on modal so closeModal works,,,?
better question
how the hell do i use closemodal to close the screenshare modal from outside of it
close(); just closes the entire vesktop window
@azure verge is gonna kill u
omfg
Yeah kinda unfortunate, I'll put up the PR and wait for theirs to get merged first
lmao
then rebase
Make it wide
I tried
@vernal lintel doesn't like it 
Show how it looks
Is the wording ok?
what about default layout
wdym
I think
idk how to do that in css without a bunch more work
I'm gonna leave it as is for now
we can rethink it later
I think you can do that with the existing components without css
plus idk how much longer the mic workaround will be needed(if I understand it properly)
I don't think it's gonna get removed any time soon
Afaik there's no known cause for the issue, some distros / pipewire configs just fuck it up
i believe that it's for platform consistency, mac / linux icons usually have a background colour, while windows usually has icons with a transparent background
Hmm mind sharing some examples of applications that have intentionally transparent background? Most apps I use are cross platform and share the same logo across platforms
vs code, native explorer, native paint, native calculator, (also most native apps) git, firefox, and inno installer are some I can quickly remember of.
cuz like I can't see why selecting something like Firefox for example
selects the user microphone
On Linux Mint for example, when Discords Screenshare tries to use the venmic microphone, the server instead redirects it to the default microphone
Yes, but it's not an issue we've caused, it's an issue in Firefox, Chrome as well so probs with the pipewire version? config?
yeah
that's my guess too
wait
does having the workaround on cause any problems
if you don't need it
no, we could theoretically always enable it but I'd prefer not to
may I ask what it does and why not permanently enable
or rather, it's not used by many so we don't know if it might cause problems
it forces the next created node that matches some given properties to be connected to venmic
I can use it on my system to see if I'm good with default config
oh interesting
I'd be cautious though as there are some systems with really weird audio configurations, which we currently support pretty well
I'm not sure if any of you are having the same issue I am finding now, but hardware acceleration (encoding) doesn't seem to work anymore (?), aka, nvtop doesn't show encode anymore. Both myself, and a friend, are having this issue. We are both on Fedora 40, could someone else confirm this?
Can we move microphone workaround and require default speakers to some sort of expandable section?
Like button (or smth) "More options" and when clicked it will expand and show these two options
Good idea
Maybe we can think on moving audio source choosing to this section too
I'm not sure if any of you are having the same issue I am finding now, but hardware acceleration (encoding) doesn't seem to work anymore (?), aka, nvtop doesn't show encode anymore. Both myself, and a friend, are having this issue. We are both on Fedora 40, could someone else confirm this?
Does Linux even supports hardware encoding? I can be wrong at this point.
I'm not sure if any of you are having the same issue I am finding now, but hardware acceleration (encoding) doesn't seem to work anymore (?), aka, nvtop doesn't show encode anymore. Both myself, and a friend, are having this issue. We are both on Fedora 40, could someone else confirm this?
Does Linux even supports hardware encoding? I can be wrong at this point.
Yes it does using vaapi
@azure verge check this edited message about hardware encoding when hardware accel is disabled
Maybe we should try to remove/comment flags for disable accel?
I'm not sure if any of you are having the same issue I am finding now, but hardware acceleration (encoding) doesn't seem to work anymore (?), aka, nvtop doesn't show encode anymore. Both myself, and a friend, are having this issue. We are both on Fedora 40, could someone else confirm this?
Does Linux even supports hardware encoding? I can be wrong at this point.
Yes it does using vaapi (only on Intel and AMD GPUs)
According to archwiki, it's also supported on Nvidia, as N...
wdym
@vernal lintel @azure verge does that look ok?
I put the encoder flags in the hardware accel if statement cuz it made sense to me
idk if they should be something the user can't opt out of
personally I like it
But if I understand rightly, he said that removing flags enables hardware encoding..
what they said was that disabling and re-enabling the setting made it work
it was the setting not storing it's value for some reason afaik
I'm not sure if any of you are having the same issue I am finding now, but hardware acceleration (encoding) doesn't seem to work anymore (?), aka, nvtop doesn't show encode anymore. Both myself, and a friend, are having this issue. We are both on Fedora 40, could someone else confirm this?
Does Linux even supports hardware encoding? I can be wrong at this point.
Yes it does using vaapi (only on Intel and AMD GPUs)
According to archwiki, i...
I don't think that would be necessary, if I understood correctly that was just a config saving quirk
oh wow this is pretty cool, would you mind if I add it to the rohrkabel readme?
Yeah it would be great ^^
Didn't knew you are a maintainer of Rohrkabel
It helped me a lot so thank you)
I'm the only maintainer :P
Glad to hear :D
I'm not sure if any of you are having the same issue I am finding now, but hardware acceleration (encoding) doesn't seem to work anymore (?), aka, nvtop doesn't show encode anymore. Both myself, and a friend, are having this issue. We are both on Fedora 40, could someone else confirm this?
Does Linux even supports hardware encoding? I can be wrong at this point.
Yes it does using vaapi (only on Intel and AMD GPUs)
According to a...
v5 released today btw ^^
I'm not sure if any of you are having the same issue I am finding now, but hardware acceleration (encoding) doesn't seem to work anymore (?), aka, nvtop doesn't show encode anymore. Both myself, and a friend, are having this issue. We are both on Fedora 40, could someone else confirm this?
Does Linux even supports hardware encoding? I can be wrong at this point.
Yes it does using vaapi (only on Intel and AMD GPUs)
...
It's great)
I'm not sure if any of you are having the same issue I am finding now, but hardware acceleration (encoding) doesn't seem to work anymore (?), aka, nvtop doesn't show encode anymore. Both myself, and a friend, are having this issue. We are both on Fedora 40, could someone else confirm this?
Does Linux even supports hardware encoding? I can be wrong at this point.
Yes it does using vaapi (only on Intel and...
Does someone here run pulse only (no pipewire)?
honestly
if this became the new menu
id ask you to merge it before i merge this pr
sure ^^
Ven needs to approve tho
Also don't forget about expandable section variant
btw, @vernal lintel, I've had someone complain about the pulse check, as they run some hybrid setup, I think I'll remove the error condition when pipewire was not detected as the main audio server, and instead only log a warning
You can still call has_pipewire from node and we should probably open a modal informing the user that pipewire was not detected as the main audio server, if he knows what he's doing and wants to continue anyway, or if he properly wants to setup pipewire-pulse
Sorry for all the pings ๐
@hybrid fjord what's the status on displaysurface
do we know if its the cause behind the weird framerate cursor tie
We are not sure whether this is a cause or not
For checking we need to somehow pass displaySurface as display and correct display id to stream object instead window as electron returns
But it seems logical to me that this is a cause
are we able to test if the framerate is better with displaysurface set correctly?
although tbf
if it is a cause
it seems to be the kind of thing we should wait on electron for
and just merge anyways
I think with display surface we need to pass id as screen : x:0 correctly instead of window, but I do not know how to get screen's id
However I can test whether just applying displaySurface to screen helps
if you test that i think we should wait on electron
and merge anyways
and if they dont fix it
we can make another pr with a fix
Yeap, because we can't know what picked user (window or screen) for applying displaySurface correctly
We receive "window" in all cases
yeah
It's always logical because it seems that if we on kde choose window then we get frames only when window updates
But for display on kde we have slightly 50-60 (bc looks that kde updates almost always) and updates only when screen updates on systems like gnome (looks like their update system updates only on updates)
on kde when i choose window i get 60 afaik
display makes it only update when updates
but it checks the display plane
not cursor plane
Okay we need more tests I believe
Bc recently I successfully got same behavior as on gnome for windows streaming
w h at
to clear this up for anyone reading/not sure if it will work on their nvidia gpu, it will not. Since NVIDIA only want to support their own APIs.
Browsers use VA-API. There's two currently maintained backends for VA-API that relate to Nvidia, VAAPI > VDPAU and VAAPI > NVDEC (which is the repo linked above), both of which are decode support only, with the latter mostly being aimed at Firefox.
The only hope for Nvidia users is hopefully either open source kernel drivers nouveau or nova (th...
Also remind me to add some sort of automatic audio suggestion when starting the screen share and not explicitly selecting something
Could probably use some sort of Levenstein?
i believe that it's for platform consistency, mac / linux icons usually have a background colour, while windows usually has icons with a transparent background
Hmm mind sharing some examples of applications that have intentionally transparent background? Most apps I use are cross platform and share the same logo across platforms
vs code, native explorer, native paint, native calculator, (also most native apps) git, firefox, and inno installer are some I can quick...
easiest way will be for default enable whole system audio sharing
I think even on windows native version this is default for now (it actually have checkbox like "Enable screen audio sharing" which remembers user's choice, but i think we can't use this in this way)
the rainbow icon was originally only meant for mac, created by a contributor specially for it
but it also looks way better on gnome, so we decided to also use it on Linux
Perhaps at least give the option for the background?
you can just change it yourself. create a shortcut to vesktop then right click > properties and change the icon
Fair enough. Imo, the rainbow logo is better because it's just hard to see the outline of the transparent one while in the taskbar fo...
I think it only shares the audio of the selected application on Windows by default
when you picking application window then it shares only app sounds
But if you pick screen then it have this checkbox which streams all sounds in system except discord voices
yes
I want to replicate that behavior
as far as possible
We can already get some app names, and I can cross ref that with the avaialble pipewire nodes through some sort of closest match sorting
i can reproduce it on latest commit.
When i start streaming Kate as window then i get updates only when mouse moves:
with further testing
same
just
i had originally tested with
doom eternal
and that forced 60fps
bc of game updates more than 60fps?
most likely
I'm currently reinstalling arch (my system is having issues and I'm trying to figure it out(may be hardware))
About bug that calls portal's screen picker twice. I can reproduce it even in chromium using getDisplayMedia plain function, so it is a not our bug
It calls only when picking window, for picking screen it calls only once
odd
I recently started to get double pick on monitor
interesting
okay, i tested few times in discord and in webrtc demo and for screen choosing i have 1 picker and for window 2 pickers
i tried many ways to specify displaySurface to monitor but without success.
displaySurface field is located in MediaTrackSettings dict so it propably using some different logic from constraints
also it can be linked with deviceId property and refuses to change displaySurface to monitor while we have deviceId: window:x:0
Okay, i have some really useful information
In webrtc demo which uses sender and receiver and even does WebRTC negotiations i wrote FPS for sender FPS and receiver FPS.
And even when i pick screen using plain WebRTC's getDisplayMedia() function i do have FPS drops when i move mouse. Thats means that setting displaySurface to 'monitor' will not fix this bug.
When picking window i do have the same behavior with updating fps only when window updates.
if someone want to play with discord-like streaming - you can with this demo
Maybe it is some upstream's bug? Or even it's a feature in some scenarios..
or xdg-portal
let me retest in firefox, if it will not break
FPS not droping in firefox
means its chromium bug
firstly i must really good search in their bugtracker. Maybe it is already reported
true
Also in firefox i have two picker calls whether i pick screen or window
wacky
So any updates on this? If there is still a problem with how I handle the inputs for zoom, it would be good to help find a better way if that's the only issue.
tf is that
I believe i have fps drops on mouse-moving even when streaming browser window with 60fps video
created bug report, but looks like i accidentally picked Blink section :c. I hope devs will change to right section it.
https://issues.chromium.org/issues/333945842
okay time to sleep i think, 2am already
so with this new info i believe we can't fix this independently
Any chance we can get #480 supported as part of this too?
i did the same thing when i made an issue
i think its automatic
yeah im gonna remove that
well that's a graphics update
i wish we could lock it to 60/30fps
if it stayed locked
itd be a lot better
okay
so
i have an idea
the bitrate lowers when someone starts watching, right?
maybe instead of looking for the amount it locks to
we need to look at what functions are called when someone starts watching
maybe then we can find which one patches the bitrate
i think we just needed to look at it from a different perspective
uh
should we care that encode is 720p30?
set height and width
i will i just wondered if it is something we should care about
eh to hell with it
ill add it to the patch
i should anyways
yayyy
okay
when someone starts watching i THINK it reapplies videostreamparameters
idk why that would cause issues though
S(this, "handleVideo", e=>{
var t;
return this.emit(d.BaseConnectionEvent.Video, this.userId, e, this.audioSSRC, this.videoStreamParameters[0].ssrc,
null !== (t = this.videoStreamParameters[0].rtxSsrc) && void 0 !== t ? t : 0, this.videoStreamParameters)
}
Wonder if there is any way to decrease latency? Bc in theory WebRTC streams can work with almost 0 latency like for camera, but in discord streams on preview we currently can see latency about 100-200 ms. Also in demo there is latency too. I will try to play with parameters on demo, maybe I can find something
about this. Why we can't just stream gamescope as window?
@vernal lintel I thought about removing the pulseaudio depdencency and instead checking it from pipewire, however there seems to be no fully portable way to do so, although there's a way that should work 99% of the time unless the user has some really fucked configuration - Should we then remove the current pw-pulse check (that requires pulseadudio to be linked) and instead only show a warning modal in the frontend when no pw-pulse was detected
interesting
if you look into that ill look into bitrate
im waiting for v's opinion on the new modal before i start styling ours
cuz im gonna rebase from the newest version
I tried but without success
Dunno, we need to check more settings/constraints and search something about latency
oki
Also in senders/receivers too
i dont think this would be an issue
we already patched that
time to patch this
im not able to talk but are you able to hop in vc rq so i can test something?
i need someone to start watching the stream
nvm i got it
why are you trying to remove the dependency?
i cant even test this ๐ญ
my laptop cant encode fast enough
and idk if my hotspot is fast enough for 1440p60
to test the bitrate limit
hey uh v
opinion?
Why not
But until there's a good way to see it from pipewire I should probably keep it
that looks decent
Should I PR?
can one of you @broken solstice @hybrid fjord test with my newest commit and lmk if the 4696 limit is still there when someone watches?
I'm not in home rn :c
oki ur good
worst case scenario i test at home
oh
odd
my laptop isnt hw accelerated
oh
fixed it
my laptop IS powerful enough
lmao
hmm
i cant break 4000 anymore
what the hell
okay that's not happening anymore but the framerate is locked at 30
wHAT the HELL
im just gonna revert whatever i did
xD
I'll do some design testing and then PR the Venmic update
If that's ok with you @azure verge
The changes are probably going to be fairly minimal
ofc
I turned my pr into a draft because I forgot to
it's not getting merged until the menu is done
yeah
as soon as your PR is done
ill rebase and finish the screensharing modal
ill test a bunch of stuff
and then ready my pr for merge
Next update is gonna be huge
Hotifx 2 seconds later
Hmmm, I will test when I'm back home
yep
dont worry about it
Wait, you think to have lifted the limit?
yeah
Hmmm, perhaps you might have been onto something tho
Perhaps
I'm gonna focus on the modal tho first
bitrate in conn.videoQualityManager was limited to 4000
with target at 6000
so it could explain 4696
maybe
idk if I fixed it I'll let y'all know
no big deal
for now tho
im gonna test
add new modal
and merge
we can PR with any other fixes later
Sure, let's keep that in mind
Later, when I'm home, we can experiment with it a bit
Before you set it as ready you can send me a screenshot if you want some feedback ๐
ofc
๐
@vernal lintel How should I handle the width here? Neither of the predefined classes look good
Should I add my own?
If so, should I use vw?
@mossy torrent You probably know this as well?
Yeah it was a stupid question
Wasn't sure if I should pin the modal width with px or vw
why do it at all
The normal width is way too narrow
Ik, but the Medium one is also too narrow and Large is FUllscreen
then you need to rethink the ui :p
i accidentally clicked on the image absent mindedly and i thought that someone said something here and i got excited ๐ญ
honestly
no
i like that
because
there needs to be room under res and fps
for the content hint
that gives that room
id use up the space under res and framerate with the "smoothness vs clarity" button
yeah
Then I'll PR it like that
yeah large is massive
i tested with large
there's also a size called dynamic
idk what it looks like
That's straight up fullscreen lmao
HAHAHAHHAA
o;HgghjhhHGAHJAHHAHAHAHASHKAS:DAJSD:AKJSDH:AHA:HA
i hit my keep so hard it opened 6 help windows and added strikethrough
LMAO
Discord is borderline unusable on Nvidia with both xwayland and normal wayland
holy fuck this is killing me
I can't type like this
oops
was about to push with dynamic size hahaha
HAHHAHA
y e p
did you test the new modal on xorg to make sure it all works properly
yep
which is why i suggest testing
there's a variable called isWayland in the main process
you could probably pass its value to renderer if you need to
Bruh fuck wayland we don't get any useful information on the selected window here
so much for auto suggestion the audio source
do they even get any useful information from the portal??
they also shouldn't be returning window:xx:x for everything
this causes issues
its supposed to be window:xx:x and screen:xx:x i believe
@hybrid fjord knows more
im quite curious
if you select a window through portals on your demo app @hybrid fjord, what info does it give about the app?
does it give app name and everything?
I believe no, I didn't see anything like that
But I have an idea
Maybe when we have id like "window 31 0" we can just make some call to something which will return more info? Maybe DBus has any functions for it?
possibly
I checked if pipewire has any mapping for that but doesn't seem like it
hm
im gonna look into what the portal itself returns
if there's documentation on that anywhere
wait
how does the pipewire screensharing even work
does anyone have any docs on that by any chance?
this is the portal docs
oh bruh this is all dbus
What we must do on dbus-less systems..
can't I access the information through the pw-api as well?
i have no idea
Okay whenever I think we can use some DBus calls and get more info
I will try all of it when I got home
I'd like to avoid dbus if possible
okay
obs uses pipewire to screen capture
surely they dont use dbus for that
https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices
Maybe this function will return something useful?
I want info on windows tho
not hardware devices
Maybe it returns something for windows too?
like not windows the os
I can't check rn(
I mean this too
ah sorry ๐
I also have this problem. I installed libunity and vekstop with yay and I still dont have the notification badge.
xd
@azure verge anything to test?
Ah, okay, what about the bitrate thinghy?
im waiting for this stuff to get merged
you can look into it
its uhh
uff pyhsics
conn.videoQualityManager
look at that property
it has bitrate stuff on it
it may be part of the issue
gl tho
I'm testing out your reverted commit
go ahead
lol
it stopped working for me
and i dont have time to troubleshoot rn
so i undid it
it locked my fps to 30 whar
Still very low fps unless moving the cursor, same limit
funny
btw v
can we put this up here?
ah
no
I see why
how can I access a static member then
have to refactor the code a bit
alr
I'll PR it in it's current form then
I removed the error for when the user is not running pipewire-pulse
and made it a warning instead
kinda ugly xd
We'll have to make sure to check PatchBay.hasPipeWire() to show a warning when pipewire-pulse is not installed
lmao
tbh i still dont understand why even bother to drop pulse dep
isnt pulse required to use electron
Dunno
I didn't drop it though
I just made running pipewire-pulse optional
But true
You probably need pipewire pulse anyway
Saw this: https://github.com/tildearrow/venmic
I just asked him about his setup, will have to wait for a response
But regardless, this should better be handled with an explicit check in Node rather than a C++ Runtime Error
.constructor doesnt seem to exist in TS xd
Changes
- [x] Adds new setting for
Only Default Speakers - [x] Re-Design the ScreenShare Picker (#489)
Screenshots
yeah I did that before opening the PR xd
I wouldn't ๐
are you only capturing those or are you redirecting them
why lol
Hmm, generally, unless it's multiple sentences, I would avoid periods
let me find a reference for it
other settings use trailing periods as well
If it's consistent then sure
That's more important
@vernal lintel We should probably also make the Glibc error hint a modal
as well as the pipewire-pulse warning
wowie a new message (its just a new star notif)
I'm hyped really hyped for #489
Sooo
for some reason
Having vkcube onscreen totally fixes the screen stream's update issue
Like, instantly goes from 5-10 to 45-50
I wonder what's causing that
gpu usage?
I thought about clock but I already have a script that pushes that (if you're wondering why, it's because in the past xwayland discord flickered when changing GPU Clock)
hmm
~13%
sometimes 20-30
IT'S FRAMERATE RELATED
okay, so, here's what I did
I opened Rainworld, which uses DXVK, if I unset the max fps the stream is at 49
My monitor's at 144Hz
If I lock the game with the ingame toggle to 120 the stream drops to ~36fps
at 69fps it's at 20fps
at 40 it's at 4-5fps
Which is mostly the behaviour we see from not moving the cursor
Later i'll test if having a different refresh rate alters this is any way
THe GPU clock are hard set, they're not a factor at play here
Can anyone with this issue test something similar
Why we then can't reproduce this issue in Firefox?)
When I choose window -> I have only updates fps
When I choose display -> 60 fps when mouse not moving and 45-50 when moving mouse
Take a look
https://issues.chromium.org/issues/333945842
Actually I believe that demo, provided here, works like discord streaming
I even saw how to get properties that we see in debug menu
interesting
when I played doom eternal
it was locked at 59-60
do you need someone to test with?
Sure
Do we want to add "Try to fix 4696 bitrate cap" to tasklist before merging?
I'm not sure
also
should we mention the open issues in the pr so people can forward that they're also experiencing them to maybe push development a bit
Describe the bug
Venmic fails to start despite me running pipewire
To Reproduce
Go to a voice channel
Open the screenshare menu
Expected behavior
Screenaudio working as normal
Screenshots
Desktop (please complete the following information):
- OS/Distro: Void Linux
- Desktop Environment: Sway
Command line output
...
๐ฆ
[2024-04-12 14:37:56.467] [venmic] [error] could not create core or registry
This is a pretty bad sign, not sure what happens here
[error] could not create core or registry
Maybe it's a pipewire's issue?
Sounds like it
Please post with debug logs enabled, see: https://github.com/Vencord/venmic?tab=readme-ov-file#-debugging
[3:0412/150123.133389:ERROR:shared_x_display.cc(39)] Unable to open display
'loop->recurse > 0' failed at ../src/pipewire/thread-loop.c:426 pw_thread_loop_wait()
[2024-04-12 15:01:24.330] [venmic] [debug] [patchbay] (has_pipewire) pulse-server is "pulseaudio (on pipewire 1.0.3)"
[2024-04-12 15:01:24.333] [venmic] [error] could not create core or registry
Failed to initialise v...
Ah shoot this might require a Rohrkabel debug build to get proper info.
I'll take a look when I'm back home ^^
Any chance we can get #480 supported as part of this too?
I don't know how I can test it while trying to create support
I'd like to add enhancements where possible, but I'm lacking an understanding of this issue.
Could you please explain in detail what use case this would have and why it would be important?
they gave no information in that issue I am so confused as to what they want
are they running vesktop in gamescope???????
And also please specify how we can reproduce it.
Because today I tried starting game with gamescope and it just started in another window, which I really can choose using portal picker or I can just stream whole display with game window.
I don't really know.
I think it may be for some like SteamDeck systems where maybe whole compositor is gamescope or something like that. Probably on that systems there are no portal picker (??)
Venmic works on the appimage, maybe it's an issue with the flatpak?
Interesting, maybe some sort of permission issue? Have you allowed access to the host audio to the Flatpak? (Should happen automatically unless tampered with through flat-seal or similar)
Okay in any case I think that for fixing this issue we must create another PR for not making 95% of users wait for some GameScope specific bug fixing.
Yeah I'd do them separately
ofc
I'm not including it in 488
489*
I'm just trying to get info
has v merged yours
Yeap, I would like to try some things for fixing it
I need just understand what he wants ๐
Not yet ๐ฆ
gimme like 20m to fix lmao
:(
Changes
Bump venmic to 3.4.1
Add support for changing default speakers mid screen-share
Improve Logging
Several logic improvements (+ rohrkabel updates)
Adds new setting for Only Default Spea...
Could there be an API-based solution for this? Specifically expose some sort of API and allow platform specific applications like AHK to plug into these APIs?
Describe the bug
When opening Vesktop, the previous window size is not remembered. It opens in the right position, just not the right size.
To Reproduce
Close Vesktop and open it again.
Expected behavior
Vesktop should remember the previous window size.
Desktop:
OS: Windows 10
Additional context
I installed it using Scoop.
@azure verge @hybrid fjord I tested some stuff with @upper pine and it seems that the further apart the framerate of the fastest updating client is from the monitor's refresh rate the worse the stream runs.
So, opening vkcube and having a tiny section of it on screen prompts the framerate to be stable and close to target. This also explains what we were seeing with the secondary monitor as, because it has a lower refresh rate, it needs a lower framerate to not be horrible.
This is one heck of a bug
I could also reproduce that moving the cursor WORSENS framerate in some cases
Which is what I've seen on KDE
also @upper pine's stream flickers just like yours even on Nvidia Wayland so it's probably a synchronization issue that's not driver dependent
add this to the open chromium issue made by @hybrid fjord
I believe that's all is a upstream issues
I agree with you
Yeah
There's a chance it's lower level than chromium but eh
I'm trying to get gstreamer1.24 on 40
to report and fix
how know what version on
you're on Arch, mostly likely 1.24.2 which is the latest
id assume
I'm on 22.9 which is basically 23
@upper pine is
if you check out #326 the most recent commit kinda does that. it exposes a cli that can execute different keybinds by code. though i was thinking this would be used as fallback.
plans are being made for better ways to do this but i am really busy with school as of right now and can't really contribute much.
I'm installing 1.24.0
It's taking quite a bit, partially overridden, partially installed
Silverblue moment
AHAH
gl
gstreamer1 1.22.9-1.fc40 -> 1.24.0-1.fc41
gstreamer1-plugin-libav 1.22.9-1.fc40 -> 1.24.0-1.fc41
gstreamer1-plugins-bad-free 1.22.9-3.fc40 -> 1.24.0-2.fc41
gstreamer1-plugins-bad-free-extras 1.22.9-3.fc40 -> 1.24.0-2.fc41
gstreamer1-plugins-bad-free-libs 1.22.9-3.fc40 -> 1.24.0-2.fc41
gstreamer1-plugins-base 1.22.9-1.fc40 -> 1.24.0-1.fc41
gstreamer1-plugins-good 1.22.9-3.fc40 -> 1.24.0-2.fc41
gstreamer1-plugins-good-qt 1.22.9-3.fc40 -> 1.24.0-2.fc41
gstreamer1-plugins-ugly 1:1.22.9-2.fc40 -> 1:1.24.0-1.fc41
gstreamer1-plugins-ugly-free 1.22.9-1.fc40 -> 1.24.0-1.fc41
gstreamer1-vaapi 1.22.9-1.fc40 -> 1.24.0-1.fc41
Removed:
faad2-libs-1:2.11.1-2.fc40.x86_64
gstreamer1-plugins-bad-freeworld-1:1.22.9-3.fc40.x86_64
libde265-1.0.15-2.fc40.x86_64
libkate-0.4.1-29.fc40.x86_64
librtmp-2.4-24.20210219.gitf1b83c1.fc40.x86_64
mjpegtools-libs-2.2.1-5.fc40.x86_64
svt-hevc-libs-1.5.1-6.fc40.x86_64
Just in case ๐
I couldn't find freeworld
About this issue
Is there ang way in electron to check user inputs even on unfocused window?
But it's looks like critical security issue ๐
I mean if app can log any keys unfocused it's kinda dangerously
not on wayland
afaik
Ohh
Okay, but at least for x11 we can potentially realize this feature
Just checking all inputs and comparing to binds table
Venmic works on the appimage, maybe it's an issue with the flatpak?
Interesting, maybe some sort of permission issue? Have you allowed access to the host audio system to the Flatpak? (Should happen automatically unless tampered with through flat-seal or similar)
welcome to windows, mac & x11
you can't on wayland
on wayland u need to use the portal
GlobalShortcut portal looks kinda attractive
the world of insecurity
keyloggers my beloved
took us like 30 years of computing to say "we shouldn't give apps keyread permission by default"
i mean the general assumption is that apps you run on your system are trusted
i mean yeah but the system should still protect you
it should protect you but allow you to disable those protections
Who maintains the Flatpak?
im gonna go out on a limb and say @sly cairn
@sly cairn do have some idea what could be the cause here?
@mossy torrent didn't we have similar issues with the soundux flatpak
basically what the title says. streaming is now smooth on linux. finally.
TODO before merge:
- [x] Fix resolution and framerate selection
- [x] Fix bug that stops users from changing the streamed window (created by allowing resolution changes)
- [x] Fix bug where changing windows allows you to lower the fps but not raise it
- [ ] Beautify modal for starting a stream(show preview and content type as a dropdown)
- [x] Fix issue where stream quality overlay does ...
would not have a clue
it seems to work for everyone else
In discord native windows client there for non nitro accounts in p2p call I have bitrate target of 4000 for streaming
And I can't get more than 4100 actual bitrate
So I believe that non nitro accounts are restricted to 4k on backend
found out that latency on video depends on quality (how surprisingly, right?) so i believe w/o changing encoder we can't decrease latency
i will try to search whether there are ways to decrease latency for voice
Any chance we can get #480 supported as part of this too?
I don't know how I can test it while trying to create support
Just run a program in Gamescope and then run Vesktop alongside it and it will let you capture the program. for example: gamescope -- glxgears.
And also please specify how we can reproduce it.
Because today I tried starting game with gamescope and it just started in another window, which I really can choose using portal picker or I can just stream whole display with game window.
Gamescope is a wayland compositor that runs by itself when it is not being launched from another compositor. It does not support a portal capture at the moment and only has the pipewire output. The problem is that this is the main compositor for the Stea...
And also please specify how we can reproduce it.
Because today I tried starting game with gamescope and it just started in another window, which I really can choose using portal picker or I can just stream whole display with game window.Gamescope is a wayland compositor that runs by itself when it is not being launched from another compositor. It does not support a portal capture at the moment and only has the pipewire output. The problem is that this is the main compositor...
okay any ideas how we can reproduce it in default systems?
anyway how we must send pipewire output instead of portal one's if electron want portal output..
i have no idea
maybe we can create stream object from pipewire output sobehow?
hence why im leaving it out of this pr
hardest thing will be to test it
i could probably install gamescope on my switch or some shit
and vesktop?
yeah
the main thing i wanna fix rn
is the 4696 cap
i have nitro
and im still locked
i cant hold 1080p60
unless nitro basic has a lower cap
start streaming
the moment someone starts watching
the target drops to 4696
@upper pine uhm
sometimes when i screenshare some apps
all audio quality in call turns robotic
is that normal pipewire shit
Wot
I've never experienced anything remotely similar xd
maybe my pipewire config is brokey?
it depends on the game
But then it's also a pipewire issue
Wait can you actually reprod somewhat decently
I have that
every time
I'll see if I can reprod to tomorrow
oki
Insane
I'll test it
With going robotic
You mean for others
Or for yourself?
it looks like small latency issue
Ah
everything else is fine
Alr
gl
Dunno but looks right
oki
But that's also really interesting because I don't touch the vesktop audio at all
we can receive robotic sound when applying very small latency on pulseaudio and when applications actually needs more latency
dunno how to properly say it
only happens when screensharing the app
not the screen
what the fuck
do you know how to fix
In case I can reprod I wouldn't know what could fix it tho xd
lmao
But we'll see
Maybe I get some crazy idea
Ok
just to set higher latency
So
Exact steps to reprod
Are
- Open Doom Eternal
- start windowed stream
Whole desktop audio or only doom?
start stream with doom eternal window and with game audio on
content hint set to motion
and im using 1080p60
^
game only
Ok, noted :D Thanks
Is 1080p normally nitro only?
mhm
Does that also happen in a minimal reprod example or only in discord?
not sure
try
odd
im streaming 1440p 30 rn
and barely hitting 1000kbps
even at full 30fps
This specification extends MediaStreamTrack to provide an
optional hint about the user's preference on how the media should
be treated when insufficient resources for perfect reproduction
are available.
Is this somehow relevant?
Maintain frame rate sounds interesting
that's a thing we worked on and implemented a while ago lol
Alright, sorry I'm not too up-to-date ๐
It's actually like new feature for us ^^
But this is not about the content hint
added bitrate showing, but it's kinda strange
osadjlfkshjldakf
hm
degredationpreference is deprecated
look at the mdn page
Oh xd
lol
Have you tried using it anyway?
Is it deprecated long enough that it's actually deprecated in the current chrome build of electron?
Yeah absolutely
it would be a pain if it came back later and caused more issues
Just for testing
at least our current configuration of contentHint are working so maybe it be better to not touch it
can anyone retest starting stream when watching another stream? T_T
We did that a few hours back and it would load indefinitely
Just making sure, does maintain-framerate also exist in electrons chrome version yet?
why we fixing bugs and they are just coming back
They are getting stronger ๐จ
like us
can confirm
We're just hard to kill bugs AHAH
Well, nonetheless, on GStreamer 1.24 I can't see any significant difference compared to 23
wait stop
did we even fixed starting stream when watching another stream? Or we just decided that discord must fix it
bc i remember that i can reproduce this bug in default discord
newly created conn.input.stream is undefined when watching another stream, so we can't do anything here
I have to yet add my custom pipewire
Oh, and about gamescope
I have this issue๐
https://github.com/ValveSoftware/gamescope/issues/1200
I have idea about UX here
Can we change text to something like "Choosing "Prefer Smoothness" will result a higher framerate in exchange for a image quality" when user picker prefer smoothness and change text to clarity when user picks clarity?
Like this about section will tell to user what exactly he picked
@vernal lintel the sooner you merge venmic 3.3.4, the sooner ill be able to finish #489 lmao
I believe for achieving this we can use org.freedesktop.portal.ScreenCast.OpenPipeWireRemote DBus call.
But for achieving streams creation directly from DBus requires whole streaming code refactor and migrating from electron's desktopCapturer.getSources calling to direct DBus calls for Linux systems, which is a real major of work.
Sadly i'll have to switch from vesktop because of this issue. I'd love to use it otherwise but it makes calls unusable & i can't adjust the system volume enough to fix it.
I'm going to try and recreate it, but my main priority is screensharing
Oh, i didn't know screen sharing was an issue, it has worked perfectly for me so far.
ageshame images ๐
This works great. I'm able to stream at 40-60fps, at any resolution although at varying levels of heavy compression.
Heavily compressed 1440p 60fps with the motion contenthint seems to be the best in general.
However; I noticed that I get by far the best balance of compression vs framerate consistency if I first livestream something with very little moment (such as my desktop) for ~10 seconds or so, in which I'll visibly see the stream change to using way less compression. Afterwards,...
As far as I know you can have multiple implementations of the same portal exposed via dbus. So, maybe this could be fixed by having an xdg-desktop-portal implementation for gamescope, thus this being an issue for upstream gamescope?
correction: the monitor I tested on was 1080p. Me selecting 1440p was most likely just using 1080p instead.
This works great. I'm able to stream at 40-60fps, at any resolution although at varying levels of heavy compression.
Heavily compressed 1440p 60fps with the motion contenthint seems to be the best in general.
However; I noticed that I get by far the best balance of compression vs framerate consistency if I first livestream something with very little moment (such as my desktop) for ~10 seconds or so, in which I'll visibly see the stream change to using way less compression. Aft...
Closing due to inactivity, please re-open in case it's still reproducible with latest venmic :)
@azure verge I just noticed I dont have Doom Eternal but only Doom 2016
Do you reckon that will still reprod?
I'm not sure
the crack has 13 parts holy fuck
I'll see if one of my friends has it
ok got it
downloading rn
btw do we have a timeline on when #499 will be merged?
gl
you have to sacrifice 10 sheep and we will look at it instantly
LMAO
I guess that works ๐
is this a dare
speedrun get banned any%
if you want it to :P
Btw @azure verge I discovered that the screenshare issue only happens with dual monitors.
(Also that VRR only works with one and glitches like hell even then :)) )))) ) )
odd
nah i wont lmao
hahah
th e r e
same
why is this channel literally only screenshare issues/bugfixes??? ๐
because that's the hot shit right now
no other development is really being talked about lmao
we can also talk about
stream?


