You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
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.
This commit is contained in:
@@ -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]),
|
.LastRefIdx = safe_get_ref_idx(h->framep[VP56_FRAME_PREVIOUS]),
|
||||||
.GoldenRefIdx = safe_get_ref_idx(h->framep[VP56_FRAME_GOLDEN]),
|
.GoldenRefIdx = safe_get_ref_idx(h->framep[VP56_FRAME_GOLDEN]),
|
||||||
.AltRefIdx = safe_get_ref_idx(h->framep[VP56_FRAME_GOLDEN2]),
|
.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,
|
.frame_type = !h->keyframe,
|
||||||
.version = h->profile,
|
.version = h->profile,
|
||||||
.show_frame = !h->invisible,
|
.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,
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user