Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenHevc(android branch) supports SHVC decoding #44

Open
JWSon opened this issue Jul 7, 2016 · 4 comments
Open

OpenHevc(android branch) supports SHVC decoding #44

JWSon opened this issue Jul 7, 2016 · 4 comments

Comments

@JWSon
Copy link

JWSon commented Jul 7, 2016

Hi!
I am going to ask a question about something that is important for what I am going to do.
Actually, I’ve tried to build OpenHevc(android branch) on Android and I just compile it successfully.
However, I wonder if it supports SHVC decoding or not because I only saw OpenHevc(hevc_rext branch) can decode shvc bitstream like this.

add -l layer with layer a number to select the layer in a SHVC bitstream

Is it available to OpenHevc(android branch)?
Hopefully, it is going to work well.

@pcabarat
Copy link
Collaborator

Hi again,

SHVC supports is not fully implemented yet.
If I'm not mistaken hevc_rext only supports SHM4.1 shvc bitstreams.
If you'd like a more up to date version, I suggest you HEVC_extensions branch.
It may not be totally stable but it adds support for SHM9 bitstreams. (still in progress)
Concerning Android, it hasn't been tested yet on recent versions of this branch.
I don't know if shvc upsampling filters optimizations are fully implemented yet, if it works it might be slow.
Let us know if you managed to get something.

Pierre-Loup

@JWSon
Copy link
Author

JWSon commented Aug 11, 2016

Thanks for your resoponse.

I builded the hevc_rext branch on the Ubuntu and decoded SHM4.1 shvc bitstreams successfully.
However, I failed to build the hevc_rext branch on the Android.
when trying to ndk-build the Android.mk, some error occured.

e.g
error1.

jni/platform/arm/config.h:174:23: error: token "@" is not valid in preprocessor expressions
#define HAVE_GMTIME_R @GMTIME_R_FOUND@
^
jni/libavutil/time_internal.h:25:6: note: in expansion of macro 'HAVE_GMTIME_R'
#if !HAVE_GMTIME_R && !defined(gmtime_r)
^
make: *** [obj/local/armeabi/objs-debug/openhevc_rext/libavutil/parseutils.o] Error 1


error2.

ni/libavformat/matroska.c:151: error: undefined reference to 'av_stereo3d_alloc'
jni/libavformat/matroskadec.c:1555: error: undefined reference to 'ff_vorbis_comment'
jni/libavformat/mov.c:2804: error: undefined reference to 'av_display_rotation_get'
jni/libavformat/mov.c:3985: error: undefined reference to 'ff_replaygain_export'
jni/libavcodec/hevc.c:3052: error: undefined reference to 'av_stereo3d_create_side_data'
collect2.exe: error: ld returned 1 exit status
make: *** [obj/local/armeabi-v7a/openhevc_rext] Error 1

How to build the hevc_rext branch on the Android?
I look forward to your responses.
Thanks!
Regard,
Son

@kicha555in
Copy link

I am also facing this issues, Anybody resolve this issue

jni/libavformat/matroska.c:151: error: undefined reference to 'av_stereo3d_alloc'
jni/libavformat/matroskadec.c:1555: error: undefined reference to 'ff_vorbis_comment'
jni/libavformat/mov.c:3985: error: undefined reference to 'ff_replaygain_export'
jni/libavformat/mov.c:2804: error: undefined reference to 'av_display_rotation_get'
jni/libavcodec/fft_template.c:174: error: undefined reference to 'ff_fft_init_arm'
jni/libavcodec/hevc.c:3136: error: undefined reference to 'av_stereo3d_create_side_data'
jni/libavcodec/hpeldsp.c:363: error: undefined reference to 'ff_hpeldsp_init_arm'
jni/libavcodec/rdft.c:126: error: undefined reference to 'ff_rdft_init_arm'
jni/main_hm/main.c:205: error: undefined reference to 'IsCloseWindowEvent'
jni/main_hm/main.c:205: error: undefined reference to 'IsCloseWindowEvent'
jni/main_hm/main.c:205: error: undefined reference to 'IsCloseWindowEvent'
/home/krishnamurthy/Android/Sdk/ndk-bundle/build/core/build-binary.mk:702: recipe for target 'obj/local/armeabi-v7a/libopenhevc.so' failed
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [obj/local/armeabi-v7a/libopenhevc.so] Error 1

Thanks,

Regards,
Krishnamurthy.R

@kicha555in
Copy link

I changed the Android.mk as below and then I could able to successfully compiled.

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
APP_STL := gnustl_static
APP_OPTIM := debug
LOCAL_ARM_MODE := arm
TARGET_PLATFORM := android-23
TARGET_ARCH_ABI := armeabi-v7a
#LOCAL_CFLAGS := -I
LOCAL_CFLAGS += -g
LOCAL_CFLAGS += -ggdb
LOCAL_CFLAGS += -O1
#LOCAL_CFLAGS += -mthumb
LOCAL_CFLAGS += -mfloat-abi=softfp
LOCAL_LDLIBS := -lz
LOCAL_LDFLAGS += -fuse-ld=bfd
LOCAL_ALLOW_UNDEFINED_SYMBOLS:= true

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants