[FFmpeg-devel] [PATCH 2/4] avfilter/avfiltergraph: fix has_alpha in pick_format

Michael Niedermayer michael at niedermayer.cc
Fri Apr 20 02:07:00 EEST 2018


On Thu, Apr 19, 2018 at 09:32:19PM +0200, Marton Balint wrote:
> A pixel format which has a palette also has alpha, without this patch the
> format negotiation might have preferred formats without alpha even if the
> source had alpha.
> 
> Signed-off-by: Marton Balint <cus at passwd.hu>
> ---
>  libavfilter/avfiltergraph.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
> index 4cc6892404..e18f733e23 100644
> --- a/libavfilter/avfiltergraph.c
> +++ b/libavfilter/avfiltergraph.c
> @@ -679,7 +679,7 @@ static int pick_format(AVFilterLink *link, AVFilterLink *ref)
>  
>      if (link->type == AVMEDIA_TYPE_VIDEO) {
>          if(ref && ref->type == AVMEDIA_TYPE_VIDEO){
> -            int has_alpha= av_pix_fmt_desc_get(ref->format)->nb_components % 2 == 0;
> +            int has_alpha= av_pix_fmt_desc_get(ref->format)->nb_components % 2 == 0 || (av_pix_fmt_desc_get(ref->format)->flags & AV_PIX_FMT_FLAG_PAL);

This causes various output files to grow in size with a unused alpha plane

a random example: (there are likels better examples)
./ffmpeg -y -i ~/tickets/1116/1023.bmp -vf negate fileX.bmp

Iam not sure unconditionally treating all palettes as if they have
non fully opaque entries is a good idea.

Doesnt this patchset replace a problem by another problem ?
It may be better to not rush this and find a complete solution

a 2nd pixfmt and or scaning the 256 entries for their alpha values
is maybe the direction we could go


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

"I am not trying to be anyone's saviour, I'm trying to think about the
 future and not be sad" - Elon Musk

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20180420/58368d6d/attachment.sig>


More information about the ffmpeg-devel mailing list