Hardware decoder availability on exynos CPU

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Hardware decoder availability on exynos CPU

jeremi.wojcicki
Hi all,

I am working on an application where I capture an RTP h264 encoded video stream with udpsrc and then grab frames with appsink for further processing. The device I am developing for is Samsung Galaxy S8 with Exynos 8895. I use prebuild gstreamer libraries form 1.12.0 built. My pipeline looks like this:

udpsrc port=7481 ! application/x-rtp, media=video, payload=127, clock-rate=90000, encoding-name=H264 ! rtpjitterbuffer latency=50 ! rtph264depay ! h264parse ! decodebin ! videoconvert n-threads=8 ! video/x-raw,format=RGB ! appsink sync=true max-buffers=5 drop=true

The problem is that, as far as I know, decodebin should choose an apropriate decoder with highest priority, typically a hardware one. It seems however that openh264 (software, with poor performance) is autoplugged instead. Looking into gstreamer register, there is nothing like amc* available.

I use $(GSTREAMER_PLUGINS_CODECS) in the Android.mk which includes androidmedia (I guess from where the hw codec should come from) but no effect. Instead during startup I receive following error then (non-blocking):

07-20 23:13:26.421 8341-8341/org.freedesktop.gstreamer.tutorials.tutorial_1 E/GStreamer+default: 0:00:00.011406731 0x771cdc6520 gstjniutils.c:671:initialize_classes Could not find application class loader provider
07-20 23:13:26.422 8341-8341/org.freedesktop.gstreamer.tutorials.tutorial_1 W/GStreamer+GST_PLUGIN_LOADING: 0:00:00.011534538 0x771cdc6520 gstplugin.c:527:gst_plugin_register_func plugin "(NULL)" failed to initialise
07-20 23:13:26.422 8341-8341/org.freedesktop.gstreamer.tutorials.tutorial_1 I/GStreamer: GStreamer initialization complete

I used a simplest "Android Tutorial-1" here, to be sure its the simplest possible case, but no amc* blocks can be found. Am I missing something here? I believed that amc* are somewhat given for granted on android. Do I need to compile manually some plugins or is it a matter of my device?

Thanks,
Jeremi
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Hardware decoder availability on exynos CPU

Nicolas Dufresne-5
Le jeudi 20 juillet 2017 à 14:07 -0700, jeremi.wojcicki a écrit :

> Hi all,
>
> I am working on an application where I capture an RTP h264 encoded
> video
> stream with udpsrc and then grab frames with appsink for further
> processing.
> The device I am developing for is Samsung Galaxy S8 with Exynos 8895.
> I use
> prebuild gstreamer libraries form 1.12.0 built. My pipeline looks
> like this:
>
> udpsrc port=7481 ! application/x-rtp, media=video, payload=127,
> clock-rate=90000, encoding-name=H264 ! rtpjitterbuffer latency=50 !
> rtph264depay ! h264parse ! decodebin ! videoconvert n-threads=8 !
> video/x-raw,format=RGB ! appsink sync=true max-buffers=5 drop=true
>
> The problem is that, as far as I know, decodebin should choose an
> apropriate
> decoder with highest priority, typically a hardware one. It seems
> however
> that openh264 (software, with poor performance) is autoplugged
> instead.
> Looking into gstreamer register, there is nothing like amc*
> available.
>
> I use $(GSTREAMER_PLUGINS_CODECS) in the Android.mk which includes
> androidmedia (I guess from where the hw codec should come from) but
> no
> effect. Instead during startup I receive following error then
>
> (non-blocking):

Make sure to include amc plugin (Android Media Codec).

