intel / libyami

Yet Another Media Infrastructure. it is core part of media codec with hardware acceleration, it is yummy to your video experience on Linux like platform.
Apache License 2.0
146 stars 106 forks source link

Compilation fails with gcc version 9.1.1 20190503 on Fedora 30 #875

Open zhoujd opened 5 years ago

zhoujd commented 5 years ago

$ ./autogen.sh --disable-silent-rules --prefix="/opt/media/install" --enable-tests --enable-debug --enable-h264enc --enable-jpegenc --enable-vp8enc --enable-vp9enc --enable-h265enc --enable-h264dec --enable-jpegdec --enable-vp8dec --enable-vp9dec --enable-h265dec --enable-mpeg2dec --enable-vc1dec --disable-fakedec --disable-oclfilters --enable-dmabuf --enable-md5 --disable-egl --disable-v4l2 --disable-wayland --enable-x11

h264Parser.cpp: In constructor 'YamiParser::H264::PPS::PPS()': h264Parser.cpp:140:41: error: 'void memset(void, int, size_t)' clearing an object of type 'struct YamiParser::H264::PPS' with no trivial copy-assignment; use assignment or value-initialization instead [-Werror=class-memaccess] 140 | memset(this, 0, offsetof(PPS, m_sps)); | ^ In file included from h264Parser.cpp:21: h264Parser.h:292:8: note: 'struct YamiParser::H264::PPS' declared here 292 | struct PPS { | ^~~ h264Parser.cpp: In constructor 'YamiParser::H264::SliceHeader::SliceHeader()': h264Parser.cpp:686:49: error: 'void memset(void, int, size_t)' clearing an object of type 'class YamiParser::H264::SliceHeader' with no trivial copy-assignment; use assignment or value-initialization instead [-Werror=class-memaccess] 686 | memset(this, 0, offsetof(SliceHeader, m_pps)); | ^ In file included from h264Parser.cpp:21: h264Parser.h:371:7: note: 'class YamiParser::H264::SliceHeader' declared here 371 | class SliceHeader { | ^~~ cc1plus: all warnings being treated as error

mpeg2_parser.cpp: In constructor 'YamiParser::MPEG2::SeqHeader::SeqHeader()': mpeg2_parser.cpp:176:59: error: 'void memset(void, int, size_t)' clearing an object of non-trivial type 'struct YamiParser::MPEG2::SeqHeader'; use assignment or value-initialization instead [-Werror=class-memaccess] 176 | SeqHeader::SeqHeader() { memset(this, 0, sizeof(*this)); } | ^ In file included from mpeg2_parser.cpp:34: mpeg2_parser.h:150:12: note: 'struct YamiParser::MPEG2::SeqHeader' declared here 150 | struct SeqHeader { | ^~~~~ mv -f .deps/libyami_codecparser_la-vp8_bool_decoder.Tpo .deps/libyami_codecparser_la-vp8_bool_decoder.Plo cc1plus: all warnings being treated as errors make[2]: [Makefile:814: libyami_codecparser_la-mpeg2_parser.lo] Error 1 make[2]: Leaving directory '/opt/media/build/libyami/codecparsers' make[1]: [Makefile:691: all-recursive] Error 1 make[1]: Leaving directory '/opt/media/build/libyami' make: *** [Makefile:512: all] Error 2 err: "make -j 4" failed - exitcode 2

xuguangxin commented 5 years ago

@zhoujd , https://github.com/intel/libyami/pull/876 will fix this. thanks.

seanvk commented 4 years ago

@xuguangxin Has this fix been added to a new release?

xuguangxin commented 4 years ago

@seanvk , not yet. I can tag a release tomorrow.

Regards.

xuguangxin commented 4 years ago

@seanvk please use 1.3.2 release. thanks