summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-08-09 00:26:38 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-08-09 00:51:02 +0200
commit11a1033c9fcae380f4da06b2b0253ab0eb82b026 (patch)
treecee0379ce616e16ef342622b77fe417fa604c014 /libavcodec
parent4270d8c04d354b928d2329abd1037c6f0a72c07f (diff)
parent5864eb427f2f05342136f3bc9727d826e68d8dbf (diff)
Merge remote-tracking branch 'qatar/master'
* qatar/master: (23 commits) build: cosmetics: Reorder some lists in a more logical fashion x86: pngdsp: Fix assembly for OS/2 fate: add test for RTjpeg in nuv with frameheader rtmp: send check_bw as notification g723_1: clip argument for 15-bit version of normalize_bits() g723_1: use all LPC vectors in formant postfilter id3v2: Support v2.2 PIC avplay: fix build with lavfi disabled. avconv: split configuring filter configuration to a separate file. avconv: split option parsing into a separate file. mpc8: do not leave padding after last frame in buffer for the next decode call mpegaudioenc: list supported channel layouts. mpegaudiodec: don't print an error on > 1 frame in a packet. api-example: update to new audio encoding API. configure: add --enable/disable-random option doc: cygwin: Update list of FATE package requirements build: Remove all installed headers and header directories on uninstall build: change checkheaders to use regular build rules rtmp: Add a new option 'rtmp_subscribe' rtmp: Add support for subscribing live streams ... Conflicts: Makefile common.mak configure doc/examples/decoding_encoding.c ffmpeg.c libavcodec/g723_1.c libavcodec/mpegaudiodec.c libavcodec/x86/pngdsp.asm libavformat/version.h library.mak tests/fate/video.mak Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/g723_1.c2
-rw-r--r--libavcodec/mpc8.c2
-rw-r--r--libavcodec/mpegaudiodec.c2
-rw-r--r--libavcodec/mpegaudioenc.c5
-rw-r--r--libavcodec/x86/pngdsp.asm2
5 files changed, 11 insertions, 2 deletions
diff --git a/libavcodec/g723_1.c b/libavcodec/g723_1.c
index 2b59711ed1..dcf285db1e 100644
--- a/libavcodec/g723_1.c
+++ b/libavcodec/g723_1.c
@@ -264,6 +264,7 @@ static int scale_vector(int16_t *vector, int length)
for (i = 0; i < length; i++)
max = FFMAX(max, FFABS(vector[i]));
+ max = FFMIN(max, 0x7FFF);
bits = normalize_bits(max, 15);
scale = shift_table[bits];
@@ -913,6 +914,7 @@ static void formant_postfilter(G723_1_Context *p, int16_t *lpc, int16_t *buf)
}
iir_filter(filter_coef[0], filter_coef[1], buf + i,
filter_signal + i, 1);
+ lpc += LPC_ORDER;
}
memcpy(p->fir_mem, buf + FRAME_LEN, LPC_ORDER * sizeof(int16_t));
diff --git a/libavcodec/mpc8.c b/libavcodec/mpc8.c
index 7a075e3c15..cb30b2c28b 100644
--- a/libavcodec/mpc8.c
+++ b/libavcodec/mpc8.c
@@ -419,6 +419,8 @@ static int mpc8_decode_frame(AVCodecContext * avctx, void *data,
c->cur_frame++;
c->last_bits_used = get_bits_count(gb);
+ if(get_bits_left(gb) < 8) // we have only padding left
+ c->last_bits_used = buf_size << 3;
if(c->cur_frame >= c->frames)
c->cur_frame = 0;
diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c
index d24b35dbfd..85079761df 100644
--- a/libavcodec/mpegaudiodec.c
+++ b/libavcodec/mpegaudiodec.c
@@ -1686,7 +1686,7 @@ static int decode_frame(AVCodecContext * avctx, void *data, int *got_frame_ptr,
if (s->frame_size <= 0 || s->frame_size > buf_size) {
av_log(avctx, AV_LOG_ERROR, "incomplete frame\n");
return AVERROR_INVALIDDATA;
- }else if(s->frame_size < buf_size){
+ } else if (s->frame_size < buf_size) {
av_log(avctx, AV_LOG_DEBUG, "incorrect frame size - multiple frames in buffer?\n");
buf_size= s->frame_size;
}
diff --git a/libavcodec/mpegaudioenc.c b/libavcodec/mpegaudioenc.c
index 585ef44f87..2c58ddf452 100644
--- a/libavcodec/mpegaudioenc.c
+++ b/libavcodec/mpegaudioenc.c
@@ -24,6 +24,8 @@
* The simplest mpeg audio layer 2 encoder.
*/
+#include "libavutil/audioconvert.h"
+
#include "avcodec.h"
#include "internal.h"
#include "put_bits.h"
@@ -792,6 +794,9 @@ AVCodec ff_mp2_encoder = {
.supported_samplerates = (const int[]){
44100, 48000, 32000, 22050, 24000, 16000, 0
},
+ .channel_layouts = (const uint64_t[]){ AV_CH_LAYOUT_MONO,
+ AV_CH_LAYOUT_STEREO,
+ 0 },
.long_name = NULL_IF_CONFIG_SMALL("MP2 (MPEG audio layer 2)"),
.defaults = mp2_defaults,
};
diff --git a/libavcodec/x86/pngdsp.asm b/libavcodec/x86/pngdsp.asm
index 8999c17c82..970f3db6f1 100644
--- a/libavcodec/x86/pngdsp.asm
+++ b/libavcodec/x86/pngdsp.asm
@@ -28,7 +28,7 @@ SECTION_RODATA
cextern pw_255
-SECTION_TEXT 16
+SECTION_TEXT
; %1 = nr. of xmm registers used
%macro ADD_BYTES_FN 1