|
|
|
@ -1755,6 +1755,8 @@ static int video_thread(void *arg) |
|
|
|
|
AVFilterGraph *graph = avfilter_graph_alloc(); |
|
|
|
|
AVFilterContext *filt_out = NULL; |
|
|
|
|
int64_t pos; |
|
|
|
|
int last_w = is->video_st->codec->width; |
|
|
|
|
int last_h = is->video_st->codec->height; |
|
|
|
|
|
|
|
|
|
if ((ret = configure_video_filters(graph, is, vfilters)) < 0) |
|
|
|
|
goto the_end; |
|
|
|
@ -1771,6 +1773,18 @@ static int video_thread(void *arg) |
|
|
|
|
while (is->paused && !is->videoq.abort_request) |
|
|
|
|
SDL_Delay(10); |
|
|
|
|
#if CONFIG_AVFILTER |
|
|
|
|
if ( last_w != is->video_st->codec->width |
|
|
|
|
|| last_h != is->video_st->codec->height) { |
|
|
|
|
av_dlog(NULL, "Changing size %dx%d -> %dx%d\n", last_w, last_h, |
|
|
|
|
is->video_st->codec->width, is->video_st->codec->height); |
|
|
|
|
avfilter_graph_free(&graph); |
|
|
|
|
graph = avfilter_graph_alloc(); |
|
|
|
|
if ((ret = configure_video_filters(graph, is, vfilters)) < 0) |
|
|
|
|
goto the_end; |
|
|
|
|
filt_out = is->out_video_filter; |
|
|
|
|
last_w = is->video_st->codec->width; |
|
|
|
|
last_h = is->video_st->codec->height; |
|
|
|
|
} |
|
|
|
|
ret = get_filtered_video_frame(filt_out, frame, &picref, &tb); |
|
|
|
|
if (picref) { |
|
|
|
|
pts_int = picref->pts; |
|
|
|
|