瀏覽代碼

obs-qsv11: Keep ExtParam value around

This wasn't meant to be freed in InitParams
Jim 3 年之前
父節點
當前提交
e72aa91a6d
共有 2 個文件被更改,包括 3 次插入4 次删除
  1. 0 4
      plugins/obs-qsv11/QSV_Encoder_Internal.cpp
  2. 3 0
      plugins/obs-qsv11/QSV_Encoder_Internal.h

+ 0 - 4
plugins/obs-qsv11/QSV_Encoder_Internal.cpp

@@ -61,8 +61,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include <VersionHelpers.h>
 #include <obs-module.h>
 
-#include <vector>
-
 #define do_log(level, format, ...) \
 	blog(level, "[qsv encoder: '%s'] " format, "msdk_impl", ##__VA_ARGS__)
 
@@ -300,8 +298,6 @@ mfxStatus QSV_Encoder_Internal::InitParams(qsv_param_t *pParams,
 		(mfxU16)(pParams->nKeyIntSec * pParams->nFpsNum /
 			 (float)pParams->nFpsDen);
 
-	std::vector<mfxExtBuffer *> extendedBuffers;
-
 	if (m_ver.Major == 1 && m_ver.Minor >= 8) {
 		memset(&m_co2, 0, sizeof(mfxExtCodingOption2));
 		m_co2.Header.BufferId = MFX_EXTBUFF_CODING_OPTION2;

+ 3 - 0
plugins/obs-qsv11/QSV_Encoder_Internal.h

@@ -59,6 +59,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include "QSV_Encoder.h"
 #include "common_utils.h"
 
+#include <vector>
+
 class QSV_Encoder_Internal {
 public:
 	QSV_Encoder_Internal(mfxIMPL &impl, mfxVersion &version);
@@ -111,6 +113,7 @@ private:
 	mfxU16 m_nSPSBufferSize;
 	mfxU16 m_nPPSBufferSize;
 	mfxVideoParam m_parameter;
+	std::vector<mfxExtBuffer *> extendedBuffers;
 	mfxExtCodingOption3 m_co3;
 	mfxExtCodingOption2 m_co2;
 	mfxExtCodingOption m_co;