From 64e0bfa3e7c648ba3d6eba5b21ca0a927e5e5b92 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Fri, 19 Dec 2008 19:42:26 +0000 Subject: faster ape seeking git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@694 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp') diff --git a/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp b/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp index 49c13da9f..919830cfc 100644 --- a/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp +++ b/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp @@ -159,7 +159,7 @@ bool DecoderFFmpeg::initialize() bitrate = c->bit_rate; chan = c->channels; - wma_outbuf = new uint8_t[AVCODEC_MAX_AUDIO_FRAME_SIZE*sizeof(int16_t)]; + wma_outbuf = new uint8_t[AVCODEC_MAX_AUDIO_FRAME_SIZE*sizeof(int16_t) + globalBufferSize]; inited = TRUE; qDebug("DecoderFFmpeg: initialize succes"); return TRUE; @@ -236,12 +236,12 @@ void DecoderFFmpeg::run() out_size = AVCODEC_MAX_AUDIO_FRAME_SIZE*sizeof(int16_t); l = avcodec_decode_audio2(c, (int16_t *)(wma_outbuf), &out_size, inbuf_ptr, size); - if(l < 0) + if (l < 0) goto end; ffmpeg_out(out_size); size -= l; inbuf_ptr += l; - if (pkt.data) + if (pkt.data) av_free_packet(&pkt); } bitrate = c->bit_rate/1024; @@ -288,7 +288,7 @@ void DecoderFFmpeg::ffmpeg_out(int size) return; int at = 0; int to_copy = 0; - while (size > 0 && !user_stop) + while ((size > 0) && !user_stop && (seekTime < 0)) //ape fast seeking hack { to_copy = qMin(int(globalBufferSize - output_at), int(size) ); memmove ( (char *) (output_buf + output_at), wma_outbuf + at, to_copy); -- cgit v1.2.3-13-gbd6f