container_ffmpeg: flush streams immediately after seek

This commit is contained in:
martii
2013-07-20 09:08:31 +02:00
committed by Stefan Seyfried
parent 396077ccb2
commit 40b3c4459d

View File

@@ -426,6 +426,12 @@ static void FFMPEGThread(Context_t *context) {
restart_audio_resampling = 1;
latestPts = 0;
seek_target_flag = 0;
// flush streams
unsigned int i;
for (i = 0; i < avContext->nb_streams; i++)
if (avContext->streams[i]->codec && avContext->streams[i]->codec->codec)
avcodec_flush_buffers(avContext->streams[i]->codec);
}
if (context->playback->BackWard) {
@@ -531,12 +537,6 @@ static void FFMPEGThread(Context_t *context) {
if (restart_audio_resampling) {
restart_audio_resampling = 0;
// flush streams
unsigned int i;
for (i = 0; i < avContext->nb_streams; i++)
if (avContext->streams[i]->codec && avContext->streams[i]->codec->codec)
avcodec_flush_buffers(avContext->streams[i]->codec);
#ifdef USE_LIBSWRESAMPLE
if (swr) {
swr_free(&swr);