|
|
|
@ -132,6 +132,7 @@ static int v4l2_configure_contexts(V4L2m2mContext* s) |
|
|
|
|
{ |
|
|
|
|
void *log_ctx = s->avctx; |
|
|
|
|
int ret; |
|
|
|
|
struct v4l2_format ofmt, cfmt; |
|
|
|
|
|
|
|
|
|
s->fd = open(s->devname, O_RDWR | O_NONBLOCK, 0); |
|
|
|
|
if (s->fd < 0) |
|
|
|
@ -141,6 +142,16 @@ static int v4l2_configure_contexts(V4L2m2mContext* s) |
|
|
|
|
if (ret < 0) |
|
|
|
|
goto error; |
|
|
|
|
|
|
|
|
|
ofmt = s->output.format; |
|
|
|
|
cfmt = s->capture.format; |
|
|
|
|
av_log(log_ctx, AV_LOG_INFO, "requesting formats: output=%s capture=%s\n", |
|
|
|
|
av_fourcc2str(V4L2_TYPE_IS_MULTIPLANAR(ofmt.type) ? |
|
|
|
|
ofmt.fmt.pix_mp.pixelformat : |
|
|
|
|
ofmt.fmt.pix.pixelformat), |
|
|
|
|
av_fourcc2str(V4L2_TYPE_IS_MULTIPLANAR(cfmt.type) ? |
|
|
|
|
cfmt.fmt.pix_mp.pixelformat : |
|
|
|
|
cfmt.fmt.pix.pixelformat)); |
|
|
|
|
|
|
|
|
|
ret = ff_v4l2_context_set_format(&s->output); |
|
|
|
|
if (ret) { |
|
|
|
|
av_log(log_ctx, AV_LOG_ERROR, "can't set v4l2 output format\n"); |
|
|
|
|