>
> 07-20 23:13:26.421 8341-
> 8341/org.freedesktop.gstreamer.tutorials.tutorial_1
> E/GStreamer+default: 0:00:00.011406731 0x771cdc6520
> gstjniutils.c:671:initialize_classes Could not find application class
> loader
> provider
> 07-20 23:13:26.422 8341-
> 8341/org.freedesktop.gstreamer.tutorials.tutorial_1
> W/GStreamer+GST_PLUGIN_LOADING: 0:00:00.011534538 0x771cdc6520
> gstplugin.c:527:gst_plugin_register_func plugin "(NULL)" failed to
> initialise
> 07-20 23:13:26.422 8341-
> 8341/org.freedesktop.gstreamer.tutorials.tutorial_1
> I/GStreamer: GStreamer initialization complete
>
> I used a simplest "Android Tutorial-1" here, to be sure its the
> simplest
> possible case, but no amc* blocks can be found. Am I missing
> something here?
> I believed that amc* are somewhat given for granted on android. Do I
> need to
> compile manually some plugins or is it a matter of my device?
>
> Thanks,
> Jeremi
>
>
>
> --
> View this message in context: http://gstreamer-devel.966125.n4.nabble
> .com/Hardware-decoder-availability-on-exynos-CPU-tp4683878.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Hardware decoder availability on exynos CPU

jeremi.wojcicki
Thanks Nicolas,

Nicolas Dufresne-5 wrote
Make sure to include amc plugin (Android Media Codec).
Is amc the full plugin name? I have added it to the Android.mk like this:

GSTREAMER_PLUGINS         := $(GSTREAMER_PLUGINS_CORE) $(GSTREAMER_PLUGINS_SYS) $(GSTREAMER_PLUGINS_EFFECTS) $(GSTREAMER_PLUGINS_CODECS) $(GSTREAMER_PLUGINS_NET) $(GSTREAMER_PLUGINS_PLAYBACK) amc

But does not compile:
"
Error:error: undefined reference to 'gst_plugin_amc_register'
Error:error: cannot find -lgstamc
"

Do I need to compile it from source or sth?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Hardware decoder availability on exynos CPU

Nicolas Dufresne-5
Le vendredi 21 juillet 2017 à 07:22 -0700, jeremi.wojcicki a écrit :

> Thanks Nicolas,
>
>
> Nicolas Dufresne-5 wrote
> > Make sure to include amc plugin (Android Media Codec).
>
> Is amc the full plugin name? I have added it to the Android.mk like
> this:
>
> GSTREAMER_PLUGINS         := $(GSTREAMER_PLUGINS_CORE)
> $(GSTREAMER_PLUGINS_SYS) $(GSTREAMER_PLUGINS_EFFECTS)
> $(GSTREAMER_PLUGINS_CODECS) $(GSTREAMER_PLUGINS_NET)
> $(GSTREAMER_PLUGINS_PLAYBACK) amc
>
> But does not compile:
> "
> Error:error: undefined reference to 'gst_plugin_amc_register'
> Error:error: cannot find -lgstamc
> "
>
> Do I need to compile it from source or sth?
The plugin is called "androidmedia" (this maps to a static plugin
called libgstandroidmedia.la/a).

