@@ -575,8 +575,14 @@ void sound_to_frames(VideoState *is, short **b, int s, int c, int format)
575575 for (l = 0 ;l < c ;l ++ ) volume += * ((fb [l ])++ ) * 64000 ;
576576 else
577577 for (l = 0 ;l < c ;l ++ ) volume += * ((fb [0 ])++ ) * 64000 ;
578+ #if LIBAVCODEC_BUILD >= AV_VERSION_INT (59 , 37 , 100 ) && \
579+ LIBAVUTIL_BUILD >= AV_VERSION_INT (57 , 28 , 100 )
580+ * audio_buffer_ptr ++ = volume / is -> audio_st -> codecpar -> ch_layout .nb_channels ;
581+ avg_volume += abs (volume / is -> audio_st -> codecpar -> ch_layout .nb_channels );
582+ #else
578583 * audio_buffer_ptr ++ = volume / is -> audio_st -> codecpar -> channels ;
579584 avg_volume += abs (volume / is -> audio_st -> codecpar -> channels );
585+ #endif
580586 }
581587 }
582588 else
@@ -592,8 +598,14 @@ void sound_to_frames(VideoState *is, short **b, int s, int c, int format)
592598 for (l = 0 ;l < c ;l ++ ) volume += * ((sb [l ])++ );
593599 else
594600 for (l = 0 ;l < c ;l ++ ) volume += * ((sb [0 ])++ );
601+ #if LIBAVCODEC_BUILD >= AV_VERSION_INT (59 , 37 , 100 ) && \
602+ LIBAVUTIL_BUILD >= AV_VERSION_INT (57 , 28 , 100 )
603+ * audio_buffer_ptr ++ = volume / is -> audio_st -> codecpar -> ch_layout .nb_channels ;
604+ avg_volume += abs (volume / is -> audio_st -> codecpar -> ch_layout .nb_channels );
605+ #else
595606 * audio_buffer_ptr ++ = volume / is -> audio_st -> codecpar -> channels ;
596607 avg_volume += abs (volume / is -> audio_st -> codecpar -> channels );
608+ #endif
597609 }
598610 }
599611 }
@@ -769,7 +781,19 @@ void audio_packet_process(VideoState *is, AVPacket *pkt)
769781 }
770782
771783
772-
784+ #if LIBAVCODEC_BUILD >= AV_VERSION_INT (59 , 37 , 100 ) && \
785+ LIBAVUTIL_BUILD >= AV_VERSION_INT (57 , 28 , 100 )
786+ data_size = av_samples_get_buffer_size (NULL , is -> frame -> ch_layout .nb_channels ,
787+ is -> frame -> nb_samples ,
788+ is -> frame -> format , 1 );
789+ if (data_size > 0 )
790+ {
791+ sound_to_frames (is , (short * * )is -> frame -> data , is -> frame -> nb_samples ,is -> frame -> ch_layout .nb_channels , is -> frame -> format );
792+ }
793+ is -> audio_clock += (double )data_size /
794+ (is -> frame -> ch_layout .nb_channels * is -> frame -> sample_rate * av_get_bytes_per_sample (is -> frame -> format ));
795+ av_frame_unref (is -> frame );
796+ #else
773797 data_size = av_samples_get_buffer_size (NULL , is -> frame -> channels ,
774798 is -> frame -> nb_samples ,
775799 is -> frame -> format , 1 );
@@ -780,6 +804,7 @@ void audio_packet_process(VideoState *is, AVPacket *pkt)
780804 is -> audio_clock += (double )data_size /
781805 (is -> frame -> channels * is -> frame -> sample_rate * av_get_bytes_per_sample (is -> frame -> format ));
782806 av_frame_unref (is -> frame );
807+ #endif
783808 }
784809
785810 if (ALIGN_AC3_PACKETS && is -> audio_st -> codecpar -> codec_id == AV_CODEC_ID_AC3 ) {
@@ -1033,6 +1058,10 @@ void DoSeekRequest(VideoState *is)
10331058 if (ret < 0 )
10341059 {
10351060 char * error_text ;
1061+ #if LIBAVCODEC_BUILD >= AV_VERSION_INT (59 , 37 , 100 ) && \
1062+ LIBAVUTIL_BUILD >= AV_VERSION_INT (57 , 28 , 100 )
1063+ error_text = "Generic" ;
1064+ #else
10361065 if (is -> pFormatCtx -> iformat -> read_seek )
10371066 {
10381067 error_text = "Format specific" ;
@@ -1045,6 +1074,7 @@ void DoSeekRequest(VideoState *is)
10451074 {
10461075 error_text = "Generic" ;
10471076 }
1077+ #endif
10481078
10491079 fprintf (stderr , "%s error while seeking. target=%6.3f, \"%s\"\n" , error_text ,is -> seek_pts , is -> pFormatCtx -> url );
10501080
0 commit comments