123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- --- a/config/stf/gstomx.conf
- +++ b/config/stf/gstomx.conf
- @@ -42,3 +42,4 @@
- out-port-index=1
- rank=1
- hacks=pass-profile-to-decoder;pass-color-format-to-decoder;ensure-buffer-count-actual
- +src-template-caps=video/x-raw, format = (string) { NV16_10LE32, NV12_10LE32, NV16, YUY2, YVYU, UYVY, NV12, NV21, I420, RGB16, BGR16, ABGR, ARGB, GRAY8, Y42B, Y444 }, width = (int) [ 1, max ], height = (int) [ 1, max ], framerate = (fraction) [ 0, max ]
- --- a/omx/gstomxbufferpool.c
- +++ b/omx/gstomxbufferpool.c
- @@ -370,9 +370,29 @@
- case GST_VIDEO_FORMAT_NV12_10LE32:
- case GST_VIDEO_FORMAT_NV16:
- case GST_VIDEO_FORMAT_NV16_10LE32:
- +#ifdef USE_OMX_TARGET_STARFIVE
- + case GST_VIDEO_FORMAT_NV21:
- +#endif
- stride[1] = nstride;
- offset[1] = offset[0] + stride[0] * nslice;
- break;
- +#ifdef USE_OMX_TARGET_STARFIVE
- + case GST_VIDEO_FORMAT_Y42B:
- + stride[0] = GST_ROUND_UP_4 (nstride);
- + stride[1] = GST_ROUND_UP_8 (nstride) / 2;
- + stride[2] = stride[1];
- +
- + offset[1] = stride[0] * nslice;
- + offset[2] = offset[1] + stride[1] * nslice;
- + break;
- +
- + case GST_VIDEO_FORMAT_Y444:
- + stride[1] = nstride;
- + stride[2] = nstride;
- + offset[1] = offset[0] + stride[0] * nslice;
- + offset[2] = offset[1] + stride[1] * nslice;
- + break;
- +#endif
- default:
- g_assert_not_reached ();
- break;
- --- a/omx/gstomxvideo.c
- +++ b/omx/gstomxvideo.c
- @@ -93,6 +93,17 @@
- format = GST_VIDEO_FORMAT_NV16_10LE32;
- break;
- #pragma GCC diagnostic pop
- +#endif
- +#ifdef USE_OMX_TARGET_STARFIVE
- + case OMX_COLOR_FormatYUV422Planar:
- + format = GST_VIDEO_FORMAT_Y42B;
- + break;
- + case OMX_COLOR_FormatYUV444Interleaved:
- + format = GST_VIDEO_FORMAT_Y444;
- + break;
- + case OMX_COLOR_FormatYVU420SemiPlanar:
- + format = GST_VIDEO_FORMAT_NV21;
- + break;
- #endif
- default:
- format = GST_VIDEO_FORMAT_UNKNOWN;
- --- a/omx/gstomxvideodec.c
- +++ b/omx/gstomxvideodec.c
- @@ -592,6 +592,9 @@
- case GST_VIDEO_FORMAT_YUY2:
- case GST_VIDEO_FORMAT_UYVY:
- case GST_VIDEO_FORMAT_YVYU:
- +#ifdef USE_OMX_TARGET_STARFIVE
- + case GST_VIDEO_FORMAT_Y42B:
- +#endif
- dst_width[0] = GST_VIDEO_INFO_WIDTH (vinfo) * 2;
- break;
- case GST_VIDEO_FORMAT_GRAY8:
- @@ -609,6 +612,9 @@
- dst_height[2] = GST_VIDEO_INFO_FIELD_HEIGHT (vinfo) / 2;
- break;
- case GST_VIDEO_FORMAT_NV12:
- +#ifdef USE_OMX_TARGET_STARFIVE
- + case GST_VIDEO_FORMAT_NV21:
- +#endif
- dst_width[0] = GST_VIDEO_INFO_WIDTH (vinfo);
- src_stride[1] = nstride;
- src_size[1] = src_stride[1] * nslice / 2;
- @@ -638,6 +644,18 @@
- src_size[1] = src_stride[1] * nslice;
- dst_height[1] = GST_VIDEO_INFO_FIELD_HEIGHT (vinfo);
- break;
- +#ifdef USE_OMX_TARGET_STARFIVE
- + case GST_VIDEO_FORMAT_Y444:
- + dst_width[0] = GST_VIDEO_INFO_WIDTH (vinfo);
- + dst_width[1] = GST_VIDEO_INFO_WIDTH (vinfo);
- + dst_width[2] = GST_VIDEO_INFO_WIDTH (vinfo);
- + src_size[1] = src_size[0];
- + src_size[2] = src_size[0];
- + src_stride[1] = nstride;
- + dst_height[1] = dst_height[0];
- + dst_height[2] = dst_height[0];
- + break;
- +#endif
- default:
- g_assert_not_reached ();
- break;
|