On 10/23/2017 01:47 AM, Mark Thompson wrote:
so let's make this work then and fix the SIGSEGV present in master asap (btw
this RFC also seg-fault when the above is applied)
Where does that version segfault? (It doesn't for me.)
the patch will segfault if the changes below are applied to the baseline.
those changes simulate the case where the client doesnt provide the
height/width; when that happens, since ffmpeg registers for the v4l2
kernel event which provides the resolution, ffmpeg will have to dequeue
the old buffers and queue new ones capable of storing the frame to the
driver (in the code that is handled by reinit/full_reinit.
note that full_reinit has not been implemented properly (I had to close
the driver to work around a venus issue ...it is an easy fix once I have
a driver that works)
diff --git a/libavcodec/v4l2_m2m_dec.c b/libavcodec/v4l2_m2m_dec.c
index 831fd81..1dd8cf0 100644
--- a/libavcodec/v4l2_m2m_dec.c
+++ b/libavcodec/v4l2_m2m_dec.c
@@ -176,8 +176,8 @@ static av_cold int v4l2_decode_init(AVCodecContext *avctx)
* by the v4l2 driver; this event will trigger a full pipeline reconfig
and
* the proper values will be retrieved from the kernel driver.
*/
- output->height = capture->height = avctx->coded_height;
- output->width = capture->width = avctx->coded_width;
+ output->height = capture->height = 0; //avctx->coded_height;
+ output->width = capture->width = 0; //avctx->coded_width;
output->av_codec_id = avctx->codec_id;
output->av_pix_fmt = AV_PIX_FMT_NONE;
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel