#include <OMX_Component.h>
#include <OMX_Core.h>
-#include <linux/videodev2_tztv.h>
+#include <ivideo-renderer.hpp>
#include "build/tizen_version.h"
#include "media/base/tizen/logger/media_logger.h"
return;
}
- struct v4l2_drm* drm =
- static_cast<struct v4l2_drm*>(output_buf_hdr_->pPlatformPrivate);
- if (!drm) {
+ const auto* video_info = static_cast<IVideoRenderer::VideoBufMetaData*>(
+ output_buf_hdr_->pPlatformPrivate);
+ if (!video_info) {
TIZEN_MEDIA_LOG(VERBOSE)
<< "Buffer filled event without the actual decoded frame";
return;
}
TIZEN_MEDIA_LOG(VERBOSE) << "Frame color format: "
- << drm->u.dec_info.pFrame[0].colorformat;
+ << video_info->u.dec_info.pFrame[0].colorformat;
{
const uint32_t yb =
- static_cast<uint32_t>(drm->u.dec_info.pFrame[0].y_viraddr);
- const uint32_t ye = yb + drm->u.dec_info.pFrame[0].y_linesize *
- drm->u.dec_info.pFrame[0].height;
+ static_cast<uint32_t>(video_info->u.dec_info.pFrame[0].y_viraddr);
+ const uint32_t ye = yb + video_info->u.dec_info.pFrame[0].y_linesize *
+ video_info->u.dec_info.pFrame[0].height;
const uint32_t ub =
- static_cast<uint32_t>(drm->u.dec_info.pFrame[0].u_viraddr);
- const uint32_t ue = ub + drm->u.dec_info.pFrame[0].u_linesize *
- ((drm->u.dec_info.pFrame[0].height + 1) / 2);
+ static_cast<uint32_t>(video_info->u.dec_info.pFrame[0].u_viraddr);
+ const uint32_t ue =
+ ub + video_info->u.dec_info.pFrame[0].u_linesize *
+ ((video_info->u.dec_info.pFrame[0].height + 1) / 2);
const uint32_t vb =
- static_cast<uint32_t>(drm->u.dec_info.pFrame[0].v_viraddr);
- const uint32_t ve = vb + drm->u.dec_info.pFrame[0].v_linesize *
- ((drm->u.dec_info.pFrame[0].height + 1) / 2);
+ static_cast<uint32_t>(video_info->u.dec_info.pFrame[0].v_viraddr);
+ const uint32_t ve =
+ vb + video_info->u.dec_info.pFrame[0].v_linesize *
+ ((video_info->u.dec_info.pFrame[0].height + 1) / 2);
TIZEN_MEDIA_LOG(VERBOSE) << "Y: " << yb << " - " << ye << ", U: " << ub
<< " - " << ue << ", V: " << vb << " - " << ve;
OutputData output_data;
output_data.timestamp = *maybe_timestamp;
output_data.nv12_data.y_data =
- reinterpret_cast<uint8_t*>(drm->u.dec_info.pFrame[0].y_viraddr);
- output_data.nv12_data.y_phys_data = drm->u.dec_info.pFrame[0].y_phyaddr;
- output_data.nv12_data.y_stride = drm->u.dec_info.pFrame[0].y_linesize;
+ reinterpret_cast<uint8_t*>(video_info->u.dec_info.pFrame[0].y_viraddr);
+ output_data.nv12_data.y_phys_data =
+ video_info->u.dec_info.pFrame[0].y_phyaddr;
+ output_data.nv12_data.y_stride = video_info->u.dec_info.pFrame[0].y_linesize;
output_data.nv12_data.uv_data =
- reinterpret_cast<uint8_t*>(drm->u.dec_info.pFrame[0].u_viraddr);
- output_data.nv12_data.uv_phys_data = drm->u.dec_info.pFrame[0].u_phyaddr;
- output_data.nv12_data.uv_stride = drm->u.dec_info.pFrame[0].u_linesize;
- output_data.image_size.set_width(drm->u.dec_info.pFrame[0].width);
- output_data.image_size.set_height(drm->u.dec_info.pFrame[0].height);
- output_data.plane_id = drm->plane;
+ reinterpret_cast<uint8_t*>(video_info->u.dec_info.pFrame[0].u_viraddr);
+ output_data.nv12_data.uv_phys_data =
+ video_info->u.dec_info.pFrame[0].u_phyaddr;
+ output_data.nv12_data.uv_stride = video_info->u.dec_info.pFrame[0].u_linesize;
+ output_data.image_size.set_width(video_info->u.dec_info.pFrame[0].width);
+ output_data.image_size.set_height(video_info->u.dec_info.pFrame[0].height);
+ output_data.plane_id = video_info->plane;
output_data.eos = (output_buf_hdr_->nFlags & OMX_BUFFERFLAG_EOS);
uint32_t num_planes = CountPlanes(output_data);
output_data.pixel_format = ConvertPlatformToMediaPixelFormat(
- num_planes, static_cast<uint32_t>(drm->u.dec_info.pFrame[0].colorformat));
+ num_planes,
+ static_cast<uint32_t>(video_info->u.dec_info.pFrame[0].colorformat));
TIZEN_MEDIA_LOG(VERBOSE) << "Output cb: " << output_data.timestamp;
output_cb_.Run(output_data);