Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from pikvm:master #21

Open
wants to merge 405 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
405 commits
Select commit Hold shift + click to select a range
90e51c0
always using CLOCK_MONOTONIC
mdevaev Aug 22, 2023
0745f0a
lint fixes
mdevaev Aug 22, 2023
516c0be
decreased grab latency
mdevaev Aug 23, 2023
a102a4a
refactoring
mdevaev Aug 23, 2023
aa90ed1
lint fix
mdevaev Aug 23, 2023
121edf5
lint fix
mdevaev Aug 23, 2023
35ed415
Bump version: 5.41 → 5.42
mdevaev Aug 23, 2023
68e7e97
SSL Proxy Scripts (#226)
tallman5 Oct 3, 2023
a52df47
skip broken frames and save only good
mdevaev Sep 6, 2023
c96559e
Discard truncated JPEG frames (#230)
theacodes Sep 16, 2023
22a816b
issue #230: fixed possible memory error
mdevaev Sep 17, 2023
b3e4ea9
issue #230: processing any freshest valid buffer
mdevaev Sep 17, 2023
e952f78
moved ssl docs
mdevaev Oct 3, 2023
a4b4dd3
Bump version: 5.42 → 5.43
mdevaev Oct 3, 2023
ec33425
Multi Planar device support (#233)
argakon Oct 8, 2023
a2641df
some multiplane fixes
mdevaev Oct 10, 2023
0ce7f28
Correct typo on 'interval' (#236)
mtlynch Oct 10, 2023
4732c85
Optimize JPEG scanline copy of yuv format (#235)
chraac Oct 12, 2023
55e432a
Merge branch 'mp'
mdevaev Oct 12, 2023
05e5db0
fix
mdevaev Oct 12, 2023
79987da
Bump version: 5.43 → 5.44
mdevaev Oct 13, 2023
6bd4ef5
avoid duplicate increment of slc (#239)
emaste Oct 24, 2023
33fdf9b
Bump version: 5.44 → 5.45
mdevaev Oct 24, 2023
83a77ea
doc about youtube streaming
mdevaev Oct 24, 2023
89fd83b
added info for v2 camera
mdevaev Oct 28, 2023
fc3e023
'-e' should be '--encoder' (#241)
hugs Nov 3, 2023
bd40359
using libjpeg62-turbo on raspbian
mdevaev Nov 15, 2023
8175681
update for bookworm
mdevaev Nov 15, 2023
622f5cf
janus plugin: increased video queue
mdevaev Dec 14, 2023
f8ed7d7
Bump version: 5.45 → 5.46
mdevaev Dec 14, 2023
bcd3dea
remove remainings of rpi vc paths (#250)
jpalus Jan 2, 2024
2997906
add option to make verbose builds (#251)
jpalus Jan 2, 2024
d9b5f2b
Issue #255: libgpiod 2.0 API supported
mdevaev Jan 7, 2024
3cb649d
Bump version: 5.46 → 5.47
mdevaev Jan 7, 2024
4d92dc6
removed some checks in gpio
mdevaev Jan 8, 2024
2dddb87
Bump version: 5.47 → 5.48
mdevaev Jan 8, 2024
c4cb828
Fix it's vs its typo (#255)
thomergil Jan 30, 2024
4e8acf3
Issue #252: YVYU support
mdevaev Jan 11, 2024
6a6b910
refactoring
mdevaev Feb 2, 2024
b2ebcf9
Bump version: 5.48 → 5.49
mdevaev Feb 2, 2024
b578e98
notes about libcamerify
mdevaev Feb 3, 2024
63d87f0
add instance_id to stream_client cookie name
mdevaev Feb 15, 2024
46e630d
using (void) instead of UNUSED
mdevaev Feb 15, 2024
4133094
Bump version: 5.49 → 5.50
mdevaev Feb 16, 2024
13af11a
Using strerror_r() instead of strerror_l() for better compatibility
mdevaev Feb 18, 2024
aa05c47
string fixes
mdevaev Feb 18, 2024
f0e070b
Bump version: 5.50 → 5.51
mdevaev Feb 18, 2024
3c7564d
big refactoring
mdevaev Feb 22, 2024
5f7c556
device: Keep DV-timing Hz
mdevaev Feb 23, 2024
5026108
device: Logging prefix
mdevaev Feb 23, 2024
3715c89
v4p
mdevaev Feb 20, 2024
2606199
new macro US_MIN() and US_MAX()
mdevaev Feb 26, 2024
2d6716a
refactoring
mdevaev Feb 26, 2024
414baad
refactoring
mdevaev Feb 26, 2024
032faa9
refactoring
mdevaev Feb 26, 2024
b5c201d
Bump version: 5.51 → 5.52
mdevaev Feb 26, 2024
506a449
fix
mdevaev Feb 26, 2024
284b17d
Bump version: 5.52 → 5.53
mdevaev Feb 26, 2024
aca3ee9
fix installer
mdevaev Feb 26, 2024
5f393ae
Bump version: 5.53 → 5.54
mdevaev Feb 26, 2024
9f40713
v4p: check display status via sysfs
mdevaev Feb 27, 2024
50ee2ba
v4p: simplified
mdevaev Feb 27, 2024
b202438
v4p: ignore ENOENT (unplugged) on restoring saved_crtc
mdevaev Feb 27, 2024
1c862b2
v4p: better messages
mdevaev Feb 27, 2024
0e7d8da
Bump version: 5.54 → 5.55
mdevaev Feb 27, 2024
4b6f658
simplified
mdevaev Feb 28, 2024
32165e9
simplified
mdevaev Feb 28, 2024
5b54a8d
v4p: fixed buf error handling
mdevaev Feb 28, 2024
f5a9214
simplified
mdevaev Feb 28, 2024
d52ac78
device: don't expose dma for jpeg
mdevaev Feb 29, 2024
bb3e4ec
moved queue from janus to common libs
mdevaev Feb 29, 2024
ca36383
moved ftext to libs as frametext
mdevaev Feb 29, 2024
7bacef7
minor fix
mdevaev Feb 29, 2024
28cd5e5
janus: reducing memory allocating using ring buffer
mdevaev Feb 29, 2024
12937b9
janus: using ring buffers for rtp pipelines
mdevaev Feb 29, 2024
4296d5d
janus: using ring for audio pipeline
mdevaev Feb 29, 2024
d9401b7
commented unused us_queue_get_free()
mdevaev Feb 29, 2024
a3f4294
refactoring
mdevaev Feb 29, 2024
3e5a444
refactoring
mdevaev Feb 29, 2024
72cd61c
docker: build images for armv6 (#262)
mkuf Feb 29, 2024
df63ad4
refactoring
mdevaev Feb 29, 2024
15f160c
refactoring
mdevaev Feb 29, 2024
2a37f16
using text generator for blank images
mdevaev Feb 29, 2024
c852e5f
lint fixes
mdevaev Feb 29, 2024
8d4e6a1
server: fixed zero frame behaviour
mdevaev Mar 1, 2024
df610e1
improved makefiles
mdevaev Mar 1, 2024
c54d7da
Bump version: 5.55 → 5.56
mdevaev Mar 1, 2024
cacec0d
refactoring
mdevaev Mar 1, 2024
8edeff8
fixed makefile
mdevaev Mar 1, 2024
8f0acb2
Bump version: 5.56 → 5.57
mdevaev Mar 1, 2024
e30520d
refactoring
mdevaev Mar 1, 2024
dabee9d
gitignores ustreamer-v4p
mdevaev Mar 1, 2024
54b221a
moved exit_on_no_clients logic from http to stream loop
mdevaev Mar 1, 2024
cfc5ae1
v4p: using /dev/dri/by-path/platform-gpu-card instead of card0
mdevaev Mar 1, 2024
6145b69
refactoring
mdevaev Mar 2, 2024
ff08a0f
refactoring
mdevaev Mar 2, 2024
85308e4
stream: null hw buffer pointer after encoding
mdevaev Mar 2, 2024
a00f493
wait (select) device in grab function
mdevaev Mar 2, 2024
20c7298
refactoring
mdevaev Mar 2, 2024
b4aa959
refactoring
mdevaev Mar 2, 2024
e2f4c19
refactoring
mdevaev Mar 2, 2024
20cdabc
lint fix
mdevaev Mar 2, 2024
b2fb857
refactoring
mdevaev Mar 2, 2024
c32ea28
Bump version: 5.57 → 5.58
mdevaev Mar 2, 2024
77a5334
refactoring
mdevaev Mar 2, 2024
0296ab6
added device timeout error message
mdevaev Mar 2, 2024
72741b9
releaser threads
mdevaev Mar 2, 2024
6a0ee68
renamed captured_fps to http_captured_fps
mdevaev Mar 2, 2024
f2f560a
h264 encoder in separate thread
mdevaev Mar 2, 2024
ef47fa4
jpeg in a separate thread
mdevaev Mar 2, 2024
8f6df3b
Issue #263: -latomic is required now
mdevaev Mar 2, 2024
988a916
fixed force_key logic for slowdown
mdevaev Mar 3, 2024
a9dfff8
fix
mdevaev Mar 3, 2024
8cb6fc4
refactoring
mdevaev Mar 3, 2024
c24d633
Issue #228: Request fresh snapshot from jpeg encoder
mdevaev Mar 3, 2024
33b9bff
atomic capture state for http
mdevaev Mar 3, 2024
36dd5d1
pass encoders if there is no clients
mdevaev Mar 3, 2024
8fe411a
compress only lastest frame
mdevaev Mar 3, 2024
ffa68a8
refactoring
mdevaev Mar 3, 2024
c9cb0a4
fixed persistent timeout
mdevaev Mar 3, 2024
f9bc566
refactoring
mdevaev Mar 3, 2024
299b388
improved messages
mdevaev Mar 3, 2024
6827a72
failed if dv timings are not available
mdevaev Mar 3, 2024
05bba86
refactoring
mdevaev Mar 3, 2024
06eda04
always generate blanks for offline snapshots
mdevaev Mar 3, 2024
b556dfb
improved persistent logic
mdevaev Mar 3, 2024
c8dc511
signal lib to reduce duplicating code
mdevaev Mar 4, 2024
98b5e52
block signals in threads
mdevaev Mar 4, 2024
7fd5eb2
fixed offline state
mdevaev Mar 4, 2024
0b3a1eb
deprecated --last-as-blank
mdevaev Mar 4, 2024
490d833
refactoring
mdevaev Mar 4, 2024
2ffa561
reduced snapshot timeout to error_delay*3
mdevaev Mar 4, 2024
bbc7ceb
fix
mdevaev Mar 4, 2024
4427904
fixed empty label for goto
mdevaev Mar 4, 2024
c55b6c4
lint fix
mdevaev Mar 4, 2024
f7c2948
improved memsink checks performance
mdevaev Mar 5, 2024
55b6a3e
improved logging
mdevaev Mar 5, 2024
b578414
fix
mdevaev Mar 5, 2024
e558b0f
Issue #264: Bring back BSD compatibility in strerror hacks
mdevaev Mar 5, 2024
e92002c
repeat blank every second on offline
mdevaev Mar 5, 2024
0b8940d
limit fps by m2m hardware to reduce latency
mdevaev Mar 5, 2024
40e17b0
memsink client: bump last_as_blank_ts on every flock()
mdevaev Mar 5, 2024
be5f63d
noted TC358743 errors
mdevaev Mar 5, 2024
8f3a475
Bump version: 5.58 → 5.59
mdevaev Mar 6, 2024
e1ef861
Bump version: 5.59 → 6.0
mdevaev Mar 6, 2024
897ad49
v4p: dma support
mdevaev Mar 8, 2024
a75d648
font info
mdevaev Mar 7, 2024
6657280
fix
mdevaev Mar 8, 2024
ac0944a
v4p: added some checks and asserts
mdevaev Mar 9, 2024
ce935c4
v4p: changed logging levels
mdevaev Mar 9, 2024
b00a6ff
Bump version: 6.0 → 6.1
mdevaev Mar 9, 2024
7228502
refactoring
mdevaev Mar 9, 2024
c333e75
v4p: dpms
mdevaev Mar 9, 2024
2e67a46
refactoring
mdevaev Mar 10, 2024
6475eee
refactoring
mdevaev Mar 10, 2024
646afbf
refactoring
mdevaev Mar 10, 2024
c4cf4f0
v4p: wait for dma_fd on close
mdevaev Mar 10, 2024
2d9e51a
v4p: turn off the display after timeout
mdevaev Mar 10, 2024
8ac2fa2
Bump version: 6.1 → 6.2
mdevaev Mar 10, 2024
f48695a
refactoring
mdevaev Mar 13, 2024
1d8c93d
Issue #253: Added m2m encoder timeout
mdevaev Mar 14, 2024
05804e3
Bump version: 6.2 → 6.3
mdevaev Mar 14, 2024
69e7cbf
refactoring
mdevaev Mar 16, 2024
2f1264c
janus: rtp orientation support
mdevaev Mar 16, 2024
283f31a
Bump version: 6.3 → 6.4
mdevaev Mar 17, 2024
34c0dcb
refactoring
mdevaev Mar 19, 2024
b6a2332
refactoring
mdevaev Mar 20, 2024
87a75a8
memsink: suffix-based memory limites
mdevaev Mar 20, 2024
7356dea
renamed options --sink* to --jpeg-sink*
mdevaev Mar 21, 2024
408157c
Bump version: 6.4 → 6.5
mdevaev Mar 21, 2024
ac88996
adapt pacman 6.1 and lower version (#266)
kkkon Mar 21, 2024
0ab8e0d
DESTDIR always transformed to absolute R_DESTDIR
mdevaev Mar 22, 2024
847f34e
fixed symlink
mdevaev Mar 22, 2024
25957de
direct call of setup.py is deprecated
mdevaev Mar 22, 2024
6d77f53
updated copyright date
mdevaev Mar 22, 2024
b79b4fd
Bump version: 6.5 → 6.6
mdevaev Mar 22, 2024
976f466
PKGBUILD: fixed missing python-wheel
mdevaev Mar 23, 2024
bdf5539
fixed memsink data offset
mdevaev Mar 25, 2024
02fabc7
Bump version: 6.6 → 6.7
mdevaev Mar 25, 2024
f0f5fcd
renamed us_device* to us_capture*
mdevaev Mar 25, 2024
8d4e9a6
renamed us_hw_buffer_s to us_capture_hwbuf_s
mdevaev Mar 25, 2024
a339ff5
v4p mode in ustreamer
mdevaev Mar 26, 2024
290282b
drm: fixed big endian case for rgb/bgr
mdevaev Mar 26, 2024
7015a26
Userspace workaround for the wrong TC358743 RGB bytes ordering
mdevaev Mar 26, 2024
f177300
ustreamer/drm: fixed assertion
mdevaev Mar 26, 2024
eec6cfd
lint fix
mdevaev Mar 26, 2024
bcd4479
build fix
mdevaev Mar 26, 2024
d430143
Bump version: 6.7 → 6.8
mdevaev Mar 26, 2024
7dc492d
refactoring
mdevaev Mar 26, 2024
8c92ab6
ustreamer: blank drm output by timeout
mdevaev Mar 26, 2024
e6ebc12
replaced comment
mdevaev Mar 27, 2024
b6fac26
ustreamer-v4p: bring back busy message
mdevaev Mar 27, 2024
83f12ba
refactoring
mdevaev Mar 27, 2024
d64077c
Bump version: 6.8 → 6.9
mdevaev Mar 27, 2024
a21f527
common error constants
mdevaev Mar 28, 2024
b0b881f
fix
mdevaev Mar 28, 2024
4e1f62b
refactoring
mdevaev Mar 28, 2024
e0f09f6
new macro US_ONCE_FOR()
mdevaev Mar 28, 2024
c8201df
don't rebuild python module without necessary
mdevaev Mar 28, 2024
94b1224
fix
mdevaev Mar 29, 2024
caf9ed7
refactoring
mdevaev Mar 29, 2024
8e6c374
refactoring
mdevaev Mar 29, 2024
3f69dd7
fix
mdevaev Mar 29, 2024
f8a703f
refactoring
mdevaev Mar 29, 2024
70fa654
common fps counter
mdevaev Mar 30, 2024
37f3f09
simplified list declaration
mdevaev Mar 30, 2024
580ca68
US_FRAME_META_DECLARE
mdevaev Mar 30, 2024
14e9d9f
fps -> fpsi, store frame meta
mdevaev Mar 30, 2024
4ec3f11
refactoring
mdevaev Mar 30, 2024
a9e0cb4
h264 and drm statistics in http
mdevaev Mar 30, 2024
24aca34
we don't need us_fpsi_reset() anymore
mdevaev Mar 30, 2024
88203f9
fix
mdevaev Mar 30, 2024
3a3889d
fpsi: mutexless mode
mdevaev Mar 30, 2024
5f3198e
sort of fps reset
mdevaev Mar 30, 2024
b8b67de
mutexless fpsi at all
mdevaev Mar 31, 2024
074ce86
using fps_meta instead of flags
mdevaev Mar 31, 2024
e059a21
refactoring
mdevaev Apr 1, 2024
9ec5914
Bump version: 6.9 → 6.10
mdevaev Apr 1, 2024
0a639ea
deprecated noop jpeg encoder
mdevaev Apr 3, 2024
ae2f270
refactoring
mdevaev Apr 3, 2024
65c652e
encoder: removed cpu_forced logic
mdevaev Apr 4, 2024
75a193f
syntax fix
mdevaev Apr 4, 2024
1ed3979
use JCS_EXT_BGR on libjpeg-turbo
mdevaev Apr 4, 2024
0d974a5
refactoring
mdevaev Apr 4, 2024
fca69db
us_workers_pool_wait() without side effect
mdevaev Apr 4, 2024
c40b3ee
refactoring
mdevaev Apr 4, 2024
fab4c47
list: clean prev/next pointers on remove
mdevaev Apr 5, 2024
1803879
reworked pool logic
mdevaev Apr 5, 2024
aae090a
list: clean next pointer on append
mdevaev Apr 5, 2024
dfeefe5
Bump version: 6.10 → 6.11
mdevaev Apr 5, 2024
6c24c9e
src/libs/types.h: include sys/types.h (#273)
ffontaine May 15, 2024
353e58d
fix
mdevaev May 15, 2024
9d5eb8b
fixed edid path
mdevaev May 15, 2024
e8a7fb3
lint fixes
mdevaev May 15, 2024
25d87d5
Bump version: 6.11 → 6.12
mdevaev May 15, 2024
793f24c
Update README.md (#275)
randolf May 29, 2024
dcddfdd
Fix crash on FreeBSD due to incorrect thr_self system call invocation…
yurivict Aug 16, 2024
f2779f7
check for pkg-config
mdevaev May 26, 2024
000be92
lint fix
mdevaev Aug 16, 2024
de8cb85
Bump version: 6.12 → 6.13
mdevaev Aug 16, 2024
53ec87b
Issue #264: Properly checking of pkg-config
mdevaev Aug 17, 2024
3e228c1
refactoring
mdevaev Sep 4, 2024
f79a663
added pkgconf to deps
mdevaev Sep 4, 2024
fcecc12
Revert "refactoring"
mdevaev Sep 4, 2024
79bbafd
Bump version: 6.13 → 6.14
mdevaev Sep 4, 2024
590a73f
Add option to which allows to handle truncated frames. (#289)
zefir-o Sep 6, 2024
5f932d8
Small refactoring of #289 + manpage
mdevaev Sep 6, 2024
6f8e820
Bump version: 6.14 → 6.15
mdevaev Sep 6, 2024
74dc1dc
Janus: Added sprop-stereo=1
mdevaev Sep 10, 2024
1f96925
Bump version: 6.15 → 6.16
mdevaev Sep 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
decreased grab latency
  • Loading branch information
mdevaev committed Aug 23, 2023
commit 516c0be6eab825642eba901c6c01b87f8d2565cb
39 changes: 31 additions & 8 deletions src/ustreamer/device.c
Original file line number Diff line number Diff line change
Expand Up @@ -310,16 +310,37 @@ int us_device_grab_buffer(us_device_s *dev, us_hw_buffer_s **hw) {
*hw = NULL;

struct v4l2_buffer buf = {0};
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
buf.memory = dev->io_method;
bool buf_got = false;
unsigned skipped = 0;

US_LOG_DEBUG("Grabbing device buffer ...");
if (_D_XIOCTL(VIDIOC_DQBUF, &buf) < 0) {
US_LOG_PERROR("Can't grab device buffer");
return -1;
}

US_LOG_DEBUG("Grabbed new frame: buffer=%u, bytesused=%u", buf.index, buf.bytesused);
do {
struct v4l2_buffer new = {0};
new.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
new.memory = dev->io_method;
const bool new_got = (_D_XIOCTL(VIDIOC_DQBUF, &new) >= 0);

if (new_got) {
if (buf_got) {
if (_D_XIOCTL(VIDIOC_QBUF, &buf) < 0) {
US_LOG_PERROR("Can't release device buffer=%u (skipped frame)", buf.index);
return -1;
}
++skipped;
buf_got = false;
}
memcpy(&buf, &new, sizeof(struct v4l2_buffer));
buf_got = true;
} else {
if (buf_got && errno == EAGAIN) {
break;
} else {
US_LOG_PERROR("Can't grab device buffer");
return -1;
}
}
} while (true);

if (buf.index >= _RUN(n_bufs)) {
US_LOG_ERROR("V4L2 error: grabbed invalid device buffer=%u, n_bufs=%u", buf.index, _RUN(n_bufs));
Expand Down Expand Up @@ -358,7 +379,9 @@ int us_device_grab_buffer(us_device_s *dev, us_hw_buffer_s **hw) {
HW(raw.stride) = _RUN(stride);
HW(raw.online) = true;
memcpy(&HW(buf), &buf, sizeof(struct v4l2_buffer));
HW(raw.grab_ts) = us_get_now_monotonic();
HW(raw.grab_ts)= (long double)((buf.timestamp.tv_sec * (uint64_t)1000) + (buf.timestamp.tv_usec / 1000)) / 1000;
US_LOG_DEBUG("Grabbed new frame: buffer=%u, bytesused=%u, grab_ts=%.3Lf, latency=%.3Lf, skipped=%u",
buf.index, buf.bytesused, HW(raw.grab_ts), us_get_now_monotonic() - HW(raw.grab_ts), skipped);

# undef HW
*hw = &_RUN(hw_bufs[buf.index]);
Expand Down
5 changes: 3 additions & 2 deletions src/ustreamer/stream.c
Original file line number Diff line number Diff line change
Expand Up @@ -112,9 +112,10 @@ void us_stream_loop(us_stream_s *stream) {
if (!ready_wr->job_failed) {
if (ready_wr->job_timely) {
_stream_expose_frame(stream, ready_job->dest, captured_fps);
US_LOG_PERF("##### Encoded frame exposed; worker=%s", ready_wr->name);
US_LOG_PERF("##### Encoded JPEG exposed; worker=%s, latency=%.3Lf",
ready_wr->name, us_get_now_monotonic() - ready_job->dest->grab_ts);
} else {
US_LOG_PERF("----- Encoded frame dropped; worker=%s", ready_wr->name);
US_LOG_PERF("----- Encoded JPEG dropped; worker=%s", ready_wr->name);
}
} else {
break;
Expand Down