[FFmpeg-cvslog] avcodec/nvdec: More effort to make vp8 compile with gcc < 4.6

Philip Langdale git at videolan.org
Mon Nov 27 08:21:31 EET 2017


ffmpeg | branch: master | Philip Langdale <philipl at overt.org> | Sun Nov 26 22:18:22 2017 -0800| [0e93694e64cdc72f7ccb8a986171593e672b8dba] | committer: Philip Langdale

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.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0e93694e64cdc72f7ccb8a986171593e672b8dba
---

 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;



More information about the ffmpeg-cvslog mailing list