Not all applications (e.g. MPlayer) set block_align, and
when using a different demuxer it might not even be
easily available.
So fall back to selecting mode based on bit rate as before
if block_align has not useful value.
It can't be worse than failing to decode completely.
(cherry picked from commit 1d0d63052b)
CC: libav-stable@libav.org
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
* qatar/master:
libx264: add forgotten ;
matroskadec: fix a sanity check.
matroskadec: only return corrupt packets that actually contain data
lavf: zero data/size of the packet passed to read_packet().
ARM: use 2-operand syntax for ADD Rd, PC in Apple PIC code
ARM: align PIC offset pools to 4 bytes
ARM: swap source operands in some add instructions
configure: update tms470 detection for latest version
lavf probe: prevent codec probe with no data at all seen
motion_est: fix use of inline on extern functions
Conflicts:
libavcodec/motion_est_template.c
libavformat/matroskadec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
mp3dec: read Xing frame TOC index
mp3dec: use named constants for Xing header flags
libx264: add support for nal-hrd, required for Blu-ray streams.
mov: support random access point grouping
matroskadec: properly support BlockDuration
Conflicts:
libavcodec/libx264.c
libavformat/isom.h
libavformat/matroskadec.c
libavformat/mov.c
libavformat/mp3dec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Inline functions declared without extern do not provide an external
definition in standard C99. This code only works because most
compilers do not implement the inline semantics correctly. With a
stricter compiler, linking fails with unresolved references to these
functions.
Declaring the functions extern inline works correctly with some
compilers while some others still fail to create external definitions.
For maximum portability, create a static inline version with an
externally visible wrapper for ff_get_mb_score. ff_epzs_motion_search
is so large that no sane compiler inlines it anyway, so there the
inline keyword can simply be dropped with no effect.
Signed-off-by: Mans Rullgard <mans@mansr.com>
* commit '581281e242609a222233a2e5538b89dfb88fb18e':
matroskadec: check realloc in lzo encoding
matroska: honor error_recognition on unknown doctypes
tiffdec: Add support for GRAY16LE.
tiffenc: Add support for little endian RGB48 and GRAY16
mpeg4: support frame parameter changes with frame-mt
mpegvideo: check ff_find_unused_picture() return value for errors
mpegvideo: release frame buffers before freeing them
configure: msvc: default to 'lib' as 'ar' tool
build: support some non-standard ar variants
Conflicts:
libavcodec/h263dec.c
libavcodec/mpegvideo.c
libavcodec/tiff.c
libavcodec/tiffenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Adds a flag context_reinit to MpegEncContext to relieable keep track
of frame parameter changes which require a context reinitialization.
This is required for broken inputs which change the frame size but
error out before the context can be reinitialized.
As a sideeffect this makes the code more robust if a future change leaves
a path where it may be uninitialized otherwise.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
rv34: use ff_MPV_common_frame_size_change()
mpegvideo: add reinit function for frame parameter changes
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '1b3439b3055b083df51d7f7838ecc6b3f708b15c':
mpegvideo: move frame size dependent memory management to separate functions
configure: add --toolchain option
configure: Make the smoothstreaming muxer enable the ismv muxer
smoothstreaming: Export the mp4 codec tags
mov: check for EOF in long lasting loops
avcodec: cleanup utils.c
binkaudio: remove unneeded GET_BITS_SAFE macro
binkaudio: use float sample format
binkaudio: use a different value for the coefficient scale for the DCT codec
Conflicts:
configure
libavcodec/mpegvideo.c
libavcodec/utils.c
libavformat/Makefile
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This is mainly required for frame parameter changes during frame based
multithreading but single threaded usage profits too from avoiding
ff_MPV_common_end()/ff_MPV_common_init() cycles.
* qatar/master:
flvenc: silence bogus warning
configure: include flags in nm variable
alsdec: fix misplaced parentheses.
alsdec: check return values.
alsdec: fix number of decoded samples in first sub-block in BGMC mode.
alsdec: Fix out of ltp_gain_values read.
alsdec: Check that quantized parcor coeffs are within range.
alsdec: check opt_order.
Conflicts:
configure
libavcodec/alsdec.c
libavformat/flvenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '23aae62c2cb4504a09ceb8cd0cabc1c8b260f521':
alsdec: Check k used for rice decoder.
avfiltergraph: silence an uninitialized variable warning
xsubenc: reindent
lavc: replace AVCodecContext.encode with subtitle-specific callback
lavc: add const to private codec class initialization.
avconv: don't pass a bogus parameter to avfilter_graph_create_filter().
id3v2: strdup the genre name explicitly.
lavf/id3v2: do not export empty fields.
buffersrc: add const to the AVFrame* argument of av_buffersrc_write_frame()
lavfi: replace empty input/output lists with null pointers
Conflicts:
ffmpeg_filter.c
libavcodec/alsdec.c
libavcodec/dvdsubenc.c
libavcodec/utils.c
libavcodec/v210dec.h
libavfilter/af_channelsplit.c
libavfilter/avfiltergraph.c
libavfilter/buffersrc.c
libavfilter/src_movie.c
libavfilter/vf_ass.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>