[FFmpeg-devel] [PATCH 1/2] update configure etc to use libyami for h264 decode

2015-01-09 Thread Zhao, Halley
From: Zhao, Halley halley.z...@intel.com

---
 configure  | 24 +++-
 libavcodec/Makefile|  1 +
 libavcodec/allcodecs.c |  1 +
 3 files changed, 21 insertions(+), 5 deletions(-)
 mode change 100644 = 100755 libavcodec/Makefile

diff --git a/configure b/configure
index d4a86c0..9c54ffc 100755
--- a/configure
+++ b/configure
@@ -236,6 +236,7 @@ External library support:
   --enable-libspeexenable Speex de/encoding via libspeex [no]
   --enable-libssh  enable SFTP protocol via libssh [no]
   --enable-libstagefright-h264  enable H.264 decoding via libstagefright [no]
+  --enable-libyami-h264enable H.264 decoding via libyami [no]
   --enable-libtheora   enable Theora encoding via libtheora [no]
   --enable-libtwolame  enable MP2 encoding via libtwolame [no]
   --enable-libutvideo  enable Ut Video encoding and decoding via 
libutvideo [no]
@@ -1031,7 +1032,8 @@ check_func_headers(){
 echo long check_$func(void) { return (long) $func; }
 done
 echo int main(void) { return 0; }
-} | check_ld cc $@  enable $funcs  enable_safe $headers
+## both C++/C header check goes here, use 'cxx'
+} | check_ld cxx $@  enable $funcs  enable_safe $headers
 }
 
 check_class_headers_cpp(){
@@ -1092,14 +1094,15 @@ check_lib_cpp(){
 
 check_pkg_config(){
 log check_pkg_config $@
-pkgandversion=$1
+## one component may depend on multiple pkgs
+allpkgs=$1
 pkg=${1%% *}
 headers=$2
 funcs=$3
 shift 3
-check_cmd $pkg_config --exists --print-errors $pkgandversion || return
-pkg_cflags=$($pkg_config --cflags $pkg_config_flags $pkg)
-pkg_libs=$($pkg_config --libs $pkg_config_flags $pkg)
+check_cmd $pkg_config --exists --print-errors $allpkgs || return
+pkg_cflags=$($pkg_config --cflags $pkg_config_flags $allpkgs)
+pkg_libs=$($pkg_config --libs $pkg_config_flags $allpkgs)
 check_func_headers $headers $funcs $pkg_cflags $pkg_libs $@ 
 set_safe ${pkg}_cflags $pkg_cflags   
 set_safe ${pkg}_libs   $pkg_libs
@@ -1210,6 +1213,14 @@ require_pkg_config(){
 add_extralibs $(get_safe ${pkg}_libs)
 }
 
+cxx_extralibs_added=no
+add_cxx_extralibs(){
+if [ $cxx_extralibs_added = no]; then
+add_extralibs -lstdc++ -Wl,--no-as-needed -ldl
+cxx_extralibs_added=yes
+fi
+}
+
 require_libfreetype(){
 log require_libfreetype $@
 pkg=freetype2
@@ -1371,6 +1382,7 @@ EXTERNAL_LIBRARY_LIST=
 libspeex
 libssh
 libstagefright_h264
+libyami_h264
 libtheora
 libtwolame
 libutvideo
@@ -2368,6 +2380,7 @@ libspeex_decoder_deps=libspeex
 libspeex_encoder_deps=libspeex
 libspeex_encoder_select=audio_frame_queue
 libstagefright_h264_decoder_deps=libstagefright_h264
+libyami_h264_decoder_deps=libyami_h264
 libtheora_encoder_deps=libtheora
 libtwolame_encoder_deps=libtwolame
 libvo_aacenc_encoder_deps=libvo_aacenc
@@ -4884,6 +4897,7 @@ enabled libspeex   require_pkg_config speex 
speex/speex.h speex_decode
 enabled libstagefright_h264  require_cpp libstagefright_h264 
binder/ProcessState.h media/stagefright/MetaData.h
 media/stagefright/MediaBufferGroup.h media/stagefright/MediaDebug.h 
media/stagefright/MediaDefs.h
 media/stagefright/OMXClient.h media/stagefright/OMXCodec.h 
android::OMXClient -lstagefright -lmedia -lutils -lbinder -lgnustl_static
+enabled libyami_h264   require_pkg_config libyami_decoder libva 
VideoDecoderHost.h createVideoDecoder  add_cxx_extralibs()
 enabled libtheora  require libtheora theora/theoraenc.h th_info_init 
-ltheoraenc -ltheoradec -logg
 enabled libtwolame require libtwolame twolame.h twolame_init 
-ltwolame 
  { check_lib twolame.h 
twolame_encode_buffer_float32_interleaved -ltwolame ||
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
old mode 100644
new mode 100755
index fa0f53d..d8697ff
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -747,6 +747,7 @@ OBJS-$(CONFIG_LIBSHINE_ENCODER)   += libshine.o
 OBJS-$(CONFIG_LIBSPEEX_DECODER)   += libspeexdec.o
 OBJS-$(CONFIG_LIBSPEEX_ENCODER)   += libspeexenc.o
 OBJS-$(CONFIG_LIBSTAGEFRIGHT_H264_DECODER)+= libstagefright.o
+OBJS-$(CONFIG_LIBYAMI_H264_DECODER)   += libyami.o
 OBJS-$(CONFIG_LIBTHEORA_ENCODER)  += libtheoraenc.o
 OBJS-$(CONFIG_LIBTWOLAME_ENCODER) += libtwolame.o
 OBJS-$(CONFIG_LIBUTVIDEO_DECODER) += libutvideodec.o
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index 0d39d33..beccc74 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -97,6 +97,7 @@ void avcodec_register_all(void)
 REGISTER_HWACCEL(WMV3_VDPAU,wmv3_vdpau);
 
 /* video codecs */
+REGISTER_DECODER(LIBYAMI_H264,  libyami_h264);
 REGISTER_ENCODER(A64MULTI,  a64multi);
 REGISTER_ENCODER(A64MULTI5, a64multi5);
 REGISTER_DECODER(AASC,  aasc);
-- 
1.8.3.2


Re: [FFmpeg-devel] [PATCH 1/2] update configure etc to use libyami for h264 decode

2015-01-09 Thread Michael Niedermayer
On Fri, Jan 09, 2015 at 04:15:12PM +0800, Zhao, Halley wrote:
 From: Zhao, Halley halley.z...@intel.com
 
 ---
  configure  | 24 +++-
  libavcodec/Makefile|  1 +
  libavcodec/allcodecs.c |  1 +
  3 files changed, 21 insertions(+), 5 deletions(-)
  mode change 100644 = 100755 libavcodec/Makefile

this breaks configure

after this patch pkg_config just fails
like in
ERROR: libass not found using pkg-config

while it works fine before

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I do not agree with what you have to say, but I'll defend to the death your
right to say it. -- Voltaire


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 1/2] update configure etc to use libyami for h264 decode

2015-01-09 Thread Ronald S. Bultje
Hi,

On Fri, Jan 9, 2015 at 3:15 AM, Zhao, Halley halley.z...@intel.com wrote:

 @@ -1031,7 +1032,8 @@ check_func_headers(){
  echo long check_$func(void) { return (long) $func; }
  done
  echo int main(void) { return 0; }
 -} | check_ld cc $@  enable $funcs  enable_safe $headers
 +## both C++/C header check goes here, use 'cxx'
 +} | check_ld cxx $@  enable $funcs  enable_safe $headers
  }


This seems wrong, as in, this will likely use c++ even when it's not
necessary. Why not create a new macro check_func_headers_cxx?

Ronald
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel