Merge remote-tracking branch 'hexene/scratchpad'
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 13 Sep 2011 23:23:16 +0000 (01:23 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 13 Sep 2011 23:23:16 +0000 (01:23 +0200)
* hexene/scratchpad:
  Move & Rename buildscript, remove tabs
  Fix regular build
  Support (H/W accelerated) H.264 decoding on Android via Stagefright
  Add build-script for Android
  C++ Support ;)

Conflicts:
Changelog
Makefile
configure
libavcodec/Makefile
libavcodec/allcodecs.c
libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
Changelog
Makefile
common.mak
configure
libavcodec/Makefile
libavcodec/allcodecs.c
libavcodec/version.h
tools/build_libstagefright

diff --cc Changelog
+++ b/Changelog
@@@ -43,20 -41,37 +43,22 @@@ easier to use. The changes are
        '-preset <presetname>'.
      * -intra option was removed, it's equivalent to -g 0.
  - XMV demuxer
 +- LOAS demuxer
 +- ashowinfo filter added
  - Windows Media Image decoder
 +- amovie source added
 +- LATM muxer
 +- Speex encoder via libspeex
 +- JSON output in ffprobe
 +- WTV muxer
+ - C++ Support
+ - H.264 Decoding on Android via Stagefright
  
  
 -version 0.7:
 -
 -- E-AC-3 audio encoder
 -- ac3enc: add channel coupling support
 -- floating-point sample format support for (E-)AC-3, DCA, AAC, Vorbis decoders
 -- H.264/MPEG frame-level multithreading
 -- av_metadata_* functions renamed to av_dict_* and moved to libavutil
 -- 4:4:4 H.264 decoding support
 -- 10-bit H.264 optimizations for x86
 -- bump libswscale for recently reported ABI break
 +version 0.8:
  
  
 -version 0.7_beta2:
 -
 -- VP8 frame-level multithreading
 -- NEON optimizations for VP8
 -- removed a lot of deprecated API cruft
 -- FFT and IMDCT optimizations for AVX (Sandy Bridge) processors
 -- DPX image encoder
 -- SMPTE 302M AES3 audio decoder
 -- ffmpeg no longer quits after the 'q' key is pressed; use 'ctrl+c' instead
 -- 9bit and 10bit per sample support in the H.264 decoder
 -
 -
 -version 0.7_beta1:
 -
 +- many many things we forgot because we rather write code than changelogs
  - WebM support in Matroska de/muxer
  - low overhead Ogg muxing
  - MMS-TCP support
diff --cc Makefile
+++ b/Makefile
@@@ -8,15 -8,63 +9,14 @@@ vpath %.asm  $(SRC_PATH
  vpath %.v    $(SRC_PATH)
  vpath %.texi $(SRC_PATH)
  
 -ifndef V
 -Q      = @
 -ECHO   = printf "$(1)\t%s\n" $(2)
 -BRIEF  = CC CXX AS YASM AR LD HOSTCC
 -SILENT = DEPCC YASMDEP RM RANLIB
 -MSG    = $@
 -M      = @$(call ECHO,$(TAG),$@);
 -$(foreach VAR,$(BRIEF), \
 -    $(eval override $(VAR) = @$$(call ECHO,$(VAR),$$(MSG)); $($(VAR))))
 -$(foreach VAR,$(SILENT),$(eval override $(VAR) = @$($(VAR))))
 -$(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_PATH)/%=%)); $(INSTALL))
 -endif
 -
 -ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale
 -
 -IFLAGS     := -I. -I$(SRC_PATH)
 -CPPFLAGS   := $(IFLAGS) $(CPPFLAGS)
 -CFLAGS     += $(ECFLAGS)
 -CCFLAGS     = $(CFLAGS)
 -CXXFLAGS   := $(CFLAGS) $(CXXFLAGS)
 -YASMFLAGS  += $(IFLAGS) -I$(SRC_PATH)/libavutil/x86/ -Pconfig.asm
 -HOSTCFLAGS += $(IFLAGS)
 -LDFLAGS    := $(ALLFFLIBS:%=-Llib%) $(LDFLAGS)
 -
 -define COMPILE
 -      $($(1)DEP)
 -      $($(1)) $(CPPFLAGS) $($(1)FLAGS) $($(1)_DEPFLAGS) -c $($(1)_O) $<
 -endef
 -
 -COMPILE_C = $(call COMPILE,CC)
 -COMPILE_CXX = $(call COMPILE,CXX)
 -COMPILE_S = $(call COMPILE,AS)
 -
 -%.o: %.c
 -      $(COMPILE_C)
 -
 -%.o: %.cpp
 -      $(COMPILE_CXX)
 -
 -%.o: %.S
 -      $(COMPILE_S)
 -
 -%.ho: %.h
 -      $(CC) $(CPPFLAGS) $(CFLAGS) -Wno-unused -c -o $@ -x c $<
 -
 -%.ver: %.v
 -      $(Q)sed 's/$$MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^ > $@
 -
 -%.c %.h: TAG = GEN
