@@ -36,9 +36,17 @@ static void DumpDecoderStreamInfo(VkSharedBaseObj<VulkanVideoDecoder>& vulkanVid
3636 std::cout << std::endl;
3737}
3838
39- static std::vector<VulkanDecodedFrame> frameDataQueue;
40- static uint32_t curFrameDataQueueIndex = 0 ;
41- bool GetNextFrame (VkSharedBaseObj<VulkanVideoDecoder>& vulkanVideoDecoder)
39+ static size_t init (std::vector<VulkanDecodedFrame>& frameDataQueue, uint32_t & curFrameDataQueueIndex,
40+ const uint32_t decoderQueueSize)
41+ {
42+ curFrameDataQueueIndex = 0 ;
43+ frameDataQueue.resize (decoderQueueSize);
44+ return frameDataQueue.size ();
45+ }
46+
47+ static bool GetNextFrame (VkSharedBaseObj<VulkanVideoDecoder>& vulkanVideoDecoder,
48+ std::vector<VulkanDecodedFrame>& frameDataQueue,
49+ uint32_t & curFrameDataQueueIndex)
4250{
4351 bool continueLoop = true ;
4452
@@ -84,6 +92,13 @@ bool GetNextFrame(VkSharedBaseObj<VulkanVideoDecoder>& vulkanVideoDecoder)
8492 return continueLoop;
8593}
8694
95+ static void deinit (std::vector<VulkanDecodedFrame>& frameDataQueue,
96+ uint32_t & curFrameDataQueueIndex)
97+ {
98+ frameDataQueue.clear ();
99+ curFrameDataQueueIndex = 0 ;
100+ }
101+
87102int main (int argc, const char ** argv)
88103{
89104 std::cout << " Enter decoder test" << std::endl;
@@ -151,14 +166,19 @@ int main(int argc, const char** argv)
151166
152167 DumpDecoderStreamInfo (vulkanVideoDecoder);
153168
169+ std::vector<VulkanDecodedFrame> frameDataQueue;
170+ uint32_t curFrameDataQueueIndex = 0 ;
171+
154172 frameDataQueue.resize (decoderConfig.decoderQueueSize );
155173
174+ init (frameDataQueue, curFrameDataQueueIndex, decoderConfig.decoderQueueSize );
175+
156176 bool continueLoop = true ;
157177 do {
158- continueLoop = GetNextFrame (vulkanVideoDecoder);
178+ continueLoop = GetNextFrame (vulkanVideoDecoder, frameDataQueue, curFrameDataQueueIndex );
159179 } while (continueLoop);
160180
161- /* ***************************************************************************************** */
181+ deinit (frameDataQueue, curFrameDataQueueIndex);
162182
163183 std::cout << " Exit decoder test" << std::endl;
164184}
0 commit comments