forked from KolibriOS/kolibrios
ffmpeg-2.8.5
git-svn-id: svn://kolibrios.org@6147 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* common code shared by all WMA variants
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include "libavutil/attributes.h"
|
||||
|
||||
#include "wma_common.h"
|
||||
|
||||
/**
|
||||
*@brief Get the samples per frame for this stream.
|
||||
*@param sample_rate output sample_rate
|
||||
*@param version wma version
|
||||
*@param decode_flags codec compression features
|
||||
*@return log2 of the number of output samples per frame
|
||||
*/
|
||||
av_cold int ff_wma_get_frame_len_bits(int sample_rate, int version,
|
||||
unsigned int decode_flags)
|
||||
{
|
||||
int frame_len_bits;
|
||||
|
||||
if (sample_rate <= 16000)
|
||||
frame_len_bits = 9;
|
||||
else if (sample_rate <= 22050 || (sample_rate <= 32000 && version == 1))
|
||||
frame_len_bits = 10;
|
||||
else if (sample_rate <= 48000 || version < 3)
|
||||
frame_len_bits = 11;
|
||||
else if (sample_rate <= 96000)
|
||||
frame_len_bits = 12;
|
||||
else
|
||||
frame_len_bits = 13;
|
||||
|
||||
if (version == 3) {
|
||||
int tmp = decode_flags & 0x6;
|
||||
if (tmp == 0x2)
|
||||
++frame_len_bits;
|
||||
else if (tmp == 0x4)
|
||||
--frame_len_bits;
|
||||
else if (tmp == 0x6)
|
||||
frame_len_bits -= 2;
|
||||
}
|
||||
|
||||
return frame_len_bits;
|
||||
}
|
Reference in New Issue
Block a user