summaryrefslogtreecommitdiff
path: root/libavformat/matroskadec.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat/matroskadec.c')
-rw-r--r--libavformat/matroskadec.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index b97189e674..fb0356e7b7 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -389,12 +389,16 @@ typedef struct MatroskaDemuxContext {
#define CHILD_OF(parent) { .def = { .n = parent } }
-static const EbmlSyntax ebml_syntax[], matroska_segment[], matroska_track_video_color[], matroska_track_video[],
- matroska_track[], matroska_track_encoding[], matroska_track_encodings[],
- matroska_track_combine_planes[], matroska_track_operation[], matroska_tracks[],
- matroska_attachments[], matroska_chapter_entry[], matroska_chapter[], matroska_chapters[],
- matroska_index_entry[], matroska_index[], matroska_tag[], matroska_tags[], matroska_seekhead[],
- matroska_blockadditions[], matroska_blockgroup[], matroska_cluster_parsing[];
+// The following forward declarations need their size because
+// a tentative definition with internal linkage must not be an
+// incomplete type (6.7.2 in C90, 6.9.2 in C99).
+// Removing the sizes breaks MSVC.
+static const EbmlSyntax ebml_syntax[3], matroska_segment[9], matroska_track_video_color[15], matroska_track_video[19],
+ matroska_track[27], matroska_track_encoding[6], matroska_track_encodings[2],
+ matroska_track_combine_planes[2], matroska_track_operation[2], matroska_tracks[2],
+ matroska_attachments[2], matroska_chapter_entry[9], matroska_chapter[6], matroska_chapters[2],
+ matroska_index_entry[3], matroska_index[2], matroska_tag[3], matroska_tags[2], matroska_seekhead[2],
+ matroska_blockadditions[2], matroska_blockgroup[8], matroska_cluster_parsing[8];
static const EbmlSyntax ebml_header[] = {
{ EBML_ID_EBMLREADVERSION, EBML_UINT, 0, offsetof(Ebml, version), { .u = EBML_VERSION } },