[FFmpeg-trac] #2174(undetermined:new): ffplay: eliminate possible resize of the window for first frame

FFmpeg trac at avcodec.org
Wed Jan 23 06:06:24 CET 2013


#2174: ffplay: eliminate possible resize of the window for first frame
-------------------------------------+-------------------------------------
               Reporter:  ami_stuff  |                  Owner:
                   Type:  defect     |                 Status:  new
               Priority:  normal     |              Component:
                Version:             |  undetermined
  unspecified                        |               Keywords:
             Blocked By:             |               Blocking:
Reproduced by developer:  0          |  Analyzed by developer:  0
-------------------------------------+-------------------------------------
 {{{
     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)

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2174>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list