>
>
>
>
> --
> View this message in context: http://gstreamer-devel.966125.n4.nabble
> .com/Hardware-decoder-availability-on-exynos-CPU-
> tp4683878p4683895.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (201 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Hardware decoder availability on exynos CPU

jeremi.wojcicki
Nicolas Dufresne-5 wrote
The plugin is called "androidmedia" (this maps to a static plugin
called libgstandroidmedia.la/a).
Well, yes. As I wrote in the first post I call androidmedia plugin (which is included in the CODECS group):
> I use $(GSTREAMER_PLUGINS_CODECS) in the Android.mk which includes androidmedia

However it seems it cannot be registered. Look and the log I get when gstreamer registers the plugins:

07-21 21:21:50.166 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.222724962 0x771cd5a600 gstplugin.c:227:gst_plugin_register_static added static plugin "rsvg", result: 1
07-21 21:21:50.168 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.224364923 0x771cd5a600 gstplugin.c:225:gst_plugin_register_static registered static plugin "openjpeg"
07-21 21:21:50.168 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.224404885 0x771cd5a600 gstplugin.c:227:gst_plugin_register_static added static plugin "openjpeg", result: 1
07-21 21:21:50.169 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.225793308 0x771cd5a600 gstplugin.c:225:gst_plugin_register_static registered static plugin "spandsp"
07-21 21:21:50.169 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.225832116 0x771cd5a600 gstplugin.c:227:gst_plugin_register_static added static plugin "spandsp", result: 1
07-21 21:21:50.170 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.227032962 0x771cd5a600 gstplugin.c:225:gst_plugin_register_static registered static plugin "sbc"
07-21 21:21:50.170 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.227073346 0x771cd5a600 gstplugin.c:227:gst_plugin_register_static added static plugin "sbc", result: 1
07-21 21:21:50.171 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3 E/GStreamer+default: 0:00:00.227644539 0x771cd5a600 gstjniutils.c:671:initialize_classes Could not find application class loader provider
07-21 21:21:50.171 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3 W/GStreamer+GST_PLUGIN_LOADING: 0:00:00.227667769 0x771cd5a600 gstplugin.c:527:gst_plugin_register_func plugin "(NULL)" failed to initialise
07-21 21:21:50.173 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.229479846 0x771cd5a600 gstplugin.c:225:gst_plugin_register_static registered static plugin "tcp"
07-21 21:21:50.173 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.229519039 0x771cd5a600 gstplugin.c:227:gst_plugin_register_static added static plugin "tcp", result: 1
07-21 21:21:50.174 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.230835923 0x771cd5a600 gstplugin.c:225:gst_plugin_register_static registered static plugin "rtsp"
07-21 21:21:50.174 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.230881346 0x771cd5a600 gstplugin.c:227:gst_plugin_register_static added static plugin "rtsp", result: 1
07-21 21:21:50.219 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.275824423 0x771cd5a600 gstplugin.c:225:gst_plugin_register_static registered static plugin "rtp"
07-21 21:21:50.219 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.275861000 0x771cd5a600 gstplugin.c:227:gst_plugin_register_static added static plugin "rtp", result: 1
07-21 21:21:50.223 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.279197346 0x771cd5a600 gstplugin.c:225:gst_plugin_register_static registered static plugin "rtpmanager"
07-21 21:21:50.223 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.279233962 0x771cd5a600 gstplugin.c:227:gst_plugin_register_static added static plugin "rtpmanager", result: 1

The missing one before "sbc" and "tcp" is where the androidmedia is ...
No errors during compilation and the files libgstandroidmedia.la/a can be found in the gstreamer root (lib\gstreamer-1.0\static). no compilation errors or nothing, it just doesn't want to load it it seems. Any reasons why?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Hardware decoder availability on exynos CPU

Nicolas Dufresne-5
Le vendredi 21 juillet 2017 à 12:16 -0700, jeremi.wojcicki a écrit :
> 17123-17123/org.freedesktop.gstreamer.tutorials.tutorial_3
> E/GStreamer+default: 0:00:00.227644539 0x771cd5a600
> gstjniutils.c:671:initialize_classes Could not find application class
> loader
> provider

Maybe that can help, it fails here:
https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/sys/androidmedia/gstjniutils.c#n670

Which fails in:
https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/sys/androidmedia/gstjniutils.c#n670

In case you never saw that type of glib code, this function is looking
up your current module for a symbol named
"gst_android_get_application_class_loader".

This function is generated by the GStreamer provided Android makefiles.
These makefiles are supposed to generate a C file called
gstreaner_android.c. I can't tell you whats's wrong in your env, but
somehow you are missing this source file in your build.

regards,
Nicolas
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Hardware decoder availability on exynos CPU

jeremi.wojcicki
Hi Nicolas, thanks for helping me out with it.

I have done quite some investigation into the matter and I agree that the issue lays in the fact that the symbol "gst_android_get_application_class_loader" cannot be found. The problem, tough, is that the gstreamer_android.c is, as a matter of fact in my project, it is being "regenerated" by Android.mk (or rather gstreamer makefile), it is compiled and linked into an .so file which does upload to the phone.
To verify that it is loaded on runtime I also added some android info printfs into the init functions in the gstreamer_android.c and they do run on application load. The "gst_android_get_application_class_loader" is never called tough.

As they are called (or should be) dynamically by glib, i though that maybe optimizer removes this function at compilation time as they seem to be unused. To exclude this possibility I added a call to it in a rather unused part of gstreamer_android.c (some error handler), to make sure that compiler doesn't kick it out. But this did not help either.
To make sure that there is nothing wrong in my project config (I develop with android studio under windows), I installed sdk and ndk on ubuntu and compiled the "bare" android-tutorial-3 (following the very nice tutorial https://gstreamer.freedesktop.org/documentation/installing/for-android-development.html), modifying solely the Android.mk by adding "androidmedia" plugin. Problem occurs again...

Then I tried some other devices, and here, surprise surprise, I actually got some results. I use Galaxy S8 (android 7.0, api=24, aarch64, arm64-v8a) -  fail, I tried on Galaxy S6 (android 7.0, api=24, aarch64, arm64-v8a) - fail, and eventually, on an old Sony Xperia SP (android 4.3, api=18, i guess arm or arm7) and here it worked - I could finally see some amc* plugins.

So.. to wrap it up, its either something about android 7.0, or exynos chips or the architecture. Difficult do judge what precisely. Anyhow looking at the gstjniutils (below), the code may fail in two places:
=>g_module_open (NULL, G_MODULE_BIND_LOCAL);
or
=>g_module_symbol (module, "gst_android_get_application_class_loader",
          (gpointer *) & get_class_loader)

gstjniutils.c wrote
static gboolean
check_application_class_loader (void)
{
  gboolean ret = TRUE;
  GModule *module = NULL;

  module = g_module_open (NULL, G_MODULE_BIND_LOCAL);
  if (!module) {
    return FALSE;
  }
  if (!g_module_symbol (module, "gst_android_get_application_class_loader",
          (gpointer *) & get_class_loader)) {
    ret = FALSE;
  }

  g_module_close (module);

  return ret;
}
Is it possible that I am missing some sort of "permission" to load a module or symbol? Can it be the 64bit architecture that does not work well with glib?
Do you have any suggestions on how to move from there? I am "strongly attached" to developing on the Galaxy S8 because of the required hw codec performace (if I ever get it to work).

Best,
Jeremi

PS. for reference I attach my Android.mk => https://hastebin.com/opitulagar.rb
my ndk build output => https://hastebin.com/awokimimef.tex

Oh, and one more thing, however I dont know if it is relevant. During init gstreamer complains about the registry.bin:

07-25 09:30:22.022 25496-25496/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.011871269 0x7ccf5ff600 gstplugin.c:317:_priv_gst_plugin_initialize registering 0 static plugins
07-25 09:30:22.022 25496-25496/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.012398346 0x7ccf5ff600 gstplugin.c:225:gst_plugin_register_static registered static plugin "staticelements"
07-25 09:30:22.022 25496-25496/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_PLUGIN_LOADING: 0:00:00.012438500 0x7ccf5ff600 gstplugin.c:227:gst_plugin_register_static added static plugin "staticelements", result: 1
07-25 09:30:22.022 25496-25496/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_REGISTRY: 0:00:00.012462269 0x7ccf5ff600 gstregistry.c:1721:ensure_current_registry reading registry cache: /data/user/0/org.freedesktop.gstreamer.tutorials.tutorial_3/cache/registry.bin
07-25 09:30:22.024 25496-25496/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_REGISTRY: 0:00:00.013840692 0x7ccf5ff600 gstregistrybinary.c:539:priv_gst_registry_binary_read_cache Unable to mmap file /data/user/0/org.freedesktop.gstreamer.tutorials.tutorial_3/cache/registry.bin : Failed to open file '/data/user/0/org.freedesktop.gstreamer.tutorials.tutorial_3/cache/registry.bin': open() failed: No such file or directory
07-25 09:30:22.024 25496-25496/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_REGISTRY: 0:00:00.013921076 0x7ccf5ff600 gstregistrybinary.c:549:priv_gst_registry_binary_read_cache Unable to read file /data/user/0/org.freedesktop.gstreamer.tutorials.tutorial_3/cache/registry.bin : Failed to open file '/data/user/0/org.freedesktop.gstreamer.tutorials.tutorial_3/cache/registry.bin': No such file or directory
07-25 09:30:22.024 25496-25496/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_REGISTRY: 0:00:00.013940923 0x7ccf5ff600 gstregistry.c:1577:scan_and_update_registry Validating plugins from registry cache: /data/user/0/org.freedesktop.gstreamer.tutorials.tutorial_3/cache/registry.bin
07-25 09:30:22.024 25496-25496/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_REGISTRY: 0:00:00.014343000 0x7ccf5ff600 gstregistry.c:1679:scan_and_update_registry Registry cache has not changed
07-25 09:30:22.024 25496-25496/org.freedesktop.gstreamer.tutorials.tutorial_3 I/GStreamer+GST_REGISTRY: 0:00:00.014373576 0x7ccf5ff600 gstregistry.c:1756:ensure_current_registry registry reading and updating done, result = 1
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Hardware decoder availability on exynos CPU

jeremi.wojcicki
Small update. Checked same app on LG G-flex 2 (Android 6.0.1, api=23, aarch64, arm64-v8a, qualcomm processor) and it works just fine. I guess its now narrowed down to either Android 7.0 issue or samsungs exynos, however I would bet on the first one.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Hardware decoder availability on exynos CPU

Nicolas Dufresne-5
Le mardi 25 juillet 2017 à 02:00 -0700, jeremi.wojcicki a écrit :
> Small update. Checked same app on LG G-flex 2 (Android 6.0.1, api=23,
> aarch64, arm64-v8a, qualcomm processor) and it works just fine. I guess its
> now narrowed down to either Android 7.0 issue or samsungs exynos, however I
> would bet on the first one.

I would bet Android 7, it's the only thing that I haven't tested
myself. This needs investigation. Can you file a bug to bugs.gnome.org
please ?

Nicolas
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Hardware decoder availability on exynos CPU

jeremi.wojcicki
I have submitted the bug at: https://bugzilla.gnome.org/show_bug.cgi?id=785406
In the next days I will probably have a chance to test on a non-samsung android 7.0 device, so I will post my findings. If this confirms to be a bug, I would hope for a quick way to resolve it, because at the moment my development is blocked by it (unless I change my device, which is undesirable: I develop for GearVR...).

Again, thanks for your help on solving that issue.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Hardware decoder availability on exynos CPU

KPAXIT
Hi,

I also wanted to confirm that androidmedia is not working for me on all devices I tried with arm64-v8 arch(Exynos, Qualcomm), including devices with Android v6.0.1! Meanwhile devices with arm-v7 working just fine.  I'm trying to run pipeline like "ahcsrc ! videoconvert ! autovideosink" and get the same error as TS:
07-25 18:28:39.845 3199-3199/org.freedesktop.gstreamer.player E/GStreamer+default: 0:00:00.060888594 0x55b53ff0f0 gstjniutils.c:671:initialize_classes Could not find application class loader provider
07-25 18:28:39.845 3199-3199/org.freedesktop.gstreamer.player W/GStreamer+GST_PLUGIN_LOADING: 0:00:00.060956771 0x55b53ff0f0 gstplugin.c:527:gst_plugin_register_func plugin "(NULL)" failed to initialise
07-25 18:28:40.049 3199-3199/org.freedesktop.gstreamer.player I/GStreamer: GStreamer initialization complete
07-25 18:28:40.119 3199-3199/org.freedesktop.gstreamer.player I/GStreamer: Activity created. There is no saved state, playing: false
07-25 18:28:40.120 3199-3199/org.freedesktop.gstreamer.player D/GStreamer+tutorial-3: 0:00:00.335641875 0x55b53ff0f0 C:/AndroidStudioProjects/GstPlayerAndroid/app/src/main/jni/tutorial-3.c:264:gst_native_init Created CustomData at 0x55b5959ab0
07-25 18:28:40.120 3199-3199/org.freedesktop.gstreamer.player D/GStreamer+tutorial-3: 0:00:00.335704792 0x55b53ff0f0 C:/AndroidStudioProjects/GstPlayerAndroid/app/src/main/jni/tutorial-3.c:266:gst_native_init Created GlobalRef for app object at 0x10047e
07-25 18:28:40.120 3199-3286/org.freedesktop.gstreamer.player D/GStreamer+tutorial-3: 0:00:00.335802708 0x55b5598160 C:/AndroidStudioProjects/GstPlayerAndroid/app/src/main/jni/tutorial-3.c:162:app_function Creating pipeline in CustomData at 0x55b5959ab0
07-25 18:28:40.120 3199-3286/org.freedesktop.gstreamer.player W/GStreamer+GST_ELEMENT_FACTORY: 0:00:00.335933073 0x55b5598160 gstelementfactory.c:456:gst_element_factory_make no such element factory "ahcsrc"!
07-25 18:28:40.120 3199-3286/org.freedesktop.gstreamer.player E/GStreamer+GST_PIPELINE: 0:00:00.335981250 0x55b5598160 ./grammar.y:816:priv_gst_parse_yyparse no element "ahcsrc"
07-25 18:28:40.121 3199-3286/org.freedesktop.gstreamer.player E/GStreamer+GST_PIPELINE: 0:00:00.336533958 0x55b5598160 ./grammar.y:901:priv_gst_parse_yyparse link has no source [sink=@0x55b5964170]


• gstreamer-1.0-android-universal-1.12.2
• android-ndk-r11c / android-ndk-r12b
• Android Studio v2.3.3 (Gradle 2.2.3/2.3.3, buildTools 23.0.3 / 25.0.0)

Tested devices (NOT WORKING):
• Galaxy S6 (android v7.0)                          //TESTED NOK!
     Exynos 7420  
     ARMv8-A (32 & 64 bit)
     <MediaCodec name="OMX.Exynos.AVC.Encoder" type="video/avc" >

• Nexus 6P  (android v 7.1.2)                               //TESTED NOK!
     Qualcomm Snapdragon 810 (MSM8994)
     arm64-v8a
     <MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >

• Huawei P9 Lite (android v6.0)  (VNS-L31)                         //TESTED NOK!
     ARMv8-A
     <MediaCodec name="OMX.IMG.TOPAZ.VIDEO.Encoder">
     <Type name="video/avc">, <Type name="video/mp4v-es">, <Type name="video/3gpp">

• Lenovo Phab2 (android v6.0.1)          //TESTED NOK!
     arm-v8
     <MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >

Tested devices (WORKING!):
• Galaxy S4                                             //TESTED OK!
     ARMv7
     <MediaCodec name="OMX.Exynos.AVC.Encoder" type="video/avc" >

• Galaxy S5 - Qualcomm MSM8974PRO-AC //TESTED OK!
     armeabi-v7a, armeabi
     <MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >

• Huawei P7                                            //TESTED OK!        
     armeabi-v7a              
     <MediaCodec name="OMX.k3.video.encoder.avc" type="video/avc" />

• Nexus 10 tab (P8119) - Exynos 5250 Dual //TESTED OK!
     armv7
     <MediaCodec name="OMX.Exynos.AVC.Encoder" type="video/avc" >

Any solutions/workaround will be much appreciated.
Loading...