aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-01-26 01:52:29 +0100
committerMichael Niedermayer <michaelni@gmx.at>2012-01-26 02:23:56 +0100
commit3c5fe5b52758225e58fec917cc29281d6025aa67 (patch)
treed7484edfa989ffc33744cbbf11960e803f677f2b /libavcodec
parent01e5e97026cf0b344abafca22b0336a2c58b2a33 (diff)
parentd78bb1a4b2a3a415b68e4e6dd448779eccec64e3 (diff)
downloadffmpeg-3c5fe5b52758225e58fec917cc29281d6025aa67.tar.gz
Merge remote-tracking branch 'qatar/master'
* qatar/master: (22 commits) wma: Clip WMA1 and WMA2 frame length to 11 bits. movenc: Don't require frame_size to be set for modes other than mov doc: Update APIchanges with info on muxer flushing movenc: Reindent a block tools: Remove some unnecessary #undefs. rv20: prevent calling ff_h263_decode_mba() with unset height/width tools: K&R reformatting cosmetics Ignore generated aviocat and ismindex tools. build: Automatically include architecture-specific library Makefile snippets. indeo5: prevent null pointer dereference on broken files pktdumper: Use usleep instead of sleep cosmetics: Remove some unnecessary block braces. Drop unnecessary prefix from *sink* variable and struct names. Add a tool for creating smooth streaming manifests movdec: Calculate an average bit rate for fragmented streams, too movenc: Write the sample rate instead of time scale in the stsd atom movenc: Add a separate ismv/isma (smooth streaming) muxer movenc: Allow the caller to decide on fragmentation libavformat: Add a flag for muxers that support write_packet(NULL) for flushing movenc: Add support for writing fragmented mov files ... Conflicts: Changelog cmdutils.c cmdutils.h doc/APIchanges ffmpeg.c ffplay.c libavfilter/Makefile libavformat/Makefile libavformat/avformat.h libavformat/movenc.c libavformat/movenc.h libavformat/version.h tools/graph2dot.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/Makefile2
-rw-r--r--libavcodec/indeo5.c4
-rw-r--r--libavcodec/motion_est.c36
-rw-r--r--libavcodec/rv10.c3
-rw-r--r--libavcodec/wma.c2
-rw-r--r--libavcodec/x86/dsputil_mmx.c2
6 files changed, 25 insertions, 24 deletions
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 0e9034015d..372b7f1bb9 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -721,8 +721,6 @@ OBJS-$(CONFIG_MLIB) += mlib/dsputil_mlib.o \
# well.
OBJS-$(!CONFIG_SMALL) += inverse.o
--include $(SRC_PATH)/$(SUBDIR)$(ARCH)/Makefile
-
SKIPHEADERS += %_tablegen.h \
%_tables.h \
aac_tablegen_decl.h \
diff --git a/libavcodec/indeo5.c b/libavcodec/indeo5.c
index b1c50c2adb..8842f221cf 100644
--- a/libavcodec/indeo5.c
+++ b/libavcodec/indeo5.c
@@ -454,6 +454,10 @@ static int decode_mb_info(IVI5DecContext *ctx, IVIBandDesc *band,
ref_mb = tile->ref_mbs;
offs = tile->ypos * band->pitch + tile->xpos;
+ if (!ref_mb &&
+ ((band->qdelta_present && band->inherit_qdelta) || band->inherit_mv))
+ return AVERROR_INVALIDDATA;
+
/* scale factor for motion vectors */
mv_scale = (ctx->planes[0].bands[0].mb_size >> 3) - (band->mb_size >> 3);
mv_x = mv_y = 0;
diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c
index 215f5b1b75..ad6395296e 100644
--- a/libavcodec/motion_est.c
+++ b/libavcodec/motion_est.c
@@ -1301,28 +1301,26 @@ static int ff_estimate_motion_b(MpegEncContext * s,
break;
case ME_X1:
case ME_EPZS:
- {
- P_LEFT[0] = mv_table[mot_xy - 1][0];
- P_LEFT[1] = mv_table[mot_xy - 1][1];
-
- if(P_LEFT[0] > (c->xmax<<shift)) P_LEFT[0] = (c->xmax<<shift);
+ P_LEFT[0] = mv_table[mot_xy - 1][0];
+ P_LEFT[1] = mv_table[mot_xy - 1][1];
- /* special case for first line */
- if (!s->first_slice_line) {
- P_TOP[0] = mv_table[mot_xy - mot_stride ][0];
- P_TOP[1] = mv_table[mot_xy - mot_stride ][1];
- P_TOPRIGHT[0] = mv_table[mot_xy - mot_stride + 1 ][0];
- P_TOPRIGHT[1] = mv_table[mot_xy - mot_stride + 1 ][1];
- if(P_TOP[1] > (c->ymax<<shift)) P_TOP[1]= (c->ymax<<shift);
- if(P_TOPRIGHT[0] < (c->xmin<<shift)) P_TOPRIGHT[0]= (c->xmin<<shift);
- if(P_TOPRIGHT[1] > (c->ymax<<shift)) P_TOPRIGHT[1]= (c->ymax<<shift);
+ if (P_LEFT[0] > (c->xmax << shift)) P_LEFT[0] = (c->xmax << shift);
- P_MEDIAN[0]= mid_pred(P_LEFT[0], P_TOP[0], P_TOPRIGHT[0]);
- P_MEDIAN[1]= mid_pred(P_LEFT[1], P_TOP[1], P_TOPRIGHT[1]);
- }
- c->pred_x= P_LEFT[0];
- c->pred_y= P_LEFT[1];
+ /* special case for first line */
+ if (!s->first_slice_line) {
+ P_TOP[0] = mv_table[mot_xy - mot_stride ][0];
+ P_TOP[1] = mv_table[mot_xy - mot_stride ][1];
+ P_TOPRIGHT[0] = mv_table[mot_xy - mot_stride + 1][0];
+ P_TOPRIGHT[1] = mv_table[mot_xy - mot_stride + 1][1];
+ if (P_TOP[1] > (c->ymax << shift)) P_TOP[1] = (c->ymax << shift);
+ if (P_TOPRIGHT[0] < (c->xmin << shift)) P_TOPRIGHT[0] = (c->xmin << shift);
+ if (P_TOPRIGHT[1] > (c->ymax << shift)) P_TOPRIGHT[1] = (c->ymax << shift);
+
+ P_MEDIAN[0] = mid_pred(P_LEFT[0], P_TOP[0], P_TOPRIGHT[0]);
+ P_MEDIAN[1] = mid_pred(P_LEFT[1], P_TOP[1], P_TOPRIGHT[1]);
}
+ c->pred_x = P_LEFT[0];
+ c->pred_y = P_LEFT[1];
if(mv_table == s->b_forw_mv_table){
mv_scale= (s->pb_time<<16) / (s->pp_time<<shift);
diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c
index 60760f681c..d97ed12272 100644
--- a/libavcodec/rv10.c
+++ b/libavcodec/rv10.c
@@ -379,7 +379,8 @@ static int rv20_decode_picture_header(MpegEncContext *s)
if(s->avctx->debug & FF_DEBUG_PICT_INFO){
av_log(s->avctx, AV_LOG_DEBUG, "F %d/%d\n", f, rpr_bits);
}
- }
+ } else if (av_image_check_size(s->width, s->height, 0, s->avctx) < 0)
+ return AVERROR_INVALIDDATA;
mb_pos = ff_h263_decode_mba(s);
diff --git a/libavcodec/wma.c b/libavcodec/wma.c
index 8f464619c2..feb121b591 100644
--- a/libavcodec/wma.c
+++ b/libavcodec/wma.c
@@ -85,7 +85,7 @@ int av_cold ff_wma_get_frame_len_bits(int sample_rate, int version,
} else if (sample_rate <= 22050 ||
(sample_rate <= 32000 && version == 1)) {
frame_len_bits = 10;
- } else if (sample_rate <= 48000) {
+ } else if (sample_rate <= 48000 || version < 3) {
frame_len_bits = 11;
} else if (sample_rate <= 96000) {
frame_len_bits = 12;
diff --git a/libavcodec/x86/dsputil_mmx.c b/libavcodec/x86/dsputil_mmx.c
index 75bcae8110..6847e6e6f8 100644
--- a/libavcodec/x86/dsputil_mmx.c
+++ b/libavcodec/x86/dsputil_mmx.c
@@ -839,7 +839,7 @@ static void draw_edges_mmx(uint8_t *buf, int wrap, int width, int height, int w,
}
if (sides&EDGE_BOTTOM) {
- for(i = 0; i < w; i += 4) {
+ for(i = 0; i < h; i += 4) {
ptr= last_line + (i + 1) * wrap - w;
__asm__ volatile(
"1: \n\t"