On 14/11/17 10:53, Andy Furniss wrote: > Zhang, Boyuan wrote: >> >> >> -----Original Message----- >> From: Zhang, Boyuan >> Sent: November-13-17 11:41 AM >> To: Andy Furniss; Koenig, Christian; Mark Thompson; >> mesa-dev@lists.freedesktop.org >> Subject: RE: [Mesa-dev] [PATCH 10/18] radeon/vcn: add encode header >> implementations >> >> Zhang, Boyuan wrote: >> >>>>>>> diff --git a/src/gallium/drivers/radeon/radeon_vcn_enc_1_2.c >>>>>>> b/src/gallium/drivers/radeon/radeon_vcn_enc_1_2.c >>>>>>> index 5170c67..c6dc420 100644 >>>>>>> --- a/src/gallium/drivers/radeon/radeon_vcn_enc_1_2.c >>>>>>> +++ b/src/gallium/drivers/radeon/radeon_vcn_enc_1_2.c >>>>>>> @@ -362,6 +362,233 @@ static void radeon_enc_quality_params(struct >>>>>>> radeon_encoder *enc) >>>>>>> RADEON_ENC_END(); >>>>>>> } >>>>>>> +static void radeon_enc_nalu_sps(struct radeon_encoder *enc) { >>>>>>> + RADEON_ENC_BEGIN(RENCODE_IB_PARAM_DIRECT_OUTPUT_NALU); >>>>>>> + RADEON_ENC_CS(RENCODE_DIRECT_OUTPUT_NALU_TYPE_SPS); >>>>>>> + uint32_t *size_in_bytes = >>>>>>> &enc->cs->current.buf[enc->cs->current.cdw++]; >>>>>>> + radeon_enc_reset(enc); >>>>>>> + radeon_enc_set_emulation_prevention(enc, false); >>>>>>> + radeon_enc_code_fixed_bits(enc, 0x00000001, 32); >>>>>>> + radeon_enc_code_fixed_bits(enc, 0x67, 8); >>>>>>> + radeon_enc_byte_align(enc); >>>>>>> + radeon_enc_set_emulation_prevention(enc, true); >>>>>>> + radeon_enc_code_fixed_bits(enc, >>>>>>> enc->enc_pic.spec_misc.profile_idc, 8); >>>>>>> + radeon_enc_code_fixed_bits(enc, 0x04, 8); >>>>>> Please always set constraint_set1_flag when profile_idc is 66. There >>>>>> are enough actually-constrained-baseline-but-not-marked-as-such streams >>>>>> in the world already to catch out decoders without full baseline support >>>>>> (that is, all of them). >>>>>> >>>>>> Also, "constraint_set5_flag shall be equal to 0 when profile_idc is not >>>>>> equal to 77, 88, 100, or 118". >>>> >>>> [Boyuan] Thanks for pointing out. I modified the value to be 0x44 in the >>>> new patch (set1=1, and set5=1) since we only support constrained baseline >>>> for now. >>> >>> It's not really with cabac though. I know there was a patch to turn it off >>> - but that would have been wasteful and make linux < windows. >>> >>> Why not use 77 if cabac is on + not set constrained bits, windows seems to >>> set main. >>> >>> Currently with vce trying to set main manually from ffmeg/gst in order to >>> get something "correct" still sets flags = something that's not seen as >>> main (but works). >> >> Yes, but still the problem is cabac is not allowed for baseline profile and >> we only support baseline for now. I'm not quite sure about windows test you >> mentioned, I'm just guessing that we might have some main profile features >> support in some closed test environment on windows side, but definitely not >> all main profile features, no b frame support. >> On linux side, we only support baseline profile for this vcn enc. >> (fixed a typo) > > Yea, it's tricky, FWIW windows does not use b-frames for the test I've done > (re-live turned up high = 50mbit 60fps).
I can get B-frames from AMF with a GCN 2 card on Windows. > It is flagged as main and uses cabac. > I guess main is the "correct" way to describe constrained baseline + cabac > even if there are no other main features like b-frames. Yes, it must be flagged as main in this case. - Mark _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev