avcodec/nvdec: More effort to make vp8 compile with gcc < 4.6
authorPhilip Langdale <philipl@overt.org>
Mon, 27 Nov 2017 06:18:22 +0000 (22:18 -0800)
committerPhilip Langdale <philipl@overt.org>
Mon, 27 Nov 2017 06:21:12 +0000 (22:21 -0800)
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

index f29a66a..7b37445 100644 (file)
@@ -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;