0016-Modify-gstomxmjpegdec-format.patch 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. Changed Y444 for correct format
  2. Add VYUY v308 NV61 format for omxmjpegdec
  3. Signed-off-by: Leo Lu <leo.lu@starfivetech.com>
  4. diff -purN a/omx/gstomxbufferpool.c b/omx/gstomxbufferpool.c
  5. --- a/omx/gstomxbufferpool.c 2022-09-23 11:48:33.011477728 +0800
  6. +++ b/omx/gstomxbufferpool.c 2022-09-23 15:01:05.053735591 +0800
  7. @@ -355,10 +355,13 @@ gst_omx_buffer_pool_alloc_buffer (GstBuf
  8. case GST_VIDEO_FORMAT_ARGB:
  9. case GST_VIDEO_FORMAT_RGB16:
  10. case GST_VIDEO_FORMAT_BGR16:
  11. + case GST_VIDEO_FORMAT_GRAY8:
  12. + break;
  13. case GST_VIDEO_FORMAT_YUY2:
  14. case GST_VIDEO_FORMAT_UYVY:
  15. case GST_VIDEO_FORMAT_YVYU:
  16. - case GST_VIDEO_FORMAT_GRAY8:
  17. + case GST_VIDEO_FORMAT_VYUY:
  18. + stride[0] = GST_ROUND_UP_4(nstride * 2);
  19. break;
  20. case GST_VIDEO_FORMAT_I420:
  21. stride[1] = nstride / 2;
  22. @@ -370,6 +373,7 @@ gst_omx_buffer_pool_alloc_buffer (GstBuf
  23. case GST_VIDEO_FORMAT_NV12_10LE32:
  24. case GST_VIDEO_FORMAT_NV16:
  25. case GST_VIDEO_FORMAT_NV16_10LE32:
  26. + case GST_VIDEO_FORMAT_NV61:
  27. #ifdef USE_OMX_TARGET_STARFIVE
  28. case GST_VIDEO_FORMAT_NV21:
  29. #endif
  30. @@ -392,6 +396,9 @@ gst_omx_buffer_pool_alloc_buffer (GstBuf
  31. offset[1] = offset[0] + stride[0] * nslice;
  32. offset[2] = offset[1] + stride[1] * nslice;
  33. break;
  34. + case GST_VIDEO_FORMAT_v308:
  35. + stride[0] = GST_ROUND_UP_4(nstride * 3);
  36. + break;
  37. #endif
  38. default:
  39. g_assert_not_reached ();
  40. diff -purN a/omx/gstomxvideo.c b/omx/gstomxvideo.c
  41. --- a/omx/gstomxvideo.c 2022-09-23 11:48:33.011477728 +0800
  42. +++ b/omx/gstomxvideo.c 2022-09-23 15:00:40.937734140 +0800
  43. @@ -99,11 +99,20 @@ gst_omx_video_get_format_from_omx (OMX_C
  44. format = GST_VIDEO_FORMAT_Y42B;
  45. break;
  46. case OMX_COLOR_FormatYUV444Interleaved:
  47. - format = GST_VIDEO_FORMAT_Y444;
  48. + format = GST_VIDEO_FORMAT_v308;
  49. break;
  50. case OMX_COLOR_FormatYVU420SemiPlanar:
  51. format = GST_VIDEO_FORMAT_NV21;
  52. break;
  53. + case OMX_COLOR_FormatCrYCbY:
  54. + format = GST_VIDEO_FORMAT_VYUY;
  55. + break;
  56. + case OMX_COLOR_FormatYUV444Planar:
  57. + format = GST_VIDEO_FORMAT_Y444;
  58. + break;
  59. + case OMX_COLOR_FormatYVU422SemiPlanar:
  60. + format = GST_VIDEO_FORMAT_NV61;
  61. + break;
  62. #endif
  63. default:
  64. format = GST_VIDEO_FORMAT_UNKNOWN;
  65. diff -purN a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
  66. --- a/omx/gstomxvideodec.c 2022-09-23 11:48:33.011477728 +0800
  67. +++ b/omx/gstomxvideodec.c 2022-09-23 11:42:45.251075196 +0800
  68. @@ -646,6 +646,7 @@ gst_omx_video_dec_fill_buffer (GstOMXVid
  69. break;
  70. #ifdef USE_OMX_TARGET_STARFIVE
  71. case GST_VIDEO_FORMAT_Y444:
  72. + case GST_VIDEO_FORMAT_v308:
  73. dst_width[0] = GST_VIDEO_INFO_WIDTH (vinfo);
  74. dst_width[1] = GST_VIDEO_INFO_WIDTH (vinfo);
  75. dst_width[2] = GST_VIDEO_INFO_WIDTH (vinfo);
  76. diff -purN a/config/stf/gstomx.conf b/config/stf/gstomx.conf
  77. --- a/config/stf/gstomx.conf 2022-09-23 11:48:33.079477828 +0800
  78. +++ b/config/stf/gstomx.conf 2022-09-23 15:04:52.249741473 +0800
  79. @@ -42,4 +42,4 @@ in-port-index=0
  80. out-port-index=1
  81. rank=1
  82. hacks=pass-profile-to-decoder;pass-color-format-to-decoder;ensure-buffer-count-actual
  83. -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 ]
  84. +src-template-caps=video/x-raw, format = (string) { NV16_10LE32, NV12_10LE32, NV16, NV61, YUY2, YVYU, UYVY, NV12, NV21, I420, RGB16, BGR16, ABGR, ARGB, GRAY8, Y42B, Y444, VYUY, v308 }, width = (int) [ 1, max ], height = (int) [ 1, max ], framerate = (fraction) [ 0, max ]