[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