summaryrefslogtreecommitdiff
path: root/libavcodec/v4l2_m2m_dec.c
diff options
context:
space:
mode:
authorJorge Ramirez-Ortiz <jramirez@baylibre.com>2018-05-06 19:56:30 +0200
committerAman Gupta <aman@tmm1.net>2019-09-02 15:08:34 -0700
commitda45ad48f9935a3264e9a6d85127dcaf0eee38b3 (patch)
tree6f2bff7d2912054e63043bcaa3cdab9ff4a4e15f /libavcodec/v4l2_m2m_dec.c
parent1d36b7b47ad421a857d22add111fd19d89964ee7 (diff)
downloadffmpeg-da45ad48f9935a3264e9a6d85127dcaf0eee38b3.tar.gz
avcodec/v4l2m2m: fix error handling during buffer init
Signed-off-by: Jorge Ramirez-Ortiz <jramirez@baylibre.com> Signed-off-by: Aman Gupta <aman@tmm1.net>
Diffstat (limited to 'libavcodec/v4l2_m2m_dec.c')
-rw-r--r--libavcodec/v4l2_m2m_dec.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/libavcodec/v4l2_m2m_dec.c b/libavcodec/v4l2_m2m_dec.c
index d0601f0e2f..6f31772f4c 100644
--- a/libavcodec/v4l2_m2m_dec.c
+++ b/libavcodec/v4l2_m2m_dec.c
@@ -86,8 +86,8 @@ static int v4l2_try_start(AVCodecContext *avctx)
if (!capture->buffers) {
ret = ff_v4l2_context_init(capture);
if (ret) {
- av_log(avctx, AV_LOG_DEBUG, "can't request output buffers\n");
- return ret;
+ av_log(avctx, AV_LOG_ERROR, "can't request capture buffers\n");
+ return AVERROR(ENOMEM);
}
}
@@ -151,6 +151,11 @@ static int v4l2_receive_frame(AVCodecContext *avctx, AVFrame *frame)
ret = v4l2_try_start(avctx);
if (ret) {
av_packet_unref(&avpkt);
+
+ /* cant recover */
+ if (ret == AVERROR(ENOMEM))
+ return ret;
+
return 0;
}
}