@ -399,6 +399,12 @@ int ffmpeg_stream(notcurses* nc, ncvisual* ncv, float timescale,
if(activevopts.n){
ncplane_erase(activevopts.n); // new frame could be partially transparent
}
// decay the blitter explicitly, so that the callback knows the blitter it
// was actually rendered with
auto bset = rgba_blitter(nc, &activevopts);
if(bset){
activevopts.blitter = bset->geom;
if((newn = ncvisual_render(nc, ncv, &activevopts)) == NULL){
if(activevopts.n != vopts->n){
ncplane_destroy(activevopts.n);
@ -191,6 +191,12 @@ auto oiio_stream(notcurses* nc, ncvisual* ncv, float timescale,
memcpy(&activevopts, vopts, sizeof(*vopts));
int ncerr;
do{
@ -66,7 +66,7 @@ auto perframe(struct ncvisual* ncv, struct ncvisual_options* vopts,
if(!marsh->quiet){
stdn->printf(0, NCAlign::Left, "frame %06d\u2026 (%s)", marsh->framecount,
notcurses_str_blitter(marsh->blitter));
notcurses_str_blitter(vopts->blitter));
char* subtitle = ncvisual_subtitle(ncv);
if(subtitle){