On Tue, Nov 13, 2018 at 09:50:17AM +0100, Paweł Wegner wrote: > On Tue, Nov 13, 2018 at 12:39 AM Michael Niedermayer <[email protected]> > wrote: > > > On Mon, Nov 12, 2018 at 02:42:36PM +0100, Paweł Wegner wrote: > > > Implemented the following encoders: > > > * ff_h264_mf_encoder > > > * ff_hevc_mf_encoder > > > * ff_aac_mf_encoder > > > * ff_ac3_mf_encoder > > > * ff_mp3_mf_encoder > > > > > > The code is based on the PLEX's FFmpeg fork which can be found here: > > > https://files.plexapp.com/elan/ffmpeg/plex-ffmpeg-2017-12-17.txz > > > > > > Signed-off-by: Paweł Wegner <[email protected]> > > > --- > > > configure | 11 + > > > libavcodec/Makefile | 1 + > > > libavcodec/allcodecs.c | 5 + > > > libavcodec/mf_utils.c | 734 ++++++++++++++++++++++++ > > > libavcodec/mf_utils.h | 207 +++++++ > > > libavcodec/mfenc.c | 1242 ++++++++++++++++++++++++++++++++++++++++ > > > 6 files changed, 2200 insertions(+) > > > create mode 100644 libavcodec/mf_utils.c > > > create mode 100644 libavcodec/mf_utils.h > > > create mode 100644 libavcodec/mfenc.c > > > > breaks build for mingw64 > > > > CC libavcodec/mf_utils.o > > In file included from /usr/share/mingw-w64/include/wmcodecdsp.h:613:0, > > from src/libavcodec/mf_utils.h:26, > > from src/libavcodec/mf_utils.c:24: > > /usr/share/mingw-w64/include/strmif.h:15380:2: warning: #warning COM > > interfaces layout in this header has not been verified. [-Wcpp] > > #warning COM interfaces layout in this header has not been verified. > > ^ > > /usr/share/mingw-w64/include/strmif.h:15381:2: warning: #warning COM > > interfaces with incorrect layout may not work at all. [-Wcpp] > > #warning COM interfaces with incorrect layout may not work at all. > > ^ > > /usr/share/mingw-w64/include/strmif.h:15410:2: warning: #warning COM > > interfaces layout in this header has not been verified. [-Wcpp] > > #warning COM interfaces layout in this header has not been verified. > > ^ > > /usr/share/mingw-w64/include/strmif.h:15411:2: warning: #warning COM > > interfaces with incorrect layout may not work at all. [-Wcpp] > > #warning COM interfaces with incorrect layout may not work at all. > > ^ > > > I can silence these warnings by doing #undef __GNU_C__ before the MF > inclusion; but would that really be better? > This is where this comes from: > https://github.com/Alexpux/mingw-w64/blob/master/mingw-w64-headers/include/mfplay.h#L59 > > > > In file included from /usr/share/mingw-w64/include/wmcodecdsp.h:613:0, > > from src/libavcodec/mf_utils.h:26, > > from src/libavcodec/mf_utils.c:24: > > /usr/share/mingw-w64/include/strmif.h:15382:9: note: #pragma message: > > Interface IAMAsyncReaderTimestampScaling has unverified layout. > > __MINGW_BROKEN_INTERFACE(INTERFACE) > > ... > > > This one comes from mingw as well; and can be worked around the same way.
sorry i have cut the compiler output incorrectly
heres the full output, there are multiple real errors, not just warnings:
In file included from /usr/share/mingw-w64/include/wmcodecdsp.h:613:0,
from src/libavcodec/mf_utils.h:26,
from src/libavcodec/mf_utils.c:24:
/usr/share/mingw-w64/include/strmif.h:15380:2: warning: #warning COM interfaces
layout in this header has not been verified. [-Wcpp]
#warning COM interfaces layout in this header has not been verified.
^
/usr/share/mingw-w64/include/strmif.h:15381:2: warning: #warning COM interfaces
with incorrect layout may not work at all. [-Wcpp]
#warning COM interfaces with incorrect layout may not work at all.
^
/usr/share/mingw-w64/include/strmif.h:15410:2: warning: #warning COM interfaces
layout in this header has not been verified. [-Wcpp]
#warning COM interfaces layout in this header has not been verified.
^
/usr/share/mingw-w64/include/strmif.h:15411:2: warning: #warning COM interfaces
with incorrect layout may not work at all. [-Wcpp]
#warning COM interfaces with incorrect layout may not work at all.
^
In file included from /usr/share/mingw-w64/include/wmcodecdsp.h:613:0,
from src/libavcodec/mf_utils.h:26,
from src/libavcodec/mf_utils.c:24:
/usr/share/mingw-w64/include/strmif.h:15382:9: note: #pragma message: Interface
IAMAsyncReaderTimestampScaling has unverified layout.
__MINGW_BROKEN_INTERFACE(INTERFACE)
^
In file included from /usr/share/mingw-w64/include/wmcodecdsp.h:613:0,
from src/libavcodec/mf_utils.h:26,
from src/libavcodec/mf_utils.c:24:
/usr/share/mingw-w64/include/strmif.h:15412:9: note: #pragma message: Interface
IAMPluginControl has unverified layout.
__MINGW_BROKEN_INTERFACE(INTERFACE)
^
src/libavcodec/mf_utils.c: In function ‘ff_hr_str_buf’:
src/libavcodec/mf_utils.c:96:10: error:
‘MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING’ undeclared (first use
in this function)
HR(MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING)
^
src/libavcodec/mf_utils.c:96:10: note: each undeclared identifier is reported
only once for each function it appears in
src/libavcodec/mf_utils.c:98:10: error: ‘MF_E_UNSUPPORTED_D3D_TYPE’ undeclared
(first use in this function)
HR(MF_E_UNSUPPORTED_D3D_TYPE)
^
src/libavcodec/mf_utils.c:99:10: error: ‘MF_E_TRANSFORM_NEED_MORE_INPUT’
undeclared (first use in this function)
HR(MF_E_TRANSFORM_NEED_MORE_INPUT)
^
src/libavcodec/mf_utils.c:100:10: error: ‘MF_E_TRANSFORM_STREAM_CHANGE’
undeclared (first use in this function)
HR(MF_E_TRANSFORM_STREAM_CHANGE)
^
src/libavcodec/mf_utils.c: In function ‘ff_create_memory_sample’:
src/libavcodec/mf_utils.c:125:5: error: implicit declaration of function
‘MFCreateAlignedMemoryBuffer’ [-Werror=implicit-function-declaration]
hr = MFCreateAlignedMemoryBuffer(size, align - 1, &buffer);
^
src/libavcodec/mf_utils.c: At top level:
src/libavcodec/mf_utils.c:280:8: error: ‘MFVideoFormat_H264_ES’ undeclared here
(not in a function)
GUID_ENTRY(MFVideoFormat_H264_ES),
^
src/libavcodec/mf_utils.c:281:8: error: ‘MFVideoFormat_HEVC’ undeclared here
(not in a function)
GUID_ENTRY(MFVideoFormat_HEVC),
^
src/libavcodec/mf_utils.c:282:8: error: ‘MFVideoFormat_HEVC_ES’ undeclared here
(not in a function)
GUID_ENTRY(MFVideoFormat_HEVC_ES),
^
src/libavcodec/mf_utils.c:283:8: error: ‘MFVideoFormat_MPEG2’ undeclared here
(not in a function)
GUID_ENTRY(MFVideoFormat_MPEG2),
^
src/libavcodec/mf_utils.c:290:8: error: ‘MFAudioFormat_Dolby_AC3’ undeclared
here (not in a function)
GUID_ENTRY(MFAudioFormat_Dolby_AC3),
^
src/libavcodec/mf_utils.c:291:8: error: ‘MFAudioFormat_Dolby_DDPlus’ undeclared
here (not in a function)
GUID_ENTRY(MFAudioFormat_Dolby_DDPlus),
^
src/libavcodec/mf_utils.c: In function ‘ff_guid_str_buf’:
src/libavcodec/mf_utils.c:389:9: warning: ‘av_get_codec_tag_string’ is
deprecated (declared at src/libavcodec/avcodec.h:5583)
[-Wdeprecated-declarations]
av_get_codec_tag_string(tag, sizeof(tag), fourcc);
^
src/libavcodec/mf_utils.c: In function ‘ff_codec_to_mf_subtype’:
src/libavcodec/mf_utils.c:589:28: warning: return from incompatible pointer
type [enabled by default]
case AV_CODEC_ID_HEVC: return &MFVideoFormat_HEVC;
^
src/libavcodec/mf_utils.c:591:34: warning: return from incompatible pointer
type [enabled by default]
case AV_CODEC_ID_MPEG2VIDEO: return &MFVideoFormat_MPEG2;
^
src/libavcodec/mf_utils.c:600:27: warning: return from incompatible pointer
type [enabled by default]
case AV_CODEC_ID_AC3: return &MFAudioFormat_Dolby_AC3;
^
src/libavcodec/mf_utils.c:601:28: warning: return from incompatible pointer
type [enabled by default]
case AV_CODEC_ID_EAC3: return &MFAudioFormat_Dolby_DDPlus;
^
src/libavcodec/mf_utils.c: In function ‘ff_instantiate_mf’:
src/libavcodec/mf_utils.c:658:13: error: ‘MFT_ENUM_FLAG_SORTANDFILTER’
undeclared (first use in this function)
flags = MFT_ENUM_FLAG_SORTANDFILTER;
^
src/libavcodec/mf_utils.c:658:11: warning: assignment makes integer from
pointer without a cast [enabled by default]
flags = MFT_ENUM_FLAG_SORTANDFILTER;
^
src/libavcodec/mf_utils.c:661:18: error: ‘MFT_ENUM_FLAG_HARDWARE’ undeclared
(first use in this function)
flags |= MFT_ENUM_FLAG_HARDWARE;
^
src/libavcodec/mf_utils.c:661:15: error: invalid operands to binary | (have
‘UINT32’ and ‘struct GUID_Entry *’)
flags |= MFT_ENUM_FLAG_HARDWARE;
^
src/libavcodec/mf_utils.c:661:9: warning: statement with no effect
[-Wunused-value]
flags |= MFT_ENUM_FLAG_HARDWARE;
^
src/libavcodec/mf_utils.c:663:18: error: ‘MFT_ENUM_FLAG_SYNCMFT’ undeclared
(first use in this function)
flags |= MFT_ENUM_FLAG_SYNCMFT;
^
src/libavcodec/mf_utils.c:663:15: error: invalid operands to binary | (have
‘UINT32’ and ‘struct GUID_Entry *’)
flags |= MFT_ENUM_FLAG_SYNCMFT;
^
src/libavcodec/mf_utils.c:663:9: warning: statement with no effect
[-Wunused-value]
flags |= MFT_ENUM_FLAG_SYNCMFT;
^
cc1: some warnings being treated as errors
make: *** [libavcodec/mf_utils.o] Error 1
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
I am the wisest man alive, for I know one thing, and that is that I know
nothing. -- Socrates
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
