diff options
author | Thierry Strudel <tstrudel@google.com> | 2017-05-15 09:16:18 -0700 |
---|---|---|
committer | Thierry Strudel <tstrudel@google.com> | 2017-05-18 12:39:34 -0700 |
commit | a7f8a093e621f2db826862e04643a821248f38bf (patch) | |
tree | 4d0d008ce9ed1728995f5a471ef3648d8960c1a8 | |
parent | 240fc6e79b5c531171a420124ca6c78bff821a7b (diff) | |
download | media-a7f8a093e621f2db826862e04643a821248f38bf.tar.gz |
msm8998: Update to 07.00.00.279.143
msm8998: from hardware/qcom/media
a24e220f Merge "mm-video-v4l2: venc: Update level when RC-mode is changed"
ea0fd094 mm-video-v4l2: venc: Update level when RC-mode is changed
fd691c96 Merge "media: Remove linkage to non-VNDK libs"
f60f0cb7 Merge "mm-video: Add MPEG-4,H.263,DIVX software codec entry for 8909."
4c4fb2f5 media: Remove linkage to non-VNDK libs
9cb2f5b5 Merge "mm-video-v4l2:vdec: Pass bit_depth, color_space and dither_config"
104d3656 mm-video-v4l2:vdec: Pass bit_depth, color_space and dither_config
e0a19328 mm-video-v4l2: vdec: disable down-scalar for 8909
28523d90 mm-video: Add MPEG-4,H.263,DIVX software codec entry for 8909.
0b54adca media: Compilation fix
Test: build, boot, sanity checks
Bug: 38282057
Change-Id: I2ec7e5b0fe30cdb17e26a9eb97dcacec4cce308a
Signed-off-by: Thierry Strudel <tstrudel@google.com>
-rw-r--r-- | msm8998/mm-core/src/8909/registry_table.c | 78 | ||||
-rw-r--r-- | msm8998/mm-core/src/8909/registry_table_android.c | 67 | ||||
-rw-r--r-- | msm8998/mm-video-v4l2/vidc/common/Android.mk | 3 | ||||
-rw-r--r-- | msm8998/mm-video-v4l2/vidc/vdec/Android.mk | 8 | ||||
-rw-r--r-- | msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp | 9 | ||||
-rw-r--r-- | msm8998/mm-video-v4l2/vidc/venc/Android.mk | 8 | ||||
-rw-r--r-- | msm8998/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp | 3 | ||||
-rw-r--r-- | msm8998/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp | 10 |
8 files changed, 154 insertions, 32 deletions
diff --git a/msm8998/mm-core/src/8909/registry_table.c b/msm8998/mm-core/src/8909/registry_table.c index c8b6ad9..1b26a77 100644 --- a/msm8998/mm-core/src/8909/registry_table.c +++ b/msm8998/mm-core/src/8909/registry_table.c @@ -105,6 +105,84 @@ omx_core_cb_type core[] = "video_encoder.avc" } }, + { + "OMX.qti.video.decoder.mpeg4sw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxSwVdec.so", + { + "video_decoder.mpeg4" + } + }, + { + "OMX.qti.video.decoder.h263sw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxSwVdec.so", + { + "video_decoder.h263" + } + }, + { + "OMX.qti.video.decoder.divxsw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxSwVdec.so", + { + "video_decoder.divx" + } + }, + { + "OMX.qti.video.decoder.divx4sw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxSwVdec.so", + { + "video_decoder.divx" + } + }, + { + "OMX.qcom.video.encoder.mpeg4sw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxSwVencMpeg4.so", + { + "video_encoder.mpeg4" + } + }, + { + "OMX.qcom.video.encoder.h263sw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxSwVencMpeg4.so", + { + "video_encoder.h263" + } + }, { "OMX.qcom.audio.decoder.Qcelp13", NULL, // Create instance function diff --git a/msm8998/mm-core/src/8909/registry_table_android.c b/msm8998/mm-core/src/8909/registry_table_android.c index 608bd2a..3700b78 100644 --- a/msm8998/mm-core/src/8909/registry_table_android.c +++ b/msm8998/mm-core/src/8909/registry_table_android.c @@ -41,19 +41,6 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. omx_core_cb_type core[] = { { - "OMX.ittiam.video.decoder.mpeg4", - NULL, // Create instance function - // Unique instance handle - { - NULL - }, - NULL, // Shared object library handle - "libOmxIttiamVdec.so", - { - "video_decoder.mpeg4" - } - }, - { "OMX.qcom.video.decoder.avc", NULL, // Create instance function // Unique instance handle @@ -105,7 +92,59 @@ omx_core_cb_type core[] = "video_encoder.avc" } }, - { + { + "OMX.qti.video.decoder.mpeg4sw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxSwVdec.so", + { + "video_decoder.mpeg4" + } + }, + { + "OMX.qti.video.decoder.h263sw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxSwVdec.so", + { + "video_decoder.h263" + } + }, + { + "OMX.qti.video.decoder.divxsw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxSwVdec.so", + { + "video_decoder.divx" + } + }, + { + "OMX.qti.video.decoder.divx4sw", + NULL, // Create instance function + // Unique instance handle + { + NULL + }, + NULL, // Shared object library handle + "libOmxSwVdec.so", + { + "video_decoder.divx" + } + }, + { "OMX.qcom.video.encoder.mpeg4sw", NULL, // Create instance function // Unique instance handle diff --git a/msm8998/mm-video-v4l2/vidc/common/Android.mk b/msm8998/mm-video-v4l2/vidc/common/Android.mk index fe7b875..be7989a 100644 --- a/msm8998/mm-video-v4l2/vidc/common/Android.mk +++ b/msm8998/mm-video-v4l2/vidc/common/Android.mk @@ -24,7 +24,6 @@ libmm-vidc-inc := $(LOCAL_PATH)/inc libmm-vidc-inc += $(QCOM_MEDIA_ROOT)/mm-core/inc libmm-vidc-inc += $(TARGET_OUT_HEADERS)/qcom/display libmm-vidc-inc += $(QCOM_MEDIA_ROOT)/libc2dcolorconvert -libmm-vidc-inc += $(TOP)/frameworks/av/include/media/stagefright ifeq ($(TARGET_COMPILE_WITH_MSM_KERNEL),true) libmm-vidc-inc += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include endif @@ -35,7 +34,7 @@ LOCAL_CFLAGS := $(libmm-vidc-def) LOCAL_C_INCLUDES := $(libmm-vidc-inc) LOCAL_PRELINK_MODULE := false -LOCAL_SHARED_LIBRARIES := liblog libutils libcutils libdl +LOCAL_SHARED_LIBRARIES := liblog libcutils libdl LOCAL_SRC_FILES := src/extra_data_handler.cpp LOCAL_SRC_FILES += src/vidc_color_converter.cpp diff --git a/msm8998/mm-video-v4l2/vidc/vdec/Android.mk b/msm8998/mm-video-v4l2/vidc/vdec/Android.mk index df2dbde..9f51eab 100644 --- a/msm8998/mm-video-v4l2/vidc/vdec/Android.mk +++ b/msm8998/mm-video-v4l2/vidc/vdec/Android.mk @@ -29,7 +29,7 @@ libmm-vdec-def += -DMAX_RES_1080P_EBI TARGETS_THAT_USE_HEVC_ADSP_HEAP := msm8226 msm8974 TARGETS_THAT_HAVE_VENUS_HEVC := apq8084 msm8994 msm8996 TARGETS_THAT_SUPPORT_UBWC := msm8996 msm8953 msm8998 sdm660 -TARGETS_THAT_NEED_SW_VDEC := msm8937 +TARGETS_THAT_NEED_SW_VDEC := msm8937 msm8909 ifeq ($(call is-board-platform-in-list, $(TARGETS_THAT_USE_HEVC_ADSP_HEAP)),true) libmm-vdec-def += -D_HEVC_USE_ADSP_HEAP_ @@ -60,8 +60,6 @@ ifeq ($(call is-board-platform-in-list, $(MASTER_SIDE_CP_TARGET_LIST)),true) libmm-vdec-def += -DMASTER_SIDE_CP endif -libmm-vdec-def += -D_QUERY_DISP_RES_ - include $(CLEAR_VARS) # Common Includes @@ -73,7 +71,6 @@ libmm-vdec-inc += $(TARGET_OUT_HEADERS)/adreno libmm-vdec-inc += $(TOP)/frameworks/native/include/media/openmax libmm-vdec-inc += $(TOP)/frameworks/native/include/media/hardware libmm-vdec-inc += $(QCOM_MEDIA_ROOT)/libc2dcolorconvert -libmm-vdec-inc += $(TOP)/frameworks/av/include/media/stagefright libmm-vdec-inc += $(TARGET_OUT_HEADERS)/mm-video/SwVdec libmm-vdec-inc += $(TARGET_OUT_HEADERS)/mm-video/swvdec ifeq ($(TARGET_COMPILE_WITH_MSM_KERNEL),true) @@ -116,9 +113,10 @@ LOCAL_VENDOR_MODULE := true LOCAL_CFLAGS := $(libmm-vdec-def) -Werror LOCAL_C_INCLUDES += $(libmm-vdec-inc) LOCAL_ADDITIONAL_DEPENDENCIES := $(libmm-vdec-add-dep) +LOCAL_HEADER_LIBRARIES := libnativebase_headers LOCAL_PRELINK_MODULE := false -LOCAL_SHARED_LIBRARIES := liblog libutils libcutils libui libdl libqdutils +LOCAL_SHARED_LIBRARIES := liblog libcutils libdl LOCAL_SHARED_LIBRARIES += libqdMetaData diff --git a/msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp b/msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp index f7a0454..da9fd7e 100644 --- a/msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp +++ b/msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp @@ -1039,7 +1039,7 @@ OMX_ERRORTYPE omx_vdec::decide_dpb_buffer_mode(bool split_opb_dpb_with_same_colo int rc = 0; bool cpu_access = (capture_capability != V4L2_PIX_FMT_NV12_UBWC) && capture_capability != V4L2_PIX_FMT_NV12_TP10_UBWC; - bool tp10_enable = !cpu_access && + bool tp10_enable = !drv_ctx.idr_only_decoding && dpb_bit_depth == MSM_VIDC_BIT_DEPTH_10; bool dither_enable = true; @@ -1060,6 +1060,7 @@ OMX_ERRORTYPE omx_vdec::decide_dpb_buffer_mode(bool split_opb_dpb_with_same_colo if (tp10_enable && !dither_enable) { drv_ctx.output_format = VDEC_YUV_FORMAT_NV12_TP10_UBWC; capture_capability = V4L2_PIX_FMT_NV12_TP10_UBWC; + cpu_access = false; memset(&fmt, 0x0, sizeof(struct v4l2_format)); fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; @@ -1074,7 +1075,6 @@ OMX_ERRORTYPE omx_vdec::decide_dpb_buffer_mode(bool split_opb_dpb_with_same_colo DEBUG_PRINT_ERROR("%s: Failed set format on capture mplane", __func__); return OMX_ErrorUnsupportedSetting; } - } @@ -1878,7 +1878,7 @@ void omx_vdec::process_event_cb(void *ctxt, unsigned char id) } if (pThis->m_cb.EventHandler) { - uint32_t frame_data[4]; + uint32_t frame_data[7]; frame_data[0] = (p2 == OMX_IndexParamPortDefinition) ? pThis->m_reconfig_height : pThis->rectangle.nHeight; frame_data[1] = (p2 == OMX_IndexParamPortDefinition) ? @@ -1889,6 +1889,9 @@ void omx_vdec::process_event_cb(void *ctxt, unsigned char id) frame_data[3] = (p2 == OMX_IndexParamPortDefinition) ? frame_data[1] : pThis->drv_ctx.video_resolution.frame_width; + frame_data[4] = pThis->dpb_bit_depth; + frame_data[5] = pThis->m_color_space; + frame_data[6] = pThis->m_dither_config; pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data, OMX_EventPortSettingsChanged, p1, p2, (void*) frame_data ); diff --git a/msm8998/mm-video-v4l2/vidc/venc/Android.mk b/msm8998/mm-video-v4l2/vidc/venc/Android.mk index eb1587f..040c6b5 100644 --- a/msm8998/mm-video-v4l2/vidc/venc/Android.mk +++ b/msm8998/mm-video-v4l2/vidc/venc/Android.mk @@ -90,7 +90,6 @@ libmm-venc-inc += frameworks/native/include/media/hardware libmm-venc-inc += frameworks/native/include/media/openmax libmm-venc-inc += $(QCOM_MEDIA_ROOT)/libc2dcolorconvert libmm-venc-inc += $(TARGET_OUT_HEADERS)/libvqzip -libmm-venc-inc += frameworks/av/include/media/stagefright libmm-venc-inc += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include ifeq ($(call is-board-platform-in-list, $(TARGETS_THAT_SUPPORT_PQ)),true) libmm-venc-inc += $(TARGET_OUT_HEADERS)/libgpustats @@ -115,8 +114,8 @@ LOCAL_C_INCLUDES := $(libmm-venc-inc) LOCAL_ADDITIONAL_DEPENDENCIES := $(libmm-venc-add-dep) LOCAL_PRELINK_MODULE := false -LOCAL_SHARED_LIBRARIES := liblog libutils libcutils \ - libdl libgui +LOCAL_SHARED_LIBRARIES := liblog libcutils libdl + ifeq ($(BOARD_USES_ADRENO), true) LOCAL_SHARED_LIBRARIES += libc2dcolorconvert endif # ($(BOARD_USES_ADRENO), true) @@ -147,8 +146,7 @@ LOCAL_C_INCLUDES := $(libmm-venc-inc) LOCAL_ADDITIONAL_DEPENDENCIES := $(libmm-venc-add-dep) LOCAL_PRELINK_MODULE := false -LOCAL_SHARED_LIBRARIES := liblog libutils libcutils \ - libdl libgui +LOCAL_SHARED_LIBRARIES := liblog libcutils libdl LOCAL_SHARED_LIBRARIES += libMpeg4SwEncoder ifeq ($(BOARD_USES_ADRENO), true) LOCAL_SHARED_LIBRARIES += libc2dcolorconvert diff --git a/msm8998/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp b/msm8998/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp index c2ac288..816b606 100644 --- a/msm8998/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp +++ b/msm8998/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp @@ -1655,9 +1655,6 @@ OMX_ERRORTYPE omx_venc::component_deinit(OMX_IN OMX_HANDLETYPE hComp) m_etb_q.m_read = m_etb_q.m_write =0; /* Clear the strong reference */ - DEBUG_PRINT_HIGH("Calling m_heap_ptr.clear()"); - m_heap_ptr.clear(); - DEBUG_PRINT_HIGH("Calling swvenc_deinit()"); swvenc_deinit(m_hSwVenc); diff --git a/msm8998/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp b/msm8998/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp index 3dac085..9e9ab72 100644 --- a/msm8998/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp +++ b/msm8998/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp @@ -198,6 +198,7 @@ venc_dev::venc_dev(class omx_venc *venc_class) memset (&slice_mode, 0 , sizeof(slice_mode)); memset(&m_sVenc_cfg, 0, sizeof(m_sVenc_cfg)); memset(&rate_ctrl, 0, sizeof(rate_ctrl)); + rate_ctrl.rcmode = V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_CFR; memset(&bitrate, 0, sizeof(bitrate)); memset(&intra_period, 0, sizeof(intra_period)); memset(&codec_profile, 0, sizeof(codec_profile)); @@ -6586,6 +6587,15 @@ bool venc_dev::venc_set_ratectrl_cfg(OMX_VIDEO_CONTROLRATETYPE eControlRate) } #endif + // force re-calculation of level since RC is updated + { + m_level_set = false; + if (venc_set_profile_level(codec_profile.profile, 0)) { + DEBUG_PRINT_HIGH("updated level=%lu after setting RC mode", + profile_level.level); + } + } + return status; } |