Commit b93d96a0 authored by Philip Langdale's avatar Philip Langdale

avcodec/nvdec: Make vp8 initialisation more 'compatible'

Ancient versions of gcc (pre 4.6) can't directly initialise
members of anonymous inner unions/structs by name.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=10676

Unfortunately, RHEL 6 shipped with one of these ancient
versions and so we're stuck with it until approximately the
heat death of the universe.

Putting explicit braces into the initialisation is possibly a
work-around but the behaviour there was never fully understood
before direct initialisation was made to work.

So, this may or may not work.
parent 8e7ac4f0
......@@ -64,11 +64,20 @@ static int nvdec_vp8_start_frame(AVCodecContext *avctx, const uint8_t *buffer, u
.LastRefIdx = safe_get_ref_idx(h->framep[VP56_FRAME_PREVIOUS]),
.GoldenRefIdx = safe_get_ref_idx(h->framep[VP56_FRAME_GOLDEN]),
.AltRefIdx = safe_get_ref_idx(h->framep[VP56_FRAME_GOLDEN2]),
/*
* Explicit braces for anonymous inners to work around limitations
* in ancient versions of gcc.
*/
{
{
.frame_type = !h->keyframe,
.version = h->profile,
.show_frame = !h->invisible,
.update_mb_segmentation_data = h->segmentation.enabled ? h->segmentation.update_feature_data : 0,
.update_mb_segmentation_data = h->segmentation.enabled ?
h->segmentation.update_feature_data :
0,
}
}
}
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment