[FFmpeg-devel] [FFmpeg-cvslog] dnn/queue: add queue and safe_queue support
Guo, Yejun
yejun.guo at intel.com
Wed Dec 30 02:42:20 EET 2020
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> Andreas Rheinhardt
> Sent: 2020年12月30日 7:37
> To: ffmpeg-devel at 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.xie at 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.xie at intel.com>
> >> Signed-off-by: Wu Zhiwen <zhiwen.wu at intel.com>
> >> Signed-off-by: Guo, Yejun <yejun.guo at 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 at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email ffmpeg-devel-request at ffmpeg.org
> with subject "unsubscribe".
More information about the ffmpeg-devel
mailing list