mirror of https://git.ffmpeg.org/ffmpeg.git
Factorize usum
Originally committed as revision 8960 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
13dec85765
commit
7d5aaa049c
|
@ -169,12 +169,13 @@ static int pcm_encode_close(AVCodecContext *avctx)
|
||||||
*/
|
*/
|
||||||
static inline void encode_from16(int bps, int le, int us,
|
static inline void encode_from16(int bps, int le, int us,
|
||||||
short **samples, uint8_t **dst, int n) {
|
short **samples, uint8_t **dst, int n) {
|
||||||
|
int usum = us ? 0x8000 : 0;
|
||||||
if (bps > 2)
|
if (bps > 2)
|
||||||
memset(*dst, 0, n * bps);
|
memset(*dst, 0, n * bps);
|
||||||
if (le) *dst += bps - 2;
|
if (le) *dst += bps - 2;
|
||||||
for(;n>0;n--) {
|
for(;n>0;n--) {
|
||||||
register int v = *(*samples)++;
|
register int v = *(*samples)++;
|
||||||
if (us) v += 0x8000;
|
v += usum;
|
||||||
(*dst)[le] = v >> 8;
|
(*dst)[le] = v >> 8;
|
||||||
(*dst)[1 - le] = v;
|
(*dst)[1 - le] = v;
|
||||||
*dst += bps;
|
*dst += bps;
|
||||||
|
@ -361,10 +362,11 @@ static int pcm_decode_init(AVCodecContext * avctx)
|
||||||
static inline void decode_to16(int bps, int le, int us,
|
static inline void decode_to16(int bps, int le, int us,
|
||||||
uint8_t **src, short **samples, int src_len)
|
uint8_t **src, short **samples, int src_len)
|
||||||
{
|
{
|
||||||
|
int usum = us ? -0x8000 : 0;
|
||||||
register int n = src_len / bps;
|
register int n = src_len / bps;
|
||||||
if (le) *src += bps - 2;
|
if (le) *src += bps - 2;
|
||||||
for(;n>0;n--) {
|
for(;n>0;n--) {
|
||||||
*(*samples)++ = ((*src)[le] << 8 | (*src)[1 - le]) - (us?0x8000:0);
|
*(*samples)++ = ((*src)[le] << 8 | (*src)[1 - le]) + usum;
|
||||||
*src += bps;
|
*src += bps;
|
||||||
}
|
}
|
||||||
if (le) *src -= bps - 2;
|
if (le) *src -= bps - 2;
|
||||||
|
|
Loading…
Reference in New Issue