X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavdevice%2Fv4l2.c;h=a5226d5e6fd9c952de87f97193542eed895c9f68;hb=a247ac640df3da573cd661065bf53f37863e2b46;hp=1b9c6e760b419247ba95df33828012f45164acef;hpb=fbd607dd560afe44c3b90de1e6cbe5265cac8f1e;p=ffmpeg diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c index 1b9c6e760b4..a5226d5e6fd 100644 --- a/libavdevice/v4l2.c +++ b/libavdevice/v4l2.c @@ -538,11 +538,10 @@ static int mmap_read_frame(AVFormatContext *ctx, AVPacket *pkt) s->frame_size = buf.bytesused; if (s->frame_size > 0 && buf.bytesused != s->frame_size) { - av_log(ctx, AV_LOG_ERROR, + av_log(ctx, AV_LOG_WARNING, "Dequeued v4l2 buffer contains %d bytes, but %d were expected. Flags: 0x%08X.\n", buf.bytesused, s->frame_size, buf.flags); - enqueue_buffer(s, &buf); - return AVERROR_INVALIDDATA; + buf.bytesused = 0; } } @@ -812,11 +811,12 @@ static int device_try_init(AVFormatContext *ctx, } *codec_id = ff_fmt_v4l2codec(*desired_format); - av_assert0(*codec_id != AV_CODEC_ID_NONE); + if (*codec_id == AV_CODEC_ID_NONE) + av_assert0(ret == AVERROR(EINVAL)); return ret; } -static int v4l2_read_probe(AVProbeData *p) +static int v4l2_read_probe(const AVProbeData *p) { if (av_strstart(p->filename, "/dev/video", NULL)) return AVPROBE_SCORE_MAX - 1; @@ -981,27 +981,12 @@ fail: static int v4l2_read_packet(AVFormatContext *ctx, AVPacket *pkt) { -#if FF_API_CODED_FRAME && FF_API_LAVF_AVCTX -FF_DISABLE_DEPRECATION_WARNINGS - struct video_data *s = ctx->priv_data; - AVFrame *frame = ctx->streams[0]->codec->coded_frame; -FF_ENABLE_DEPRECATION_WARNINGS -#endif int res; if ((res = mmap_read_frame(ctx, pkt)) < 0) { return res; } -#if FF_API_CODED_FRAME && FF_API_LAVF_AVCTX -FF_DISABLE_DEPRECATION_WARNINGS - if (frame && s->interlaced) { - frame->interlaced_frame = 1; - frame->top_field_first = s->top_field_first; - } -FF_ENABLE_DEPRECATION_WARNINGS -#endif - return pkt->size; }