On 08/16/2017 03:22 AM, Christian König wrote:
Hi Leo,

Patches #2, #4, #6, #8 - #12, #14, #18-#20 are Reviewed-by: Christian König <christian.koe...@amd.com>

Patch #1:

When you add new formats it would be nice to have u_reduce_video_profile() in src/gallium/auxiliary/util/u_video.h updated as well.

Yes. I have "u_reduce_video_profile()"  updated in patch 3.

The patch1 and patch2 are for vl headers, but I will move u_reduce_video_profile() to patch 1 in v2


Additional to that I think the codec name is JPEG, not MJPEG. MJPEG is just the file/stream format with multiple JPEGs.

Okay.


Patch #3:

+        case PIPE_VIDEO_FORMAT_MJPEG:
+            return true;
Please reorder the patch to be the last of the radeon/* patches, so that the driver only starts to claim JPEG support when everything else is implemented.

Sure in v2 patch 5, also add check for kernel version and ASICs.


Apart from that the patch is Reviewed-by: Christian König <christian.koe...@amd.com>

Patch #5:
+    if (dec->stream_type != RUVD_CODEC_MJPEG) {
+        dpb_size = calc_dpb_size(dec);
+ if (!rvid_create_buffer(dec->screen, &dec->dpb, dpb_size, PIPE_USAGE_DEFAULT)) {
+            RVID_ERR("Can't allocated dpb.\n");
+            goto error;
+        }
+        rvid_clear_buffer(context, &dec->dpb);
I think it would be cleaner if calc_dpb_size() just return zero for RUVD_CODEC_MJPEG and then the calling code skipping buffer allocation when it sees a zero sized dpb.

Sure in v2 patch3.


Patch #7:
+      enum pipe_video_format format =
+         u_reduce_video_profile(context->templat.profile);
+
Here you use u_reduce_video_profile, but I can't see where you update u_reduce_video_profile() for JPEG support?

It's at original patch 3.



Patch #13:

Mhm, I'm not sure if it is a good idea to add this to the driver backend, but the patch is Acked-by: Christian König <christian.koe...@amd.com> anyway.

Patch #15, #16 and #17 are somehow missing and didn't made it to the mailing list.
>The subject line should probably read "reallocate" instead of "relocate".

>Additional to that the term "stacked field" isn't really used outside AMD, better use interlaced layout.

I will fix commit message.


>      case RUVD_SURFACE_TYPE_LEGACY:
>         msg->body.decode.dt_pitch = luma->u.legacy.level[0].nblk_x;
>+        if (!chroma)
>+            msg->body.decode.dt_pitch *= 2;

>Patch looks good to me, except for this hunk.

>Can we get the pitch somehow else instead of making it depending if chroma is present or not?

>Cause that is clearly not correct in all cases.

I will add stream type check in v2.


Thanks for the review.

Leo



Regards,
Christian.

Am 15.08.2017 um 22:08 schrieb Leo Liu:
The series is able to enable mjpeg decode support through vaapi, and that
includes for the formats of 420(NV12) and 422(YUYV).

Leo Liu (20):
   vl: add mjpeg profile and format
   vl: add mjpeg picture description
   radeon/video: add mjpeg support
   radeon/uvd: add mjpeg stream type
   radeon/uvd: add mjpeg support
   st/va: add mjpeg picture to context
   st/va: create decoder for mjpeg format
   st/va: add handles for mjpeg Buffers
   st/va: add picture parameter handling for mjpeg
   st/va: add iq matrix handling for mjpeg
   st/va: add huffman table handling for mjpeg
   st/va: add slice parameter handling for mjpeg
   radeon/uvd: reconstruct mjpeg bitstream
   st/va: make surface allocate functions more usefully
   radeon/video: mjpeg not support stacked video buffers
   st/va: relocate surface when stack field false
   radeon/uvd: add yuyv format support for target buffer
   st/va: detect mjpeg format from bitstream
   st/va: relocate surface with yuyv stream
   st/va: add mjpeg for config

  src/gallium/auxiliary/util/u_video.h           |   3 +
src/gallium/drivers/radeon/radeon_uvd.c | 175 +++++++++++++++++++++++--
  src/gallium/drivers/radeon/radeon_uvd.h        |   1 +
  src/gallium/drivers/radeon/radeon_video.c      |   8 +-
  src/gallium/drivers/radeonsi/si_uvd.c          |   2 +-
  src/gallium/include/pipe/p_video_enums.h       |   6 +-
  src/gallium/include/pipe/p_video_state.h       |  59 +++++++++
  src/gallium/state_trackers/va/Makefile.sources |   1 +
  src/gallium/state_trackers/va/config.c         |   2 +-
  src/gallium/state_trackers/va/picture.c        |  70 +++++++++-
  src/gallium/state_trackers/va/picture_mjpeg.c  | 116 ++++++++++++++++
  src/gallium/state_trackers/va/surface.c        |   8 +-
  src/gallium/state_trackers/va/va_private.h     |  14 ++
  13 files changed, 440 insertions(+), 25 deletions(-)
  create mode 100644 src/gallium/state_trackers/va/picture_mjpeg.c



_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to