[FFmpeg-devel] [PATCH] libavfilter/vf_overlay_cuda: Pass the main frame to the output if secondary frame is not available. now filter fails if secondary frame is not available due to e.g secondary source delay.

Alex Pokotilo support at wmspanel.com
Fri Aug 21 13:46:16 EEST 2020


On Fri, Aug 21, 2020 at 7:54 PM Nicolas George <george at nsup.org> wrote:
>
> Alex Pokotilo (12020-08-21):
> > From b3739e33fa04a9292dc6584bd2f31460aa53d478 Mon Sep 17 00:00:00 2001
> > From: Alex Pokotilo <support at wmspanel.com>
> > Date: Fri, 21 Aug 2020 09:14:37 +0000
> > Subject: [PATCH] libavfilter/vf_overlay_cuda: Pass the main frame to the output if secondary frame is not
> >  available. now filter fails if secondary frame is not available due to e.g secondary source delay.
>
> Your Git commit message is badly formatted. The format is:
>
>         context: short summary on one line
>
>         After an empty line, details if necessary, on several lines and
>         wrapped at a reasonable line length.
>

I'm sorry. I'm a newbie. Am I right I just need to commit in following format:

first line: short description......
LF
more details here

Should I send a new patch as a separate email or reply to this one ?
Sorry again.
> The fix may be correct, but your analysis of the problem does not prove
> it. Unless there is a serious bug in framesync, it will not call
> overlay_cuda_blend() without a secondary frame "due to e.g secondary
> source delay.", it will only do so if the stream has not yet begun or
> has ended.
>
> Please give more details on the exact circumstances you observe the
> issue.

I create a filter graph with vf_cuda_overlay in my application. I
start sending frames into a "main" stream link using
av_buffersrc_write_frame.
I start sending frames into a "secondary" stream too almost
immediately. I have one output sink in my filter graph.
After each write I call av_buffersink_get_frame and get AVERROR_BUG
from vf_overlay_cuda for some time initially but after several frames
it starts returning mixed frame.
I've checked vf_blend and other framesync filters. They do the same as
I did in the fix.

Maybe the problem In my application I cannot guarantee that both
streams have the same timeline.
Could you please point me to the place where framesync checks second
stream availability before it calls it's filter(overlay_cuda_blend in
my case).
This topic is very complex to me now so any help from your side can
really help me.


More information about the ffmpeg-devel mailing list