> On Aug 27, 2020, at 10:53 AM, Steven Liu <l...@chinaffmpeg.org> wrote: > > From: Tian Qi <tia...@kuaishou.com> > > because there is run in thread mode, few times will block > the workflow at the wait, so check the status is flushing data, > don't wait when flushing data. > > Signed-off-by: Tian Qi <tia...@kuaishou.com> > Signed-off-by: Steven Liu <l...@chinaffmpeg.org> > --- > libavcodec/videotoolboxenc.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c > index e89cfaeed8..f9626be18f 100644 > --- a/libavcodec/videotoolboxenc.c > +++ b/libavcodec/videotoolboxenc.c > @@ -292,7 +292,7 @@ static int vtenc_q_pop(VTEncContext *vtctx, bool wait, > CMSampleBufferRef *buf, E > return 0; > } > > - while (!vtctx->q_head && !vtctx->async_error && wait) { > + while (!vtctx->q_head && !vtctx->async_error && wait && > !vtctx->flushing) { > pthread_cond_wait(&vtctx->cv_sample_sent, &vtctx->lock); > }
I’m not familar with the code. I have some questions: 1. The commit message doesn’t give a detailed description of the real issue. 2. vtctx->flushing is modified without holding the lock, which is questionable. And there is no cond_signal, how does it work? > > @@ -308,6 +308,7 @@ static int vtenc_q_pop(VTEncContext *vtctx, bool wait, > CMSampleBufferRef *buf, E > vtctx->q_tail = NULL; > } > > + vtctx->frame_ct_out++; Looks like this modification doesn’t belong to the patch. > pthread_mutex_unlock(&vtctx->lock); > > *buf = info->cm_buffer; > @@ -319,7 +320,6 @@ static int vtenc_q_pop(VTEncContext *vtctx, bool wait, > CMSampleBufferRef *buf, E > } > av_free(info); > > - vtctx->frame_ct_out++; > > return 0; > } > -- > 2.25.0 > > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".