Revert "obs-qsv: Enable b-pyramid & change packet priority"
This reverts commit 33ff46a10e9c9844737990c567ffe497ef2cbd6f. This is being reverted due to many people being unable to start up the QSV encoder with these changes.
This commit is contained in:
parent
4450843aa0
commit
92cb20e7a2
@ -267,9 +267,8 @@ bool QSV_Encoder_Internal::InitParams(qsv_param_t * pParams)
|
||||
m_co2.MBBRC = MFX_CODINGOPTION_ON;
|
||||
if (pParams->nRateControl == MFX_RATECONTROL_LA_ICQ ||
|
||||
pParams->nRateControl == MFX_RATECONTROL_LA)
|
||||
|
||||
m_co2.LookAheadDepth = pParams->nLADEPTH;
|
||||
if (pParams->nbFrames > 1)
|
||||
m_co2.BRefType = MFX_B_REF_PYRAMID;
|
||||
extendedBuffers[iBuffers++] = (mfxExtBuffer*)& m_co2;
|
||||
|
||||
if (iBuffers > 0) {
|
||||
|
@ -159,7 +159,7 @@ static void obs_qsv_defaults(obs_data_t *settings)
|
||||
obs_data_set_default_int(settings, "la_depth", 15);
|
||||
|
||||
obs_data_set_default_int(settings, "keyint_sec", 3);
|
||||
obs_data_set_default_int(settings, "bframes", 3);
|
||||
obs_data_set_default_int(settings, "bframes", 1);
|
||||
}
|
||||
|
||||
static inline void add_strings(obs_property_t *list, const char *const *strings)
|
||||
@ -630,20 +630,8 @@ static void parse_packet(struct obs_qsv *obsqsv, struct encoder_packet *packet,
|
||||
packet->size = obsqsv->packet_data.num;
|
||||
packet->type = OBS_ENCODER_VIDEO;
|
||||
packet->pts = pBS->TimeStamp * fps_num / 90000;
|
||||
|
||||
packet->keyframe = (pBS->FrameType & MFX_FRAMETYPE_IDR);
|
||||
|
||||
uint16_t frameType = pBS->FrameType;
|
||||
uint8_t priority;
|
||||
|
||||
if (frameType & MFX_FRAMETYPE_I)
|
||||
priority = OBS_NAL_PRIORITY_HIGHEST;
|
||||
else if ((frameType & MFX_FRAMETYPE_P) || (frameType & MFX_FRAMETYPE_REF))
|
||||
priority = OBS_NAL_PRIORITY_HIGH;
|
||||
else
|
||||
priority = OBS_NAL_PRIORITY_DISPOSABLE;
|
||||
|
||||
packet->priority = priority;
|
||||
packet->keyframe = (pBS->FrameType &
|
||||
(MFX_FRAMETYPE_I | MFX_FRAMETYPE_REF));
|
||||
|
||||
/* ------------------------------------ */
|
||||
|
||||
@ -659,9 +647,15 @@ static void parse_packet(struct obs_qsv *obsqsv, struct encoder_packet *packet,
|
||||
|
||||
type = start[0] & 0x1F;
|
||||
if (type == OBS_NAL_SLICE_IDR || type == OBS_NAL_SLICE) {
|
||||
uint8_t prev_type = (start[0] >> 5) & 0x3;
|
||||
start[0] &= ~(3 << 5);
|
||||
//0 for non-ref frames and not equal to 0 for ref frames
|
||||
start[0] |= priority << 5;
|
||||
|
||||
if (pBS->FrameType & MFX_FRAMETYPE_I)
|
||||
start[0] |= OBS_NAL_PRIORITY_HIGHEST << 5;
|
||||
else if (pBS->FrameType & MFX_FRAMETYPE_P)
|
||||
start[0] |= OBS_NAL_PRIORITY_HIGH << 5;
|
||||
else
|
||||
start[0] |= prev_type << 5;
|
||||
}
|
||||
|
||||
start = (uint8_t*)obs_avc_find_startcode(start, end);
|
||||
|
Loading…
x
Reference in New Issue
Block a user