"features": [
"ttvd_texturing_breaks_overlay_mode"
]
+ },
+ {
+ "id": 436,
+ "description": "Hardware decoder automatically converts MJPEG YUV422 to NV12 format",
+ "os": {
+ "type": "linux"
+ },
+ "machine_model_name": ["X22UD"],
+ "features": [
+ "ttvd_mjpeg_converted_to_nv12"
+ ]
}
]
}
ttvd_disable_buffer_parallel_copy
ttvd_disable_faster_decoder_selection
ttvd_disable_manual_rendering
+ttvd_mjpeg_converted_to_nv12
ttvd_prefer_manual_rendering_for_low_latency
ttvd_texturing_breaks_overlay_mode
scalarize_vec_and_mat_constructor_args
#elif defined(TIZEN_TV_UPSTREAM_MULTIMEDIA_OMX_PPI)
void ConvertVideoDataPpi(const OMX_BUFFERHEADERTYPE* output_buf_hdr,
OmxFacadeVideo::OutputData* output_data,
- MediaVideoCodec codec) {
+ MediaVideoCodec codec,
+ const gpu::GpuDriverBugWorkarounds& workarounds) {
const auto* video_info =
static_cast<OMX_VIDEO_FRAME_INFO*>(output_buf_hdr->pPlatformPrivate);
if (num_planes == 0) {
output_data->pixel_format = MediaVideoPixelFormat::kPixelFormatTiled;
} else if (codec == MediaVideoCodec::kCodecMJPEG) {
- output_data->pixel_format = MediaVideoPixelFormat::kPixelFormatNV16;
+ output_data->pixel_format = workarounds.ttvd_mjpeg_converted_to_nv12
+ ? MediaVideoPixelFormat::kPixelFormatNV12
+ : MediaVideoPixelFormat::kPixelFormatNV16;
} else {
output_data->pixel_format = MediaVideoPixelFormat::kPixelFormatNV12;
}
#if defined(TIZEN_TV_UPSTREAM_MULTIMEDIA_OMX)
ConvertVideoDataOmx(output_buf_hdr_, &output_data);
#elif defined(TIZEN_TV_UPSTREAM_MULTIMEDIA_OMX_PPI)
- ConvertVideoDataPpi(output_buf_hdr_, &output_data, codec_);
+ ConvertVideoDataPpi(output_buf_hdr_, &output_data, codec_, workarounds_);
#endif // defined(TIZEN_TV_UPSTREAM_MULTIMEDIA_OMX)
TIZEN_MEDIA_LOG(VERBOSE) << "Output cb: " << output_data.timestamp;