Andy Furniss wrote:
Christian König wrote:
Am 18.10.2016 um 11:19 schrieb Andy Furniss: wrote:
From: Boyuan Zhang <>

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
do interlaced.

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 <>
  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 mailing list

Reply via email to