diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2014-07-29 07:28:58 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2014-07-29 07:28:58 +0000 |
| commit | 12dadb074a68659725a7d7e9ced93f0c70b4b480 (patch) | |
| tree | 4c7e602b9bf561bfeda31f78bd2575e552aafd03 /src/plugins/Input/ffmpeg | |
| parent | eaf8b9067e372798294205002a9ca46c203f6183 (diff) | |
| download | qmmp-12dadb074a68659725a7d7e9ced93f0c70b4b480.tar.gz qmmp-12dadb074a68659725a7d7e9ced93f0c70b4b480.tar.bz2 qmmp-12dadb074a68659725a7d7e9ced93f0c70b4b480.zip | |
ffmpeg: fixed m4a support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4393 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/ffmpeg')
| -rw-r--r-- | src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp b/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp index b72660514..41ed21a8f 100644 --- a/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp +++ b/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp @@ -358,7 +358,7 @@ qint64 DecoderFFmpeg::ffmpeg_decode() avcodec_get_frame_defaults(m_decoded_frame); #endif - int l = avcodec_decode_audio4(c, m_decoded_frame, &got_frame, &m_temp_pkt); + int l = avcodec_decode_audio4(c, m_decoded_frame, &got_frame, &m_temp_pkt); if(got_frame) out_size = av_samples_get_buffer_size(0, c->channels, m_decoded_frame->nb_samples, @@ -448,7 +448,7 @@ void DecoderFFmpeg::fillBuffer() { qint64 size = m_output_at; m_output_at = - m_skipBytes; - m_output_at = m_output_at/4*4; + m_output_at = m_output_at - (m_output_at % 4); if(av_sample_fmt_is_planar(c->sample_fmt) && m_channels > 1) { @@ -482,24 +482,18 @@ void DecoderFFmpeg::fillBuffer() if(m_pkt.data) av_free_packet(&m_pkt); m_pkt.data = 0; + m_temp_pkt.size = 0; break; } continue; } else if(m_output_at == 0) { -#if (LIBAVCODEC_VERSION_INT >= ((55<<16)+(34<<8)+0)) //libav 10 - if(c->codec_id == AV_CODEC_ID_SHORTEN || c->codec_id == AV_CODEC_ID_TWINVQ) - continue; -#else - if(c->codec_id == CODEC_ID_SHORTEN || c->codec_id == CODEC_ID_TWINVQ) - continue; -#endif - if(m_pkt.data) av_free_packet(&m_pkt); m_pkt.data = 0; - break; + m_temp_pkt.size = 0; + continue; } } } |
