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

[Android] MediaCodec: reimplement JNI (instead NDK) #17611

Merged
merged 1 commit into from
Apr 6, 2020

Conversation

peak3d
Copy link
Contributor

@peak3d peak3d commented Apr 4, 2020

Description

Switch back from NDK to JNI in MediaCodec video decoder (android)

Motivation and Context

~2years ago we switched from JNI to NDK in MediaCodec video decoder.
Because some things are missing / not working in NDK, we still use partitialy JNI.

Latest example is MediaCodec::setVideoScalingMode. It is not implemented in NDK but we use it for e.g. AFTV devices which have videos stretched (https://forum.kodi.tv/showthread.php?tid=336151&pid=2936959#pid2936959)

The discussion with the NDK devs (github issue: android/ndk#1224 (comment)) was not very fruitful, so I decided to go back to JNI and have everything available.

How Has This Been Tested?

Play h.264 video with 1920x882px on AFTV. Without this JNI / setVideoScalingMode implementation the video was stretched in height, the PR fixes the issue.

Beside this I crosschecked on NVIDIA shield, video AR is still fine.

Types of change

  • Bug fix (non-breaking change which fixes an issue)
  • Clean up (non-breaking change which removes non-working, unmaintained functionality)
  • Improvement (non-breaking change which improves existing functionality)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that will cause existing functionality to change)
  • Cosmetic change (non-breaking change that doesn't touch code)
  • None of the above (please explain below)

@peak3d peak3d added Type: Fix non-breaking change which fixes an issue Component: Video Platform: Android v19 Matrix labels Apr 4, 2020
@peak3d peak3d added this to the Matrix 19.0-alpha 1 milestone Apr 4, 2020
@fritsch
Copy link
Member

fritsch commented Apr 5, 2020

Test reports are fine as well: https://forum.kodi.tv/showthread.php?tid=336151&pid=2937842#pid2937842

@fritsch fritsch self-requested a review April 5, 2020 20:22
@peak3d peak3d merged commit 8003354 into xbmc:master Apr 6, 2020
@peak3d peak3d deleted the backtojni branch April 6, 2020 10:31
Maven85 pushed a commit to Maven85/kodi that referenced this pull request Apr 6, 2020
[Android] MediaCodec: reimplement JNI (instead NDK)
Maven85 pushed a commit to Maven85/kodi that referenced this pull request May 5, 2020
[Android] MediaCodec: reimplement JNI (instead NDK)
Maven85 pushed a commit to Maven85/kodi that referenced this pull request Aug 3, 2020
[Android] MediaCodec: reimplement JNI (instead NDK)
Maven85 pushed a commit to Maven85/kodi that referenced this pull request Aug 4, 2020
[Android] MediaCodec: reimplement JNI (instead NDK)
Maven85 pushed a commit to Maven85/kodi that referenced this pull request Aug 4, 2020
[Android] MediaCodec: reimplement JNI (instead NDK)
Maven85 pushed a commit to Maven85/kodi that referenced this pull request Aug 5, 2020
[Android] MediaCodec: reimplement JNI (instead NDK)
Maven85 pushed a commit to Maven85/kodi that referenced this pull request Aug 6, 2020
[Android] MediaCodec: reimplement JNI (instead NDK)
Maven85 pushed a commit to Maven85/kodi that referenced this pull request Aug 6, 2020
[Android] MediaCodec: reimplement JNI (instead NDK)
Maven85 pushed a commit to Maven85/kodi that referenced this pull request Aug 6, 2020
[Android] MediaCodec: reimplement JNI (instead NDK)
Maven85 pushed a commit to Maven85/kodi that referenced this pull request Aug 7, 2020
[Android] MediaCodec: reimplement JNI (instead NDK)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants