|
|
|
@ -201,13 +201,14 @@ int avfilter_poll_frame(AVFilterLink *link) |
|
|
|
|
void avfilter_start_frame(AVFilterLink *link, AVFilterPicRef *picref) |
|
|
|
|
{ |
|
|
|
|
void (*start_frame)(AVFilterLink *, AVFilterPicRef *); |
|
|
|
|
AVFilterPad *dst = &link_dpad(link); |
|
|
|
|
|
|
|
|
|
if(!(start_frame = link_dpad(link).start_frame)) |
|
|
|
|
if(!(start_frame = dst->start_frame)) |
|
|
|
|
start_frame = avfilter_default_start_frame; |
|
|
|
|
|
|
|
|
|
/* prepare to copy the picture if it has insufficient permissions */ |
|
|
|
|
if((link_dpad(link).min_perms & picref->perms) != link_dpad(link).min_perms || |
|
|
|
|
link_dpad(link).rej_perms & picref->perms) { |
|
|
|
|
if((dst->min_perms & picref->perms) != dst->min_perms || |
|
|
|
|
dst->rej_perms & picref->perms) { |
|
|
|
|
/*
|
|
|
|
|
av_log(link->dst, AV_LOG_INFO, |
|
|
|
|
"frame copy needed (have perms %x, need %x, reject %x)\n", |
|
|
|
@ -215,7 +216,7 @@ void avfilter_start_frame(AVFilterLink *link, AVFilterPicRef *picref) |
|
|
|
|
link_dpad(link).min_perms, link_dpad(link).rej_perms); |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
link->cur_pic = avfilter_default_get_video_buffer(link, link_dpad(link).min_perms); |
|
|
|
|
link->cur_pic = avfilter_default_get_video_buffer(link, dst->min_perms); |
|
|
|
|
link->srcpic = picref; |
|
|
|
|
link->cur_pic->pts = link->srcpic->pts; |
|
|
|
|
} |
|
|
|
|