Merge commit '5ff998a233d759d0de83ea6f95c383d03d25d88e'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 5 Nov 2012 21:51:20 +0000 (22:51 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 5 Nov 2012 21:51:20 +0000 (22:51 +0100)
* commit '5ff998a233d759d0de83ea6f95c383d03d25d88e':
  flacenc: use uint64_t for bit counts
  flacenc: remove wasted trailing 0 bits
  lavu: add av_ctz() for trailing zero bit count
  flacenc: use a separate buffer for byte-swapping for MD5 checksum on big-endian
  fate: aac: Place LATM tests and general AAC tests in different groups
  build: The A64 muxer depends on rawenc.o for ff_raw_write_packet()

Conflicts:
doc/APIchanges
libavutil/version.h
tests/fate/aac.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
doc/APIchanges
libavcodec/flacenc.c
libavformat/Makefile
libavutil/Makefile
libavutil/intmath.c
libavutil/intmath.h
libavutil/version.h
tests/fate/aac.mak

diff --combined doc/APIchanges
@@@ -7,109 -7,15 +7,112 @@@ libavdevice:   2011-04-1
  libavfilter:   2012-06-22
  libavformat:   2012-01-27
  libavresample: 2012-10-05
 +libpostproc:   2011-04-18
 +libswresample: 2011-09-19
  libswscale:    2011-06-20
  libavutil:     2012-10-22
  
  
  API changes, most recent first:
  
 +2012-11-02 - xxxxxxx - lavu 52.4.100 - opt.h
 +  Add av_opt_get_key_value().
 +
 +2012-11-03 - xxxxxxx - lavu 52.3.100 - opt.h
 +  Add AV_OPT_TYPE_SAMPLE_FMT value to AVOptionType enum.
 +
 +2012-10-21 - xxxxxxx - lavc  54.68.100 - avcodec.h
 +                       lavfi  3.20.100 - avfilter.h
 +  Add AV_PKT_DATA_STRINGS_METADATA side data type, used to transmit key/value
 +  strings between AVPacket and AVFrame, and add metadata field to
 +  AVCodecContext (which shall not be accessed by users; see AVFrame metadata
 +  instead).
 +
 +2012-09-27 - a70b493 - lavd 54.3.100 - version.h
 +  Add LIBAVDEVICE_IDENT symbol.
 +
 +2012-09-27 - a70b493 - lavfi 3.18.100 - version.h
 +  Add LIBAVFILTER_IDENT symbol.
 +
 +2012-09-27 - a70b493 - libswr 0.16.100 - version.h
 +  Add LIBSWRESAMPLE_VERSION, LIBSWRESAMPLE_BUILD
 +  and LIBSWRESAMPLE_IDENT symbols.
 +
 +2012-09-06 - 29e972f - lavu 51.72.100 - parseutils.h
 +  Add av_small_strptime() time parsing function.
 +
 +  Can be used as a stripped-down replacement for strptime(), on
 +  systems which do not support it.
 +
 +2012-08-25 - 2626cc4 - lavf 54.28.100
 +  Matroska demuxer now identifies SRT subtitles as AV_CODEC_ID_SUBRIP instead
 +  of AV_CODEC_ID_TEXT.
 +
 +2012-08-13 - 5c0d8bc - lavfi 3.8.100 - avfilter.h
 +  Add avfilter_get_class() function, and priv_class field to AVFilter
 +  struct.
 +
 +2012-08-12 - a25346e - lavu 51.69.100 - opt.h
 +  Add AV_OPT_FLAG_FILTERING_PARAM symbol in opt.h.
 +
 +2012-07-31 - 23fc4dd - lavc 54.46.100
 +  Add channels field to AVFrame.
 +
 +2012-07-30 - f893904 - lavu 51.66.100
 +  Add av_get_channel_description()
 +  and av_get_standard_channel_layout() functions.
 +
 +2012-07-21 - 016a472 - lavc 54.43.100
 +  Add decode_error_flags field to AVFrame.
 +
 +2012-07-20 - b062936 - lavf 54.18.100
 +  Add avformat_match_stream_specifier() function.
 +
 +2012-07-14 - f49ec1b - lavc 54.38.100 - avcodec.h
 +  Add metadata to AVFrame, and the accessor functions
 +  av_frame_get_metadata() and av_frame_set_metadata().
 +
 +2012-07-10 - 0e003d8 - lavc 54.33.100
 +  Add av_fast_padded_mallocz().
 +
 +2012-07-10 - 21d5609 - lavfi 3.2.0 - avfilter.h
 +  Add init_opaque() callback to AVFilter struct.
 +
 +2012-06-26 - e6674e4 - lavu 51.63.100 - imgutils.h
 +  Add functions to libavutil/imgutils.h:
 +  av_image_get_buffer_size()
 +  av_image_fill_arrays()
 +  av_image_copy_to_buffer()
 +
 +2012-06-24 - c41899a - lavu 51.62.100 - version.h
 +  version moved from avutil.h to version.h
 +
 +2012-04-11 - 359abb1 - lavu 51.58.100 - error.h
 +  Add av_make_error_string() and av_err2str() utilities to
 +  libavutil/error.h.
 +
 +2012-06-05 - 62b39d4 - lavc 54.24.100
 +  Add pkt_duration field to AVFrame.
 +
 +2012-05-24 - f2ee065 - lavu 51.54.100
 +  Move AVPALETTE_SIZE and AVPALETTE_COUNT macros from
 +  libavcodec/avcodec.h to libavutil/pixfmt.h.
 +
 +2012-05-14 - 94a9ac1 - lavf 54.5.100
 +  Add av_guess_sample_aspect_ratio() function.
 +
 +2012-04-20 - 65fa7bc - lavfi 2.70.100
 +  Add avfilter_unref_bufferp() to avfilter.h.
 +
 +2012-04-13 - 162e400 - lavfi 2.68.100
 +  Install libavfilter/asrc_abuffer.h public header.
 +
 +2012-03-26 - a67d9cf - lavfi 2.66.100
 +  Add avfilter_fill_frame_from_{audio_,}buffer_ref() functions.
 +
+ 2012-xx-xx - xxxxxxx - lavu 52.1.0 - intmath.h
+   Add av_ctz() for trailing zero bit count
  2012-10-18 - xxxxxxx - lavu 51.45.0 - error.h
    Add AVERROR_EXPERIMENTAL
  
  
  2012-10-xx - xxxxxxx - lavu 51.43.0 - aes.h, md5.h, sha.h, tree.h
    Add functions for allocating the opaque contexts for the algorithms,
 -  deprecate the context size variables.
  
  2012-10-xx - xxxxxxx - lavf 54.18.0 - avio.h
    Add avio_closep to complement avio_close.
    51efed1 - Add AVCodecDescriptor.props and AV_CODEC_PROP_INTRA_ONLY.
    91e59fe - Add avcodec_descriptor_get_by_name().
  
 -
 -2012-08-08 - 1d9c2dc - lavu 51.39 - avutil.h
 -  Don't implicitly include libavutil/common.h in avutil.h
 -
  2012-08-08 - 987170c - lavu 51.38 - dict.h
    Add av_dict_count().
  
  2012-07-29 - 681ed00 - lavf 54.13.0 - avformat.h
    Add AVFMT_FLAG_NOBUFFER for low latency use cases.
  
 -2012-07-20 - b70d89a - lavfi 3.0.0 - avfilter.h
 -  Add avfilter_unref_bufferp().
 -
  2012-07-10 - 5fade8a - lavu 51.37.0
    Add av_malloc_array() and av_mallocz_array()
  
  2012-05-25 - 154486f - lavu 51.31.0 - opt.h
    Add av_opt_set_bin()
  
 -2012-05-26 - e9cef89 - lavf 54.3.0
 -  Add AVFMT_TS_NONSTRICT format flag to indicate that a muxer supports
 -  non-increasing monotone timestamps.
 -
  2012-05-15 - lavfi 2.17.0
    Add support for audio filters
    ac71230/a2cd9be - add video/audio buffer sink in a new installed
  
  2012-04-14 - lavfi 2.16.0 - avfiltergraph.h
    d7bcc71 Add avfilter_graph_parse2().
 -  91d3cbe Add avfilter_inout_alloc() and avfilter_inout_free().
  
  2012-04-08 - 4d693b0 - lavu 51.27.0 - samplefmt.h
    Add av_get_packed_sample_fmt() and av_get_planar_sample_fmt()
  
 -2012-04-05 - 5cc51a5 - lavu 51.26.0 - audioconvert.h
 -  Add av_get_default_channel_layout()
 +2012-03-21 - b75c67d - lavu 51.43.100
 +  Add bprint.h for bprint API.
 +
 +2012-02-21 - 9cbf17e - lavc 54.4.100
 +  Add av_get_pcm_codec() function.
  
 -2012-03-06 - 4d851f8 - lavu 51.25.0 - cpu.h
 -  Add av_set_cpu_flags_mask().
 +2012-02-16 - 560b224 - libswr 0.7.100
 +  Add swr_set_matrix() function.
 +
 +2012-02-09 - c28e7af - lavu 51.39.100
 +  Add a new installed header libavutil/timestamp.h with timestamp
 +  utilities.
 +
 +2012-02-06 - 70ffda3 - lavu 51.38.100
 +  Add av_parse_ratio() function to parseutils.h.
 +
 +2012-02-06 - 70ffda3 - lavu 51.38.100
 +  Add AV_LOG_MAX_OFFSET macro to log.h.
 +
 +2012-02-02 - 0eaa123 - lavu 51.37.100
 +  Add public timecode helpers.
 +
 +2012-01-24 - 0c3577b - lavfi 2.60.100
 +  Add avfilter_graph_dump.
  
  2012-03-05 - lavc 54.8.0
    6699d07 Add av_get_exact_bits_per_sample()
            muxers supporting it (av_write_frame makes sure it is called
            only for muxers with this flag).
  
 -------------------------------8<-------------------------------------
 -                   0.8 branch was cut here
 ------------------------------>8--------------------------------------
 -
  2012-01-15 - lavc 53.34.0
    New audio encoding API:
    b2c75b6 Add CODEC_CAP_VARIABLE_FRAME_SIZE capability for use by audio
  2012-01-12 - 3167dc9 - lavfi 2.15.0
    Add a new installed header -- libavfilter/version.h -- with version macros.
  
 -2011-01-03 - b73ec05 - lavu 51.21.0
 -  Add av_popcount64
 +2011-12-08 - a502939 - lavfi 2.52.0
 +  Add av_buffersink_poll_frame() to buffersink.h.
 +
 +2011-12-08 - 26c6fec - lavu 51.31.0
 +  Add av_log_format_line.
 +
 +2011-12-03 - 976b095 - lavu 51.30.0
 +  Add AVERROR_BUG.
 +
 +2011-11-24 - 573ffbb - lavu 51.28.1
 +  Add av_get_alt_sample_fmt() to samplefmt.h.
 +
 +2011-11-03 - 96949da - lavu 51.23.0
 +  Add av_strcasecmp() and av_strncasecmp() to avstring.h.
  
 -2011-12-25 - lavfi 2.14.0
 -  e1d9dbf Add a new installed header - buffersrc.h
 -  It contains a new function av_buffersrc_buffer() that allows passing
 -  frames to the 'buffer' filter, but unlike av_vsrc_buffer_add_frame()
 -  it allows for direct rendering.
 -  1c9e340 Add avfilter_copy_frame_props() for copying properties from
 -  AVFrame to AVFilterBufferRef.
 +2011-10-20 - b35e9e1 - lavu 51.22.0
 +  Add av_strtok() to avstring.h.
  
 -2011-12-25 - lavc 53.31.0
 -  Add the following new fields to AVFrame:
 -    b58dbb5 sample_aspect_ratio
 -    3a2ddf7 width, height
 -    8a4a5f6 format
 +2011-01-03 - b73ec05 - lavu 51.21.0
 +  Add av_popcount64
  
  2011-12-18 - 8400b12 - lavc 53.28.1
    Deprecate AVFrame.age. The field is unused.
    - 641c7af new functions - av_opt_child_next, av_opt_child_class_next
      and av_opt_find2()
  
 -2011-09-03 - fb4ca26 - lavc 53.10.0
 -                       lavf 53.6.0
 +2011-09-22 - a70e787 - lavu 51.17.0
 +  Add av_x_if_null().
 +
 +2011-09-18 - 645cebb - lavc 53.16.0
 +  Add showall flag2
 +
 +2011-09-16 - ea8de10 - lavfi 2.42.0
 +  Add avfilter_all_channel_layouts.
 +
 +2011-09-16 - 9899037 - lavfi 2.41.0
 +  Rename avfilter_all_* function names to avfilter_make_all_*.
 +
 +  In particular, apply the renames:
 +  avfilter_all_formats         -> avfilter_make_all_formats
 +  avfilter_all_channel_layouts -> avfilter_make_all_channel_layouts
 +  avfilter_all_packing_formats -> avfilter_make_all_packing_formats
 +
 +2011-09-12 - 4381bdd - lavfi 2.40.0
 +  Change AVFilterBufferRefAudioProps.sample_rate type from uint32_t to int.
 +
 +2011-09-12 - 2c03174 - lavfi 2.40.0
 +  Simplify signature for avfilter_get_audio_buffer(), make it
 +  consistent with avfilter_get_video_buffer().
 +
 +2011-09-06 - 4f7dfe1 - lavfi 2.39.0
 +  Rename libavfilter/vsink_buffer.h to libavfilter/buffersink.h.
 +
 +2011-09-06 - c4415f6 - lavfi 2.38.0
 +  Unify video and audio sink API.
 +
 +  In particular, add av_buffersink_get_buffer_ref(), deprecate
 +  av_vsink_buffer_get_video_buffer_ref() and change the value for the
 +  opaque field passed to the abuffersink init function.
 +
 +2011-09-04 - 61e2e29 - lavu 51.16.0
 +  Add av_asprintf().
 +
 +2011-08-22 - dacd827 - lavf 53.10.0
 +  Add av_find_program_from_stream().
 +
 +2011-08-20 - 69e2c1a - lavu 51.13.0
 +  Add av_get_media_type_string().
 +
 +2011-09-03 - fb4ca26 - lavc 53.13.0
 +                       lavf 53.11.0
                         lsws  2.1.0
    Add {avcodec,avformat,sws}_get_class().
  
 -2011-09-03 - c11fb82 - lavu 51.10.0
 +2011-08-03 - c11fb82 - lavu 51.15.0
    Add AV_OPT_SEARCH_FAKE_OBJ flag for av_opt_find() function.
  
 +2011-08-14 - 323b930 - lavu 51.12.0
 +  Add av_fifo_peek2(), deprecate av_fifo_peek().
 +
  2011-08-26 - lavu 51.9.0
 -  - f2011ed Add av_fifo_peek2(), deprecate av_fifo_peek().
    - add41de..abc78a5 Do not include intfloat_readwrite.h,
      mathematics.h, rational.h, pixfmt.h, or log.h from avutil.h.
  
 -2011-08-16 - 48f9e45 - lavf 53.4.0
 +2011-08-16 - 48f9e45 - lavf 53.8.0
    Add avformat_query_codec().
  
 -2011-08-16 - bca06e7 - lavc 53.8.0
 +2011-08-16 - bca06e7 - lavc 53.11.0
    Add avcodec_get_type().
  
 -2011-08-06 - 2f63440 - lavf 53.4.0
 +2011-08-06 - 2f63440 - lavf 53.7.0
    Add error_recognition to AVFormatContext.
  
 -2011-08-02 - 9d39cbf - lavc 53.7.1
 +2011-08-02 - 9d39cbf - lavc 53.9.1
    Add AV_PKT_FLAG_CORRUPT AVPacket flag.
  
 -2011-07-10 - a67c061 - lavf 53.3.0
 +2011-07-16 - b57df29 - lavfi 2.27.0
 +  Add audio packing negotiation fields and helper functions.
 +
 +  In particular, add AVFilterPacking enum, planar, in_packings and
 +  out_packings fields to AVFilterLink, and the functions:
 +  avfilter_set_common_packing_formats()
 +  avfilter_all_packing_formats()
 +
 +2011-07-10 - a67c061 - lavf 53.6.0
    Add avformat_find_stream_info(), deprecate av_find_stream_info().
    NOTE: this was backported to 0.7
  
 -2011-07-10 - 0b950fe - lavc 53.6.0
 +2011-07-10 - 0b950fe - lavc 53.8.0
    Add avcodec_open2(), deprecate avcodec_open().
    NOTE: this was backported to 0.7
  
    Add avcodec_alloc_context3. Deprecate avcodec_alloc_context() and
    avcodec_alloc_context2().
  
 +2011-07-01 - b442ca6 - lavf 53.5.0 - avformat.h
 +  Add function av_get_output_timestamp().
 +
 +2011-06-28 - 5129336 - lavu 51.11.0 - avutil.h
 +  Define the AV_PICTURE_TYPE_NONE value in AVPictureType enum.
 +
 +2011-06-19 - fd2c0a5 - lavfi 2.23.0 - avfilter.h
 +  Add layout negotiation fields and helper functions.
 +
 +  In particular, add in_chlayouts and out_chlayouts to AVFilterLink,
 +  and the functions:
 +  avfilter_set_common_sample_formats()
 +  avfilter_set_common_channel_layouts()
 +  avfilter_all_channel_layouts()
 +
 +2011-06-19 - 527ca39 - lavfi 2.22.0 - AVFilterFormats
 +  Change type of AVFilterFormats.formats from int * to int64_t *,
 +  and update formats handling API accordingly.
 +
 +  avfilter_make_format_list() still takes a int32_t array and converts
 +  it to int64_t. A new function, avfilter_make_format64_list(), that
 +  takes int64_t arrays has been added.
 +
 +2011-06-19 - 44f669e - lavfi 2.21.0 - vsink_buffer.h
 +  Add video sink buffer and vsink_buffer.h public header.
 +
 +2011-06-12 - 9fdf772 - lavfi 2.18.0 - avcodec.h
 +  Add avfilter_get_video_buffer_ref_from_frame() function in
 +  libavfilter/avcodec.h.
 +
 +2011-06-12 - c535494 - lavfi 2.17.0 - avfiltergraph.h
 +  Add avfilter_inout_alloc() and avfilter_inout_free() functions.
 +
 +2011-06-12 - 6119b23 - lavfi 2.16.0 - avfilter_graph_parse()
 +  Change avfilter_graph_parse() signature.
 +
  2011-06-23 - 67e9ae1 - lavu 51.8.0 - attributes.h
    Add av_printf_format().
  
 -------------------------------8<-------------------------------------
 -                   0.7 branch was cut here
 ------------------------------>8--------------------------------------
 -
  2011-06-16 - 05e84c9, 25de595 - lavf 53.2.0 - avformat.h
    Add avformat_open_input and avformat_write_header().
    Deprecate av_open_input_stream, av_open_input_file,
  2011-06-10 - cb7c11c - lavu 51.6.0 - opt.h
    Add av_opt_flag_is_set().
  
 -2011-06-08 - d9f80ea - lavu 51.5.0 - AVMetadata
 +2011-06-10 - c381960 - lavfi 2.15.0 - avfilter_get_audio_buffer_ref_from_arrays
 +  Add avfilter_get_audio_buffer_ref_from_arrays() to avfilter.h.
 +
 +2011-06-09 - d9f80ea - lavu 51.8.0 - AVMetadata
    Move AVMetadata from lavf to lavu and rename it to
    AVDictionary -- new installed header dict.h.
    All av_metadata_* functions renamed to av_dict_*.
  
 -2011-06-07 - a6703fa - lavu 51.4.0 - av_get_bytes_per_sample()
 +2011-06-07 - a6703fa - lavu 51.8.0 - av_get_bytes_per_sample()
    Add av_get_bytes_per_sample() in libavutil/samplefmt.h.
    Deprecate av_get_bits_per_sample_fmt().
  
 -2011-06-05 - b39b062 - lavu 51.3.0 - opt.h
 +2011-06-05 - b39b062 - lavu 51.8.0 - opt.h
    Add av_opt_free convenience function.
  
 -2011-05-28 - 0420bd7 - lavu 51.2.0 - pixdesc.h
 +2011-06-06 - 95a0242 - lavfi 2.14.0 - AVFilterBufferRefAudioProps
 +  Remove AVFilterBufferRefAudioProps.size, and use nb_samples in
 +  avfilter_get_audio_buffer() and avfilter_default_get_audio_buffer() in
 +  place of size.
 +
 +2011-06-06 - 0bc2cca - lavu 51.6.0 - av_samples_alloc()
 +  Switch nb_channels and nb_samples parameters order in
 +  av_samples_alloc().
 +
 +2011-06-06 - e1c7414 - lavu 51.5.0 - av_samples_*
 +  Change the data layout created by av_samples_fill_arrays() and
 +  av_samples_alloc().
 +
 +2011-06-06 - 27bcf55 - lavfi 2.13.0 - vsrc_buffer.h
 +  Make av_vsrc_buffer_add_video_buffer_ref() accepts an additional
 +  flags parameter in input.
 +
 +2011-06-03 - e977ca2 - lavfi 2.12.0 - avfilter_link_free()
 +  Add avfilter_link_free() function.
 +
 +2011-06-02 - 5ad38d9 - lavu 51.4.0 - av_force_cpu_flags()
 +  Add av_cpu_flags() in libavutil/cpu.h.
 +
 +2011-05-28 - e71f260 - lavu 51.3.0 - pixdesc.h
    Add av_get_pix_fmt_name() in libavutil/pixdesc.h, and deprecate
    avcodec_get_pix_fmt_name() in libavcodec/avcodec.h in its favor.
  
 -2011-05-25 - 30315a8 - lavf 53.1.0 - avformat.h
 +2011-05-25 - 30315a8 - lavf 53.3.0 - avformat.h
    Add fps_probe_size to AVFormatContext.
  
 -2011-05-18 - 64150ff - lavc 53.4.0 - AVCodecContext.request_sample_fmt
 +2011-05-22 - 5ecdfd0 - lavf 53.2.0 - avformat.h
 +  Introduce avformat_alloc_output_context2() and deprecate
 +  avformat_alloc_output_context().
 +
 +2011-05-22 - 83db719 - lavfi 2.10.0 - vsrc_buffer.h
 +  Make libavfilter/vsrc_buffer.h public.
 +
 +2011-05-19 - c000a9f - lavfi 2.8.0 - avcodec.h
 +  Add av_vsrc_buffer_add_frame() to libavfilter/avcodec.h.
 +
 +2011-05-14 - 9fdf772 - lavfi 2.6.0 - avcodec.h
 +  Add avfilter_get_video_buffer_ref_from_frame() to libavfilter/avcodec.h.
 +
 +2011-05-18 - 64150ff - lavc 53.7.0 - AVCodecContext.request_sample_fmt
    Add request_sample_fmt field to AVCodecContext.
  
 -2011-05-10 - 188dea1 - lavc 53.3.0 - avcodec.h
 +2011-05-10 - 188dea1 - lavc 53.6.0 - avcodec.h
    Deprecate AVLPCType and the following fields in
    AVCodecContext: lpc_coeff_precision, prediction_order_method,
    min_partition_order, max_partition_order, lpc_type, lpc_passes.
    Corresponding FLAC encoder options should be used instead.
  
 +2011-05-07 - 9fdf772 - lavfi 2.5.0 - avcodec.h
 +  Add libavfilter/avcodec.h header and avfilter_copy_frame_props()
 +  function.
 +
 +2011-05-07 - 18ded93 - lavc 53.5.0 - AVFrame
 +  Add format field to AVFrame.
 +
 +2011-05-07 - 22333a6 - lavc 53.4.0 - AVFrame
 +  Add width and height fields to AVFrame.
 +
 +2011-05-01 - 35fe66a - lavfi 2.4.0 - avfilter.h
 +  Rename AVFilterBufferRefVideoProps.pixel_aspect to
 +  sample_aspect_ratio.
 +
 +2011-05-01 - 77e9dee - lavc 53.3.0 - AVFrame
 +  Add a sample_aspect_ratio field to AVFrame.
 +
 +2011-05-01 - 1ba5727 - lavc 53.2.0 - AVFrame
 +  Add a pkt_pos field to AVFrame.
 +
 +2011-04-29 - 35ceaa7 - lavu 51.2.0 - mem.h
 +  Add av_dynarray_add function for adding
 +  an element to a dynamic array.
 +
  2011-04-26 - bebe72f - lavu 51.1.0 - avutil.h
    Add AVPictureType enum and av_get_picture_type_char(), deprecate
    FF_*_TYPE defines and av_get_pict_type_char() defined in
      333e894 deprecate url_open_protocol
      e230705 deprecate url_poll and URLPollEntry
  
 -2011-04-10 - lavu  50.40.0 - pixfmt.h
 -  Add PIX_FMT_BGR48LE and PIX_FMT_BGR48BE pixel formats
 -
  2011-04-08 - lavf 52.106.0 - avformat.h
    Minor avformat.h cleanup:
      a9bf9d8 deprecate av_guess_image2_codec
      d9d86e0 rename url_fprintf -> avio_printf
      59f65d9 deprecate url_setbufsize
      3e68b3b deprecate url_ferror
 -    66e5b1d deprecate url_feof
      e8bb2e2 deprecate url_fget_max_packet_size
      76aa876 rename url_fsize -> avio_size
      e519753 deprecate url_fgetc
  2011-03-25 - 34b47d7 - lavc 52.115.0 - AVCodecContext.audio_service_type
    Add audio_service_type field to AVCodecContext.
  
 +2011-03-17 - e309fdc - lavu 50.40.0 - pixfmt.h
 +  Add PIX_FMT_BGR48LE and PIX_FMT_BGR48BE pixel formats
 +
  2011-03-02 - 863c471 - lavf  52.103.0 - av_pkt_dump2, av_pkt_dump_log2
    Add new functions av_pkt_dump2, av_pkt_dump_log2 that uses the
    source stream timebase for outputting timestamps. Deprecate
  2011-02-02 - dfd2a00 - lavu 50.37.0 - log.h
    Make av_dlog public.
  
 +2011-01-31 - 7b3ea55 - lavfi 1.76.0 - vsrc_buffer
 +  Add sample_aspect_ratio fields to vsrc_buffer arguments
 +
 +2011-01-31 - 910b5b8 - lavfi 1.75.0 - AVFilterLink sample_aspect_ratio
 +  Add sample_aspect_ratio field to AVFilterLink.
 +
  2011-01-15 - a242ac3 - lavfi 1.74.0 - AVFilterBufferRefAudioProps
    Rename AVFilterBufferRefAudioProps.samples_nb to nb_samples.
  
diff --combined libavcodec/flacenc.c
@@@ -2,28 -2,29 +2,30 @@@
   * FLAC audio encoder
   * Copyright (c) 2006  Justin Ruggles <justin.ruggles@gmail.com>
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
 - * Libav is distributed in the hope that it will be useful,
 + * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
 - * License along with Libav; if not, write to the Free Software
 + * License along with FFmpeg; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
 +#include "libavutil/avassert.h"
  #include "libavutil/crc.h"
+ #include "libavutil/intmath.h"
  #include "libavutil/md5.h"
  #include "libavutil/opt.h"
  #include "avcodec.h"
+ #include "dsputil.h"
  #include "get_bits.h"
  #include "golomb.h"
  #include "internal.h"
@@@ -66,6 -67,7 +68,7 @@@ typedef struct FlacSubframe 
      int type;
      int type_code;
      int obits;
+     int wasted;
      int order;
      int32_t coefs[MAX_LPC_ORDER];
      int shift;
@@@ -101,6 -103,9 +104,9 @@@ typedef struct FlacEncodeContext 
      AVCodecContext *avctx;
      LPCContext lpc_ctx;
      struct AVMD5 *md5ctx;
+     uint8_t *md5_buffer;
+     unsigned int md5_buffer_size;
+     DSPContext dsp;
  } FlacEncodeContext;
  
  
