v4l2r icon indicating copy to clipboard operation
v4l2r copied to clipboard

EPIPE (Broken pipe) when using stateful decoder and format changes

Open FallingSnow opened this issue 2 years ago • 2 comments

I have a video stream that changes from 800x600 to 640x480. I'm using the stateful decoder and I expect the set_capture_format_cb function to be called when this happens but instead I get a bunch of broken pipe errors and CPU usage goes to 100%. I'm using the raspberry pi's v4l2mem2mem hardware decoder.

This is an strace of the process when this happens.

...
ioctl(14, VIDIOC_DQBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) = -1 EPIPE (Broken pipe)
epoll_pwait(16, [{EPOLLIN, {u32=0, u64=4294967296}}], 4, -1, NULL, 8) = 1
ioctl(14, VIDIOC_DQBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) = -1 EPIPE (Broken pipe)
epoll_pwait(16, [{EPOLLIN, {u32=0, u64=4294967296}}], 4, -1, NULL, 8) = 1
ioctl(14, VIDIOC_DQBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) = -1 EPIPE (Broken pipe)
epoll_pwait(16, [{EPOLLIN, {u32=0, u64=4294967296}}], 4, -1, NULL, 8) = 1
ioctl(14, VIDIOC_DQBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) = -1 EPIPE (Broken pipe)
epoll_pwait(16, [{EPOLLIN, {u32=0, u64=4294967296}}], 4, -1, NULL, 8) = 1
ioctl(14, VIDIOC_DQBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) = -1 EPIPE (Broken pipe)
epoll_pwait(16, [{EPOLLIN, {u32=0, u64=4294967296}}], 4, -1, NULL, 8) = 1
ioctl(14, VIDIOC_DQBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) = -1 EPIPE (Broken pipe)
epoll_pwait(16, [{EPOLLIN, {u32=0, u64=4294967296}}], 4, -1, NULL, 8) = 1
ioctl(14, VIDIOC_DQBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) = -1 EPIPE (Broken pipe)
epoll_pwait(16, [{EPOLLIN, {u32=0, u64=4294967296}}], 4, -1, NULL, 8) = 1
ioctl(14, VIDIOC_DQBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) = -1 EPIPE (Broken pipe)
epoll_pwait(16, [{EPOLLIN, {u32=0, u64=4294967296}}], 4, -1, NULL, 8) = 1
ioctl(14, VIDIOC_DQBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) = -1 EPIPE (Broken pipe)
epoll_pwait(16, [{EPOLLIN, {u32=0, u64=4294967296}}], 4, -1, NULL, 8) = 1
ioctl(14, VIDIOC_DQBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) = -1 EPIPE (Broken pipe)
epoll_pwait(16, [{EPOLLIN, {u32=0, u64=4294967296}}], 4, -1, NULL, 8) = 1
ioctl(14, VIDIOC_DQBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) = -1 EPIPE (Broken pipe)
epoll_pwait(16, [{EPOLLIN, {u32=0, u64=4294967296}}], 4, -1, NULL, 8) = 1
ioctl(14, VIDIOC_DQBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) = -1 EPIPE (Broken pipe)
epoll_pwait(16, [{EPOLLIN, {u32=0, u64=4294967296}}], 4, -1, NULL, 8) = 1
ioctl(14, VIDIOC_DQBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) = -1 EPIPE (Broken pipe)
^Cstrace: Process 11318 detached

FallingSnow avatar Sep 01 '22 03:09 FallingSnow