[Mesa-dev] [PATCH] st/va: disable cabac for h264 baseline profile

Andy Furniss adf.lists at gmail.com
Tue Oct 18 10:05:14 UTC 2016


Christian König wrote:
> Am 18.10.2016 um 11:19 schrieb Andy Furniss:
>> boyuan.zhang at amd.com wrote:
>>> From: Boyuan Zhang <boyuan.zhang at amd.com>
>>>
>>> cabac is only supported in the h264 main and higher profiles
>>
>> So shouldn't there be code allows it if the user space doesn't
>> set baseline?
>>
>> I don't know how in gstreamer as it seems to try to use b-frames
>> if you use other than baseline which doesn't work.
>>
>> With avconv it is possible to call main/high and set b-frames to 0.
>>
>> I know it's technically correct spec wise, but seems a shame as it
>> costs a fair bit in "free" efficiency.
>>
>> On Windows the raptor game recording app produces files flagged as
>> high with cabac - but without b-frames.
>
> The problem is that it can easily break decoders. CABAC is simply not
> allowed in a stream flagged as baseline compliant.

But with ffmpeg/avconv I can make a stream flagged as main/high even
if it's really baseline + CABAC. I guess Windows may vary but the test
I did seems to take this pragmatic approach, as it seems do other h/w
encoders eg. smartphone output.

> It's a pity that we don't support B-frames any more.

Anymore? Now I am curious, seems to work with omx (cqp single instance)


> With that in place
> we could easily advertise support for mainline profile.

MBAFF/PAFF?

> Christian.
>
>>
>>> Signed-off-by: Boyuan Zhang <boyuan.zhang at amd.com>
>>> ---
>>>   src/gallium/state_trackers/va/picture.c | 1 -
>>>   1 file changed, 1 deletion(-)
>>>
>>> diff --git a/src/gallium/state_trackers/va/picture.c
>>> b/src/gallium/state_trackers/va/picture.c
>>> index eae5dc4..db08a3c 100644
>>> --- a/src/gallium/state_trackers/va/picture.c
>>> +++ b/src/gallium/state_trackers/va/picture.c
>>> @@ -110,7 +110,6 @@ getEncParamPreset(vlVaContext *context)
>>>      context->desc.h264enc.motion_est.enc_ime2_search_range_y =
>>> 0x00000004;
>>>
>>>      //pic control preset
>>> -   context->desc.h264enc.pic_ctrl.enc_cabac_enable = 0x00000001;
>>>      context->desc.h264enc.pic_ctrl.enc_constraint_set_flags =
>>> 0x00000040;
>>>
>>>      //rate control
>>>
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
>
>



More information about the mesa-dev mailing list