vlc | branch: master | Thomas Guillem <[email protected]> | Tue Oct 29 11:00:23 2019 +0100| [556d28188bc91bc7f7f46ecb2885048129bd3c4c] | committer: Thomas Guillem
mediacodec: also set quirks from MediaCodec_GetName() > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=556d28188bc91bc7f7f46ecb2885048129bd3c4c --- modules/codec/omxil/mediacodec_jni.c | 19 ++++++++++--------- modules/codec/omxil/mediacodec_ndk.c | 13 ++++++------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/modules/codec/omxil/mediacodec_jni.c b/modules/codec/omxil/mediacodec_jni.c index 3a3a71c745..671e9ce975 100644 --- a/modules/codec/omxil/mediacodec_jni.c +++ b/modules/codec/omxil/mediacodec_jni.c @@ -39,7 +39,7 @@ #include "mediacodec.h" char* MediaCodec_GetName(vlc_object_t *p_obj, const char *psz_mime, - int profile, bool *p_adaptive); + int profile, int *p_quirks); #define THREAD_NAME "mediacodec_jni" @@ -318,7 +318,7 @@ struct mc_api_sys * MediaCodec_GetName *****************************************************************************/ char* MediaCodec_GetName(vlc_object_t *p_obj, const char *psz_mime, - int profile, bool *p_adaptive) + int profile, int *p_quirks) { JNIEnv *env; int num_codecs; @@ -453,8 +453,10 @@ char* MediaCodec_GetName(vlc_object_t *p_obj, const char *psz_mime, { memcpy(psz_name, name_ptr, name_len); psz_name[name_len] = '\0'; + + if (b_adaptive) + *p_quirks |= MC_API_VIDEO_QUIRKS_ADAPTIVE; } - *p_adaptive = b_adaptive; } loopclean: if (name) @@ -1009,19 +1011,18 @@ static void Clean(mc_api *api) static int Prepare(mc_api *api, int i_profile) { free(api->psz_name); - bool b_adaptive; + + api->i_quirks = 0; api->psz_name = MediaCodec_GetName(api->p_obj, api->psz_mime, - i_profile, &b_adaptive); + i_profile, &api->i_quirks); if (!api->psz_name) return MC_API_ERROR; - api->i_quirks = OMXCodec_GetQuirks(api->i_cat, api->i_codec, api->psz_name, - strlen(api->psz_name)); + api->i_quirks |= OMXCodec_GetQuirks(api->i_cat, api->i_codec, api->psz_name, + strlen(api->psz_name)); /* Allow interlaced picture after API 21 */ if (jfields.get_input_buffer && jfields.get_output_buffer) api->i_quirks |= MC_API_VIDEO_QUIRKS_SUPPORT_INTERLACED; - if (b_adaptive) - api->i_quirks |= MC_API_VIDEO_QUIRKS_ADAPTIVE; return 0; } diff --git a/modules/codec/omxil/mediacodec_ndk.c b/modules/codec/omxil/mediacodec_ndk.c index a72bf165cb..d9a1641208 100644 --- a/modules/codec/omxil/mediacodec_ndk.c +++ b/modules/codec/omxil/mediacodec_ndk.c @@ -39,7 +39,7 @@ #include "mediacodec.h" char* MediaCodec_GetName(vlc_object_t *p_obj, const char *psz_mime, - int hxxx_profile, bool *p_adaptive); + int hxxx_profile, int *p_quirks); #define THREAD_NAME "mediacodec_ndk" @@ -625,17 +625,16 @@ static void Clean(mc_api *api) static int Prepare(mc_api * api, int i_profile) { free(api->psz_name); - bool b_adaptive; + + api->i_quirks = 0; api->psz_name = MediaCodec_GetName(api->p_obj, api->psz_mime, - i_profile, &b_adaptive); + i_profile, &api->i_quirks); if (!api->psz_name) return MC_API_ERROR; - api->i_quirks = OMXCodec_GetQuirks(api->i_cat, api->i_codec, api->psz_name, - strlen(api->psz_name)); + api->i_quirks |= OMXCodec_GetQuirks(api->i_cat, api->i_codec, api->psz_name, + strlen(api->psz_name)); /* Allow interlaced picture after API 21 */ api->i_quirks |= MC_API_VIDEO_QUIRKS_SUPPORT_INTERLACED; - if (b_adaptive) - api->i_quirks |= MC_API_VIDEO_QUIRKS_ADAPTIVE; return 0; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
