aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-04-01 00:36:43 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-04-01 00:36:43 +0200
commit2f7bd3b5162c240e62c11cf0373342fa89f26c8f (patch)
tree1d0f0aeb6b2c6acc811f11eca9fbeb16c451ea2c /libavcodec
parent5216245a2c5ed8140d99f14fcc148fbb6db9831e (diff)
parent420d1df2e2a857eae45fa947e16eae7494793d57 (diff)
downloadffmpeg-2f7bd3b5162c240e62c11cf0373342fa89f26c8f.tar.gz
Merge remote-tracking branch 'qatar/master'
* qatar/master: apedec: check bits <= 32. cavs: Remove unused code. oggenc: fix condition when not to flush due to keyframe granule. oggenc: add pagesize option to set preferred page size libspeexdec: set frame size in libspeex_decode_init() smacker audio: sign-extend the initial 16-bit predicted value Conflicts: libavcodec/apedec.c libavcodec/libspeexdec.c libavformat/oggenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/apedec.c4
-rw-r--r--libavcodec/cavs.c39
-rw-r--r--libavcodec/libspeexdec.c2
-rw-r--r--libavcodec/smacker.c2
4 files changed, 23 insertions, 24 deletions
diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c
index 4d0801b708..cdc528b196 100644
--- a/libavcodec/apedec.c
+++ b/libavcodec/apedec.c
@@ -425,8 +425,8 @@ static inline int ape_decode_value(APEContext *ctx, APERice *rice)
x = range_decode_bits(ctx, 16);
x |= (range_decode_bits(ctx, tmpk - 16) << 16);
} else {
- av_log(ctx->avctx, AV_LOG_ERROR, "too many bits\n");
- return -1;
+ av_log(ctx->avctx, AV_LOG_ERROR, "Too many bits: %d\n", tmpk);
+ return AVERROR_INVALIDDATA;
}
x += overflow << tmpk;
} else {
diff --git a/libavcodec/cavs.c b/libavcodec/cavs.c
index 47600c9683..b6dcd2e4ec 100644
--- a/libavcodec/cavs.c
+++ b/libavcodec/cavs.c
@@ -324,11 +324,12 @@ void ff_cavs_modify_mb_i(AVSContext *h, int *pred_mode_uv) {
*
****************************************************************************/
-static inline void mc_dir_part(AVSContext *h,Picture *pic,int square,
- int chroma_height,int delta,int list,uint8_t *dest_y,
- uint8_t *dest_cb,uint8_t *dest_cr,int src_x_offset,
- int src_y_offset,qpel_mc_func *qpix_op,
- h264_chroma_mc_func chroma_op,cavs_vector *mv){
+static inline void mc_dir_part(AVSContext *h,Picture *pic,
+ int chroma_height,int delta,int list,uint8_t *dest_y,
+ uint8_t *dest_cb,uint8_t *dest_cr,int src_x_offset,
+ int src_y_offset,qpel_mc_func *qpix_op,
+ h264_chroma_mc_func chroma_op,cavs_vector *mv)
+{
MpegEncContext * const s = &h->s;
const int mx= mv->x + src_x_offset*8;
const int my= mv->y + src_y_offset*8;
@@ -360,9 +361,6 @@ static inline void mc_dir_part(AVSContext *h,Picture *pic,int square,
}
qpix_op[luma_xy](dest_y, src_y, h->l_stride); //FIXME try variable height perhaps?
- if(!square){
- qpix_op[luma_xy](dest_y + delta, src_y + delta, h->l_stride);
- }
if(emu){
s->dsp.emulated_edge_mc(s->edge_emu_buffer, src_cb, h->c_stride,
@@ -379,11 +377,12 @@ static inline void mc_dir_part(AVSContext *h,Picture *pic,int square,
chroma_op(dest_cr, src_cr, h->c_stride, chroma_height, mx&7, my&7);
}
-static inline void mc_part_std(AVSContext *h,int square,int chroma_height,int delta,
- uint8_t *dest_y,uint8_t *dest_cb,uint8_t *dest_cr,
- int x_offset, int y_offset,qpel_mc_func *qpix_put,
- h264_chroma_mc_func chroma_put,qpel_mc_func *qpix_avg,
- h264_chroma_mc_func chroma_avg, cavs_vector *mv){
+static inline void mc_part_std(AVSContext *h,int chroma_height,int delta,
+ uint8_t *dest_y,uint8_t *dest_cb,uint8_t *dest_cr,
+ int x_offset, int y_offset,qpel_mc_func *qpix_put,
+ h264_chroma_mc_func chroma_put,qpel_mc_func *qpix_avg,
+ h264_chroma_mc_func chroma_avg, cavs_vector *mv)
+{
qpel_mc_func *qpix_op= qpix_put;
h264_chroma_mc_func chroma_op= chroma_put;
@@ -395,7 +394,7 @@ static inline void mc_part_std(AVSContext *h,int square,int chroma_height,int de
if(mv->ref >= 0){
Picture *ref= &h->DPB[mv->ref];
- mc_dir_part(h, ref, square, chroma_height, delta, 0,
+ mc_dir_part(h, ref, chroma_height, delta, 0,
dest_y, dest_cb, dest_cr, x_offset, y_offset,
qpix_op, chroma_op, mv);
@@ -405,7 +404,7 @@ static inline void mc_part_std(AVSContext *h,int square,int chroma_height,int de
if((mv+MV_BWD_OFFS)->ref >= 0){
Picture *ref= &h->DPB[0];
- mc_dir_part(h, ref, square, chroma_height, delta, 1,
+ mc_dir_part(h, ref, chroma_height, delta, 1,
dest_y, dest_cb, dest_cr, x_offset, y_offset,
qpix_op, chroma_op, mv+MV_BWD_OFFS);
}
@@ -413,28 +412,28 @@ static inline void mc_part_std(AVSContext *h,int square,int chroma_height,int de
void ff_cavs_inter(AVSContext *h, enum cavs_mb mb_type) {
if(ff_cavs_partition_flags[mb_type] == 0){ // 16x16
- mc_part_std(h, 1, 8, 0, h->cy, h->cu, h->cv, 0, 0,
+ mc_part_std(h, 8, 0, h->cy, h->cu, h->cv, 0, 0,
h->cdsp.put_cavs_qpel_pixels_tab[0],
h->s.dsp.put_h264_chroma_pixels_tab[0],
h->cdsp.avg_cavs_qpel_pixels_tab[0],
h->s.dsp.avg_h264_chroma_pixels_tab[0],&h->mv[MV_FWD_X0]);
}else{
- mc_part_std(h, 1, 4, 0, h->cy, h->cu, h->cv, 0, 0,
+ mc_part_std(h, 4, 0, h->cy, h->cu, h->cv, 0, 0,
h->cdsp.put_cavs_qpel_pixels_tab[1],
h->s.dsp.put_h264_chroma_pixels_tab[1],
h->cdsp.avg_cavs_qpel_pixels_tab[1],
h->s.dsp.avg_h264_chroma_pixels_tab[1],&h->mv[MV_FWD_X0]);
- mc_part_std(h, 1, 4, 0, h->cy, h->cu, h->cv, 4, 0,
+ mc_part_std(h, 4, 0, h->cy, h->cu, h->cv, 4, 0,
h->cdsp.put_cavs_qpel_pixels_tab[1],
h->s.dsp.put_h264_chroma_pixels_tab[1],
h->cdsp.avg_cavs_qpel_pixels_tab[1],
h->s.dsp.avg_h264_chroma_pixels_tab[1],&h->mv[MV_FWD_X1]);
- mc_part_std(h, 1, 4, 0, h->cy, h->cu, h->cv, 0, 4,
+ mc_part_std(h, 4, 0, h->cy, h->cu, h->cv, 0, 4,
h->cdsp.put_cavs_qpel_pixels_tab[1],
h->s.dsp.put_h264_chroma_pixels_tab[1],
h->cdsp.avg_cavs_qpel_pixels_tab[1],
h->s.dsp.avg_h264_chroma_pixels_tab[1],&h->mv[MV_FWD_X2]);
- mc_part_std(h, 1, 4, 0, h->cy, h->cu, h->cv, 4, 4,
+ mc_part_std(h, 4, 0, h->cy, h->cu, h->cv, 4, 4,
h->cdsp.put_cavs_qpel_pixels_tab[1],
h->s.dsp.put_h264_chroma_pixels_tab[1],
h->cdsp.avg_cavs_qpel_pixels_tab[1],
diff --git a/libavcodec/libspeexdec.c b/libavcodec/libspeexdec.c
index 7c5544a092..e0a4d6be8b 100644
--- a/libavcodec/libspeexdec.c
+++ b/libavcodec/libspeexdec.c
@@ -54,7 +54,7 @@ static av_cold int libspeex_decode_init(AVCodecContext *avctx)
if (s->header) {
avctx->sample_rate = s->header->rate;
avctx->channels = s->header->nb_channels;
- s->frame_size = s->header->frame_size;
+ s->frame_size = s->header->frame_size;
mode = speex_lib_get_mode(s->header->mode);
if (!mode) {
diff --git a/libavcodec/smacker.c b/libavcodec/smacker.c
index d2f9df09c7..ad9c58cbd6 100644
--- a/libavcodec/smacker.c
+++ b/libavcodec/smacker.c
@@ -661,7 +661,7 @@ static int smka_decode_frame(AVCodecContext *avctx, void *data,
}
if(bits) { //decode 16-bit data
for(i = stereo; i >= 0; i--)
- pred[i] = av_bswap16(get_bits(&gb, 16));
+ pred[i] = sign_extend(av_bswap16(get_bits(&gb, 16)), 16);
for(i = 0; i <= stereo; i++)
*samples++ = pred[i];
for(; i < unp_size / 2; i++) {