[vlc-devel] [PATCH] mediacodec: fix rotation before API 21
Thomas Guillem
thomas at gllm.fr
Thu Mar 12 13:05:19 CET 2015
---
modules/codec/omxil/android_mediacodec.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/modules/codec/omxil/android_mediacodec.c b/modules/codec/omxil/android_mediacodec.c
index 8a6ce90..7af2320 100644
--- a/modules/codec/omxil/android_mediacodec.c
+++ b/modules/codec/omxil/android_mediacodec.c
@@ -541,6 +541,17 @@ loopclean:
direct rendering should be disabled since no surface will be
attached to the JNI. */
p_sys->direct_rendering = jni_IsVideoPlayerActivityCreated() && var_InheritBool(p_dec, CFG_PREFIX "dr");
+
+ /* There is no way to rotate the video using direct rendering (and using a
+ * SurfaceView) before API 21 (Lollipop). Therefore, we deactivate direct
+ * rendering if video doesn't have a normal rotation and if
+ * get_input_buffer method is not present (This method exists since API
+ * 21). */
+ if (p_sys->direct_rendering
+ && p_dec->fmt_in.video.orientation != ORIENT_NORMAL
+ && !p_sys->get_input_buffer)
+ p_sys->direct_rendering = false;
+
if (p_sys->direct_rendering) {
if (p_dec->fmt_in.video.orientation != ORIENT_NORMAL) {
int i_angle;
--
2.1.3
More information about the vlc-devel
mailing list