Merge commit 'd15c21e5fa3961f10026da1a3080a3aa3cf4cec9'
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 21 Oct 2012 11:29:03 +0000 (13:29 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 21 Oct 2012 11:35:42 +0000 (13:35 +0200)
* commit 'd15c21e5fa3961f10026da1a3080a3aa3cf4cec9':
  avutil: Add a copy of ff_sqrt_tab back into avutil to restore ABI compatibility
  avutil: make some tables visible again
  avutil: remove inline av_log2 from public API
  celp_math: rename ff_log2 to ff_log2_q15

Conflicts:
libavutil/libavutil.v

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/Makefile
libavcodec/acelp_pitch_delay.c
libavcodec/celp_math.c
libavcodec/celp_math.h
libavcodec/mathtables.c
libavcodec/sqrt_tab.c
libavutil/Makefile
libavutil/common.h
libavutil/intmath.h
libavutil/libavutil.v
libavutil/log2.c

diff --combined libavcodec/Makefile
@@@ -1,5 -1,3 +1,5 @@@
 +include $(SUBDIR)../config.mak
 +
  NAME = avcodec
  FFLIBS = avutil
  
@@@ -29,18 -27,17 +29,19 @@@ OBJS = allcodecs.
         options.o                                                        \
         parser.o                                                         \
         raw.o                                                            \
 +       rawdec.o                                                         \
         resample.o                                                       \
         resample2.o                                                      \
         simple_idct.o                                                    \
+        sqrt_tab.o                                                       \
         utils.o                                                          \
  
  # parts needed for many different codecs
  OBJS-$(CONFIG_AANDCTTABLES)            += aandcttab.o
  OBJS-$(CONFIG_AC3DSP)                  += ac3dsp.o
 +OBJS-$(CONFIG_CRYSTALHD)               += crystalhd.o
  OBJS-$(CONFIG_DCT)                     += dct.o dct32_fixed.o dct32_float.o
 -OBJS-$(CONFIG_DWT)                     += dwt.o
 +OBJS-$(CONFIG_DWT)                     += dwt.o snow.o
  OBJS-$(CONFIG_DXVA2)                   += dxva2.o
  OBJS-$(CONFIG_ENCODERS)                += faandct.o jfdctfst.o jfdctint.o
  OBJS-$(CONFIG_ERROR_RESILIENCE)        += error_resilience.o
@@@ -100,14 -97,10 +101,14 @@@ OBJS-$(CONFIG_AMRWB_DECODER)           
                                            acelp_vectors.o             \
                                            acelp_pitch_delay.o
  OBJS-$(CONFIG_AMV_DECODER)             += sp5xdec.o mjpegdec.o mjpeg.o
 +OBJS-$(CONFIG_AMV_ENCODER)             += mjpegenc.o mjpeg.o           \
 +                                          mpegvideo_enc.o motion_est.o \
 +                                          ratecontrol.o mpeg12data.o   \
 +                                          mpegvideo.o
  OBJS-$(CONFIG_ANM_DECODER)             += anm.o
  OBJS-$(CONFIG_ANSI_DECODER)            += ansi.o cga_data.o
  OBJS-$(CONFIG_APE_DECODER)             += apedec.o
 -OBJS-$(CONFIG_ASS_DECODER)             += assdec.o ass.o
 +OBJS-$(CONFIG_ASS_DECODER)             += assdec.o ass.o ass_split.o
  OBJS-$(CONFIG_ASS_ENCODER)             += assenc.o ass.o
  OBJS-$(CONFIG_ASV1_DECODER)            += asvdec.o asv.o mpeg12data.o
  OBJS-$(CONFIG_ASV1_ENCODER)            += asvenc.o asv.o mpeg12data.o
@@@ -117,20 -110,12 +118,20 @@@ OBJS-$(CONFIG_ATRAC1_DECODER)          
  OBJS-$(CONFIG_ATRAC3_DECODER)          += atrac3.o atrac.o
  OBJS-$(CONFIG_AURA_DECODER)            += cyuv.o
  OBJS-$(CONFIG_AURA2_DECODER)           += aura.o
 +OBJS-$(CONFIG_AVRP_DECODER)            += avrndec.o
 +OBJS-$(CONFIG_AVRP_DECODER)            += r210dec.o
 +OBJS-$(CONFIG_AVRP_ENCODER)            += r210enc.o
  OBJS-$(CONFIG_AVS_DECODER)             += avs.o
 +OBJS-$(CONFIG_AVUI_DECODER)            += avuidec.o
 +OBJS-$(CONFIG_AVUI_ENCODER)            += avuienc.o
 +OBJS-$(CONFIG_AYUV_DECODER)            += v408dec.o
 +OBJS-$(CONFIG_AYUV_ENCODER)            += v408enc.o
  OBJS-$(CONFIG_BETHSOFTVID_DECODER)     += bethsoftvideo.o
  OBJS-$(CONFIG_BFI_DECODER)             += bfi.o
  OBJS-$(CONFIG_BINK_DECODER)            += bink.o binkdsp.o
  OBJS-$(CONFIG_BINKAUDIO_DCT_DECODER)   += binkaudio.o wma.o wma_common.o
  OBJS-$(CONFIG_BINKAUDIO_RDFT_DECODER)  += binkaudio.o wma.o wma_common.o
 +OBJS-$(CONFIG_BINTEXT_DECODER)         += bintext.o cga_data.o
  OBJS-$(CONFIG_BMP_DECODER)             += bmp.o msrledec.o
  OBJS-$(CONFIG_BMP_ENCODER)             += bmpenc.o
  OBJS-$(CONFIG_BMV_VIDEO_DECODER)       += bmv.o
@@@ -145,14 -130,10 +146,14 @@@ OBJS-$(CONFIG_CLJR_DECODER)            
  OBJS-$(CONFIG_CLJR_ENCODER)            += cljr.o
  OBJS-$(CONFIG_CLLC_DECODER)            += cllc.o
  OBJS-$(CONFIG_COOK_DECODER)            += cook.o
 +OBJS-$(CONFIG_CPIA_DECODER)            += cpia.o
  OBJS-$(CONFIG_CSCD_DECODER)            += cscd.o
  OBJS-$(CONFIG_CYUV_DECODER)            += cyuv.o
  OBJS-$(CONFIG_DCA_DECODER)             += dcadec.o dca.o dcadsp.o      \
                                            dca_parser.o synth_filter.o
 +OBJS-$(CONFIG_DCA_ENCODER)             += dcaenc.o
 +OBJS-$(CONFIG_DIRAC_DECODER)           += diracdec.o dirac.o diracdsp.o \
 +                                          dirac_arith.o mpeg12data.o dwt.o
  OBJS-$(CONFIG_DFA_DECODER)             += dfa.o
  OBJS-$(CONFIG_DNXHD_DECODER)           += dnxhddec.o dnxhddata.o
  OBJS-$(CONFIG_DNXHD_ENCODER)           += dnxhdenc.o dnxhddata.o
@@@ -181,18 -162,14 +182,18 @@@ OBJS-$(CONFIG_EIGHTBPS_DECODER)        
  OBJS-$(CONFIG_EIGHTSVX_EXP_DECODER)    += 8svx.o
  OBJS-$(CONFIG_EIGHTSVX_FIB_DECODER)    += 8svx.o
  OBJS-$(CONFIG_ESCAPE124_DECODER)       += escape124.o
 +OBJS-$(CONFIG_ESCAPE130_DECODER)       += escape130.o
 +OBJS-$(CONFIG_EXR_DECODER)             += exr.o
  OBJS-$(CONFIG_FFV1_DECODER)            += ffv1.o
  OBJS-$(CONFIG_FFV1_ENCODER)            += ffv1.o
  OBJS-$(CONFIG_FFVHUFF_DECODER)         += huffyuv.o
  OBJS-$(CONFIG_FFVHUFF_ENCODER)         += huffyuv.o
 +OBJS-$(CONFIG_FFWAVESYNTH_DECODER)     += ffwavesynth.o
  OBJS-$(CONFIG_FLAC_DECODER)            += flacdec.o flacdata.o flac.o flacdsp.o
 -OBJS-$(CONFIG_FLAC_ENCODER)            += flacenc.o flacdata.o flac.o
 +OBJS-$(CONFIG_FLAC_ENCODER)            += flacenc.o flacdata.o flac.o vorbis_data.o
  OBJS-$(CONFIG_FLASHSV_DECODER)         += flashsv.o
  OBJS-$(CONFIG_FLASHSV_ENCODER)         += flashsvenc.o
 +OBJS-$(CONFIG_FLASHSV2_ENCODER)        += flashsv2enc.o
  OBJS-$(CONFIG_FLASHSV2_DECODER)        += flashsv.o
  OBJS-$(CONFIG_FLIC_DECODER)            += flicvideo.o
  OBJS-$(CONFIG_FOURXM_DECODER)          += 4xm.o
@@@ -200,14 -177,12 +201,14 @@@ OBJS-$(CONFIG_FRAPS_DECODER)           
  OBJS-$(CONFIG_FRWU_DECODER)            += frwu.o
  OBJS-$(CONFIG_G723_1_DECODER)          += g723_1.o acelp_vectors.o \
                                            celp_filters.o
 +OBJS-$(CONFIG_G723_1_ENCODER)          += g723_1.o acelp_vectors.o celp_math.o
 +OBJS-$(CONFIG_G729_DECODER)            += g729dec.o lsp.o celp_math.o acelp_filters.o acelp_pitch_delay.o acelp_vectors.o g729postfilter.o
  OBJS-$(CONFIG_GIF_DECODER)             += gifdec.o lzw.o
  OBJS-$(CONFIG_GIF_ENCODER)             += gif.o lzwenc.o
  OBJS-$(CONFIG_GSM_DECODER)             += gsmdec.o gsmdec_data.o msgsmdec.o
  OBJS-$(CONFIG_GSM_MS_DECODER)          += gsmdec.o gsmdec_data.o msgsmdec.o
 -OBJS-$(CONFIG_H261_DECODER)            += h261dec.o h261.o
 -OBJS-$(CONFIG_H261_ENCODER)            += h261enc.o h261.o
 +OBJS-$(CONFIG_H261_DECODER)            += h261dec.o h261.o h261data.o
 +OBJS-$(CONFIG_H261_ENCODER)            += h261enc.o h261.o h261data.o
  OBJS-$(CONFIG_H263_DECODER)            += h263dec.o h263.o ituh263dec.o        \
                                            mpeg4video.o mpeg4videodec.o flvdec.o\
                                            intelh263dec.o
@@@ -221,12 -196,10 +222,12 @@@ OBJS-$(CONFIG_H264_DECODER)            
  OBJS-$(CONFIG_H264_DXVA2_HWACCEL)      += dxva2_h264.o
  OBJS-$(CONFIG_H264_VAAPI_HWACCEL)      += vaapi_h264.o
  OBJS-$(CONFIG_H264_VDA_HWACCEL)        += vda_h264.o
 +OBJS-$(CONFIG_H264_VDA_DECODER)        += vda_h264_dec.o
  OBJS-$(CONFIG_HUFFYUV_DECODER)         += huffyuv.o
  OBJS-$(CONFIG_HUFFYUV_ENCODER)         += huffyuv.o
  OBJS-$(CONFIG_IAC_DECODER)             += imc.o
  OBJS-$(CONFIG_IDCIN_DECODER)           += idcinvideo.o
 +OBJS-$(CONFIG_IDF_DECODER)             += bintext.o cga_data.o
  OBJS-$(CONFIG_IFF_BYTERUN1_DECODER)    += iff.o
  OBJS-$(CONFIG_IFF_ILBM_DECODER)        += iff.o
  OBJS-$(CONFIG_IMC_DECODER)             += imc.o
@@@ -236,9 -209,6 +237,9 @@@ OBJS-$(CONFIG_INDEO4_DECODER)          
  OBJS-$(CONFIG_INDEO5_DECODER)          += indeo5.o ivi_common.o ivi_dsp.o
  OBJS-$(CONFIG_INTERPLAY_DPCM_DECODER)  += dpcm.o
  OBJS-$(CONFIG_INTERPLAY_VIDEO_DECODER) += interplayvideo.o
 +OBJS-$(CONFIG_JACOSUB_DECODER)         += jacosubdec.o ass.o
 +OBJS-$(CONFIG_JPEG2000_DECODER)        += j2kdec.o mqcdec.o mqc.o j2k.o j2k_dwt.o
 +OBJS-$(CONFIG_JPEG2000_ENCODER)        += j2kenc.o mqcenc.o mqc.o j2k.o j2k_dwt.o
  OBJS-$(CONFIG_JPEGLS_DECODER)          += jpeglsdec.o jpegls.o \
                                            mjpegdec.o mjpeg.o
  OBJS-$(CONFIG_JPEGLS_ENCODER)          += jpeglsenc.o jpegls.o
@@@ -251,7 -221,6 +252,7 @@@ OBJS-$(CONFIG_LOCO_DECODER)            
  OBJS-$(CONFIG_MACE3_DECODER)           += mace.o
  OBJS-$(CONFIG_MACE6_DECODER)           += mace.o
  OBJS-$(CONFIG_MDEC_DECODER)            += mdec.o mpeg12.o mpeg12data.o
 +OBJS-$(CONFIG_MICRODVD_DECODER)        += microdvddec.o ass.o
  OBJS-$(CONFIG_MIMIC_DECODER)           += mimic.o
  OBJS-$(CONFIG_MJPEG_DECODER)           += mjpegdec.o mjpeg.o
  OBJS-$(CONFIG_MJPEG_ENCODER)           += mjpegenc.o mjpeg.o
@@@ -259,8 -228,6 +260,8 @@@ OBJS-$(CONFIG_MJPEGB_DECODER)          
  OBJS-$(CONFIG_MLP_DECODER)             += mlpdec.o mlpdsp.o
  OBJS-$(CONFIG_MMVIDEO_DECODER)         += mmvideo.o
  OBJS-$(CONFIG_MOTIONPIXELS_DECODER)    += motionpixels.o
 +OBJS-$(CONFIG_MOVTEXT_DECODER)         += movtextdec.o ass.o
 +OBJS-$(CONFIG_MOVTEXT_ENCODER)         += movtextenc.o ass_split.o
  OBJS-$(CONFIG_MP1_DECODER)             += mpegaudiodec.o
  OBJS-$(CONFIG_MP1FLOAT_DECODER)        += mpegaudiodec_float.o
  OBJS-$(CONFIG_MP2_DECODER)             += mpegaudiodec.o
@@@ -275,17 -242,13 +276,17 @@@ OBJS-$(CONFIG_MP3ON4_DECODER)          
  OBJS-$(CONFIG_MP3ON4FLOAT_DECODER)     += mpegaudiodec_float.o mpeg4audio.o
  OBJS-$(CONFIG_MPC7_DECODER)            += mpc7.o mpc.o
  OBJS-$(CONFIG_MPC8_DECODER)            += mpc8.o mpc.o
 +OBJS-$(CONFIG_MPEGVIDEO_DECODER)       += mpeg12.o mpeg12data.o \
 +                                          mpegvideo.o error_resilience.o
  OBJS-$(CONFIG_MPEG_XVMC_DECODER)       += mpegvideo_xvmc.o
  OBJS-$(CONFIG_MPEG1VIDEO_DECODER)      += mpeg12.o mpeg12data.o
 -OBJS-$(CONFIG_MPEG1VIDEO_ENCODER)      += mpeg12enc.o mpeg12.o
 +OBJS-$(CONFIG_MPEG1VIDEO_ENCODER)      += mpeg12enc.o mpeg12.o          \
 +                                          timecode.o
  OBJS-$(CONFIG_MPEG2_DXVA2_HWACCEL)     += dxva2_mpeg2.o
  OBJS-$(CONFIG_MPEG2_VAAPI_HWACCEL)     += vaapi_mpeg2.o
  OBJS-$(CONFIG_MPEG2VIDEO_DECODER)      += mpeg12.o mpeg12data.o
 -OBJS-$(CONFIG_MPEG2VIDEO_ENCODER)      += mpeg12enc.o mpeg12.o
 +OBJS-$(CONFIG_MPEG2VIDEO_ENCODER)      += mpeg12enc.o mpeg12.o          \
 +                                          timecode.o
  OBJS-$(CONFIG_MPEG4_VAAPI_HWACCEL)     += vaapi_mpeg4.o
  OBJS-$(CONFIG_MSMPEG4V1_DECODER)       += msmpeg4.o msmpeg4data.o
  OBJS-$(CONFIG_MSMPEG4V2_DECODER)       += msmpeg4.o msmpeg4data.o h263dec.o \
@@@ -303,7 -266,6 +304,7 @@@ OBJS-$(CONFIG_MSA1_DECODER)            
  OBJS-$(CONFIG_MSS1_DECODER)            += mss1.o mss12.o
  OBJS-$(CONFIG_MSS2_DECODER)            += mss2.o mss12.o mss2dsp.o
  OBJS-$(CONFIG_MSVIDEO1_DECODER)        += msvideo1.o
 +OBJS-$(CONFIG_MSVIDEO1_ENCODER)        += msvideo1enc.o elbg.o
  OBJS-$(CONFIG_MSZH_DECODER)            += lcldec.o
  OBJS-$(CONFIG_MTS2_DECODER)            += mss4.o mss34dsp.o
  OBJS-$(CONFIG_MXPEG_DECODER)           += mxpegdec.o mjpegdec.o mjpeg.o
@@@ -311,8 -273,6 +312,8 @@@ OBJS-$(CONFIG_NELLYMOSER_DECODER)      
  OBJS-$(CONFIG_NELLYMOSER_ENCODER)      += nellymoserenc.o nellymoser.o \
                                            audio_frame_queue.o
  OBJS-$(CONFIG_NUV_DECODER)             += nuv.o rtjpeg.o
 +OBJS-$(CONFIG_PAF_VIDEO_DECODER)       += paf.o
 +OBJS-$(CONFIG_PAF_AUDIO_DECODER)       += paf.o
  OBJS-$(CONFIG_PAM_DECODER)             += pnmdec.o pnm.o
  OBJS-$(CONFIG_PAM_ENCODER)             += pamenc.o pnm.o
  OBJS-$(CONFIG_PBM_DECODER)             += pnmdec.o pnm.o
@@@ -329,11 -289,8 +330,11 @@@ OBJS-$(CONFIG_PNG_DECODER)             
  OBJS-$(CONFIG_PNG_ENCODER)             += png.o pngenc.o
  OBJS-$(CONFIG_PPM_DECODER)             += pnmdec.o pnm.o
  OBJS-$(CONFIG_PPM_ENCODER)             += pnmenc.o pnm.o
 -OBJS-$(CONFIG_PRORES_DECODER)          += proresdec.o proresdata.o proresdsp.o
 -OBJS-$(CONFIG_PRORES_ENCODER)          += proresenc.o proresdata.o proresdsp.o
 +OBJS-$(CONFIG_PRORES_DECODER)          += proresdec2.o proresdsp.o
 +OBJS-$(CONFIG_PRORES_LGPL_DECODER)     += proresdec_lgpl.o proresdsp.o proresdata.o
 +OBJS-$(CONFIG_PRORES_ENCODER)          += proresenc_anatoliy.o
 +OBJS-$(CONFIG_PRORES_ANATOLIY_ENCODER) += proresenc_anatoliy.o
 +OBJS-$(CONFIG_PRORES_KOSTYA_ENCODER)   += proresenc_kostya.o proresdata.o proresdsp.o
  OBJS-$(CONFIG_PTX_DECODER)             += ptx.o
  OBJS-$(CONFIG_QCELP_DECODER)           += qcelpdec.o                     \
                                            celp_filters.o acelp_vectors.o \
@@@ -344,9 -301,7 +345,9 @@@ OBJS-$(CONFIG_QPEG_DECODER)            
  OBJS-$(CONFIG_QTRLE_DECODER)           += qtrle.o
  OBJS-$(CONFIG_QTRLE_ENCODER)           += qtrleenc.o
  OBJS-$(CONFIG_R10K_DECODER)            += r210dec.o
 +OBJS-$(CONFIG_R10K_ENCODER)            += r210enc.o
  OBJS-$(CONFIG_R210_DECODER)            += r210dec.o
 +OBJS-$(CONFIG_R210_ENCODER)            += r210enc.o
  OBJS-$(CONFIG_RA_144_DECODER)          += ra144dec.o ra144.o celp_filters.o
  OBJS-$(CONFIG_RA_144_ENCODER)          += ra144enc.o ra144.o celp_filters.o \
                                            audio_frame_queue.o
@@@ -354,7 -309,6 +355,7 @@@ OBJS-$(CONFIG_RA_288_DECODER)          
  OBJS-$(CONFIG_RALF_DECODER)            += ralf.o
  OBJS-$(CONFIG_RAWVIDEO_DECODER)        += rawdec.o
  OBJS-$(CONFIG_RAWVIDEO_ENCODER)        += rawenc.o
 +OBJS-$(CONFIG_REALTEXT_DECODER)        += realtextdec.o ass.o
  OBJS-$(CONFIG_RL2_DECODER)             += rl2.o
  OBJS-$(CONFIG_ROQ_DECODER)             += roqvideodec.o roqvideo.o
  OBJS-$(CONFIG_ROQ_ENCODER)             += roqvideoenc.o roqvideo.o elbg.o
@@@ -367,9 -321,7 +368,9 @@@ OBJS-$(CONFIG_RV20_DECODER)            
  OBJS-$(CONFIG_RV20_ENCODER)            += rv20enc.o
  OBJS-$(CONFIG_RV30_DECODER)            += rv30.o rv34.o rv30dsp.o rv34dsp.o
  OBJS-$(CONFIG_RV40_DECODER)            += rv40.o rv34.o rv34dsp.o rv40dsp.o
 +OBJS-$(CONFIG_SAMI_DECODER)            += samidec.o ass.o
  OBJS-$(CONFIG_S302M_DECODER)           += s302m.o
 +OBJS-$(CONFIG_SANM_DECODER)            += sanm.o
  OBJS-$(CONFIG_SGI_DECODER)             += sgidec.o
  OBJS-$(CONFIG_SGI_ENCODER)             += sgienc.o rle.o
  OBJS-$(CONFIG_SHORTEN_DECODER)         += shorten.o
@@@ -384,15 -336,8 +385,15 @@@ OBJS-$(CONFIG_SNOW_DECODER)            
  OBJS-$(CONFIG_SNOW_ENCODER)            += snowenc.o snow.o              \
                                            h263.o ituh263enc.o
  OBJS-$(CONFIG_SOL_DPCM_DECODER)        += dpcm.o
 +OBJS-$(CONFIG_SONIC_DECODER)           += sonic.o
 +OBJS-$(CONFIG_SONIC_ENCODER)           += sonic.o
 +OBJS-$(CONFIG_SONIC_LS_ENCODER)        += sonic.o
  OBJS-$(CONFIG_SP5X_DECODER)            += sp5xdec.o mjpegdec.o mjpeg.o
  OBJS-$(CONFIG_SRT_DECODER)             += srtdec.o ass.o
 +OBJS-$(CONFIG_SRT_ENCODER)             += srtenc.o ass_split.o
 +OBJS-$(CONFIG_SUBRIP_DECODER)          += srtdec.o ass.o
 +OBJS-$(CONFIG_SUBRIP_ENCODER)          += srtenc.o ass_split.o
 +OBJS-$(CONFIG_SUBVIEWER_DECODER)       += subviewerdec.o ass.o
  OBJS-$(CONFIG_SUNRAST_DECODER)         += sunrast.o
  OBJS-$(CONFIG_SUNRAST_ENCODER)         += sunrastenc.o
  OBJS-$(CONFIG_SVQ1_DECODER)            += svq1dec.o svq1.o svq13.o h263.o
@@@ -402,18 -347,14 +403,18 @@@ OBJS-$(CONFIG_SVQ3_DECODER)            
                                            h264_loopfilter.o h264_direct.o     \
                                            h264_sei.o h264_ps.o h264_refs.o    \
                                            h264_cavlc.o h264_cabac.o cabac.o
 +OBJS-$(CONFIG_TEXT_DECODER)            += textdec.o ass.o
 +OBJS-$(CONFIG_TAK_DECODER)             += takdec.o tak.o
  OBJS-$(CONFIG_TARGA_DECODER)           += targa.o
  OBJS-$(CONFIG_TARGA_ENCODER)           += targaenc.o rle.o
 +OBJS-$(CONFIG_TARGA_Y216_DECODER)      += targa_y216dec.o
  OBJS-$(CONFIG_THEORA_DECODER)          += xiph.o
  OBJS-$(CONFIG_THP_DECODER)             += mjpegdec.o mjpeg.o
  OBJS-$(CONFIG_TIERTEXSEQVIDEO_DECODER) += tiertexseqv.o
 -OBJS-$(CONFIG_TIFF_DECODER)            += tiff.o lzw.o faxcompr.o
 -OBJS-$(CONFIG_TIFF_ENCODER)            += tiffenc.o rle.o lzwenc.o
 +OBJS-$(CONFIG_TIFF_DECODER)            += tiff.o lzw.o faxcompr.o tiff_data.o
 +OBJS-$(CONFIG_TIFF_ENCODER)            += tiffenc.o rle.o lzwenc.o tiff_data.o
  OBJS-$(CONFIG_TMV_DECODER)             += tmv.o cga_data.o
 +OBJS-$(CONFIG_TRUEHD_DECODER)          += mlpdec.o mlpdsp.o
  OBJS-$(CONFIG_TRUEMOTION1_DECODER)     += truemotion1.o
  OBJS-$(CONFIG_TRUEMOTION2_DECODER)     += truemotion2.o
  OBJS-$(CONFIG_TRUESPEECH_DECODER)      += truespeech.o
@@@ -427,10 -368,6 +428,10 @@@ OBJS-$(CONFIG_UTVIDEO_DECODER)         
  OBJS-$(CONFIG_UTVIDEO_ENCODER)         += utvideoenc.o utvideo.o
  OBJS-$(CONFIG_V210_DECODER)            += v210dec.o
  OBJS-$(CONFIG_V210_ENCODER)            += v210enc.o
 +OBJS-$(CONFIG_V308_DECODER)            += v308dec.o
 +OBJS-$(CONFIG_V308_ENCODER)            += v308enc.o
 +OBJS-$(CONFIG_V408_DECODER)            += v408dec.o
 +OBJS-$(CONFIG_V408_ENCODER)            += v408enc.o
  OBJS-$(CONFIG_V410_DECODER)            += v410dec.o
  OBJS-$(CONFIG_V410_ENCODER)            += v410enc.o
  OBJS-$(CONFIG_V210X_DECODER)           += v210x.o
@@@ -458,7 -395,6 +459,7 @@@ OBJS-$(CONFIG_VP6_DECODER)             
  OBJS-$(CONFIG_VP8_DECODER)             += vp8.o vp8dsp.o vp56rac.o
  OBJS-$(CONFIG_VQA_DECODER)             += vqavideo.o
  OBJS-$(CONFIG_WAVPACK_DECODER)         += wavpack.o
 +OBJS-$(CONFIG_WEBVTT_DECODER)          += webvttdec.o
  OBJS-$(CONFIG_WMALOSSLESS_DECODER)     += wmalosslessdec.o wma_common.o
  OBJS-$(CONFIG_WMAPRO_DECODER)          += wmaprodec.o wma.o wma_common.o
  OBJS-$(CONFIG_WMAV1_DECODER)           += wmadec.o wma.o wma_common.o aactab.o
@@@ -480,21 -416,13 +481,21 @@@ OBJS-$(CONFIG_WS_SND1_DECODER)         
  OBJS-$(CONFIG_XAN_DPCM_DECODER)        += dpcm.o
  OBJS-$(CONFIG_XAN_WC3_DECODER)         += xan.o
  OBJS-$(CONFIG_XAN_WC4_DECODER)         += xxan.o
 +OBJS-$(CONFIG_XBIN_DECODER)            += bintext.o cga_data.o
 +OBJS-$(CONFIG_XBM_DECODER)             += xbmdec.o
  OBJS-$(CONFIG_XBM_ENCODER)             += xbmenc.o
 +OBJS-$(CONFIG_XFACE_DECODER)           += xfacedec.o xface.o
 +OBJS-$(CONFIG_XFACE_ENCODER)           += xfaceenc.o xface.o
  OBJS-$(CONFIG_XL_DECODER)              += xl.o
  OBJS-$(CONFIG_XSUB_DECODER)            += xsubdec.o
  OBJS-$(CONFIG_XSUB_ENCODER)            += xsubenc.o
  OBJS-$(CONFIG_XWD_DECODER)             += xwddec.o
  OBJS-$(CONFIG_XWD_ENCODER)             += xwdenc.o
 +OBJS-$(CONFIG_Y41P_DECODER)            += y41pdec.o
 +OBJS-$(CONFIG_Y41P_ENCODER)            += y41penc.o
  OBJS-$(CONFIG_YOP_DECODER)             += yop.o
 +OBJS-$(CONFIG_YUV4_DECODER)            += yuv4dec.o
 +OBJS-$(CONFIG_YUV4_ENCODER)            += yuv4enc.o
  OBJS-$(CONFIG_ZEROCODEC_DECODER)       += zerocodec.o
  OBJS-$(CONFIG_ZLIB_DECODER)            += lcldec.o
  OBJS-$(CONFIG_ZLIB_ENCODER)            += lclenc.o
@@@ -589,7 -517,6 +590,7 @@@ OBJS-$(CONFIG_ADPCM_THP_DECODER
  OBJS-$(CONFIG_ADPCM_XA_DECODER)           += adpcm.o adpcm_data.o
  OBJS-$(CONFIG_ADPCM_YAMAHA_DECODER)       += adpcm.o adpcm_data.o
  OBJS-$(CONFIG_ADPCM_YAMAHA_ENCODER)       += adpcmenc.o adpcm_data.o
 +OBJS-$(CONFIG_VIMA_DECODER)               += vima.o adpcm_data.o
  
  # libavformat dependencies
  OBJS-$(CONFIG_ADTS_MUXER)              += mpeg4audio.o
@@@ -597,45 -524,40 +598,45 @@@ OBJS-$(CONFIG_ADX_DEMUXER)             
  OBJS-$(CONFIG_CAF_DEMUXER)             += mpeg4audio.o mpegaudiodata.o  \
                                            ac3tab.o
  OBJS-$(CONFIG_DV_DEMUXER)              += dv_profile.o
 -OBJS-$(CONFIG_DV_MUXER)                += dv_profile.o
 -OBJS-$(CONFIG_FLAC_DEMUXER)            += flac.o flacdata.o             \
 +OBJS-$(CONFIG_DV_MUXER)                += dv_profile.o timecode.o
 +OBJS-$(CONFIG_FLAC_DEMUXER)            += flac.o flacdata.o vorbis_data.o \
                                            vorbis_parser.o xiph.o
 -OBJS-$(CONFIG_FLAC_MUXER)              += flac.o flacdata.o
 +OBJS-$(CONFIG_FLAC_MUXER)              += flac.o flacdata.o vorbis_data.o
  OBJS-$(CONFIG_FLV_DEMUXER)             += mpeg4audio.o
  OBJS-$(CONFIG_GXF_DEMUXER)             += mpeg12data.o
  OBJS-$(CONFIG_IFF_DEMUXER)             += iff.o
  OBJS-$(CONFIG_ISMV_MUXER)              += mpeg4audio.o mpegaudiodata.o
  OBJS-$(CONFIG_LATM_MUXER)              += mpeg4audio.o
 -OBJS-$(CONFIG_MATROSKA_AUDIO_MUXER)    += xiph.o mpeg4audio.o           \
 +OBJS-$(CONFIG_MATROSKA_AUDIO_MUXER)    += xiph.o mpeg4audio.o vorbis_data.o \
                                            flac.o flacdata.o
  OBJS-$(CONFIG_MATROSKA_DEMUXER)        += mpeg4audio.o mpegaudiodata.o
  OBJS-$(CONFIG_MATROSKA_MUXER)          += mpeg4audio.o mpegaudiodata.o  \
 -                                          flac.o flacdata.o xiph.o
 +                                          flac.o flacdata.o vorbis_data.o xiph.o
  OBJS-$(CONFIG_MP2_MUXER)               += mpegaudiodata.o mpegaudiodecheader.o
  OBJS-$(CONFIG_MP3_MUXER)               += mpegaudiodata.o mpegaudiodecheader.o
 -OBJS-$(CONFIG_MOV_DEMUXER)             += mpeg4audio.o mpegaudiodata.o ac3tab.o
 +OBJS-$(CONFIG_MOV_DEMUXER)             += mpeg4audio.o mpegaudiodata.o ac3tab.o timecode.o
  OBJS-$(CONFIG_MOV_MUXER)               += mpeg4audio.o mpegaudiodata.o
  OBJS-$(CONFIG_MPEGTS_MUXER)            += mpeg4audio.o
  OBJS-$(CONFIG_MPEGTS_DEMUXER)          += mpeg4audio.o mpegaudiodata.o
 +OBJS-$(CONFIG_MXF_MUXER)               += timecode.o
  OBJS-$(CONFIG_NUT_MUXER)               += mpegaudiodata.o
  OBJS-$(CONFIG_OGG_DEMUXER)             += xiph.o flac.o flacdata.o     \
                                            mpeg12data.o vorbis_parser.o \
 -                                          dirac.o
 -OBJS-$(CONFIG_OGG_MUXER)               += xiph.o flac.o flacdata.o
 +                                          dirac.o vorbis_data.o
 +OBJS-$(CONFIG_OGG_MUXER)               += xiph.o flac.o flacdata.o \
 +                                          vorbis_data.o
  OBJS-$(CONFIG_RTP_MUXER)               += mpeg4audio.o xiph.o
  OBJS-$(CONFIG_RTPDEC)                  += mjpeg.o
  OBJS-$(CONFIG_SPDIF_DEMUXER)           += aacadtsdec.o mpeg4audio.o
  OBJS-$(CONFIG_SPDIF_MUXER)             += dca.o
  OBJS-$(CONFIG_WEBM_MUXER)              += mpeg4audio.o mpegaudiodata.o  \
 -                                          xiph.o flac.o flacdata.o
 +                                          xiph.o flac.o flacdata.o \
 +                                          vorbis_data.o
  OBJS-$(CONFIG_WTV_DEMUXER)             += mpeg4audio.o mpegaudiodata.o
  
  # external codec libraries
 +OBJS-$(CONFIG_LIBAACPLUS_ENCODER)         += libaacplus.o
 +OBJS-$(CONFIG_LIBCELT_DECODER)            += libcelt_dec.o
  OBJS-$(CONFIG_LIBFAAC_ENCODER)            += libfaac.o audio_frame_queue.o
  OBJS-$(CONFIG_LIBFDK_AAC_ENCODER)         += libfdk-aacenc.o audio_frame_queue.o
  OBJS-$(CONFIG_LIBGSM_DECODER)             += libgsm.o
@@@ -646,10 -568,8 +647,10 @@@ OBJS-$(CONFIG_LIBILBC_DECODER
  OBJS-$(CONFIG_LIBILBC_ENCODER)            += libilbc.o
  OBJS-$(CONFIG_LIBMP3LAME_ENCODER)         += libmp3lame.o mpegaudiodecheader.o \
                                               audio_frame_queue.o
 -OBJS-$(CONFIG_LIBOPENCORE_AMRNB_DECODER)  += libopencore-amr.o
 -OBJS-$(CONFIG_LIBOPENCORE_AMRNB_ENCODER)  += libopencore-amr.o
 +OBJS-$(CONFIG_LIBOPENCORE_AMRNB_DECODER)  += libopencore-amr.o \
 +                                             audio_frame_queue.o
 +OBJS-$(CONFIG_LIBOPENCORE_AMRNB_ENCODER)  += libopencore-amr.o \
 +                                             audio_frame_queue.o
  OBJS-$(CONFIG_LIBOPENCORE_AMRWB_DECODER)  += libopencore-amr.o
  OBJS-$(CONFIG_LIBOPENJPEG_DECODER)        += libopenjpegdec.o
  OBJS-$(CONFIG_LIBOPENJPEG_ENCODER)        += libopenjpegenc.o
@@@ -663,17 -583,11 +664,17 @@@ OBJS-$(CONFIG_LIBSCHROEDINGER_ENCODER
                                               libschroedinger.o
  OBJS-$(CONFIG_LIBSPEEX_DECODER)           += libspeexdec.o
  OBJS-$(CONFIG_LIBSPEEX_ENCODER)           += libspeexenc.o audio_frame_queue.o
 +OBJS-$(CONFIG_LIBSTAGEFRIGHT_H264_DECODER)+= libstagefright.o
  OBJS-$(CONFIG_LIBTHEORA_ENCODER)          += libtheoraenc.o
 -OBJS-$(CONFIG_LIBVO_AACENC_ENCODER)       += libvo-aacenc.o mpeg4audio.o
 +OBJS-$(CONFIG_LIBTWOLAME_ENCODER)         += libtwolame.o
 +OBJS-$(CONFIG_LIBUTVIDEO_DECODER)         += libutvideodec.o
 +OBJS-$(CONFIG_LIBUTVIDEO_ENCODER)         += libutvideoenc.o
 +OBJS-$(CONFIG_LIBVO_AACENC_ENCODER)       += libvo-aacenc.o mpeg4audio.o \
 +                                             audio_frame_queue.o
  OBJS-$(CONFIG_LIBVO_AMRWBENC_ENCODER)     += libvo-amrwbenc.o
 -OBJS-$(CONFIG_LIBVORBIS_ENCODER)          += libvorbis.o audio_frame_queue.o \
 -                                             vorbis_data.o vorbis_parser.o
 +OBJS-$(CONFIG_LIBVORBIS_DECODER)          += libvorbisdec.o
 +OBJS-$(CONFIG_LIBVORBIS_ENCODER)          += libvorbisenc.o audio_frame_queue.o \
 +                                             vorbis_data.o vorbis_parser.o xiph.o
  OBJS-$(CONFIG_LIBVPX_DECODER)             += libvpxdec.o
  OBJS-$(CONFIG_LIBVPX_ENCODER)             += libvpxenc.o
  OBJS-$(CONFIG_LIBX264_ENCODER)            += libx264.o
@@@ -687,7 -601,6 +688,7 @@@ OBJS-$(CONFIG_AAC_LATM_PARSER)         
  OBJS-$(CONFIG_AC3_PARSER)              += ac3_parser.o ac3tab.o \
                                            aac_ac3_parser.o
  OBJS-$(CONFIG_ADX_PARSER)              += adx_parser.o adx.o
 +OBJS-$(CONFIG_BMP_PARSER)              += bmp_parser.o
  OBJS-$(CONFIG_CAVSVIDEO_PARSER)        += cavs_parser.o
  OBJS-$(CONFIG_COOK_PARSER)             += cook_parser.o
  OBJS-$(CONFIG_DCA_PARSER)              += dca_parser.o dca.o
@@@ -695,8 -608,7 +696,8 @@@ OBJS-$(CONFIG_DIRAC_PARSER)            
  OBJS-$(CONFIG_DNXHD_PARSER)            += dnxhd_parser.o
  OBJS-$(CONFIG_DVBSUB_PARSER)           += dvbsub_parser.o
  OBJS-$(CONFIG_DVDSUB_PARSER)           += dvdsub_parser.o
 -OBJS-$(CONFIG_FLAC_PARSER)             += flac_parser.o flacdata.o flac.o
 +OBJS-$(CONFIG_FLAC_PARSER)             += flac_parser.o flacdata.o flac.o \
 +                                          vorbis_data.o
  OBJS-$(CONFIG_GSM_PARSER)              += gsm_parser.o
  OBJS-$(CONFIG_H261_PARSER)             += h261_parser.o
  OBJS-$(CONFIG_H263_PARSER)             += h263_parser.o
@@@ -710,7 -622,6 +711,7 @@@ OBJS-$(CONFIG_MLP_PARSER)              
  OBJS-$(CONFIG_MPEG4VIDEO_PARSER)       += mpeg4video_parser.o h263.o \
                                            mpeg4videodec.o mpeg4video.o \
                                            ituh263dec.o h263dec.o
 +OBJS-$(CONFIG_PNG_PARSER)              += png_parser.o
  OBJS-$(CONFIG_MPEGAUDIO_PARSER)        += mpegaudio_parser.o \
                                            mpegaudiodecheader.o mpegaudiodata.o
  OBJS-$(CONFIG_MPEGVIDEO_PARSER)        += mpegvideo_parser.o    \
  OBJS-$(CONFIG_PNM_PARSER)              += pnm_parser.o pnm.o
  OBJS-$(CONFIG_RV30_PARSER)             += rv34_parser.o
  OBJS-$(CONFIG_RV40_PARSER)             += rv34_parser.o
 +OBJS-$(CONFIG_TAK_PARSER)              += tak_parser.o tak.o
  OBJS-$(CONFIG_VC1_PARSER)              += vc1_parser.o vc1.o vc1data.o \
                                            msmpeg4.o msmpeg4data.o mpeg4video.o \
                                            h263.o
@@@ -744,9 -654,8 +745,9 @@@ OBJS-$(CONFIG_REMOVE_EXTRADATA_BSF
  OBJS-$(CONFIG_TEXT2MOVSUB_BSF)            += movsub_bsf.o
  
  # thread libraries
 -OBJS-$(HAVE_PTHREADS)                  += pthread.o
 -OBJS-$(HAVE_W32THREADS)                += pthread.o
 +OBJS-$(HAVE_PTHREADS)                  += pthread.o frame_thread_encoder.o
 +OBJS-$(HAVE_W32THREADS)                += pthread.o frame_thread_encoder.o
 +OBJS-$(HAVE_OS2THREADS)                += pthread.o frame_thread_encoder.o
  
  SKIPHEADERS                            += %_tablegen.h                  \
                                            %_tables.h                    \
  
  SKIPHEADERS-$(CONFIG_DXVA2)            += dxva2.h dxva2_internal.h
  SKIPHEADERS-$(CONFIG_LIBSCHROEDINGER)  += libschroedinger.h
 +SKIPHEADERS-$(CONFIG_LIBUTVIDEO)       += libutvideo.h
  SKIPHEADERS-$(CONFIG_MPEG_XVMC_DECODER) += xvmc.h
  SKIPHEADERS-$(CONFIG_VAAPI)            += vaapi_internal.h
  SKIPHEADERS-$(CONFIG_VDA)              += vda.h
  SKIPHEADERS-$(CONFIG_VDPAU)            += vdpau.h
 +SKIPHEADERS-$(HAVE_OS2THREADS)         += os2threads.h
  SKIPHEADERS-$(HAVE_W32THREADS)         += w32pthreads.h
  
 -EXAMPLES = api
 -
  TESTPROGS = cabac                                                       \
              dct                                                         \
              fft                                                         \
              golomb                                                      \
              iirfilter                                                   \
              rangecoder                                                  \
 +            snowenc                                                     \
  
 +TESTPROGS-$(HAVE_MMX) += motion
  TESTOBJS = dctref.o
  
 +TOOLS = fourcc2pixfmt
 +
  HOSTPROGS = aac_tablegen                                                \
              aacps_tablegen                                              \
              cbrt_tablegen                                               \
@@@ -3,25 -3,24 +3,25 @@@
   *
   * Copyright (c) 2008 Vladimir Voroshilov
   *
 - * 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/common.h"
 +#include "libavutil/libm.h"
  #include "libavutil/mathematics.h"
  #include "avcodec.h"
  #include "dsputil.h"
@@@ -87,7 -86,7 +87,7 @@@ void ff_acelp_update_past_gain
      if(erasure)
          quant_energy[0] = FFMAX(avg_gain >> log2_ma_pred_order, -10240) - 4096; // -10 and -4 in (5.10)
      else
-         quant_energy[0] = (6165 * ((ff_log2(gain_corr_factor) >> 2) - (13 << 13))) >> 13;
+         quant_energy[0] = (6165 * ((ff_log2_q15(gain_corr_factor) >> 2) - (13 << 13))) >> 13;
  }
  
  int16_t ff_acelp_decode_gain_code(
      for(i=0; i<ma_pred_order; i++)
          mr_energy += quant_energy[i] * ma_prediction_coeff[i];
  
 +#ifdef G729_BITEXACT
 +    mr_energy += (((-6165LL * ff_log2(dsp->scalarproduct_int16(fc_v, fc_v, subframe_size, 0))) >> 3) & ~0x3ff);
 +
 +    mr_energy = (5439 * (mr_energy >> 15)) >> 8;           // (0.15) = (0.15) * (7.23)
 +
 +    return bidir_sal(
 +               ((ff_exp2(mr_energy & 0x7fff) + 16) >> 5) * (gain_corr_factor >> 1),
 +               (mr_energy >> 15) - 25
 +           );
 +#else
      mr_energy = gain_corr_factor * exp(M_LN10 / (20 << 23) * mr_energy) /
                  sqrt(dsp->scalarproduct_int16(fc_v, fc_v, subframe_size));
      return mr_energy >> 12;
 +#endif
  }
  
  float ff_amr_set_fixed_gain(float fixed_gain_factor, float fixed_mean_energy,
diff --combined libavcodec/celp_math.c
@@@ -3,29 -3,28 +3,29 @@@
   *
   * Copyright (c) 2008 Vladimir Voroshilov
   *
 - * 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 <inttypes.h>
  #include <limits.h>
 -#include <assert.h>
  
 +#include "libavutil/avassert.h"
  #include "avcodec.h"
 +#include "mathops.h"
  #include "celp_math.h"
  #include "libavutil/common.h"
  
@@@ -49,7 -48,7 +49,7 @@@ int ff_exp2(uint16_t power
  {
      unsigned int result= exp2a[power>>10] + 0x10000;
  
 -    assert(power <= 0x7fff);
 +    av_assert2(power <= 0x7fff);
  
      result= (result<<3) + ((result*exp2b[(power>>5)&31])>>17);
      return result + ((result*(power&31)*89)>>22);
   */
  static const uint16_t tab_log2[33] =
  {
 +#ifdef G729_BITEXACT
 +      0,   1455,   2866,   4236,   5568,   6863,   8124,   9352,
 +  10549,  11716,  12855,  13967,  15054,  16117,  17156,  18172,
 +  19167,  20142,  21097,  22033,  22951,  23852,  24735,  25603,
 +  26455,  27291,  28113,  28922,  29716,  30497,  31266,  32023,  32767,
 +#else
        4,   1459,   2870,   4240,   5572,   6867,   8127,   9355,
    10552,  11719,  12858,  13971,  15057,  16120,  17158,  18175,
    19170,  20145,  21100,  22036,  22954,  23854,  24738,  25605,
    26457,  27294,  28116,  28924,  29719,  30500,  31269,  32025,  32769,
 +#endif
  };
  
- int ff_log2(uint32_t value)
+ int ff_log2_q15(uint32_t value)
  {
      uint8_t  power_int;
      uint8_t  frac_x0;
  
      return (power_int << 15) + value;
  }
 +
 +int64_t ff_dot_product(const int16_t *a, const int16_t *b, int length)
 +{
 +    int i;
 +    int64_t sum = 0;
 +
 +    for (i = 0; i < length; i++)
 +        sum += MUL16(a[i], b[i]);
 +
 +    return sum;
 +}
 +
 +float ff_dot_productf(const float* a, const float* b, int length)
 +{
 +    float sum = 0;
 +    int i;
 +
 +    for(i=0; i<length; i++)
 +        sum += a[i] * b[i];
 +
 +    return sum;
 +}
 +
 +void ff_celp_math_init(CELPMContext *c)
 +{
 +    c->dot_productf   = ff_dot_productf;
 +
 +    if(HAVE_MIPSFPU)
 +        ff_celp_math_init_mips(c);
 +}
diff --combined libavcodec/celp_math.h
@@@ -3,20 -3,20 +3,20 @@@
   *
   * Copyright (c) 2008 Vladimir Voroshilov
   *
 - * 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 <stdint.h>
  
 +typedef struct CELPMContext {
 +    /**
 +     * Return the dot product.
 +     * @param a input data array
 +     * @param b input data array
 +     * @param length number of elements
 +     *
 +     * @return dot product = sum of elementwise products
 +     */
 +    float (*dot_productf)(const float* a, const float* b, int length);
 +
 +}CELPMContext;
 +
 +/**
 + * Initialize CELPMContext.
 + */
 +void ff_celp_math_init(CELPMContext *c);
 +void ff_celp_math_init_mips(CELPMContext *c);
 +
  /**
   * fixed-point implementation of exp2(x) in [0; 1] domain.
   * @param power argument to exp2, 0 <= power <= 0x7fff
@@@ -59,7 -40,7 +59,7 @@@ int ff_exp2(uint16_t power)
   *
   * @return value of (1<<15) * log2(value)
   */
- int ff_log2(uint32_t value);
+ int ff_log2_q15(uint32_t value);
  
  /**
   * Shift value left or right depending on sign of offset parameter.
@@@ -74,24 -55,4 +74,24 @@@ static inline int bidir_sal(int value, 
      else           return value <<  offset;
  }
  
 +/**
 + * returns the dot product of 2 int16_t vectors.
 + * @param a input data array
 + * @param b input data array
 + * @param length number of elements
 + *
 + * @return dot product = sum of elementwise products
 + */
 +int64_t ff_dot_product(const int16_t *a, const int16_t *b, int length);
 +
 +/**
 + * Return the dot product.
 + * @param a input data array
 + * @param b input data array
 + * @param length number of elements
 + *
 + * @return dot product = sum of elementwise products
 + */
 +float ff_dot_productf(const float* a, const float* b, int length);
 +
  #endif /* AVCODEC_CELP_MATH_H */
diff --combined libavcodec/mathtables.c
@@@ -1,20 -1,18 +1,20 @@@
  /*
 - * This file is part of Libav.
 + * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
   *
 - * 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
   */
  
@@@ -58,17 -56,6 +58,6 @@@ const uint32_t ff_inverse[257]=
    16777216
  };
  
- const uint8_t ff_sqrt_tab[256]={
-   0, 16, 23, 28, 32, 36, 40, 43, 46, 48, 51, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 77, 79, 80, 82, 84, 85, 87, 88, 90,
-  91, 92, 94, 95, 96, 98, 99,100,102,103,104,105,107,108,109,110,111,112,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
- 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,144,145,146,147,148,149,150,151,151,152,153,154,155,156,156,
- 157,158,159,160,160,161,162,163,164,164,165,166,167,168,168,169,170,171,171,172,173,174,174,175,176,176,177,178,179,179,180,181,
- 182,182,183,184,184,185,186,186,187,188,188,189,190,190,191,192,192,193,194,194,195,196,196,197,198,198,199,200,200,201,202,202,
- 203,204,204,205,205,206,207,207,208,208,209,210,210,211,212,212,213,213,214,215,215,216,216,217,218,218,219,219,220,220,221,222,
- 222,223,223,224,224,225,226,226,227,227,228,228,229,230,230,231,231,232,232,233,233,234,235,235,236,236,237,237,238,238,239,239,
- 240,240,241,242,242,243,243,244,244,245,245,246,246,247,247,248,248,249,249,250,250,251,251,252,252,253,253,254,254,255,255,255
- };
  const uint8_t ff_reverse[256] = {
  0x00,0x80,0x40,0xC0,0x20,0xA0,0x60,0xE0,0x10,0x90,0x50,0xD0,0x30,0xB0,0x70,0xF0,
  0x08,0x88,0x48,0xC8,0x28,0xA8,0x68,0xE8,0x18,0x98,0x58,0xD8,0x38,0xB8,0x78,0xF8,
diff --combined libavcodec/sqrt_tab.c
index 0000000,3f18d91..f084b45
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,30 +1,30 @@@
 - * This file is part of Libav.
+ /*
 - * Libav is free software; you can redistribute it and/or
++ * This file is part of FFmpeg.
+  *
 - * Libav is distributed in the hope that it will be useful,
++ * 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.
+  *
 - * License along with Libav; if not, write to the Free Software
++ * 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 FFmpeg; if not, write to the Free Software
+  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+  */
+ #include <stdint.h>
+ const uint8_t ff_sqrt_tab[256]={
+   0, 16, 23, 28, 32, 36, 40, 43, 46, 48, 51, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 77, 79, 80, 82, 84, 85, 87, 88, 90,
+  91, 92, 94, 95, 96, 98, 99,100,102,103,104,105,107,108,109,110,111,112,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
+ 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,144,145,146,147,148,149,150,151,151,152,153,154,155,156,156,
+ 157,158,159,160,160,161,162,163,164,164,165,166,167,168,168,169,170,171,171,172,173,174,174,175,176,176,177,178,179,179,180,181,
+ 182,182,183,184,184,185,186,186,187,188,188,189,190,190,191,192,192,193,194,194,195,196,196,197,198,198,199,200,200,201,202,202,
+ 203,204,204,205,205,206,207,207,208,208,209,210,210,211,212,212,213,213,214,215,215,216,216,217,218,218,219,219,220,220,221,222,
+ 222,223,223,224,224,225,226,226,227,227,228,228,229,230,230,231,231,232,232,233,233,234,235,235,236,236,237,237,238,238,239,239,
+ 240,240,241,242,242,243,243,244,244,245,245,246,246,247,247,248,248,249,249,250,250,251,251,252,252,253,253,254,254,255,255,255
+ };
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                                                         \
@@@ -42,8 -39,6 +42,8 @@@
            samplefmt.h                                                   \
            sha.h                                                         \
            time.h                                                        \
 +          timecode.h                                                    \
 +          timestamp.h                                                   \
            version.h                                                     \
            xtea.h                                                        \
  
@@@ -61,7 -56,6 +61,7 @@@ OBJS = adler32.
         avstring.o                                                       \
         base64.o                                                         \
         blowfish.o                                                       \
 +       bprint.o                                                         \
         cpu.o                                                            \
         crc.o                                                            \
         des.o                                                            \
@@@ -75,6 -69,7 +75,7 @@@
         lfg.o                                                            \
         lls.o                                                            \
         log.o                                                            \
+        log2.o                                                           \
         log2_tab.o                                                       \
         lzo.o                                                            \
         mathematics.o                                                    \
         rc4.o                                                            \
         samplefmt.o                                                      \
         sha.o                                                            \
+        sqrt_tab.o                                                       \
         time.o                                                           \
 +       timecode.o                                                       \
         tree.o                                                           \
         utils.o                                                          \
 +       xga_font_data.o                                                  \
         xtea.o                                                           \
  
 +
  OBJS += $(COMPAT_OBJS:%=../compat/%)
  
  SKIPHEADERS          = old_pix_fmts.h
@@@ -106,28 -99,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
 +
 +$(SUBDIR)lzo-test$(EXESUF): ELIBS = -llzo2
diff --combined libavutil/common.h
@@@ -1,20 -1,20 +1,20 @@@
  /*
   * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
   *
 - * 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
   */
  
@@@ -49,8 -49,6 +49,8 @@@
  #define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b))
  /* assume b>0 */
  #define ROUNDED_DIV(a,b) (((a)>0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b))
 +#define FFUDIV(a,b) (((a)>0 ?(a):(a)-(b)+1) / (b))
 +#define FFUMOD(a,b) ((a)-(b)*FFUDIV(a,b))
  #define FFABS(a) ((a) >= 0 ? (a) : (-(a)))
  #define FFSIGN(a) ((a) > 0 ? 1 : -1)
  
  #define FFALIGN(x, a) (((x)+(a)-1)&~((a)-1))
  
  /* misc math functions */
- extern const uint8_t ff_log2_tab[256];
  
 +/**
 + * Reverse the order of the bits of an 8-bits unsigned integer.
 + */
  #if FF_API_AV_REVERSE
  extern attribute_deprecated const uint8_t av_reverse[256];
  #endif
  
- static av_always_inline av_const int av_log2_c(unsigned int v)
- {
-     int n = 0;
-     if (v & 0xffff0000) {
-         v >>= 16;
-         n += 16;
-     }
-     if (v & 0xff00) {
-         v >>= 8;
-         n += 8;
-     }
-     n += ff_log2_tab[v];
-     return n;
- }
- static av_always_inline av_const int av_log2_16bit_c(unsigned int v)
- {
-     int n = 0;
-     if (v & 0xff00) {
-         v >>= 8;
-         n += 8;
-     }
-     n += ff_log2_tab[v];
-     return n;
- }
  #ifdef HAVE_AV_CONFIG_H
  #   include "config.h"
  #   include "intmath.h"
  /* Pull in unguarded fallback defines at the end of this file. */
  #include "common.h"
  
+ #ifndef av_log2
+ av_const int av_log2(unsigned v);
+ #endif
+ #ifndef av_log2_16bit
+ av_const int av_log2_16bit(unsigned v);
+ #endif
  /**
   * Clip a signed integer value into the amin-amax range.
   * @param a value to clip
@@@ -175,7 -149,7 +154,7 @@@ static av_always_inline av_const int16_
  static av_always_inline av_const int32_t av_clipl_int32_c(int64_t a)
  {
      if ((a+0x80000000u) & ~UINT64_C(0xFFFFFFFF)) return (a>>63) ^ 0x7FFFFFFF;
 -    else                                         return a;
 +    else                                         return (int32_t)a;
  }
  
  /**
@@@ -258,7 -232,7 +237,7 @@@ static av_always_inline av_const int av
   */
  static av_always_inline av_const int av_popcount64_c(uint64_t x)
  {
 -    return av_popcount(x) + av_popcount(x >> 32);
 +    return av_popcount((uint32_t)x) + av_popcount(x >> 32);
  }
  
  #define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24))
   * to ensure they are immediately available in intmath.h.
   */
  
- #ifndef av_log2
- #   define av_log2       av_log2_c
- #endif
- #ifndef av_log2_16bit
- #   define av_log2_16bit av_log2_16bit_c
- #endif
  #ifndef av_ceil_log2
  #   define av_ceil_log2     av_ceil_log2_c
  #endif
diff --combined libavutil/intmath.h
@@@ -1,26 -1,28 +1,28 @@@
  /*
   * 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
   */
  
  #ifndef AVUTIL_INTMATH_H
  #define AVUTIL_INTMATH_H
  
+ #include <stdint.h>
  #include "config.h"
  #include "attributes.h"
  
   * @{
   */
  
 +#if   ARCH_ARM
 +#   include "arm/intmath.h"
 +#endif
 +
  #if HAVE_FAST_CLZ && AV_GCC_VERSION_AT_LEAST(3,4)
  
- #ifndef av_log2
- #   define av_log2(x) (31 - __builtin_clz((x)|1))
- #   ifndef av_log2_16bit
- #      define av_log2_16bit av_log2
+ #ifndef ff_log2
+ #   define ff_log2(x) (31 - __builtin_clz((x)|1))
+ #   ifndef ff_log2_16bit
+ #      define ff_log2_16bit av_log2
  #   endif
- #endif /* av_log2 */
+ #endif /* ff_log2 */
  
  #endif /* AV_GCC_VERSION_AT_LEAST(3,4) */
  
+ extern const uint8_t ff_log2_tab[256];
+ #ifndef ff_log2
+ #define ff_log2 ff_log2_c
+ static av_always_inline av_const int ff_log2_c(unsigned int v)
+ {
+     int n = 0;
+     if (v & 0xffff0000) {
+         v >>= 16;
+         n += 16;
+     }
+     if (v & 0xff00) {
+         v >>= 8;
+         n += 8;
+     }
+     n += ff_log2_tab[v];
+     return n;
+ }
+ #endif
+ #ifndef ff_log2_16bit
+ #define ff_log2_16bit ff_log2_16bit_c
+ static av_always_inline av_const int ff_log2_16bit_c(unsigned int v)
+ {
+     int n = 0;
+     if (v & 0xff00) {
+         v >>= 8;
+         n += 8;
+     }
+     n += ff_log2_tab[v];
+     return n;
+ }
+ #endif
+ #define av_log2       ff_log2
+ #define av_log2_16bit ff_log2_16bit
  /**
   * @}
   */
diff --combined libavutil/libavutil.v
@@@ -1,4 -1,4 +1,4 @@@
  LIBAVUTIL_$MAJOR {
-         global: av*; ff_*;
 -        global: av*; ff_*_tab;
++        global: av*; ff_*; ff_*_tab;
          local: *;
  };
diff --combined libavutil/log2.c
index 0000000,18c1b40..b0c00e1
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,34 +1,34 @@@
 - * This file is part of Libav.
+ /*
 - * Libav is free software; you can redistribute it and/or
++ * This file is part of FFmpeg.
+  *
 - * Libav is distributed in the hope that it will be useful,
++ * 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.
+  *
 - * License along with Libav; if not, write to the Free Software
++ * 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 FFmpeg; if not, write to the Free Software
+  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+  */
+ #include "intmath.h"
+ /* undef these to get the function prototypes from common.h */
+ #undef av_log2
+ #undef av_log2_16bit
+ #include "common.h"
+ int av_log2(unsigned v)
+ {
+     return ff_log2(v);
+ }
+ int av_log2_16bit(unsigned v)
+ {
+     return ff_log2_16bit(v);
+ }