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

Reply via email to