Ticket #2174 (closed defect: fixed)
ffplay: eliminate possible resize of the window for first frame
| Reported by: | ami_stuff | Owned by: | cus |
|---|---|---|---|
| Priority: | normal | Component: | FFplay |
| Version: | unspecified | Keywords: | |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
if (is_full_screen && fs_screen_width) {
w = fs_screen_width;
h = fs_screen_height;
fprintf(stderr,"1\n");
} else if vp->width {
calculate_display_rect(&rect, 0, 0, INT_MAX, vp->height, vp);
w = rect.w;
h = rect.h;
fprintf(stderr,"2\n");
} else if (!is_full_screen && screen_width && screen_height) {
w = screen_width;
h = screen_height;
fprintf(stderr,"3\n");
} else {
w = 640;
h = 480;
fprintf(stderr,"4\n");
}
if (screen && is->width == screen->w && screen->w == w
&& is->height== screen->h && screen->h == h && !force_set_video_mode)
return 0;
sometimes when I play a video at the beginning ffplay resizes window from 640x480 to actual
resolution of the video because code enters for first frame to "else" statement
(the rest of the 4 queued frames are displayed with correct size under (vp->width) statement),
so if possible I would like to see this unnecessary resize (flickering) for first frame removed.
this seems to remove (or reduce) the problem, but the first frame is not displayed at all
(so it fails for images)
display:
/* display picture */
- if (!display_disable && is->show_mode == SHOW_MODE_VIDEO)
- video_display(is);
pictq_next_picture(is);
+ if (!display_disable && is->show_mode == SHOW_MODE_VIDEO)
+ video_display(is);
if (is->step && !is->paused)
stream_toggle_pause(is);
No FFplay's output since it happens randomly with various video files
(sometimes easier to reproduce when -lowres option is enabled)
Attachments
Change History
comment:3 follow-up: ↓ 4 Changed 4 months ago by cus
- Owner set to cus
- Status changed from new to open
Does the attached patch help for the original problem?




It also happens with image as an input when you press "f" to enter fullscreen mode and go back again pressing "f" to windowed mode.