Opened 4 years ago

Closed 4 years ago

#1331 closed defect (fixed)

error: unknown type name 'VIDEO_STREAM_CONFIG_CAPS'

Reported by: KSHawkEye Owned by:
Priority: important Component: avdevice
Version: git-master Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: yes

Description

Hi,

I'm getting this error when trying to compile FFmpeg with the latest MinGW-w64:

/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.h:35:1: 
error: unknown type name 'VIDEO_STREAM_CONFIG_CAPS'
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.h:36:1: 
error: unknown type name 'AUDIO_STREAM_CONFIG_CAPS'
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c: In 
function 'dshow_cycle_formats':
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:355:13: 
error: unknown type name 'VIDEO_STREAM_CONFIG_CAPS'
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:374:29: 
error: request for member 'MinOutputSize' in something not a structure 
or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:374:54: 
error: request for member 'MinOutputSize' in something not a structure 
or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:375:35: 
error: request for member 'MaxFrameInterval' in something not a 
structure or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:376:29: 
error: request for member 'MaxOutputSize' in something not a structure 
or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:376:54: 
error: request for member 'MaxOutputSize' in something not a structure 
or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:377:35: 
error: request for member 'MinFrameInterval' in something not a 
structure or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:383:38: 
error: request for member 'MaxFrameInterval' in something not a 
structure or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:384:38: 
error: request for member 'MinFrameInterval' in something not a 
structure or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:389:50: 
error: request for member 'MaxOutputSize' in something not a structure 
or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:390:50: 
error: request for member 'MinOutputSize' in something not a structure 
or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:391:50: 
error: request for member 'MaxOutputSize' in something not a structure 
or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:392:50: 
error: request for member 'MinOutputSize' in something not a structure 
or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:398:13: 
error: unknown type name 'AUDIO_STREAM_CONFIG_CAPS'
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:410:29: 
error: request for member 'MinimumChannels' in something not a structure 
or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:410:53: 
error: request for member 'MinimumBitsPerSample' in something not a 
structure or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:410:82: 
error: request for member 'MinimumSampleFrequency' in something not a 
structure or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:411:29: 
error: request for member 'MaximumChannels' in something not a structure 
or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:411:53: 
error: request for member 'MaximumBitsPerSample' in something not a 
structure or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:411:82: 
error: request for member 'MaximumSampleFrequency' in something not a 
structure or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:415:45: 
error: request for member 'MaximumSampleFrequency' in something not a 
structure or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:416:45: 
error: request for member 'MinimumSampleFrequency' in something not a 
structure or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:421:45: 
error: request for member 'MaximumBitsPerSample' in something not a 
structure or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:422:45: 
error: request for member 'MinimumBitsPerSample' in something not a 
structure or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:427:42: 
error: request for member 'MaximumChannels' in something not a structure 
or union
/home/kyle/software/ffmpeg/source/ffmpeg-git/libavdevice/dshow.c:428:42: 
error: request for member 'MinimumChannels' in something not a structure 
or union
make: *** [libavdevice/dshow.o] Error 1

I posted on the MinGW-w64 mailing list and was told this:
That's because your libavdevice/dshow.h is misfortunately named
"dshow.h". It is attempting to include system's dshow.h by an
#include directive, which is wrong: you should use #include_next
instead (or rename the header). If system's dshow.h is included,
it includes strmif.h by itself and the missing data type will be
there.

I'm using the latest FFmpeg git source.

I can provide any further information needed, a quick fix for this would be much appreciated.

Best regards,

Kyle Schwarz

Change History (5)

comment:1 follow-up: Changed 4 years ago by cehoyos

Is this a regression or did compilation never succeed on MinGW64?

comment:2 in reply to: ↑ 1 Changed 4 years ago by KSHawkEye

Replying to cehoyos:

Is this a regression or did compilation never succeed on MinGW64?

I used to have no issues compiling FFmpeg before I updated my MinGW-w64 tool chain.

comment:3 Changed 4 years ago by michael

  • Analyzed by developer set
  • Status changed from new to open

I suspect the problem occurs due to the libavcodec source directory with the private dshow.h header ending somehow in the systems headers search path.
A workaround would be to rename libavcodec/dshow.h.
I think we should rename the header to make it more robust. Can you submit a patch for that ? (i cant easily test dshow so its better you make this change and test it instead of me blindly doing it)

thanks

comment:4 Changed 4 years ago by michael

  • Priority changed from critical to important

comment:5 Changed 4 years ago by michael

  • Resolution set to fixed
  • Status changed from open to closed

Patch applied (without the configure change which looked wrong)

please test!

Note: See TracTickets for help on using tickets.