[Mesa-dev] [PATCH] st/va: disable cabac for h264 baseline profile
adf.lists at gmail.com
Tue Oct 18 13:42:07 UTC 2016
Andy Furniss wrote:
> 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.
Sorry if that came over as being pedantic, silly as I think pragmatism
is the way to go and I know intel advertise main/high, but doubt they
In fact vce vaapi is currently advertising them as well (I did mention
it in some thread). Good for letting ffmpeg flag as such while not using
b-frames, not so good for gstreamer as they have changed the default to
high so old command lines will not explicitly fail, but will produce junk.
I see va.h has a cabac switch and gstreamer exposes it - though it's not
read by the driver. Maybe if that were hooked up then users could turn
it on and profit :-).
>>>> 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
>>>> 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 =
>>>> //pic control preset
>>>> - context->desc.h264enc.pic_ctrl.enc_cabac_enable = 0x00000001;
>>>> context->desc.h264enc.pic_ctrl.enc_constraint_set_flags =
>>>> //rate control
>>> mesa-dev mailing list
>>> mesa-dev at lists.freedesktop.org
More information about the mesa-dev