> -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-boun...@ffmpeg.org> On Behalf Of > Andreas Rheinhardt > Sent: 2020年12月30日 7:37 > To: ffmpeg-devel@ffmpeg.org > Subject: Re: [FFmpeg-devel] [FFmpeg-cvslog] dnn/queue: add queue and > safe_queue support > > Michael Niedermayer: > > On Tue, Dec 29, 2020 at 05:42:46AM +0000, Xie, Lin wrote: > >> ffmpeg | branch: master | Xie, Lin <lin....@intel.com> | Mon Nov 9 > >> 14:09:13 2020 +0800| [6506ab8b03dd6747f6ad6b836a347a6fc346708b] > | > >> committer: Guo, Yejun > >> > >> dnn/queue: add queue and safe_queue support > >> > >> Signed-off-by: Xie, Lin <lin....@intel.com> > >> Signed-off-by: Wu Zhiwen <zhiwen...@intel.com> > >> Signed-off-by: Guo, Yejun <yejun....@intel.com> > >> > >>> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6506ab8b03 > >>> dd6747f6ad6b836a347a6fc346708b > >> --- > >> > >> libavfilter/dnn/Makefile | 2 + > >> libavfilter/dnn/queue.c | 176 > +++++++++++++++++++++++++++++++++++++++++++ > >> libavfilter/dnn/queue.h | 41 ++++++++++ > >> libavfilter/dnn/safe_queue.c | 92 ++++++++++++++++++++++ > >> libavfilter/dnn/safe_queue.h | 36 +++++++++ > >> 5 files changed, 347 insertions(+) > > > > breaks build with --disable-pthreads > > > > src/libavfilter/dnn/safe_queue.c: In function ‘safe_queue_create’: > > src/libavfilter/dnn/safe_queue.c:44:5: error: implicit declaration of > > function > ‘pthread_mutex_init’; did you mean ‘ff_mutex_init’? > [-Werror=implicit-function-declaration] > > pthread_mutex_init(&sq->mutex, NULL); > > ^~~~~~~~~~~~~~~~~~ > > ff_mutex_init > > src/libavfilter/dnn/safe_queue.c:45:5: error: implicit declaration of > > function > ‘pthread_cond_init’ [-Werror=implicit-function-declaration] > > pthread_cond_init(&sq->cond, NULL); > > ^~~~~~~~~~~~~~~~~ > > src/libavfilter/dnn/safe_queue.c: In function ‘safe_queue_destroy’: > > src/libavfilter/dnn/safe_queue.c:55:5: error: implicit declaration of > > function > ‘pthread_mutex_destroy’; did you mean ‘ff_mutex_destroy’? > [-Werror=implicit-function-declaration] > > pthread_mutex_destroy(&sq->mutex); > > ^~~~~~~~~~~~~~~~~~~~~ > > ff_mutex_destroy > > src/libavfilter/dnn/safe_queue.c:56:5: error: implicit declaration of > > function > ‘pthread_cond_destroy’; did you mean ‘__NR_io_destroy’? > [-Werror=implicit-function-declaration] > > pthread_cond_destroy(&sq->cond); > > ^~~~~~~~~~~~~~~~~~~~ > > __NR_io_destroy > > src/libavfilter/dnn/safe_queue.c: In function ‘safe_queue_push_front’: > > src/libavfilter/dnn/safe_queue.c:67:5: error: implicit declaration of > > function > ‘pthread_mutex_lock’; did you mean ‘ff_mutex_lock’? > [-Werror=implicit-function-declaration] > > pthread_mutex_lock(&sq->mutex); > > ^~~~~~~~~~~~~~~~~~ > > ff_mutex_lock > > src/libavfilter/dnn/safe_queue.c:69:5: error: implicit declaration of > > function > ‘pthread_cond_signal’ [-Werror=implicit-function-declaration] > > pthread_cond_signal(&sq->cond); > > ^~~~~~~~~~~~~~~~~~~ > > src/libavfilter/dnn/safe_queue.c:70:5: error: implicit declaration of > > function > ‘pthread_mutex_unlock’; did you mean ‘ff_mutex_unlock’? > [-Werror=implicit-function-declaration] > > pthread_mutex_unlock(&sq->mutex); > > ^~~~~~~~~~~~~~~~~~~~ > > ff_mutex_unlock > > src/libavfilter/dnn/safe_queue.c: In function ‘safe_queue_pop_front’: > > src/libavfilter/dnn/safe_queue.c:86:9: error: implicit declaration of > > function > ‘pthread_cond_wait’; did you mean ‘__pread_chk_warn’? > [-Werror=implicit-function-declaration] > > pthread_cond_wait(&sq->cond, &sq->mutex); > > ^~~~~~~~~~~~~~~~~ > > __pread_chk_warn > > cc1: some warnings being treated as errors > > src/ffbuild/common.mak:67: recipe for target > > 'libavfilter/dnn/safe_queue.o' failed > > make: *** [libavfilter/dnn/safe_queue.o] Error 1 > > > > > It also breaks building with compilers that don't support C11 (redefining > typedefs is a C11 feature, before that the one definition rule applied: > http://fate.ffmpeg.org/log.cgi?slot=x86_32-debian-kfreebsd-gcc-4.4&log=com > pile&time=20201227203843) > and it also does not abide by the our naming conventions: No ff prefix, no > CamelCase for types. And worst of it all, there is no error checking and no > cleanup at all. create_entry in queue.c even asserts that an allocation > succeeds. > And the whole API is wrong as it is built on the assumption that allocations > succeed (in reality queue_push_back/front can fail). > > This needs to be fixed or reverted (some commits already depend on it).
thanks, will fix ASAP. > > - Andreas > _______________________________________________ > 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".