Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
gst-plugins-bad
gst-plugins-bad
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,012
    • Issues 1,012
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 199
    • Merge Requests 199
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GStreamer
  • gst-plugins-badgst-plugins-bad
  • Issues
  • #1242

Closed
Open
Opened Mar 08, 2020 by Ratchanan Srirattanamet@peat-psuwitContributor

RFC: androidmedia: an implementation using (mostly) NDK APIs

Android provides the NDK APIs for MediaCodec (since API level 21, Android 7) and SurfaceTexture (since API level 28, Android 9). Thus, it's possible to implement the androidmedia plugin using these APIs.

It won't benefit Android devices much. After all, the JNI approach still works on newer devices and older devices. The real purpose of this work is the potential to use this in the libhybris-based environment. As these APIs are C-based, it's easy to wrap these APIs and use them in this environment [1]. Thus, it's possible to have a similar code base that works on both Android and libhybris-based environments.

My initial research tells me that it's possible to implement gstamc-codec and gstamc-format JNI-free. However, gstamc-surfacetexture will still require some JNI code to create a Java instance of SurfaceTexture as it's impossible to create one natively. Also, there's no NDK API for MediaCodecList, which means the gstamc-codeclist will still use the JNI implementation.

I file this issue as an RFC. So, feel free to discuss and/or tell me why this is a bad idea. I'll be the one implement this as the time permit me to do so.

[1] I'll probably have to shim these APIs on older devices if I actually do this, but that's the distant future.

Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: gstreamer/gst-plugins-bad#1242