@@ -901,6 +901,15 @@ static void video_image_display2(FFPlayer *ffp)
901901 }
902902 }
903903 }
904+ if (ffp -> render_wait_start && !ffp -> start_on_prepared && is -> pause_req ) {
905+ if (!ffp -> first_video_frame_rendered ) {
906+ ffp -> first_video_frame_rendered = 1 ;
907+ ffp_notify_msg1 (ffp , FFP_MSG_VIDEO_RENDERING_START );
908+ }
909+ while (is -> pause_req && !is -> abort_request ) {
910+ SDL_Delay (20 );
911+ }
912+ }
904913 SDL_VoutDisplayYUVOverlay (ffp -> vout , vp -> bmp );
905914 ffp -> stat .vfps = SDL_SpeedSamplerAdd (& ffp -> vfps_sampler , FFP_SHOW_VFPS_FFPLAY , "vfps[ffplay]" );
906915 if (!ffp -> first_video_frame_rendered ) {
@@ -2604,6 +2613,12 @@ static int audio_decode_frame(FFPlayer *ffp)
26042613 ffp -> first_audio_frame_rendered = 1 ;
26052614 ffp_notify_msg1 (ffp , FFP_MSG_AUDIO_RENDERING_START );
26062615 }
2616+
2617+ if (ffp -> render_wait_start && !ffp -> start_on_prepared && is -> pause_req ) {
2618+ while (is -> pause_req && !is -> abort_request ) {
2619+ SDL_Delay (20 );
2620+ }
2621+ }
26072622 return resampled_data_size ;
26082623}
26092624
@@ -3099,7 +3114,7 @@ static int read_thread(void *arg)
30993114 ic -> flags |= AVFMT_FLAG_GENPTS ;
31003115
31013116 av_format_inject_global_side_data (ic );
3102- //
3117+ //
31033118 //AVDictionary **opts;
31043119 //int orig_nb_streams;
31053120 //opts = setup_find_stream_info_opts(ic, ffp->codec_opts);
@@ -3276,7 +3291,7 @@ static int read_thread(void *arg)
32763291 if (ffp -> infinite_buffer < 0 && is -> realtime )
32773292 ffp -> infinite_buffer = 1 ;
32783293
3279- if (!ffp -> start_on_prepared )
3294+ if (!ffp -> render_wait_start && ! ffp -> start_on_prepared )
32803295 toggle_pause (ffp , 1 );
32813296 if (is -> video_st && is -> video_st -> codecpar ) {
32823297 AVCodecParameters * codecpar = is -> video_st -> codecpar ;
@@ -3285,7 +3300,7 @@ static int read_thread(void *arg)
32853300 }
32863301 ffp -> prepared = true;
32873302 ffp_notify_msg1 (ffp , FFP_MSG_PREPARED );
3288- if (!ffp -> start_on_prepared ) {
3303+ if (!ffp -> render_wait_start && ! ffp -> start_on_prepared ) {
32893304 while (is -> pause_req && !is -> abort_request ) {
32903305 SDL_Delay (20 );
32913306 }
0 commit comments