diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-01-26 01:52:29 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-01-26 02:23:56 +0100 |
commit | 3c5fe5b52758225e58fec917cc29281d6025aa67 (patch) | |
tree | d7484edfa989ffc33744cbbf11960e803f677f2b /libavcodec | |
parent | 01e5e97026cf0b344abafca22b0336a2c58b2a33 (diff) | |
parent | d78bb1a4b2a3a415b68e4e6dd448779eccec64e3 (diff) | |
download | ffmpeg-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/Makefile | 2 | ||||
-rw-r--r-- | libavcodec/indeo5.c | 4 | ||||
-rw-r--r-- | libavcodec/motion_est.c | 36 | ||||
-rw-r--r-- | libavcodec/rv10.c | 3 | ||||
-rw-r--r-- | libavcodec/wma.c | 2 | ||||
-rw-r--r-- | libavcodec/x86/dsputil_mmx.c | 2 |
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" |