@@@ -140,7 -145,7 +146,7 @@@ static int select_blocksize(int sampler
      int target;
      int blocksize;
  
 -    assert(samplerate > 0);
 +    av_assert0(samplerate > 0);
      blocksize = ff_flac_blocksize_table[1];
      target    = (samplerate * block_time_ms) / 1000;
      for (i = 0; i < 16; i++) {
@@@ -376,31 -381,11 +382,33 @@@ static av_cold int flac_encode_init(AVC
          return AVERROR(ENOMEM);
  #endif
  
 +    if (channels == 3 &&
 +            avctx->channel_layout != (AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER) ||
 +        channels == 4 &&
 +            avctx->channel_layout != AV_CH_LAYOUT_2_2 &&
 +            avctx->channel_layout != AV_CH_LAYOUT_QUAD ||
 +        channels == 5 &&
 +            avctx->channel_layout != AV_CH_LAYOUT_5POINT0 &&
 +            avctx->channel_layout != AV_CH_LAYOUT_5POINT0_BACK ||
 +        channels == 6 &&
 +            avctx->channel_layout != AV_CH_LAYOUT_5POINT1 &&
 +            avctx->channel_layout != AV_CH_LAYOUT_5POINT1_BACK) {
 +        if (avctx->channel_layout) {
 +            av_log(avctx, AV_LOG_ERROR, "Channel layout not supported by Flac, "
 +                                             "output stream will have incorrect "
 +                                             "channel layout.\n");
 +        } else {
 +            av_log(avctx, AV_LOG_WARNING, "No channel layout specified. The encoder "
 +                                               "will use Flac channel layout for "
 +                                               "%d channels.\n", channels);
 +        }
 +    }
 +
      ret = ff_lpc_init(&s->lpc_ctx, avctx->frame_size,
                        s->options.max_prediction_order, FF_LPC_TYPE_LEVINSON);
  
+     ff_dsputil_init(&s->dsp, avctx);
      dprint_compression_options(s);
  
      return ret;
@@@ -433,8 -418,10 +441,10 @@@ static void init_frame(FlacEncodeContex
          }
      }
  
-     for (ch = 0; ch < s->channels; ch++)
+     for (ch = 0; ch < s->channels; ch++) {
+         frame->subframes[ch].wasted = 0;
          frame->subframes[ch].obits = 16;
+     }
  
      frame->verbatim_only = 0;
  }
@@@ -455,10 -442,10 +465,10 @@@ static void copy_samples(FlacEncodeCont
  }
  
  
- static int rice_count_exact(int32_t *res, int n, int k)
+ static uint64_t rice_count_exact(int32_t *res, int n, int k)
  {
      int i;
-     int count = 0;
+     uint64_t count = 0;
  
      for (i = 0; i < n; i++) {
          int32_t v = -2 * res[i] - 1;
  }
  
  
- static int subframe_count_exact(FlacEncodeContext *s, FlacSubframe *sub,
-                                 int pred_order)
+ static uint64_t subframe_count_exact(FlacEncodeContext *s, FlacSubframe *sub,
+                                      int pred_order)
  {
      int p, porder, psize;
      int i, part_end;
-     int count = 0;
+     uint64_t count = 0;
  
      /* subframe header */
      count += 8;
  /**
   * Solve for d/dk(rice_encode_count) = n-((sum-(n>>1))>>(k+1)) = 0.
   */
- static int find_optimal_param(uint32_t sum, int n)
+ static int find_optimal_param(uint64_t sum, int n)
  {
      int k;
-     uint32_t sum2;
+     uint64_t sum2;
  
      if (sum <= n >> 1)
          return 0;
      sum2 = sum - (n >> 1);
-     k    = av_log2(n < 256 ? FASTDIV(sum2, n) : sum2 / n);
+     k    = av_log2(av_clipl_int32(sum2 / n));
      return FFMIN(k, MAX_RICE_PARAM);
  }
  
  
- static uint32_t calc_optimal_rice_params(RiceContext *rc, int porder,
-                                          uint32_t *sums, int n, int pred_order)
+ static uint64_t calc_optimal_rice_params(RiceContext *rc, int porder,
+                                          uint64_t *sums, int n, int pred_order)
  {
      int i;
      int k, cnt, part;
-     uint32_t all_bits;
+     uint64_t all_bits;
  
      part     = (1 << porder);
      all_bits = 4 * part;
  
  
  static void calc_sums(int pmin, int pmax, uint32_t *data, int n, int pred_order,
-                       uint32_t sums[][MAX_PARTITIONS])
+                       uint64_t sums[][MAX_PARTITIONS])
  {
      int i, j;
      int parts;
      res     = &data[pred_order];
      res_end = &data[n >> pmax];
      for (i = 0; i < parts; i++) {
-         uint32_t sum = 0;
+         uint64_t sum = 0;
          while (res < res_end)
              sum += *(res++);
          sums[pmax][i] = sum;
  }
  
  
- static uint32_t calc_rice_params(RiceContext *rc, int pmin, int pmax,
+ static uint64_t calc_rice_params(RiceContext *rc, int pmin, int pmax,
                                   int32_t *data, int n, int pred_order)
  {
      int i;
-     uint32_t bits[MAX_PARTITION_ORDER+1];
+     uint64_t bits[MAX_PARTITION_ORDER+1];
      int opt_porder;
      RiceContext tmp_rc;
      uint32_t *udata;
-     uint32_t sums[MAX_PARTITION_ORDER+1][MAX_PARTITIONS];
+     uint64_t sums[MAX_PARTITION_ORDER+1][MAX_PARTITIONS];
  
 -    assert(pmin >= 0 && pmin <= MAX_PARTITION_ORDER);
 -    assert(pmax >= 0 && pmax <= MAX_PARTITION_ORDER);
 -    assert(pmin <= pmax);
 +    av_assert1(pmin >= 0 && pmin <= MAX_PARTITION_ORDER);
 +    av_assert1(pmax >= 0 && pmax <= MAX_PARTITION_ORDER);
 +    av_assert1(pmin <= pmax);
  
      udata = av_malloc(n * sizeof(uint32_t));
      for (i = 0; i < n; i++)
@@@ -629,7 -616,7 +639,7 @@@ static int get_max_p_order(int max_pord
  }
  
  
- static uint32_t find_subframe_rice_params(FlacEncodeContext *s,
+ static uint64_t find_subframe_rice_params(FlacEncodeContext *s,
                                            FlacSubframe *sub, int pred_order)
  {
      int pmin = get_max_p_order(s->options.min_partition_order,
      int pmax = get_max_p_order(s->options.max_partition_order,
                                 s->frame.blocksize, pred_order);
  
-     uint32_t bits = 8 + pred_order * sub->obits + 2 + 4;
+     uint64_t bits = 8 + pred_order * sub->obits + 2 + 4;
      if (sub->type == FLAC_SUBFRAME_LPC)
          bits += 4 + 5 + pred_order * s->options.lpc_coeff_precision;
      bits += calc_rice_params(&sub->rc, pmin, pmax, sub->residual,
@@@ -842,7 -829,7 +852,7 @@@ static int encode_residual_ch(FlacEncod
      sub->type = FLAC_SUBFRAME_FIXED;
      if (s->options.lpc_type == FF_LPC_TYPE_NONE  ||
          s->options.lpc_type == FF_LPC_TYPE_FIXED || n <= max_order) {
-         uint32_t bits[MAX_FIXED_ORDER+1];
+         uint64_t bits[MAX_FIXED_ORDER+1];
          if (max_order > MAX_FIXED_ORDER)
              max_order = MAX_FIXED_ORDER;
          opt_order = 0;
          omethod == ORDER_METHOD_4LEVEL ||
          omethod == ORDER_METHOD_8LEVEL) {
          int levels = 1 << omethod;
-         uint32_t bits[1 << ORDER_METHOD_8LEVEL];
+         uint64_t bits[1 << ORDER_METHOD_8LEVEL];
          int order;
          int opt_index   = levels-1;
          opt_order       = max_order-1;
          opt_order++;
      } else if (omethod == ORDER_METHOD_SEARCH) {
          // brute-force optimal order search
-         uint32_t bits[MAX_LPC_ORDER];
+         uint64_t bits[MAX_LPC_ORDER];
          opt_order = 0;
          bits[0]   = UINT32_MAX;
          for (i = min_order-1; i < max_order; i++) {
          }
          opt_order++;
      } else if (omethod == ORDER_METHOD_LOG) {
-         uint32_t bits[MAX_LPC_ORDER];
+         uint64_t bits[MAX_LPC_ORDER];
          int step;
  
          opt_order = min_order - 1 + (max_order-min_order)/3;
@@@ -975,7 -962,8 +985,8 @@@ static int count_frame_header(FlacEncod
  
  static int encode_frame(FlacEncodeContext *s)
  {
-     int ch, count;
+     int ch;
+     uint64_t count;
  
      count = count_frame_header(s);
  
      count += (8 - (count & 7)) & 7; // byte alignment
      count += 16;                    // CRC-16
  
-     return count >> 3;
+     count >>= 3;
+     if (count > INT_MAX)
+         return AVERROR_BUG;
+     return count;
+ }
+ static void remove_wasted_bits(FlacEncodeContext *s)
+ {
+     int ch, i;
+     for (ch = 0; ch < s->channels; ch++) {
+         FlacSubframe *sub = &s->frame.subframes[ch];
+         int32_t v         = 0;
+         for (i = 0; i < s->frame.blocksize; i++) {
+             v |= sub->samples[i];
+             if (v & 1)
+                 break;
+         }
+         if (v && !(v & 1)) {
+             v = av_ctz(v);
+             for (i = 0; i < s->frame.blocksize; i++)
+                 sub->samples[i] >>= v;
+             sub->wasted = v;
+             sub->obits -= v;
+         }
+     }
  }
  
  
@@@ -1134,7 -1152,9 +1175,9 @@@ static void write_subframes(FlacEncodeC
          /* subframe header */
          put_bits(&s->pb, 1, 0);
          put_bits(&s->pb, 6, sub->type_code);
-         put_bits(&s->pb, 1, 0); /* no wasted bits */
+         put_bits(&s->pb, 1, !!sub->wasted);
+         if (sub->wasted)
+             put_bits(&s->pb, sub->wasted, 1);
  
          /* subframe */
          if (sub->type == FLAC_SUBFRAME_CONSTANT) {
@@@ -1199,17 -1219,26 +1242,26 @@@ static int write_frame(FlacEncodeContex
  }
  
  
- static void update_md5_sum(FlacEncodeContext *s, const int16_t *samples)
+ static int update_md5_sum(FlacEncodeContext *s, const int16_t *samples)
  {
- #if HAVE_BIGENDIAN
-     int i;
-     for (i = 0; i < s->frame.blocksize * s->channels; i++) {
-         int16_t smp = av_le2ne16(samples[i]);
-         av_md5_update(s->md5ctx, (uint8_t *)&smp, 2);
+     const uint8_t *buf;
+     int buf_size = s->frame.blocksize * s->channels * 2;
+     if (HAVE_BIGENDIAN) {
+         av_fast_malloc(&s->md5_buffer, &s->md5_buffer_size, buf_size);
+         if (!s->md5_buffer)
+             return AVERROR(ENOMEM);
      }
- #else
-     av_md5_update(s->md5ctx, (const uint8_t *)samples, s->frame.blocksize*s->channels*2);
+     buf = (const uint8_t *)samples;
+ #if HAVE_BIGENDIAN
+     s->dsp.bswap16_buf((uint16_t *)s->md5_buffer,
+                        (const uint16_t *)samples, buf_size / 2);
+     buf = s->md5_buffer;
  #endif
+     av_md5_update(s->md5ctx, buf, buf_size);
+     return 0;
  }
  
  
@@@ -1243,23 -1272,34 +1295,32 @@@ static int flac_encode_frame(AVCodecCon
  
      channel_decorrelation(s);
  
+     remove_wasted_bits(s);
      frame_bytes = encode_frame(s);
  
      /* fallback to verbatim mode if the compressed frame is larger than it
         would be if encoded uncompressed. */
-     if (frame_bytes > s->max_framesize) {
+     if (frame_bytes < 0 || frame_bytes > s->max_framesize) {
          s->frame.verbatim_only = 1;
          frame_bytes = encode_frame(s);
+         if (frame_bytes < 0) {
+             av_log(avctx, AV_LOG_ERROR, "Bad frame count\n");
+             return frame_bytes;
+         }
      }
  
 -    if ((ret = ff_alloc_packet(avpkt, frame_bytes))) {
 -        av_log(avctx, AV_LOG_ERROR, "Error getting output packet\n");
 +    if ((ret = ff_alloc_packet2(avctx, avpkt, frame_bytes)))
          return ret;
 -    }
  
      out_bytes = write_frame(s, avpkt);
  
      s->frame_count++;
      s->sample_count += frame->nb_samples;
-     update_md5_sum(s, samples);
+     if ((ret = update_md5_sum(s, samples)) < 0) {
+         av_log(avctx, AV_LOG_ERROR, "Error updating MD5 checksum\n");
+         return ret;
+     }
      if (out_bytes > s->max_encoded_framesize)
          s->max_encoded_framesize = out_bytes;
      if (out_bytes < s->min_framesize)
@@@ -1278,6 -1318,7 +1339,7 @@@ static av_cold int flac_encode_close(AV
      if (avctx->priv_data) {
          FlacEncodeContext *s = avctx->priv_data;
          av_freep(&s->md5ctx);
+         av_freep(&s->md5_buffer);
          ff_lpc_end(&s->lpc_ctx);
      }
      av_freep(&avctx->extradata);
@@@ -1330,7 -1371,7 +1392,7 @@@ AVCodec ff_flac_encoder = 
      .init           = flac_encode_init,
      .encode2        = flac_encode_frame,
      .close          = flac_encode_close,
 -    .capabilities   = CODEC_CAP_SMALL_LAST_FRAME | CODEC_CAP_DELAY,
 +    .capabilities   = CODEC_CAP_SMALL_LAST_FRAME | CODEC_CAP_DELAY | CODEC_CAP_LOSSLESS,
      .sample_fmts    = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
                                                       AV_SAMPLE_FMT_NONE },
      .long_name      = NULL_IF_CONFIG_SMALL("FLAC (Free Lossless Audio Codec)"),
diff --combined libavformat/Makefile
@@@ -1,5 -1,3 +1,5 @@@
 +include $(SUBDIR)../config.mak
 +
  NAME = avformat
  FFLIBS = avcodec avutil
  
@@@ -21,25 -19,21 +21,25 @@@ OBJS = allformats.o         
         riff.o               \
         sdp.o                \
         seek.o               \
 +       subtitles.o          \
         utils.o              \
  
  OBJS-$(CONFIG_NETWORK)                   += network.o
  
  # muxers/demuxers
- OBJS-$(CONFIG_A64_MUXER)                 += a64.o
+ OBJS-$(CONFIG_A64_MUXER)                 += a64.o rawenc.o
  OBJS-$(CONFIG_AAC_DEMUXER)               += aacdec.o rawdec.o
  OBJS-$(CONFIG_AC3_DEMUXER)               += ac3dec.o rawdec.o
  OBJS-$(CONFIG_AC3_MUXER)                 += rawenc.o
 +OBJS-$(CONFIG_ACT_DEMUXER)               += act.o
 +OBJS-$(CONFIG_ADF_DEMUXER)               += bintext.o sauce.o
  OBJS-$(CONFIG_ADX_DEMUXER)               += adxdec.o
  OBJS-$(CONFIG_ADX_MUXER)                 += rawenc.o
  OBJS-$(CONFIG_ADTS_MUXER)                += adtsenc.o
  OBJS-$(CONFIG_AEA_DEMUXER)               += aea.o pcm.o
 -OBJS-$(CONFIG_AIFF_DEMUXER)              += aiffdec.o pcm.o
 -OBJS-$(CONFIG_AIFF_MUXER)                += aiffenc.o
 +OBJS-$(CONFIG_AIFF_DEMUXER)              += aiffdec.o pcm.o isom.o \
 +                                            mov_chan.o
 +OBJS-$(CONFIG_AIFF_MUXER)                += aiffenc.o isom.o
  OBJS-$(CONFIG_AMR_DEMUXER)               += amr.o
  OBJS-$(CONFIG_AMR_MUXER)                 += amr.o
  OBJS-$(CONFIG_ANM_DEMUXER)               += anm.o
@@@ -56,19 -50,14 +56,19 @@@ OBJS-$(CONFIG_AVI_DEMUXER
  OBJS-$(CONFIG_AVI_MUXER)                 += avienc.o
  OBJS-$(CONFIG_AVISYNTH)                  += avisynth.o
  OBJS-$(CONFIG_AVM2_MUXER)                += swfenc.o swf.o
 +OBJS-$(CONFIG_AVR_DEMUXER)               += avr.o
  OBJS-$(CONFIG_AVS_DEMUXER)               += avs.o vocdec.o voc.o
  OBJS-$(CONFIG_BETHSOFTVID_DEMUXER)       += bethsoftvid.o
  OBJS-$(CONFIG_BFI_DEMUXER)               += bfi.o
  OBJS-$(CONFIG_BINK_DEMUXER)              += bink.o
 +OBJS-$(CONFIG_BINTEXT_DEMUXER)           += bintext.o sauce.o
 +OBJS-$(CONFIG_BIT_DEMUXER)               += bit.o
 +OBJS-$(CONFIG_BIT_MUXER)                 += bit.o
  OBJS-$(CONFIG_BMV_DEMUXER)               += bmv.o
  OBJS-$(CONFIG_C93_DEMUXER)               += c93.o vocdec.o voc.o
  OBJS-$(CONFIG_CAF_DEMUXER)               += cafdec.o caf.o mov.o mov_chan.o \
                                              isom.o
 +OBJS-$(CONFIG_CAF_MUXER)                 += cafenc.o caf.o riff.o isom.o
  OBJS-$(CONFIG_CAVSVIDEO_DEMUXER)         += cavsvideodec.o rawdec.o
  OBJS-$(CONFIG_CAVSVIDEO_MUXER)           += rawenc.o
  OBJS-$(CONFIG_CDG_DEMUXER)               += cdg.o
@@@ -82,7 -71,6 +82,7 @@@ OBJS-$(CONFIG_DIRAC_MUXER
  OBJS-$(CONFIG_DNXHD_DEMUXER)             += dnxhddec.o rawdec.o
  OBJS-$(CONFIG_DNXHD_MUXER)               += rawenc.o
  OBJS-$(CONFIG_DSICIN_DEMUXER)            += dsicin.o
 +OBJS-$(CONFIG_DTSHD_DEMUXER)             += dtshddec.o
  OBJS-$(CONFIG_DTS_DEMUXER)               += dtsdec.o rawdec.o
  OBJS-$(CONFIG_DTS_MUXER)                 += rawenc.o
  OBJS-$(CONFIG_DV_DEMUXER)                += dv.o
@@@ -116,8 -104,6 +116,8 @@@ OBJS-$(CONFIG_GXF_MUXER
  OBJS-$(CONFIG_G722_DEMUXER)              += g722.o rawdec.o
  OBJS-$(CONFIG_G722_MUXER)                += rawenc.o
  OBJS-$(CONFIG_G723_1_DEMUXER)            += g723_1.o
 +OBJS-$(CONFIG_G723_1_MUXER)              += rawenc.o
 +OBJS-$(CONFIG_G729_DEMUXER)              += g729dec.o
  OBJS-$(CONFIG_H261_DEMUXER)              += h261dec.o rawdec.o
  OBJS-$(CONFIG_H261_MUXER)                += rawenc.o
  OBJS-$(CONFIG_H263_DEMUXER)              += h263dec.o rawdec.o
@@@ -125,10 -111,7 +125,10 @@@ OBJS-$(CONFIG_H263_MUXER
  OBJS-$(CONFIG_H264_DEMUXER)              += h264dec.o rawdec.o
  OBJS-$(CONFIG_H264_MUXER)                += rawenc.o
  OBJS-$(CONFIG_HLS_DEMUXER)               += hls.o
 +OBJS-$(CONFIG_ICO_DEMUXER)               += icodec.o
 +OBJS-$(CONFIG_ICO_MUXER)                 += icoenc.o
  OBJS-$(CONFIG_IDCIN_DEMUXER)             += idcin.o
 +OBJS-$(CONFIG_IDF_DEMUXER)               += bintext.o
  OBJS-$(CONFIG_IFF_DEMUXER)               += iff.o
  OBJS-$(CONFIG_ILBC_DEMUXER)              += ilbc.o
  OBJS-$(CONFIG_ILBC_MUXER)                += ilbc.o
@@@ -145,14 -128,10 +145,14 @@@ OBJS-$(CONFIG_ISS_DEMUXER
  OBJS-$(CONFIG_IV8_DEMUXER)               += iv8.o
  OBJS-$(CONFIG_IVF_DEMUXER)               += ivfdec.o
  OBJS-$(CONFIG_IVF_MUXER)                 += ivfenc.o
 +OBJS-$(CONFIG_JACOSUB_DEMUXER)           += jacosubdec.o
 +OBJS-$(CONFIG_JACOSUB_MUXER)             += jacosubenc.o rawenc.o
  OBJS-$(CONFIG_JV_DEMUXER)                += jvdec.o
  OBJS-$(CONFIG_LATM_DEMUXER)              += rawdec.o
 -OBJS-$(CONFIG_LATM_MUXER)                += latmenc.o
 +OBJS-$(CONFIG_LATM_MUXER)                += latmenc.o rawenc.o
  OBJS-$(CONFIG_LMLM4_DEMUXER)             += lmlm4.o
 +OBJS-$(CONFIG_LOAS_DEMUXER)              += loasdec.o
 +OBJS-$(CONFIG_LVF_DEMUXER)               += lvfdec.o
  OBJS-$(CONFIG_LXF_DEMUXER)               += lxfdec.o
  OBJS-$(CONFIG_M4V_DEMUXER)               += m4vdec.o rawdec.o
  OBJS-$(CONFIG_M4V_MUXER)                 += rawenc.o
@@@ -162,9 -141,6 +162,9 @@@ OBJS-$(CONFIG_MATROSKA_MUXER
                                              isom.o avc.o \
                                              flacenc_header.o avlanguage.o
  OBJS-$(CONFIG_MD5_MUXER)                 += md5enc.o
 +OBJS-$(CONFIG_MGSTS_DEMUXER)             += mgsts.o
 +OBJS-$(CONFIG_MICRODVD_DEMUXER)          += microdvddec.o
 +OBJS-$(CONFIG_MICRODVD_MUXER)            += microdvdenc.o rawenc.o
  OBJS-$(CONFIG_MJPEG_DEMUXER)             += rawdec.o
  OBJS-$(CONFIG_MJPEG_MUXER)               += rawenc.o
  OBJS-$(CONFIG_MLP_DEMUXER)               += rawdec.o
@@@ -210,7 -186,6 +210,7 @@@ OBJS-$(CONFIG_OGG_DEMUXER
                                              oggparsedirac.o  \
                                              oggparseflac.o   \
                                              oggparseogm.o    \
 +                                            oggparseopus.o   \
                                              oggparseskeleton.o \
                                              oggparsespeex.o  \
                                              oggparsetheora.o \
@@@ -220,7 -195,6 +220,7 @@@ OBJS-$(CONFIG_OGG_MUXER
                                              vorbiscomment.o
  OBJS-$(CONFIG_OMA_DEMUXER)               += omadec.o pcm.o oma.o
  OBJS-$(CONFIG_OMA_MUXER)                 += omaenc.o rawenc.o oma.o id3v2enc.o
 +OBJS-$(CONFIG_PAF_DEMUXER)               += paf.o
  OBJS-$(CONFIG_PCM_ALAW_DEMUXER)          += pcmdec.o pcm.o
  OBJS-$(CONFIG_PCM_ALAW_MUXER)            += pcmenc.o rawenc.o
  OBJS-$(CONFIG_PCM_F32BE_DEMUXER)         += pcmdec.o pcm.o
@@@ -267,7 -241,6 +267,7 @@@ OBJS-$(CONFIG_QCP_DEMUXER
  OBJS-$(CONFIG_R3D_DEMUXER)               += r3d.o
  OBJS-$(CONFIG_RAWVIDEO_DEMUXER)          += rawvideodec.o
  OBJS-$(CONFIG_RAWVIDEO_MUXER)            += rawenc.o
 +OBJS-$(CONFIG_REALTEXT_DEMUXER)          += realtextdec.o
  OBJS-$(CONFIG_RL2_DEMUXER)               += rl2.o
  OBJS-$(CONFIG_RM_DEMUXER)                += rmdec.o rm.o rmsipr.o
  OBJS-$(CONFIG_RM_MUXER)                  += rmenc.o rm.o
@@@ -312,10 -285,8 +312,10 @@@ OBJS-$(CONFIG_RTSP_DEMUXER
                                              urldecode.o
  OBJS-$(CONFIG_RTSP_MUXER)                += rtsp.o rtspenc.o httpauth.o \
                                              rtpenc_chain.o urldecode.o
 +OBJS-$(CONFIG_SAMI_DEMUXER)              += samidec.o
  OBJS-$(CONFIG_SAP_DEMUXER)               += sapdec.o
  OBJS-$(CONFIG_SAP_MUXER)                 += sapenc.o rtpenc_chain.o
 +OBJS-$(CONFIG_SBG_DEMUXER)               += sbgdec.o
  OBJS-$(CONFIG_SDP_DEMUXER)               += rtsp.o
  OBJS-$(CONFIG_SEGAFILM_DEMUXER)          += segafilm.o
  OBJS-$(CONFIG_SEGMENT_MUXER)             += segment.o
@@@ -325,22 -296,18 +325,22 @@@ OBJS-$(CONFIG_SMACKER_DEMUXER
  OBJS-$(CONFIG_SMJPEG_DEMUXER)            += smjpegdec.o smjpeg.o
  OBJS-$(CONFIG_SMJPEG_MUXER)              += smjpegenc.o smjpeg.o
  OBJS-$(CONFIG_SMOOTHSTREAMING_MUXER)     += smoothstreamingenc.o isom.o
 +OBJS-$(CONFIG_SMUSH_DEMUXER)             += smush.o
  OBJS-$(CONFIG_SOL_DEMUXER)               += sol.o pcm.o
  OBJS-$(CONFIG_SOX_DEMUXER)               += soxdec.o pcm.o
  OBJS-$(CONFIG_SOX_MUXER)                 += soxenc.o
  OBJS-$(CONFIG_SPDIF_DEMUXER)             += spdif.o spdifdec.o
  OBJS-$(CONFIG_SPDIF_MUXER)               += spdif.o spdifenc.o
  OBJS-$(CONFIG_SRT_DEMUXER)               += srtdec.o
 -OBJS-$(CONFIG_SRT_MUXER)                 += rawenc.o
 +OBJS-$(CONFIG_SRT_MUXER)                 += srtenc.o
  OBJS-$(CONFIG_STR_DEMUXER)               += psxstr.o
 +OBJS-$(CONFIG_SUBVIEWER_DEMUXER)         += subviewerdec.o
  OBJS-$(CONFIG_SWF_DEMUXER)               += swfdec.o swf.o
  OBJS-$(CONFIG_SWF_MUXER)                 += swfenc.o swf.o
 +OBJS-$(CONFIG_TAK_DEMUXER)               += takdec.o apetag.o img2.o rawdec.o
  OBJS-$(CONFIG_THP_DEMUXER)               += thp.o
  OBJS-$(CONFIG_TIERTEXSEQ_DEMUXER)        += tiertexseq.o
 +OBJS-$(CONFIG_MKVTIMESTAMP_V2_MUXER)     += mkvtimestamp_v2.o
  OBJS-$(CONFIG_TMV_DEMUXER)               += tmv.o
  OBJS-$(CONFIG_TRUEHD_DEMUXER)            += rawdec.o
  OBJS-$(CONFIG_TRUEHD_MUXER)              += rawenc.o
@@@ -361,16 -328,12 +361,16 @@@ OBJS-$(CONFIG_WC3_DEMUXER
  OBJS-$(CONFIG_WEBM_MUXER)                += matroskaenc.o matroska.o \
                                              isom.o avc.o \
                                              flacenc_header.o avlanguage.o
 +OBJS-$(CONFIG_WEBVTT_DEMUXER)            += webvttdec.o
  OBJS-$(CONFIG_WSAUD_DEMUXER)             += westwood_aud.o
  OBJS-$(CONFIG_WSVQA_DEMUXER)             += westwood_vqa.o
 -OBJS-$(CONFIG_WTV_DEMUXER)               += wtv.o asfdec.o asf.o asfcrypt.o \
 +OBJS-$(CONFIG_WTV_DEMUXER)               += wtvdec.o wtv.o asfdec.o asf.o asfcrypt.o \
                                              avlanguage.o mpegts.o isom.o
 +OBJS-$(CONFIG_WTV_MUXER)                 += wtvenc.o wtv.o asf.o asfenc.o
  OBJS-$(CONFIG_WV_DEMUXER)                += wv.o apetag.o img2.o
 +OBJS-$(CONFIG_WV_MUXER)                  += wvenc.o apetagenc.o
  OBJS-$(CONFIG_XA_DEMUXER)                += xa.o
 +OBJS-$(CONFIG_XBIN_DEMUXER)              += bintext.o sauce.o
  OBJS-$(CONFIG_XMV_DEMUXER)               += xmv.o
  OBJS-$(CONFIG_XWMA_DEMUXER)              += xwma.o
  OBJS-$(CONFIG_YOP_DEMUXER)               += yop.o
@@@ -378,15 -341,10 +378,15 @@@ OBJS-$(CONFIG_YUV4MPEGPIPE_MUXER
  OBJS-$(CONFIG_YUV4MPEGPIPE_DEMUXER)      += yuv4mpeg.o
  
  # external libraries
 +OBJS-$(CONFIG_LIBMODPLUG_DEMUXER)        += libmodplug.o
 +OBJS-$(CONFIG_LIBNUT_DEMUXER)            += libnut.o
 +OBJS-$(CONFIG_LIBNUT_MUXER)              += libnut.o
  OBJS-$(CONFIG_LIBRTMP)                   += librtmp.o
  
  # protocols I/O
  OBJS-$(CONFIG_APPLEHTTP_PROTOCOL)        += hlsproto.o
 +OBJS-$(CONFIG_BLURAY_PROTOCOL)           += bluray.o
 +OBJS-$(CONFIG_CACHE_PROTOCOL)            += cache.o
  OBJS-$(CONFIG_CONCAT_PROTOCOL)           += concat.o
  OBJS-$(CONFIG_CRYPTO_PROTOCOL)           += crypto.o
  OBJS-$(CONFIG_FFRTMPCRYPT_PROTOCOL)      += rtmpcrypt.o rtmpdh.o
@@@ -415,6 -373,10 +415,6 @@@ OBJS-$(CONFIG_UDP_PROTOCOL
  
  SKIPHEADERS-$(CONFIG_FFRTMPCRYPT_PROTOCOL) += rtmpdh.h
  SKIPHEADERS-$(CONFIG_NETWORK)            += network.h rtsp.h
 -
 -EXAMPLES  = metadata                                                    \
 -            output                                                      \
 -
  TESTPROGS = seek                                                        \
              url                                                         \
  
@@@ -422,3 -384,5 +422,3 @@@ TOOLS     = avioca
              ismindex                                                    \
              pktdumper                                                   \
              probetest                                                   \
 -
 -$(SUBDIR)output-example$(EXESUF): ELIBS = $(patsubst %,$(LD_LIB),swscale)
diff --combined libavutil/Makefile
@@@ -1,5 -1,3 +1,5 @@@
 +include $(SUBDIR)../config.mak
 +
  NAME = avutil
  
  HEADERS = adler32.h                                                     \
@@@ -12,7 -10,6 +12,7 @@@
            avutil.h                                                      \
            base64.h                                                      \
            blowfish.h                                                    \
 +          bprint.h                                                      \
            bswap.h                                                       \
            common.h                                                      \
            cpu.h                                                         \
@@@ -41,8 -38,6 +41,8 @@@
            samplefmt.h                                                   \
            sha.h                                                         \
            time.h                                                        \
 +          timecode.h                                                    \
 +          timestamp.h                                                   \
            version.h                                                     \
            xtea.h                                                        \
  
@@@ -62,7 -57,6 +62,7 @@@ OBJS = adler32.
         avstring.o                                                       \
         base64.o                                                         \
         blowfish.o                                                       \
 +       bprint.o                                                         \
         cpu.o                                                            \
         crc.o                                                            \
         des.o                                                            \
         float_dsp.o                                                      \
         imgutils.o                                                       \
         intfloat_readwrite.o                                             \
+        intmath.o                                                        \
         lfg.o                                                            \
         lls.o                                                            \
         log.o                                                            \
-        log2.o                                                           \
         log2_tab.o                                                       \
         mathematics.o                                                    \
         md5.o                                                            \
         samplefmt.o                                                      \
         sha.o                                                            \
         time.o                                                           \
 +       timecode.o                                                       \
         tree.o                                                           \
         utils.o                                                          \
 +       xga_font_data.o                                                  \
         xtea.o                                                           \
  
  OBJS-$(CONFIG_LZO)                      += lzo.o
@@@ -108,28 -100,16 +108,28 @@@ TESTPROGS = adler3
              avstring                                                    \
              base64                                                      \
              blowfish                                                    \
 +            bprint                                                      \
              cpu                                                         \
              crc                                                         \
              des                                                         \
 +            error                                                       \
              eval                                                        \
 +            file                                                        \
              fifo                                                        \
              lfg                                                         \
              lls                                                         \
              md5                                                         \
              opt                                                         \
 +            pca                                                         \
              parseutils                                                  \
 +            random_seed                                                 \
 +            rational                                                    \
              sha                                                         \
              tree                                                        \
              xtea                                                        \
 +
 +TESTPROGS-$(HAVE_LZO1X_999_COMPRESS) += lzo
 +
 +TOOLS = ffeval ffescape
 +
 +$(SUBDIR)lzo-test$(EXESUF): ELIBS = -llzo2
diff --combined libavutil/intmath.c
@@@ -1,18 -1,18 +1,18 @@@
  /*
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
 - * Libav is distributed in the hope that it will be useful,
 + * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
 - * License along with Libav; if not, write to the Free Software
 + * License along with FFmpeg; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
@@@ -32,3 -32,8 +32,8 @@@ int av_log2_16bit(unsigned v
  {
      return ff_log2_16bit(v);
  }
+ int av_ctz(int v)
+ {
+     return ff_ctz(v);
+ }
diff --combined libavutil/intmath.h
@@@ -1,20 -1,20 +1,20 @@@
  /*
   * Copyright (c) 2010 Mans Rullgard <mans@mansr.com>
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
 - * Libav is distributed in the hope that it will be useful,
 + * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
 - * License along with Libav; if not, write to the Free Software
 + * License along with FFmpeg; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
   * @{
   */
  
 +#if   ARCH_ARM
 +#   include "arm/intmath.h"
 +#endif
 +
  #if HAVE_FAST_CLZ && AV_GCC_VERSION_AT_LEAST(3,4)
  
  #ifndef ff_log2
@@@ -92,4 -88,59 +92,59 @@@ static av_always_inline av_const int ff
  /**
   * @}
   */
+ /**
+  * @addtogroup lavu_math
+  * @{
+  */
+ #if HAVE_FAST_CLZ && AV_GCC_VERSION_AT_LEAST(3,4)
+ #ifndef ff_ctz
+ #define ff_ctz(v) __builtin_ctz(v)
+ #endif
+ #endif
+ #ifndef ff_ctz
+ #define ff_ctz ff_ctz_c
+ static av_always_inline av_const int ff_ctz_c(int v)
+ {
+     int c;
+     if (v & 0x1)
+         return 0;
+     c = 1;
+     if (!(v & 0xffff)) {
+         v >>= 16;
+         c += 16;
+     }
+     if (!(v & 0xff)) {
+         v >>= 8;
+         c += 8;
+     }
+     if (!(v & 0xf)) {
+         v >>= 4;
+         c += 4;
+     }
+     if (!(v & 0x3)) {
+         v >>= 2;
+         c += 2;
+     }
+     c -= v & 0x1;
+     return c;
+ }
+ #endif
+ /**
+  * Trailing zero bit count.
+  *
+  * @param v  input value. If v is 0, the result is undefined.
+  * @return   the number of trailing 0-bits
+  */
+ int av_ctz(int v);
+ /**
+  * @}
+  */
  #endif /* AVUTIL_INTMATH_H */
diff --combined libavutil/version.h
@@@ -1,63 -1,25 +1,63 @@@
  /*
 - * This file is part of Libav.
 + * copyright (c) 2003 Fabrice Bellard
   *
 - * Libav is free software; you can redistribute it and/or
 + * This file is part of FFmpeg.
 + *
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
 - * Libav is distributed in the hope that it will be useful,
 + * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
 - * License along with Libav; if not, write to the Free Software
 + * License along with FFmpeg; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
  #ifndef AVUTIL_VERSION_H
  #define AVUTIL_VERSION_H
  
 -#include "avutil.h"
 +/**
 + * @defgroup preproc_misc Preprocessor String Macros
 + *
 + * String manipulation macros
 + *
 + * @{
 + */
 +
 +#define AV_STRINGIFY(s)         AV_TOSTRING(s)
 +#define AV_TOSTRING(s) #s
 +
 +#define AV_GLUE(a, b) a ## b
 +#define AV_JOIN(a, b) AV_GLUE(a, b)
 +
 +#define AV_PRAGMA(s) _Pragma(#s)
 +
 +/**
 + * @}
 + */
 +
 +/**
 + * @defgroup version_utils Library Version Macros
 + *
 + * Useful to check and match library version in order to maintain
 + * backward compatibility.
 + *
 + * @{
 + */
 +
 +#define AV_VERSION_INT(a, b, c) (a<<16 | b<<8 | c)
 +#define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c
 +#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
 +
 +/**
 + * @}
 + */
 +
  
  /**
   * @file
@@@ -74,9 -36,9 +74,9 @@@
   * @{
   */
  
 -#define LIBAVUTIL_VERSION_MAJOR 52
 -#define LIBAVUTIL_VERSION_MINOR  1
 -#define LIBAVUTIL_VERSION_MICRO  0
 +#define LIBAVUTIL_VERSION_MAJOR  52
- #define LIBAVUTIL_VERSION_MINOR   4
++#define LIBAVUTIL_VERSION_MINOR   5
 +#define LIBAVUTIL_VERSION_MICRO 100
  
  #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
                                                 LIBAVUTIL_VERSION_MINOR, \
   * @{
   */
  
 +#ifndef FF_API_OLD_EVAL_NAMES
 +#define FF_API_OLD_EVAL_NAMES           (LIBAVUTIL_VERSION_MAJOR < 52)
 +#endif
 +#ifndef FF_API_GET_BITS_PER_SAMPLE_FMT
 +#define FF_API_GET_BITS_PER_SAMPLE_FMT (LIBAVUTIL_VERSION_MAJOR < 53)
 +#endif
 +#ifndef FF_API_FIND_OPT
 +#define FF_API_FIND_OPT                 (LIBAVUTIL_VERSION_MAJOR < 53)
 +#endif
 +#ifndef FF_API_OLD_AVOPTIONS
 +#define FF_API_OLD_AVOPTIONS            (LIBAVUTIL_VERSION_MAJOR < 53)
 +#endif
  #ifndef FF_API_PIX_FMT
  #define FF_API_PIX_FMT                  (LIBAVUTIL_VERSION_MAJOR < 53)
  #endif
   */
  
  #endif /* AVUTIL_VERSION_H */
 +
diff --combined tests/fate/aac.mak
@@@ -46,7 -46,7 +46,7 @@@ FATE_AAC += fate-aac-al_sbr_ps_06_u
  fate-aac-al_sbr_ps_06_ur: CMD = pcm -i $(SAMPLES)/aac/al_sbr_ps_06_new.mp4
  fate-aac-al_sbr_ps_06_ur: REF = $(SAMPLES)/aac/al_sbr_ps_06_ur.s16
  
- FATE_AAC += fate-aac-latm_000000001180bc60
+ FATE_AAC_LATM += fate-aac-latm_000000001180bc60
  fate-aac-latm_000000001180bc60: CMD = pcm -i $(SAMPLES)/aac/latm_000000001180bc60.mpg
  fate-aac-latm_000000001180bc60: REF = $(SAMPLES)/aac/latm_000000001180bc60.s16
  
@@@ -54,7 -54,7 +54,7 @@@ FATE_AAC += fate-aac-ap05_4
  fate-aac-ap05_48: CMD = pcm -i $(SAMPLES)/aac/ap05_48.mp4
  fate-aac-ap05_48: REF = $(SAMPLES)/aac/ap05_48.s16
  
- FATE_AAC += fate-aac-latm_stereo_to_51
+ FATE_AAC_LATM += fate-aac-latm_stereo_to_51
  fate-aac-latm_stereo_to_51: CMD = pcm -i $(SAMPLES)/aac/latm_stereo_to_51.ts -channel_layout 5.1
  fate-aac-latm_stereo_to_51: REF = $(SAMPLES)/aac/latm_stereo_to_51_ref.s16
  
@@@ -71,25 -71,12 +71,29 @@@ FATE_AAC_CT = sbr_bc-ps_i.3gp  
  
  FATE_AAC += $(FATE_AAC_CT:%=fate-aac-ct-%)
  
- FATE_SAMPLES_FFMPEG += $(FATE_AAC) $(FATE_AAC_ENCODE)
- fate-aac: $(FATE_AAC) $(FATE_AAC_ENCODE)
 +FATE_AAC_ENCODE += fate-aac-aref-encode
 +fate-aac-aref-encode: ./tests/data/asynth-44100-2.wav
 +fate-aac-aref-encode: CMD = enc_dec_pcm adts wav s16le $(REF) -strict -2 -c:a aac -b:a 512k
 +fate-aac-aref-encode: CMP = stddev
 +fate-aac-aref-encode: REF = ./tests/data/asynth-44100-2.wav
 +fate-aac-aref-encode: CMP_SHIFT = -4096
 +fate-aac-aref-encode: CMP_TARGET = 1862
 +fate-aac-aref-encode: SIZE_TOLERANCE = 2464
 +
 +FATE_AAC_ENCODE += fate-aac-ln-encode
 +fate-aac-ln-encode: CMD = enc_dec_pcm adts wav s16le $(REF) -strict -2 -c:a aac -b:a 512k
 +fate-aac-ln-encode: CMP = stddev
 +fate-aac-ln-encode: REF = $(SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.wav
 +fate-aac-ln-encode: CMP_SHIFT = -4096
 +fate-aac-ln-encode: CMP_TARGET = 65
 +fate-aac-ln-encode: SIZE_TOLERANCE = 3560
 +
+ FATE_AAC_ALL = $(FATE_AAC) $(FATE_AAC_LATM)
  
- $(FATE_AAC): CMP = oneoff
- $(FATE_AAC): FUZZ = 2
+ $(FATE_AAC_ALL): CMP  = oneoff
+ $(FATE_AAC_ALL): FUZZ = 2
 -FATE_SAMPLES_AVCONV += $(FATE_AAC_ALL)
++FATE_SAMPLES_FFMPEG += $(FATE_AAC_ALL) $(FATE_AAC_ENCODE)
 -fate-aac: $(FATE_AAC_ALL)
++fate-aac: $(FATE_AAC_ALL) $(FATE_AAC_ENCODE)
+ fate-aac-latm: $(FATE_AAC_LATM)