From 0e93694e64cdc72f7ccb8a986171593e672b8dba Mon Sep 17 00:00:00 2001 From: Philip Langdale Date: Sun, 26 Nov 2017 22:18:22 -0800 Subject: [PATCH] avcodec/nvdec: More effort to make vp8 compile with gcc < 4.6 I'm told my prefix work-around wasn't enough to make it compile, although I'm not sure why; I did some basic testing and that approach appeared to work, but I'm not in a position to do a full compile on CentOS 6 so I can't be sure of anything. I have had it confirmed that the additional change to not use named initialisers is enough to make it compile, so let's throw that into the mix too. --- libavcodec/nvdec_vp8.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/libavcodec/nvdec_vp8.c b/libavcodec/nvdec_vp8.c index f29a66ac72..7b37445613 100644 --- a/libavcodec/nvdec_vp8.c +++ b/libavcodec/nvdec_vp8.c @@ -65,20 +65,19 @@ static int nvdec_vp8_start_frame(AVCodecContext *avctx, const uint8_t *buffer, u .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. + * Explicit braces for anonymous inners and unnamed fields + * 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, + { // union + { // struct + !h->keyframe, // frame_type + h->profile, // version + !h->invisible, // show_frame + h->segmentation.enabled ? // update_mb_segmentation_data + h->segmentation.update_feature_data : 0, } } - } + } }; return 0;