Re: [FFmpeg-devel] [PATCH 2/2] avcodec/videotoolboxenc: fix use after destroy
> On Sep 10, 2020, at 11:13 AM, Zhao Zhili wrote: > > >> 在 2020年9月10日,下午10:21,Richard Kern 写道: >> >> >> On Sep 10, 2020, at 8:57 AM, zhilizhao wrote: >>> >>> >>> > On Aug 28, 2020, at 8:55 AM, Steven Liu wrote: 于2020年8月27日周四 下午5:39写道: > > From: Zhao Zhili > > The lock is used in clear_frame_queue(). > --- > libavcodec/videotoolboxenc.c | 11 +++ > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c > index 988782f10d..758db9641f 100644 > --- a/libavcodec/videotoolboxenc.c > +++ b/libavcodec/videotoolboxenc.c > @@ -2496,14 +2496,17 @@ static av_cold int vtenc_close(AVCodecContext > *avctx) > { > VTEncContext *vtctx = avctx->priv_data; > > -pthread_cond_destroy(&vtctx->cv_sample_sent); > -pthread_mutex_destroy(&vtctx->lock); > - > -if(!vtctx->session) return 0; > +if(!vtctx->session) { > +pthread_cond_destroy(&vtctx->cv_sample_sent); > +pthread_mutex_destroy(&vtctx->lock); > +return 0; > +} > > VTCompressionSessionCompleteFrames(vtctx->session, > kCMTimeIndefinite); > clear_frame_queue(vtctx); > +pthread_cond_destroy(&vtctx->cv_sample_sent); > +pthread_mutex_destroy(&vtctx->lock); > CFRelease(vtctx->session); > vtctx->session = NULL; > > -- > 2.28.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". This patch look better than https://patchwork.ffmpeg.org/project/ffmpeg/patch/20200827025327.28334-1...@chinaffmpeg.org/ >>> >>> Ping for the patch set. >> Can you provide steps to reproduce the deadlock issue? I can get it pushed >> this weekend if so. > > I only try to fix a use after destroy issue as the commit message says. > It may solved another issue unintentional. Liu, could you help by giving > more information about the deadlock issue, please. I’ll figure out a way to reproduce this in the next few days and get these patches pushed. > >>> Thanks Steven ___ 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". >> ___ >> 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". ___ 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".
Re: [FFmpeg-devel] [PATCH 2/2] avcodec/videotoolboxenc: fix use after destroy
> 在 2020年9月10日,下午10:21,Richard Kern 写道: > > > >> On Sep 10, 2020, at 8:57 AM, zhilizhao wrote: >> >> >> On Aug 28, 2020, at 8:55 AM, Steven Liu wrote: >>> >>> 于2020年8月27日周四 下午5:39写道: From: Zhao Zhili The lock is used in clear_frame_queue(). --- libavcodec/videotoolboxenc.c | 11 +++ 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c index 988782f10d..758db9641f 100644 --- a/libavcodec/videotoolboxenc.c +++ b/libavcodec/videotoolboxenc.c @@ -2496,14 +2496,17 @@ static av_cold int vtenc_close(AVCodecContext *avctx) { VTEncContext *vtctx = avctx->priv_data; -pthread_cond_destroy(&vtctx->cv_sample_sent); -pthread_mutex_destroy(&vtctx->lock); - -if(!vtctx->session) return 0; +if(!vtctx->session) { +pthread_cond_destroy(&vtctx->cv_sample_sent); +pthread_mutex_destroy(&vtctx->lock); +return 0; +} VTCompressionSessionCompleteFrames(vtctx->session, kCMTimeIndefinite); clear_frame_queue(vtctx); +pthread_cond_destroy(&vtctx->cv_sample_sent); +pthread_mutex_destroy(&vtctx->lock); CFRelease(vtctx->session); vtctx->session = NULL; -- 2.28.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". >>> >>> >>> This patch look better than >>> https://patchwork.ffmpeg.org/project/ffmpeg/patch/20200827025327.28334-1...@chinaffmpeg.org/ >>> >> >> Ping for the patch set. > Can you provide steps to reproduce the deadlock issue? I can get it pushed > this weekend if so. I only try to fix a use after destroy issue as the commit message says. It may solved another issue unintentional. Liu, could you help by giving more information about the deadlock issue, please. >> >>> >>> Thanks >>> Steven >>> ___ >>> 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". > ___ > 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".
Re: [FFmpeg-devel] [PATCH 2/2] avcodec/videotoolboxenc: fix use after destroy
> On Sep 10, 2020, at 8:57 AM, zhilizhao wrote: > > > >> On Aug 28, 2020, at 8:55 AM, Steven Liu wrote: >> >> 于2020年8月27日周四 下午5:39写道: >>> >>> From: Zhao Zhili >>> >>> The lock is used in clear_frame_queue(). >>> --- >>> libavcodec/videotoolboxenc.c | 11 +++ >>> 1 file changed, 7 insertions(+), 4 deletions(-) >>> >>> diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c >>> index 988782f10d..758db9641f 100644 >>> --- a/libavcodec/videotoolboxenc.c >>> +++ b/libavcodec/videotoolboxenc.c >>> @@ -2496,14 +2496,17 @@ static av_cold int vtenc_close(AVCodecContext >>> *avctx) >>> { >>>VTEncContext *vtctx = avctx->priv_data; >>> >>> -pthread_cond_destroy(&vtctx->cv_sample_sent); >>> -pthread_mutex_destroy(&vtctx->lock); >>> - >>> -if(!vtctx->session) return 0; >>> +if(!vtctx->session) { >>> +pthread_cond_destroy(&vtctx->cv_sample_sent); >>> +pthread_mutex_destroy(&vtctx->lock); >>> +return 0; >>> +} >>> >>>VTCompressionSessionCompleteFrames(vtctx->session, >>> kCMTimeIndefinite); >>>clear_frame_queue(vtctx); >>> +pthread_cond_destroy(&vtctx->cv_sample_sent); >>> +pthread_mutex_destroy(&vtctx->lock); >>>CFRelease(vtctx->session); >>>vtctx->session = NULL; >>> >>> -- >>> 2.28.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". >> >> >> This patch look better than >> https://patchwork.ffmpeg.org/project/ffmpeg/patch/20200827025327.28334-1...@chinaffmpeg.org/ >> > > Ping for the patch set. Can you provide steps to reproduce the deadlock issue? I can get it pushed this weekend if so. > >> >> Thanks >> Steven >> ___ >> 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". ___ 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".
Re: [FFmpeg-devel] [PATCH 2/2] avcodec/videotoolboxenc: fix use after destroy
> On Aug 28, 2020, at 8:55 AM, Steven Liu wrote: > > 于2020年8月27日周四 下午5:39写道: >> >> From: Zhao Zhili >> >> The lock is used in clear_frame_queue(). >> --- >> libavcodec/videotoolboxenc.c | 11 +++ >> 1 file changed, 7 insertions(+), 4 deletions(-) >> >> diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c >> index 988782f10d..758db9641f 100644 >> --- a/libavcodec/videotoolboxenc.c >> +++ b/libavcodec/videotoolboxenc.c >> @@ -2496,14 +2496,17 @@ static av_cold int vtenc_close(AVCodecContext *avctx) >> { >> VTEncContext *vtctx = avctx->priv_data; >> >> -pthread_cond_destroy(&vtctx->cv_sample_sent); >> -pthread_mutex_destroy(&vtctx->lock); >> - >> -if(!vtctx->session) return 0; >> +if(!vtctx->session) { >> +pthread_cond_destroy(&vtctx->cv_sample_sent); >> +pthread_mutex_destroy(&vtctx->lock); >> +return 0; >> +} >> >> VTCompressionSessionCompleteFrames(vtctx->session, >>kCMTimeIndefinite); >> clear_frame_queue(vtctx); >> +pthread_cond_destroy(&vtctx->cv_sample_sent); >> +pthread_mutex_destroy(&vtctx->lock); >> CFRelease(vtctx->session); >> vtctx->session = NULL; >> >> -- >> 2.28.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". > > > This patch look better than > https://patchwork.ffmpeg.org/project/ffmpeg/patch/20200827025327.28334-1...@chinaffmpeg.org/ > Ping for the patch set. > > Thanks > Steven > ___ > 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".
Re: [FFmpeg-devel] [PATCH 2/2] avcodec/videotoolboxenc: fix use after destroy
于2020年8月27日周四 下午5:39写道: > > From: Zhao Zhili > > The lock is used in clear_frame_queue(). > --- > libavcodec/videotoolboxenc.c | 11 +++ > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c > index 988782f10d..758db9641f 100644 > --- a/libavcodec/videotoolboxenc.c > +++ b/libavcodec/videotoolboxenc.c > @@ -2496,14 +2496,17 @@ static av_cold int vtenc_close(AVCodecContext *avctx) > { > VTEncContext *vtctx = avctx->priv_data; > > -pthread_cond_destroy(&vtctx->cv_sample_sent); > -pthread_mutex_destroy(&vtctx->lock); > - > -if(!vtctx->session) return 0; > +if(!vtctx->session) { > +pthread_cond_destroy(&vtctx->cv_sample_sent); > +pthread_mutex_destroy(&vtctx->lock); > +return 0; > +} > > VTCompressionSessionCompleteFrames(vtctx->session, > kCMTimeIndefinite); > clear_frame_queue(vtctx); > +pthread_cond_destroy(&vtctx->cv_sample_sent); > +pthread_mutex_destroy(&vtctx->lock); > CFRelease(vtctx->session); > vtctx->session = NULL; > > -- > 2.28.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". This patch look better than https://patchwork.ffmpeg.org/project/ffmpeg/patch/20200827025327.28334-1...@chinaffmpeg.org/ Thanks Steven ___ 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] [PATCH 2/2] avcodec/videotoolboxenc: fix use after destroy
From: Zhao Zhili The lock is used in clear_frame_queue(). --- libavcodec/videotoolboxenc.c | 11 +++ 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c index 988782f10d..758db9641f 100644 --- a/libavcodec/videotoolboxenc.c +++ b/libavcodec/videotoolboxenc.c @@ -2496,14 +2496,17 @@ static av_cold int vtenc_close(AVCodecContext *avctx) { VTEncContext *vtctx = avctx->priv_data; -pthread_cond_destroy(&vtctx->cv_sample_sent); -pthread_mutex_destroy(&vtctx->lock); - -if(!vtctx->session) return 0; +if(!vtctx->session) { +pthread_cond_destroy(&vtctx->cv_sample_sent); +pthread_mutex_destroy(&vtctx->lock); +return 0; +} VTCompressionSessionCompleteFrames(vtctx->session, kCMTimeIndefinite); clear_frame_queue(vtctx); +pthread_cond_destroy(&vtctx->cv_sample_sent); +pthread_mutex_destroy(&vtctx->lock); CFRelease(vtctx->session); vtctx->session = NULL; -- 2.28.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".