>
> What are the timestamps (and corresponding time bases) of the first
> frame you send on each input?

this frame is sent the first
fs->in[0]
 pts = 0;
 timscale=1/1000 but it doesn't matter as pts is 0

this frame is sent the second
fs->in[1]
 pts =140
 timscale=1/25

When I call av_buffersink_get_frame after sending the frame into fs->in[1]
 i see only the main_frame in overlay_cuda_blend function.
So in my case I send the main frame with pts < pts of the second frame.

> If you are willing to make a quick test, this would be interesting: in
> libavfilter/framesync.c, in the function ff_framesync_init_dualinput,
> replace fs->in[1].before = EXT_NULL; with EXT_INFINITY and see if it
> changes something.
When I change code as proposed I always see a main frame with input_overlay.
I was able to find why it works after the fix checking
framesync_advance function code.


One observation not related to vf_overlay_cude fix if you don't mind:
even with the fix you proposed if I don't send a single frame into
fs->in[1](i.e secondary stream) I cannot get any output.
This is because consume_from_fifos doesn't honor .before ==
EXT_INFINITY and .state == STATE_BOF

and requires at least one frame for each input.
I cannot say is it WAD or not - just my observation.
When I read a description about EXT_INFINITY I guessed this flag
should force processing other inputs ignoring this one. But again if I
am wrong(and most probably I missed something) just ignore this.
_______________________________________________
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".

Reply via email to