- 14 Jan, 2019 3 commits
-
-
Benjamin Berg authored
-
Benjamin Berg authored
The constructor of the provider would always start the find operation. That may not be necessary, so change it to only start the find when discovery is enabled.
-
Benjamin Berg authored
Without this discovery wouldn't be running properly after application startup.
-
- 11 Jan, 2019 3 commits
-
-
Benjamin Berg authored
The openh264 codec sometimes needs a lot of time for a frame. As the latency does not seem to be auto-adjusted, set it to 500ms explicitly. 500ms seems to work fine, it could be that less is also good enough, but while high it is probably still alright.
-
Benjamin Berg authored
-
Benjamin Berg authored
Sometimes the encoder may not run in real-time. In particular the openh264 encoder element will start having a lot of buffer in the queue rather than dropping input buffers. Generate QOS events if buffers start coming in late, to force the codec to drop frames and ensure playback is smooth (without audio dropping out). Also adjust some default options, including limitting the video bitrate so that the wifi link is not over-saturated.
-
- 07 Jan, 2019 1 commit
-
-
Benjamin Berg authored
-
- 03 Jan, 2019 11 commits
-
-
Benjamin Berg authored
-
Benjamin Berg authored
We may not get any new frames from the shell for long periods if nothing on the screen changes. So effectively disable the timeout and keep sending the previous frame indefinately.
-
Benjamin Berg authored
Most o the mentioned issues have been fixed and audio is also supported if a supported encoder is found.
-
Benjamin Berg authored
We currently only support the AAC codec (when an encoder is available). It should be easy to support LPCM in theory, in practice the MPEGTS muxer element does not support packing the raw audio data currently though.
-
Benjamin Berg authored
-
Benjamin Berg authored
-
Benjamin Berg authored
The metaprovider was unref'ing all providers that match the newly added sink. This was simply a wrong initialization of the pointer array.
-
Benjamin Berg authored
-
Benjamin Berg authored
-
Benjamin Berg authored
In WFD almost all rates default to 48kHz. So, to avoid re-sampling, set the rate on the sink to 48kHz.
-
Benjamin Berg authored
For now this adds a ScreencastPulseaudio class which creates a gnome_screencast NULL sink and allows gettign a pipewire source for the monitor source. The NULL sink is currently not destroyed on shutdown, however, we do make sure to only ever create one of them.
-
- 20 Dec, 2018 3 commits
-
-
Benjamin Berg authored
Many devices can request IDR frames if they need them. In that case, we don't need to insert as many IDR frames into the stream, so increase the GOP size for the encoder.
-
Benjamin Berg authored
-
Benjamin Berg authored
This means we do not assume it is an IDR request anymore.
-
- 19 Dec, 2018 6 commits
-
-
Benjamin Berg authored
Just force max_slice_num to 1 in that case.
-
Benjamin Berg authored
The wrong table was used for the length.
-
Benjamin Berg authored
This changes a few parameters. The only change in here that actually fixes things in this case is forcing the slice count to be 1. There is actually another underlying bug (will be fixed in following commits) that caused a too high slice count to be set. However, it doesn't hurt much to be on the safe side.
-
Benjamin Berg authored
We can do better, but relying on the native resolution doesn't really work, and picking the highest resolution is also wrong. If we actually decode the EDID, then we could pick the best resolution that works for the monitor in question.
-
Benjamin Berg authored
This is a basic implementation to inject IDR frames. Note that it currently assumes that any SET_PARAMS request is actually an IDR request.
-
Benjamin Berg authored
If the casting source asks for an IDR frame, then replying with an error is a bad idea. Instead, just always return OK.
-
- 16 Dec, 2018 1 commit
-
-
- 08 Dec, 2018 1 commit
-
-
Benjamin Berg authored
With this gnome-screencast will fall back to trying to use a simple ximagesrc rather than the portal if the portal API is missing.
-
- 07 Dec, 2018 1 commit
-
-
Benjamin Berg authored
The WFD sink did not store the source ID and both sinks did not detect an attachment failure correctly.
-
- 06 Dec, 2018 1 commit
-
-
Benjamin Berg authored
It is not a good idea to continously run the P2P find operation as it requires changing channels on the card and could have major impacts on wifi performance. So turn discovery off as soon as the sink list is not visible.
-
- 04 Dec, 2018 7 commits
-
-
Benjamin Berg authored
-
Benjamin Berg authored
-
Benjamin Berg authored
Querying the SDP has no use and is not even possible at that point in the process.
-
Benjamin Berg authored
The default is not to suspend the pipeline. However, as we are live-streaming, there is no point in letting the pipeline run, just reset it.
-
Benjamin Berg authored
Some of the getters return references, others don't. Fix the various cases so we don't leak any objects.
-
Benjamin Berg authored
-
Benjamin Berg authored
This simplifies the interlacer a bit and decouples everything before the encoder to run in a separate thread.
-
- 03 Dec, 2018 2 commits
-
-
Benjamin Berg authored
Unfortunately, it seems that sometimes the pipeline stays alive when cancelling.
-
Benjamin Berg authored
-