diff --git a/configure b/configure index 84d8feba1b..c9eedaf974 100755 --- a/configure +++ b/configure @@ -3148,6 +3148,11 @@ check_deps $CONFIG_LIST \ enabled asm || { arch=c; disable $ARCH_LIST $ARCH_EXT_LIST; } +if test $target_os == "haiku"; then + disable memalign + disable posix_memalign +fi + ! enabled_any memalign posix_memalign malloc_aligned && enabled_any $need_memalign && enable memalign_hack diff --git a/doc/RELEASE_NOTES b/doc/RELEASE_NOTES index db3864d0e4..7861bfd4bc 100644 --- a/doc/RELEASE_NOTES +++ b/doc/RELEASE_NOTES @@ -1,45 +1,58 @@ Release Notes ============= -* 0.7 "Love and Peace" June, 2011 +* 0.8 "Love" June, 2011 +* 0.7 "Peace" June, 2011 (identical to 0.8 but using 0.6 ABI/API) + General notes ------------- This release enables frame-based multithreaded decoding for a number of codecs, -including VP8, H.263 and H.264. Additionally, there has been a major cleanup of +including theora, huffyuv, VP8, H.263, mpeg4 and H.264. Additionally, there has +been a major cleanup of both internal and external APIs. For this reason, the major versions of all -libraries have been bumped. On the one hand, this means that 0.7 can be installed -side-by-side with previous releases, on the other hand, in order to benefit -from the new features, applications need to be recompiled. +libraries except libpostproc have been bumped. This means that 0.8 can be installed +side-by-side with previous releases, on the other hand applications need to be +recompiled to use 0.8. -Other important changes are additions of decoders including, but not limited to, +Other important changes are more than 200 bugfixes, known regressions were fixed +w.r.t 0.5 and 0.6, additions of decoders including, but not limited to, AMR-WB, single stream LATM/LOAS, G.722 ADPCM, a native VP8 decoder and HE-AACv2. Additionally, many new de/muxers such as WebM in Matroska, Apple HTTP Live Streaming, SAP, IEC 61937 (S/PDIF) have been added. See the Changelog file for a list of significant changes. -Please note that our policy on bug reports has not changed. We still only accept -bug reports against HEAD of the FFmpeg trunk repository. If you are experiencing -issues with any formally released version of FFmpeg, please try a current version -of the development code to check if the issue still exists. If it does, make your -report against the development code following the usual bug reporting guidelines. +Bugreports against FFmpeg git master or the most recent FFmpeg release are +accepted. If you are experiencing issues with any formally released version of +FFmpeg, please try git master to check if the issue still exists. If it does, +make your report against the development code following the usual bug reporting +guidelines. + +Note, if you have difficulty building for mingw, try --disable-outdev=sdl API changes ----------- -Please see the file doc/APIchanges for programmer-centric information. Note that a -lot of long-time deprecated APIs have been removed. Also, a number of additional -APIs have been deprecated and are scheduled for removal in the next release. +Please see git log of the public headers or the file doc/APIchanges for +programmer-centric information. Note that some long-time deprecated APIs have +been removed. Also, a number of additional APIs have been deprecated and might +be removed in the next release. Other notable changes --------------------- +- high quality dithering in swscale to fix banding issues +- ffmpeg is now interactive and various information can be turned on/off while its running +- resolution changing support in ffmpeg +- sdl output device +- optimizations in libavfilter that make it much faster +- split, buffer, select, lut, negate filters amongth others +- more than 50 new video filters from mplayers libmpcodecs - many ARM NEON optimizations -- libswscale cleanup started, optimizations should become easier in the future - nonfree libfaad support for AAC decoding removed - 4:4:4 H.264 decoding - 9/10bit H.264 decoding diff --git a/ffpresets/libvpx-1080p.ffpreset b/ffpresets/libvpx-1080p.ffpreset new file mode 100644 index 0000000000..47dd7624a7 --- /dev/null +++ b/ffpresets/libvpx-1080p.ffpreset @@ -0,0 +1,17 @@ +vcodec=libvpx +g=120 +rc_lookahead=16 +quality=good +speed=0 +profile=1 +qmax=51 +qmin=11 +slices=4 +vb=2M + +#ignored unless using -pass 2 +maxrate=24M +minrate=100k +arnr_max_frames=7 +arnr_strength=5 +arnr_type=3 diff --git a/ffpresets/libvpx-1080p50_60.ffpreset b/ffpresets/libvpx-1080p50_60.ffpreset new file mode 100644 index 0000000000..8942a125a4 --- /dev/null +++ b/ffpresets/libvpx-1080p50_60.ffpreset @@ -0,0 +1,17 @@ +vcodec=libvpx +g=120 +rc_lookahead=25 +quality=good +speed=0 +profile=1 +qmax=51 +qmin=11 +slices=4 +vb=2M + +#ignored unless using -pass 2 +maxrate=24M +minrate=100k +arnr_max_frames=7 +arnr_strength=5 +arnr_type=3 diff --git a/ffpresets/libvpx-360p.ffpreset b/ffpresets/libvpx-360p.ffpreset new file mode 100644 index 0000000000..0859fb7273 --- /dev/null +++ b/ffpresets/libvpx-360p.ffpreset @@ -0,0 +1,16 @@ +vcodec=libvpx +g=120 +rc_lookahead=16 +quality=good +speed=0 +profile=0 +qmax=63 +qmin=0 +vb=768k + +#ignored unless using -pass 2 +maxrate=1.5M +minrate=40k +arnr_max_frames=7 +arnr_strength=5 +arnr_type=3 diff --git a/ffpresets/libvpx-720p.ffpreset b/ffpresets/libvpx-720p.ffpreset new file mode 100644 index 0000000000..84fe37d952 --- /dev/null +++ b/ffpresets/libvpx-720p.ffpreset @@ -0,0 +1,17 @@ +vcodec=libvpx +g=120 +rc_lookahead=16 +quality=good +speed=0 +profile=0 +qmax=51 +qmin=11 +slices=4 +vb=2M + +#ignored unless using -pass 2 +maxrate=24M +minrate=100k +arnr_max_frames=7 +arnr_strength=5 +arnr_type=3 diff --git a/ffpresets/libvpx-720p50_60.ffpreset b/ffpresets/libvpx-720p50_60.ffpreset new file mode 100644 index 0000000000..848754a753 --- /dev/null +++ b/ffpresets/libvpx-720p50_60.ffpreset @@ -0,0 +1,17 @@ +vcodec=libvpx +g=120 +rc_lookahead=25 +quality=good +speed=0 +profile=0 +qmax=51 +qmin=11 +slices=4 +vb=2M + +#ignored unless using -pass 2 +maxrate=24M +minrate=100k +arnr_max_frames=7 +arnr_strength=5 +arnr_type=3 diff --git a/ffprobe.c b/ffprobe.c index 39e7b76b0d..b2b2c8fd9c 100644 --- a/ffprobe.c +++ b/ffprobe.c @@ -395,12 +395,11 @@ int main(int argc, char **argv) int ret; av_register_all(); + init_opts(); #if CONFIG_AVDEVICE avdevice_register_all(); #endif - avformat_opts = avformat_alloc_context(); - show_banner(); parse_options(argc, argv, options, opt_input_file); diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 44bacffb90..419f7c5b84 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -1744,7 +1744,7 @@ static av_always_inline void hl_decode_mb_idct_luma(H264Context *h, int mb_type, h->hpc.pred16x16_add[h->intra16x16_pred_mode](dest_y, block_offset, h->mb + (p*256 << pixel_shift), linesize); }else{ for(i=0; i<16; i++){ - if(h->non_zero_count_cache[ scan8[i+p*16] ] || dctcoef_get(h->mb, pixel_shift, i*16)) + if(h->non_zero_count_cache[ scan8[i+p*16] ] || dctcoef_get(h->mb, pixel_shift, i*16+p*256)) s->dsp.add_pixels4(dest_y + block_offset[i], h->mb + (i*16+p*256 << pixel_shift), linesize); } } diff --git a/libavcodec/wmadec.c b/libavcodec/wmadec.c index 840025d493..9eaf230b01 100644 --- a/libavcodec/wmadec.c +++ b/libavcodec/wmadec.c @@ -828,7 +828,8 @@ static int wma_decode_superframe(AVCodecContext *avctx, } if (buf_size < s->block_align) return AVERROR(EINVAL); - buf_size = s->block_align; + if(s->block_align) + buf_size = s->block_align; samples = data; @@ -911,9 +912,8 @@ static int wma_decode_superframe(AVCodecContext *avctx, } //av_log(NULL, AV_LOG_ERROR, "%d %d %d %d outbytes:%d eaten:%d\n", s->frame_len_bits, s->block_len_bits, s->frame_len, s->block_len, (int8_t *)samples - (int8_t *)data, s->block_align); - *data_size = (int8_t *)samples - (int8_t *)data; - return s->block_align; + return buf_size; fail: /* when error, we reset the bit reservoir */ s->last_superframe_len = 0;