[FFmpeg-cvslog] avcodec/nvdec: Make vp8 initialisation more 'compatible'
Philip Langdale
git at videolan.org
Mon Nov 27 06:52:58 EET 2017
ffmpeg | branch: master | Philip Langdale <philipl at overt.org> | Sun Nov 26 20:40:32 2017 -0800| [b93d96a07be40f8e5d267d55fe961285586c0fd7] | committer: 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.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b93d96a07be40f8e5d267d55fe961285586c0fd7
---
libavcodec/nvdec_vp8.c | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/libavcodec/nvdec_vp8.c b/libavcodec/nvdec_vp8.c
index ceb3de2c3a..f29a66ac72 100644
--- a/libavcodec/nvdec_vp8.c
+++ b/libavcodec/nvdec_vp8.c
@@ -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]),
-
- .frame_type = !h->keyframe,
- .version = h->profile,
- .show_frame = !h->invisible,
- .update_mb_segmentation_data = h->segmentation.enabled ? h->segmentation.update_feature_data : 0,
+ /*
+ * 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,
+ }
+ }
}
};
More information about the ffmpeg-cvslog
mailing list