FrameFormat.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #include "FrameFormat.h"
  2. #include "OpenGLWidgetAPI.h"
  3. #include "spdlog/spdlog.h"
  4. Frame_YUV420P::Frame_YUV420P() : FrameBase(EFrameFormat::Frame_YUV420P)
  5. {
  6. frameData = new Image_YUV420P();
  7. }
  8. Frame_YUV420P::~Frame_YUV420P()
  9. {
  10. if(frameData != nullptr)
  11. {
  12. delete frameData;
  13. frameData = nullptr;
  14. }
  15. }
  16. Frame_RGBA8888::Frame_RGBA8888() : FrameBase(EFrameFormat::Frame_RGBA8888)
  17. {
  18. frameData = new QImage();
  19. }
  20. Frame_RGBA8888::~Frame_RGBA8888()
  21. {
  22. if(frameData != nullptr)
  23. {
  24. delete frameData;
  25. frameData = nullptr;
  26. }
  27. }
  28. /* 删除一个图片 */
  29. bool deleteOneFrame(FrameBase* frame)
  30. {
  31. if(frame == nullptr)
  32. {
  33. SPDLOG_DEBUG("传入的帧指针为空,无法删除");
  34. return false;
  35. }
  36. if(frame->frameFormat() == EFrameFormat::Frame_YUV420P)
  37. {
  38. Frame_YUV420P* yuvFrame = static_cast<Frame_YUV420P*>(frame);
  39. delete yuvFrame;
  40. }else if(frame->frameFormat() == EFrameFormat::Frame_RGBA8888)
  41. {
  42. Frame_RGBA8888* rgbaFrame = static_cast<Frame_RGBA8888*>(frame);
  43. delete rgbaFrame;
  44. } else {
  45. SPDLOG_WARN("未知的帧格式,无法删除。");
  46. return false;
  47. }
  48. return true;
  49. }