@@ -90,7 +90,7 @@ static int make_gap_list(lwlibav_audio_handler_t* hp, VSMap* out, const VSAPI* v
9090 return 0 ;
9191 const audio_frame_info_t * info = adhp -> frame_list ;
9292 int gap_count = 0 ;
93- for (uint32_t i = 1 ; i < adhp -> frame_count ; i ++ ) {
93+ for (uint32_t i = 1 ; i <= adhp -> frame_count ; i ++ ) {
9494 if (info [i ].file_offset == -1 )
9595 gap_count ++ ;
9696 }
@@ -106,7 +106,7 @@ static int make_gap_list(lwlibav_audio_handler_t* hp, VSMap* out, const VSAPI* v
106106 uint64_t sequence_sample_count = 0 ;
107107 uint64_t prior_sequence_sample_count = 0 ;
108108 int gap_index = 0 ;
109- for (uint32_t i = 1 ; i < adhp -> frame_count ; i ++ ) {
109+ for (uint32_t i = 1 ; i <= adhp -> frame_count ; i ++ ) {
110110 if ((current_sample_rate != info [i ].sample_rate && info [i ].sample_rate > 0 ) || current_frame_length != info [i ].length ) {
111111 prior_sequence_sample_count += av_rescale_rnd (
112112 sequence_sample_count , hp -> aohp -> output_sample_rate , current_sample_rate , AV_ROUND_UP );
@@ -338,7 +338,8 @@ void VS_CC vs_lwlibavaudiosource_create(const VSMap* in, VSMap* out, void* user_
338338 return ;
339339 }
340340 if (hp -> lwh .av_gap && hp -> aohp -> output_sample_rate != ctx -> sample_rate )
341- hp -> lwh .av_gap = (hp -> lwh .av_gap * hp -> aohp -> output_sample_rate - 1 ) / ctx -> sample_rate + 1 ;
341+ hp -> lwh .av_gap = av_rescale_rnd (
342+ hp -> lwh .av_gap , hp -> aohp -> output_sample_rate , ctx -> sample_rate , AV_ROUND_UP );
342343 hp -> ai .numSamples += hp -> lwh .av_gap ;
343344 hp -> ai .numFrames = (int )((hp -> ai .numSamples + VS_AUDIO_FRAME_SAMPLES - 1 ) / VS_AUDIO_FRAME_SAMPLES );
344345 if (make_gap_list (hp , out , vsapi ) < 0 ) {
0 commit comments