Skip to content

Commit 9465d39

Browse files
committed
samples: video: tcpserversink: N-buffering configuration
Allow to configure the number of allocated capture frames. This allows to make tradeof between framerate versus memory usage. 2 buffers allows to capture while sending data (optimal framerate). 1 buffer allows to reduce memory usage but capture framerate is lower. Signed-off-by: Hugues Fruchet <[email protected]>
1 parent 75284f7 commit 9465d39

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

samples/drivers/video/tcpserversink/Kconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,15 @@ config VIDEO_PIXEL_FORMAT
4848
help
4949
Pixel format of the video frame. If not set, the default pixel format is used.
5050

51+
config VIDEO_NUM_FRAMES
52+
int "Capture N-buffering"
53+
default 0
54+
help
55+
Framerate versus memory usage tradeoff.
56+
"2" allows to capture while sending data (optimal framerate).
57+
"1" allows to reduce memory usage but capture framerate is lower.
58+
If not set defaults to "2".
59+
5160
config VIDEO_CTRL_HFLIP
5261
bool "Mirror the video frame horizontally"
5362
help

samples/drivers/video/tcpserversink/src/main.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,11 @@ int main(void)
135135
{
136136
struct sockaddr_in addr, client_addr;
137137
socklen_t client_addr_len = sizeof(client_addr);
138+
#if CONFIG_VIDEO_NUM_FRAMES
139+
struct video_buffer *buffers[CONFIG_VIDEO_NUM_FRAMES];
140+
#else
138141
struct video_buffer *buffers[2];
142+
#endif
139143
struct video_buffer *vbuf = &(struct video_buffer){};
140144
struct video_buffer *vbuf_out = &(struct video_buffer){};
141145
int ret, sock, client;

0 commit comments

Comments
 (0)