@@ -1219,6 +1219,7 @@ static void check_external_clock_speed(VideoState *is, FFPlayer *ffp) {
12191219 }
12201220#endif
12211221
1222+ #if 0
12221223 static int temp_packet_num = 0 ;
12231224 if ((temp_packet_num > 0 ) || (ffp -> packet_max_num > 0 )) {
12241225 temp_packet_num = ffp -> packet_max_num ;
@@ -1252,7 +1253,50 @@ static void check_external_clock_speed(VideoState *is, FFPlayer *ffp) {
12521253 set_clock_speed (& is -> extclk , 1 );
12531254 }
12541255 }
1255- //#endif
1256+ #endif
1257+ if (is -> video_stream > 0 ) {
1258+ if (is -> videoq .nb_packets > EXTERNAL_CLOCK_MAX_FRAMES ) { //if (is->videoq.nb_packets > temp_packet_num) {
1259+
1260+ int synctype = get_master_sync_type (is );
1261+ if (synctype == AV_SYNC_AUDIO_MASTER ) {
1262+ // printf("speeddddddd===audio===packets===>%d\n",is->videoq.nb_packets);
1263+ if (ffp -> audio_speed > 1 ) {
1264+ ffp_set_playback_rate (ffp , ffp -> audio_speed );
1265+ }else {
1266+ ffp_set_playback_rate (ffp , EXTERNAL_CLOCK_SPEED_MAX );
1267+ }
1268+ }else {
1269+ // printf("speeddddddd===exter===packets===>%d\n",is->videoq.nb_packets);
1270+ set_clock_speed (& is -> extclk , EXTERNAL_CLOCK_SPEED_MAX );
1271+ }
1272+
1273+ }else if (is -> videoq .nb_packets < EXTERNAL_CLOCK_MIN_FRAMES ) {
1274+
1275+ ffp_set_playback_rate (ffp , 1 );
1276+ double speed = is -> extclk .speed ;
1277+ if (speed != 1.0 ) {
1278+ set_clock_speed (& is -> extclk , 1 );
1279+ }
1280+ }
1281+ }
1282+ else {
1283+ //only audio stream
1284+ if (is -> audio_stream >= 0 ) {
1285+ if (is -> audioq .nb_packets > EXTERNAL_CLOCK_MAX_FRAMES ) {
1286+ if (ffp -> audio_speed > 1 ) {
1287+ ffp_set_playback_rate (ffp , ffp -> audio_speed );
1288+ }else {
1289+ ffp_set_playback_rate (ffp , EXTERNAL_CLOCK_SPEED_MAX );
1290+ }
1291+ }else if (is -> audioq .nb_packets < EXTERNAL_CLOCK_MIN_FRAMES ){
1292+ ffp_set_playback_rate (ffp , 1 );
1293+ double speed = is -> extclk .speed ;
1294+ if (speed != 1.0 ) {
1295+ set_clock_speed (& is -> extclk , 1 );
1296+ }
1297+ }
1298+ }
1299+ }
12561300}
12571301
12581302/* seek in the stream */
0 commit comments