d3d12: Clean unused code for parsing slices
authorSil Vilerino <sivileri@microsoft.com>
Mon, 17 Apr 2023 17:17:32 +0000 (13:17 -0400)
committerMarge Bot <emma+marge@anholt.net>
Wed, 19 Apr 2023 23:38:18 +0000 (23:38 +0000)
Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22541>

src/gallium/drivers/d3d12/d3d12_video_dec.cpp
src/gallium/drivers/d3d12/d3d12_video_dec.h
src/gallium/drivers/d3d12/d3d12_video_dec_h264.cpp
src/gallium/drivers/d3d12/d3d12_video_dec_h264.h

index 460c334..9918579 100644 (file)
@@ -39,7 +39,6 @@
 #include "util/u_inlines.h"
 #include "util/u_memory.h"
 #include "util/u_video.h"
-#include "util/vl_vlc.h"
 
 struct pipe_video_codec *
 d3d12_video_create_decoder(struct pipe_context *context, const struct pipe_video_codec *codec)
@@ -1237,36 +1236,6 @@ d3d12_video_decoder_get_frame_info(
    }
 }
 
-///
-/// Returns the number of bytes starting from [buf.data() + buffsetOffset] where the _targetCode_ is found
-/// Returns -1 if start code not found
-///
-int
-d3d12_video_decoder_get_next_startcode_offset(std::vector<uint8_t> &buf,
-                                              unsigned int bufferOffset,
-                                              unsigned int targetCode,
-                                              unsigned int targetCodeBitSize,
-                                              unsigned int numBitsToSearchIntoBuffer)
-{
-   struct vl_vlc vlc = { 0 };
-
-   // Shorten the buffer to be [buffetOffset, endOfBuf)
-   unsigned int bufSize = buf.size() - bufferOffset;
-   uint8_t *bufPtr = buf.data();
-   bufPtr += bufferOffset;
-
-   /* search the first numBitsToSearchIntoBuffer bytes for a startcode */
-   vl_vlc_init(&vlc, 1, (const void *const *) &bufPtr, &bufSize);
-   for (uint i = 0; i < numBitsToSearchIntoBuffer && vl_vlc_bits_left(&vlc) >= targetCodeBitSize; ++i) {
-      if (vl_vlc_peekbits(&vlc, targetCodeBitSize) == targetCode)
-         return i;
-      vl_vlc_eatbits(&vlc, 8);   // Stride is 8 bits = 1 byte
-      vl_vlc_fillbits(&vlc);
-   }
-
-   return -1;
-}
-
 void
 d3d12_video_decoder_store_converted_dxva_picparams_from_pipe_input(
    struct d3d12_video_decoder *codec,   // input argument, current decoder
index 3197cc7..f80c0ed 100644 (file)
@@ -243,12 +243,6 @@ d3d12_video_decoder_store_dxva_qmatrix_in_qmatrix_buffer(struct d3d12_video_deco
                                                          uint64_t                    DXVAStructSize);
 void
 d3d12_video_decoder_prepare_dxva_slices_control(struct d3d12_video_decoder *pD3D12Dec, struct pipe_picture_desc *picture);
-int
-d3d12_video_decoder_get_next_startcode_offset(std::vector<uint8_t> &buf,
-                                              unsigned int          bufferOffset,
-                                              unsigned int          targetCode,
-                                              unsigned int          targetCodeBitSize,
-                                              unsigned int          numBitsToSearchIntoBuffer);
 
 ///
 /// d3d12_video_decoder functions ends
index 63adb50..b2ba785 100644 (file)
@@ -200,68 +200,6 @@ d3d12_video_decoder_prepare_dxva_slices_control_h264(struct d3d12_video_decoder
    assert(vecOutSliceControlBuffers.size() == TotalSlicesDXVAArrayByteSize);
 }
 
-bool
-d3d12_video_decoder_get_next_slice_size_and_offset_h264(std::vector<uint8_t> &buf,
-                                                        unsigned int bufferOffset,
-                                                        uint32_t &outSliceSize,
-                                                        uint32_t &outSliceOffset)
-{
-   // Search the rest of the full frame buffer after the offset
-   uint numBitsToSearchIntoBuffer = buf.size() - bufferOffset;
-   int currentSlicePosition = d3d12_video_decoder_get_next_startcode_offset(buf,
-                                                                            bufferOffset,
-                                                                            DXVA_H264_START_CODE,
-                                                                            DXVA_H264_START_CODE_LEN_BITS,
-                                                                            numBitsToSearchIntoBuffer);
-
-   // Return false now if we didn't find a next slice based on the bufferOffset parameter
-   if (currentSlicePosition < 0) {
-      return false;
-   } else {
-      // Save the absolute buffer offset until the next slice in the output param
-      outSliceOffset = currentSlicePosition + bufferOffset;
-
-      // Found a next NALU, make sure it's a slice:
-      d3d12_video_decoder_nal_unit_type_h264 naluType =
-         (d3d12_video_decoder_nal_unit_type_h264)(buf[outSliceOffset + (DXVA_H264_START_CODE_LEN_BITS / 8)] & 0x1F);
-
-      bool isNaluSliceType = (naluType == type_slice) || (naluType == type_slice_part_A) ||
-                             (naluType == type_slice_part_B) || (naluType == type_slice_part_C) ||
-                             (naluType == type_slice_IDR) || (naluType == type_slice_aux) ||
-                             (naluType == type_slice_layer_ext);
-
-      if (!isNaluSliceType) {
-         // We found a NALU, but it's not a slice
-         return false;
-      } else {
-         // We did find a next slice based on the bufferOffset parameter
-
-         // Skip current start code, to get the slice after this, to calculate its size
-         bufferOffset += (DXVA_H264_START_CODE_LEN_BITS / 8 /*convert bits to bytes*/);
-         numBitsToSearchIntoBuffer = buf.size() - bufferOffset;
-
-         int c_signedStartCodeLen = (DXVA_H264_START_CODE_LEN_BITS / 8 /*convert bits to bytes*/);
-         int nextSlicePosition = c_signedStartCodeLen   // Takes into account the skipped start code
-                                 + d3d12_video_decoder_get_next_startcode_offset(buf,
-                                                                                 bufferOffset,
-                                                                                 DXVA_H264_START_CODE,
-                                                                                 DXVA_H264_START_CODE_LEN_BITS,
-                                                                                 numBitsToSearchIntoBuffer);
-
-         if (nextSlicePosition <
-             c_signedStartCodeLen)   // if no slice found, d3d12_video_decoder_get_next_startcode_offset returns - 1
-         {
-            // This means currentSlicePosition points to the last slice in the buffer
-            outSliceSize = buf.size() - outSliceOffset;
-         } else {
-            // This means there are more slices after the one pointed by currentSlicePosition
-            outSliceSize = nextSlicePosition - currentSlicePosition;
-         }
-         return true;
-      }
-   }
-}
-
 static void
 d3d12_video_decoder_log_pic_entry_h264(DXVA_PicEntry_H264 &picEntry)
 {
index d91d23b..3b39b99 100644 (file)
@@ -213,11 +213,6 @@ d3d12_video_decoder_dxva_qmatrix_from_pipe_picparams_h264(pipe_h264_picture_desc
                                                           DXVA_Qmatrix_H264 &     outMatrixBuffer);
 void
 d3d12_video_decoder_refresh_dpb_active_references_h264(struct d3d12_video_decoder *pD3D12Dec);
-bool
-d3d12_video_decoder_get_next_slice_size_and_offset_h264(std::vector<uint8_t> &buf,
-                                                   unsigned int          bufferOffset,
-                                                   uint32_t &            outSliceSize,
-                                                   uint32_t &            outSliceOffset);
 
 uint 
 d3d12_video_decoder_get_slice_count_h264(std::vector<uint8_t> &buf);