--
  PROGS-$(CONFIG_FFMPEG)   += ffmpeg
  PROGS-$(CONFIG_AVCONV)   += avconv
 -PROGS-$(CONFIG_AVPLAY)   += avplay
 -PROGS-$(CONFIG_AVPROBE)  += avprobe
 -PROGS-$(CONFIG_AVSERVER) += avserver
 +PROGS-$(CONFIG_FFPLAY)   += ffplay
 +PROGS-$(CONFIG_FFPROBE)  += ffprobe
 +PROGS-$(CONFIG_FFSERVER) += ffserver
  
  PROGS      := $(PROGS-yes:%=%$(EXESUF))
 +INSTPROGS   = $(PROGS-yes:%=%$(PROGSSUF)$(EXESUF))
  OBJS        = $(PROGS-yes:%=%.o) cmdutils.o
  TESTTOOLS   = audiogen videogen rotozoom tiny_psnr base64
  HOSTPROGS  := $(TESTTOOLS:%=tests/%)
diff --cc common.mak
@@@ -5,66 -5,6 +5,71 @@@
  # first so "all" becomes default target
  all: all-yes
  
- BRIEF  = CC AS YASM AR LD HOSTCC STRIP CP
 +ifndef SUBDIR
 +
 +ifndef V
 +Q      = @
 +ECHO   = printf "$(1)\t%s\n" $(2)
++BRIEF  = CC CXX AS YASM AR LD HOSTCC STRIP CP
 +SILENT = DEPCC YASMDEP RM RANLIB
 +MSG    = $@
 +M      = @$(call ECHO,$(TAG),$@);
 +$(foreach VAR,$(BRIEF), \
 +    $(eval override $(VAR) = @$$(call ECHO,$(VAR),$$(MSG)); $($(VAR))))
 +$(foreach VAR,$(SILENT),$(eval override $(VAR) = @$($(VAR))))
 +$(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_DIR)/%=%)); $(INSTALL))
 +endif
 +
 +ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale
 +
 +# NASM requires -I path terminated with /
 +IFLAGS     := -I. -I$(SRC_PATH)/
 +CPPFLAGS   := $(IFLAGS) $(CPPFLAGS)
 +CFLAGS     += $(ECFLAGS)
 +CCFLAGS     = $(CFLAGS)
++CXXFLAGS   := $(CFLAGS) $(CXXFLAGS)
 +YASMFLAGS  += $(IFLAGS) -I$(SRC_PATH)/libavutil/x86/ -Pconfig.asm
 +HOSTCFLAGS += $(IFLAGS)
 +LDFLAGS    := $(ALLFFLIBS:%=-Llib%) $(LDFLAGS)
 +
 +define COMPILE
 +       $($(1)DEP)
 +       $($(1)) $(CPPFLAGS) $($(1)FLAGS) $($(1)_DEPFLAGS) -c $($(1)_O) $<
 +endef
 +
 +COMPILE_C = $(call COMPILE,CC)
++COMPILE_CXX = $(call COMPILE,CXX)
 +COMPILE_S = $(call COMPILE,AS)
 +
 +%.o: %.c
 +      $(COMPILE_C)
 +
++%.o: %.cpp
++      $(COMPILE_CXX)
++
 +%.o: %.S
 +      $(COMPILE_S)
 +
 +%.ho: %.h
 +      $(CC) $(CPPFLAGS) $(CFLAGS) -Wno-unused -c -o $@ -x c $<
 +
 +%.ver: %.v
 +      $(Q)sed 's/$$MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^ > $@
 +
 +%.c %.h: TAG = GEN
 +
 +# Dummy rule to stop make trying to rebuild removed or renamed headers
 +%.h:
 +      @:
 +
 +# Disable suffix rules.  Most of the builtin rules are suffix rules,
 +# so this saves some time on slow systems.
 +.SUFFIXES:
 +
 +# Do not delete intermediate files from chains of implicit rules
 +$(OBJS):
 +endif
 +
  OBJS-$(HAVE_MMX) +=  $(MMX-OBJS-yes)
  
  OBJS      += $(OBJS-yes)
diff --cc configure
+++ b/configure
@@@ -178,7 -177,8 +178,8 @@@ External library support
    --enable-libopenjpeg     enable JPEG 2000 decoding via OpenJPEG [no]
    --enable-librtmp         enable RTMP[E] support via librtmp [no]
    --enable-libschroedinger enable Dirac support via libschroedinger [no]
 -  --enable-libspeex        enable Speex decoding via libspeex [no]
 +  --enable-libspeex        enable Speex encoding and decoding via libspeex [no]
