diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c
index 4d0801b708002722381e7581b8d1d5432f1fd443..cdc528b19673ad25cf3d69541ecf38a831bf46e3 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 47600c96835b8a6c1276e9785dcb4fa93fbea510..b6dcd2e4ecade5f5390b9578e711220eb96de0c3 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 7c5544a092b8d10d3d3a6bf32733dedc6a7d3ea2..e0a4d6be8b718f7335402069bc451f45f57ab491 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 d2f9df09c73065f5fe9509214ced95c7128c0e2a..ad9c58cbd6bd07fb8158b0780226a7331155d73c 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++) {
diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c
index 05b4b25a7122432420a80e3c195c6e8a89912e61..b787d1b26cdca7aa494d3834fed54ef5677d3a3c 100644
--- a/libavformat/oggenc.c
+++ b/libavformat/oggenc.c
@@ -22,6 +22,7 @@
 #include "libavutil/crc.h"
 #include "libavutil/opt.h"
 #include "libavutil/mathematics.h"
+#include "libavutil/opt.h"
 #include "libavutil/random_seed.h"
 #include "libavcodec/xiph.h"
 #include "libavcodec/bytestream.h"
@@ -69,18 +70,22 @@ typedef struct {
     int pref_size; ///< preferred page size (0 => fill all segments)
 } OGGContext;
 
+#define OFFSET(x) offsetof(OGGContext, x)
+#define PARAM AV_OPT_FLAG_ENCODING_PARAM
 
 static const AVOption options[] = {
     { "oggpagesize", "Set preferred Ogg page size.",
       offsetof(OGGContext, pref_size), AV_OPT_TYPE_INT, {.dbl = 0}, 0, MAX_PAGE_SIZE, AV_OPT_FLAG_ENCODING_PARAM},
+    { "pagesize", "preferred page size in bytes",
+        OFFSET(pref_size), AV_OPT_TYPE_INT, { 0 }, 0, MAX_PAGE_SIZE, PARAM },
     { NULL },
 };
 
 static const AVClass ogg_muxer_class = {
-    "Ogg muxer",
-    av_default_item_name,
-    options,
-    LIBAVUTIL_VERSION_INT,
+    .class_name = "Ogg muxer",
+    .item_name  = av_default_item_name,
+    .option     = options,
+    .version    = LIBAVUTIL_VERSION_INT,
 };
 
 
@@ -209,8 +214,7 @@ static int ogg_buffer_data(AVFormatContext *s, AVStream *st,
     // them as such, otherwise seeking will not work correctly at the very
     // least with old libogg versions.
     // Do not try to flush header packets though, that will create broken files.
-    if (st->codec->codec_id == CODEC_ID_THEORA &&
-        !header &&
+    if (st->codec->codec_id == CODEC_ID_THEORA && !header &&
         (ogg_granule_to_timestamp(oggstream, granule) >
          ogg_granule_to_timestamp(oggstream, oggstream->last_granule) + 1 ||
          ogg_key_granule(oggstream, granule))) {
@@ -241,8 +245,8 @@ static int ogg_buffer_data(AVFormatContext *s, AVStream *st,
         if (i == total_segments)
             page->granule = granule;
 
-        if(page->segments_count == 255 ||
-           (ogg->pref_size > 0 && page->size >= ogg->pref_size)) {
+        if (!header && (page->segments_count == 255 ||
+            (ogg->pref_size > 0 && page->size >= ogg->pref_size))) {
            ogg_buffer_page(s, oggstream);
         }
     }
@@ -547,5 +551,5 @@ AVOutputFormat ff_ogg_muxer = {
     .write_header      = ogg_write_header,
     .write_packet      = ogg_write_packet,
     .write_trailer     = ogg_write_trailer,
-    .priv_class = &ogg_muxer_class,
+    .priv_class        = &ogg_muxer_class,
 };