|  |  |  | @ -204,6 +204,7 @@ end: | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | AUDIO_PLAYER_FUNC(void, play, jstring input_jstr, jstring filter_jstr) { | 
			
		
	
		
			
				
					|  |  |  |  |     int got_frame = 0, ret = 0; | 
			
		
	
		
			
				
					|  |  |  |  |     AVPacket packet; | 
			
		
	
		
			
				
					|  |  |  |  |     AVFilterGraph *audioFilterGraph; | 
			
		
	
		
			
				
					|  |  |  |  |     AVFilterContext *audioSrcContext; | 
			
		
	
		
			
				
					|  |  |  |  |     AVFilterContext *audioSinkContext; | 
			
		
	
	
		
			
				
					|  |  |  | @ -238,7 +239,6 @@ AUDIO_PLAYER_FUNC(void, play, jstring input_jstr, jstring filter_jstr) { | 
			
		
	
		
			
				
					|  |  |  |  |         LOGE(TAG, "Couldn't open audio decoder"); | 
			
		
	
		
			
				
					|  |  |  |  |         return; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     auto *packet = (AVPacket *) av_malloc(sizeof(AVPacket)); | 
			
		
	
		
			
				
					|  |  |  |  |     AVFrame *frame = av_frame_alloc(); | 
			
		
	
		
			
				
					|  |  |  |  |     SwrContext *swrCtx = swr_alloc(); | 
			
		
	
		
			
				
					|  |  |  |  |     enum AVSampleFormat in_sample_fmt = codecCtx->sample_fmt; | 
			
		
	
	
		
			
				
					|  |  |  | @ -286,9 +286,9 @@ AUDIO_PLAYER_FUNC(void, play, jstring input_jstr, jstring filter_jstr) { | 
			
		
	
		
			
				
					|  |  |  |  |     mVisualizer->init_visualizer(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     //read audio frame
 | 
			
		
	
		
			
				
					|  |  |  |  |     while (av_read_frame(pFormatCtx, packet) >= 0 && !filter_release) { | 
			
		
	
		
			
				
					|  |  |  |  |         if (packet->stream_index != audio_stream_idx) { | 
			
		
	
		
			
				
					|  |  |  |  |             av_packet_unref(packet); | 
			
		
	
		
			
				
					|  |  |  |  |     while (av_read_frame(pFormatCtx, &packet) >= 0 && !filter_release) { | 
			
		
	
		
			
				
					|  |  |  |  |         if (packet.stream_index != audio_stream_idx) { | 
			
		
	
		
			
				
					|  |  |  |  |             av_packet_unref(&packet); | 
			
		
	
		
			
				
					|  |  |  |  |             continue; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         if (filter_again) { | 
			
		
	
	
		
			
				
					|  |  |  | @ -300,7 +300,7 @@ AUDIO_PLAYER_FUNC(void, play, jstring input_jstr, jstring filter_jstr) { | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             LOGE(TAG, "play again,filter_descr=_=%s", filter_desc); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         ret = avcodec_decode_audio4(codecCtx, frame, &got_frame, packet); | 
			
		
	
		
			
				
					|  |  |  |  |         ret = avcodec_decode_audio4(codecCtx, frame, &got_frame, &packet); | 
			
		
	
		
			
				
					|  |  |  |  |         if (ret < 0) { | 
			
		
	
		
			
				
					|  |  |  |  |             break; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
	
		
			
				
					|  |  |  | @ -343,7 +343,7 @@ AUDIO_PLAYER_FUNC(void, play, jstring input_jstr, jstring filter_jstr) { | 
			
		
	
		
			
				
					|  |  |  |  |                 usleep(SLEEP_TIME); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         av_packet_unref(packet); | 
			
		
	
		
			
				
					|  |  |  |  |         av_packet_unref(&packet); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | end: | 
			
		
	
		
			
				
					|  |  |  |  |     av_free(out_buffer); | 
			
		
	
	
		
			
				
					|  |  |  | 
 |