fftools/ffmpeg_filter: Avoid DynBuf API to improve error checks
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>
Wed, 1 Dec 2021 16:13:32 +0000 (17:13 +0100)
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>
Fri, 3 Dec 2021 15:12:52 +0000 (16:12 +0100)
commitefc323062c20aaead8fb5805b7f69b4f071cb319
treecc84ce399a22cae3b16a891de854dcef839222db
parentcf8925a0965a75f22cddb1cc42e11871ccf84c15
fftools/ffmpeg_filter: Avoid DynBuf API to improve error checks

choose_pix_fmts() used the dynamic buffer API to write strings;
as is common among uses of this API, only opening the dynamic buffer
was checked, but not the end result, leading to crashes in case
of allocation failure.
Furthermore, some static strings were duplicated; the allocations
performed here were not properly checked: Allocation failure would
be treated as "could not determine pixel format".
The first issue is fixed by switching to the AVBPrint API which allows
to easily perform checks at the end. Furthermore, the internal buffer
avoids almost all allocations in case the AVBPrint is used.
The AVBPrint also allows to solve the second issue in an elegant way,
because it allows to return the static strings directly.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
fftools/ffmpeg_filter.c