+   --enable-libstagefright-h264  enable H.264 decoding via libstagefright [no]
    --enable-libtheora       enable Theora encoding via libtheora [no]
    --enable-libvo-aacenc    enable AAC encoding via libvo-aacenc [no]
    --enable-libvo-amrwbenc  enable AMR-WB encoding via libvo-amrwbenc [no]
@@@ -705,10 -725,10 +729,10 @@@ check_mathfunc()
      func=$1
      shift
      disable $func
-     check_ld "$@" <<EOF && enable $func
+     check_ld "cc" "$@" <<EOF && enable $func
  #include <math.h>
  float foo(float f) { return $func(f); }
 -int main(void){ return 0; }
 +int main(void){ return (int) foo; }
  EOF
  }
  
@@@ -1429,7 -1465,7 +1491,8 @@@ libopenjpeg_decoder_deps="libopenjpeg
  libschroedinger_decoder_deps="libschroedinger"
  libschroedinger_encoder_deps="libschroedinger"
  libspeex_decoder_deps="libspeex"
 +libspeex_encoder_deps="libspeex"
+ libstagefright_h264_decoder_deps="libstagefright_h264"
  libtheora_encoder_deps="libtheora"
  libvo_aacenc_encoder_deps="libvo_aacenc"
  libvo_amrwbenc_encoder_deps="libvo_amrwbenc"
@@@ -1651,9 -1673,9 +1714,10 @@@ shlibdir_default="$libdir_default
  # toolchain
  ar_default="ar"
  cc_default="gcc"
+ cxx_default="g++"
  cc_version=\"unknown\"
  host_cc_default="gcc"
 +install="install"
  ln_s="ln -sf"
  nm_default="nm"
  objformat="elf"
@@@ -1874,7 -1895,7 +1940,7 @@@ strip_default="${cross_prefix}${strip_d
  
  sysinclude_default="${sysroot}/usr/include"
  
- set_default cc nm pkg_config strip sysinclude
 -set_default cc cxx nm pkg_config sysinclude
++set_default cc cxx nm pkg_config strip sysinclude
  enabled cross_compile || host_cc_default=$cc
  set_default host_cc
  
@@@ -3313,16 -3293,17 +3388,18 @@@ YASM=$yasmex
  YASMDEP=$yasmexe
  AR=$ar
  RANLIB=$ranlib
 +CP=cp -p
  LN_S=$ln_s
 +STRIP=$strip
  CPPFLAGS=$CPPFLAGS
  CFLAGS=$CFLAGS
+ CXXFLAGS=$CXXFLAGS
  ASFLAGS=$ASFLAGS
  AS_O=$CC_O
  CC_O=$CC_O
 -DLLTOOL=$dlltool
+ CXX_O=$CXX_O
  LDFLAGS=$LDFLAGS
 -AVSERVERLDFLAGS=$AVSERVERLDFLAGS
 +FFSERVERLDFLAGS=$FFSERVERLDFLAGS
  SHFLAGS=$SHFLAGS
  YASMFLAGS=$YASMFLAGS
  BUILDSUF=$build_suffix
@@@ -593,7 -573,7 +593,8 @@@ OBJS-$(CONFIG_LIBSCHROEDINGER_ENCODER
                                               libschroedinger.o    \
                                               libdirac_libschro.o
  OBJS-$(CONFIG_LIBSPEEX_DECODER)           += libspeexdec.o
 +OBJS-$(CONFIG_LIBSPEEX_ENCODER)           += libspeexenc.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_LIBVO_AMRWBENC_ENCODER)     += libvo-amrwbenc.o
@@@ -381,7 -368,8 +381,8 @@@ void avcodec_register_all(void
      REGISTER_DECODER (LIBOPENCORE_AMRWB, libopencore_amrwb);
      REGISTER_DECODER (LIBOPENJPEG, libopenjpeg);
      REGISTER_ENCDEC  (LIBSCHROEDINGER, libschroedinger);
 -    REGISTER_DECODER (LIBSPEEX, libspeex);
 +    REGISTER_ENCDEC  (LIBSPEEX, libspeex);
+     REGISTER_DECODER (LIBSTAGEFRIGHT_H264, libstagefright_h264);
      REGISTER_ENCODER (LIBTHEORA, libtheora);
      REGISTER_ENCODER (LIBVO_AACENC, libvo_aacenc);
      REGISTER_ENCODER (LIBVO_AMRWBENC, libvo_amrwbenc);
@@@ -21,7 -21,7 +21,7 @@@
  #define AVCODEC_VERSION_H
  
  #define LIBAVCODEC_VERSION_MAJOR 53
- #define LIBAVCODEC_VERSION_MINOR 13
 -#define LIBAVCODEC_VERSION_MINOR 10
++#define LIBAVCODEC_VERSION_MINOR 14
  #define LIBAVCODEC_VERSION_MICRO  0
  
  #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
index 0000000,583c801..583c801
mode 000000,100755..100644
--- /dev/null