[FFmpeg-trac] #3288(avdevice:new): dshow uses deprecated windows fields

FFmpeg trac at avcodec.org
Fri Jan 10 00:59:59 CET 2014


#3288: dshow uses deprecated windows fields
----------------------------------+--------------------------------------
             Reporter:  MattE     |                     Type:  defect
               Status:  new       |                 Priority:  normal
            Component:  avdevice  |                  Version:  git-master
             Keywords:  dshow     |               Blocked By:
             Blocking:            |  Reproduced by developer:  0
Analyzed by developer:  0         |
----------------------------------+--------------------------------------
 Hi,

 I'm having issues with dshow, where some of the device configurations it
 reports appear to be invalid. When using the dshow list_options option it
 prints all the available configurations for the device:

 {{{
 C:\FFmpeg>ffmpeg -f dshow -list_options true -i video="HD Webcam C525"
 ffmpeg version N-59453-gd52882f Copyright (c) 2000-2013 the FFmpeg
 developers
   built on Dec 30 2013 22:01:59 with gcc 4.8.2 (GCC)
   configuration: --enable-gpl --enable-version3 --disable-w32threads
 --enable-avisynth --enable-bzlib --enable-fontconfig --e
 nable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-
 libbluray --enable-libcaca --enable-libfreetype --enable
 -libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-
 libopencore-amrnb --enable-libopencore-amrwb --enab
 le-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger
 --enable-libsoxr --enable-libspeex --enable-libtheo
 ra --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-
 libvo-amrwbenc --enable-libvorbis --enable-libvpx -
 -enable-libwavpack --enable-libx264 --enable-libxavs --enable-libxvid
 --enable-zlib
   libavutil      52. 59.100 / 52. 59.100
   libavcodec     55. 47.100 / 55. 47.100
   libavformat    55. 22.101 / 55. 22.101
   libavdevice    55.  5.102 / 55.  5.102
   libavfilter     4.  0.103 /  4.  0.103
   libswscale      2.  5.101 /  2.  5.101
   libswresample   0. 17.104 /  0. 17.104
   libpostproc    52.  3.100 / 52.  3.100
 [dshow @ 02751dc0] DirectShow video device options
 [dshow @ 02751dc0]  Pin "Capture"
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=640x480 fps=5 max
 s=640x480 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=640x480 fps=5 max
 s=640x480 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=160x120 fps=5 max
 s=160x120 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=160x120 fps=5 max
 s=160x120 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=176x144 fps=5 max
 s=176x144 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=176x144 fps=5 max
 s=176x144 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=320x176 fps=5 max
 s=320x176 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=320x176 fps=5 max
 s=320x176 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=320x240 fps=5 max
 s=320x240 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=320x240 fps=5 max
 s=320x240 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=432x240 fps=5 max
 s=432x240 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=432x240 fps=5 max
 s=432x240 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=352x288 fps=5 max
 s=352x288 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=352x288 fps=5 max
 s=352x288 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=544x288 fps=5 max
 s=544x288 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=544x288 fps=5 max
 s=544x288 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=640x360 fps=5 max
 s=640x360 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=640x360 fps=5 max
 s=640x360 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=752x416 fps=5 max
 s=752x416 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=752x416 fps=5 max
 s=752x416 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=800x448 fps=5 max
 s=800x448 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=800x448 fps=5 max
 s=800x448 fps=30
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=864x480 fps=5 max
 s=864x480 fps=24
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=864x480 fps=5 max
 s=864x480 fps=24
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=960x544 fps=5 max
 s=960x544 fps=20
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=960x544 fps=5 max
 s=960x544 fps=20
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1024x576 fps=5 max
 s=1024x576 fps=15
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1024x576 fps=5 max
 s=1024x576 fps=15
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=800x600 fps=5 max
 s=800x600 fps=24
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=800x600 fps=5 max
 s=800x600 fps=24
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1184x656 fps=5 max
 s=1184x656 fps=15
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1184x656 fps=5 max
 s=1184x656 fps=15
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=960x720 fps=5 max
 s=960x720 fps=15
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=960x720 fps=5 max
 s=960x720 fps=15
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1280x720 fps=5 max
 s=1280x720 fps=10
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1280x720 fps=5 max
 s=1280x720 fps=10
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1392x768 fps=5 max
 s=1392x768 fps=10
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1392x768 fps=5 max
 s=1392x768 fps=10
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1504x832 fps=5 max
 s=1504x832 fps=7.5
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1504x832 fps=5 max
 s=1504x832 fps=7.5
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1600x896 fps=5 max
 s=1600x896 fps=7.5
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1600x896 fps=5 max
 s=1600x896 fps=7.5
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1280x960 fps=5 max
 s=1280x960 fps=7.5
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1280x960 fps=5 max
 s=1280x960 fps=7.5
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1712x960 fps=5 max
 s=1712x960 fps=5
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1712x960 fps=5 max
 s=1712x960 fps=5
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1792x1008 fps=5 max
 s=1792x1008 fps=5
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1792x1008 fps=5 max
 s=1792x1008 fps=5
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1920x1080 fps=5 max
 s=1920x1080 fps=5
 [dshow @ 02751dc0]   pixel_format=yuyv422  min s=1920x1080 fps=5 max
 s=1920x1080 fps=5
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=640x480 fps=5 max s=640x480
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=640x480 fps=5 max s=640x480
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=160x120 fps=5 max s=160x120
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=160x120 fps=5 max s=160x120
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=176x144 fps=5 max s=176x144
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=176x144 fps=5 max s=176x144
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=320x176 fps=5 max s=320x176
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=320x176 fps=5 max s=320x176
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=320x240 fps=5 max s=320x240
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=320x240 fps=5 max s=320x240
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=432x240 fps=5 max s=432x240
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=432x240 fps=5 max s=432x240
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=352x288 fps=5 max s=352x288
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=352x288 fps=5 max s=352x288
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=544x288 fps=5 max s=544x288
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=544x288 fps=5 max s=544x288
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=640x360 fps=5 max s=640x360
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=640x360 fps=5 max s=640x360
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=752x416 fps=5 max s=752x416
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=752x416 fps=5 max s=752x416
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=800x448 fps=5 max s=800x448
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=800x448 fps=5 max s=800x448
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=864x480 fps=5 max s=864x480
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=864x480 fps=5 max s=864x480
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=960x544 fps=5 max s=960x544
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=960x544 fps=5 max s=960x544
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1024x576 fps=5 max s=1024x576
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1024x576 fps=5 max s=1024x576
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=800x600 fps=5 max s=800x600
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=800x600 fps=5 max s=800x600
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1184x656 fps=5 max s=1184x656
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1184x656 fps=5 max s=1184x656
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=960x720 fps=5 max s=960x720
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=960x720 fps=5 max s=960x720
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1280x720 fps=5 max s=1280x720
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1280x720 fps=5 max s=1280x720
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1392x768 fps=5 max s=1392x768
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1392x768 fps=5 max s=1392x768
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1504x832 fps=5 max s=1504x832
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1504x832 fps=5 max s=1504x832
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1600x896 fps=5 max s=1600x896
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1600x896 fps=5 max s=1600x896
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1280x960 fps=5 max s=1280x960
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1280x960 fps=5 max s=1280x960
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1712x960 fps=5 max s=1712x960
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1712x960 fps=5 max s=1712x960
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1792x1008 fps=5 max s=1792x1008
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1792x1008 fps=5 max s=1792x1008
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1920x1080 fps=5 max s=1920x1080
 fps=30
 [dshow @ 02751dc0]   vcodec=mjpeg  min s=1920x1080 fps=5 max s=1920x1080
 fps=30
 video=HD Webcam C525: Immediate exit requested
 }}}

 Yet, when I try a particular configuration (the last one here) it doesn't
 work:

 {{{
 C:\FFmpeg>ffplay -f dshow -video_size 1920x1080 -framerate 30 -vcodec
 mjpeg -i video="HD Webcam C525"
 ffplay version N-59453-gd52882f Copyright (c) 2003-2013 the FFmpeg
 developers
   built on Dec 30 2013 22:01:59 with gcc 4.8.2 (GCC)
   configuration: --enable-gpl --enable-version3 --disable-w32threads
 --enable-avisynth --enable-bzlib --enable-fontconfig --e
 nable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-
 libbluray --enable-libcaca --enable-libfreetype --enable
 -libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-
 libopencore-amrnb --enable-libopencore-amrwb --enab
 le-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger
 --enable-libsoxr --enable-libspeex --enable-libtheo
 ra --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-
 libvo-amrwbenc --enable-libvorbis --enable-libvpx -
 -enable-libwavpack --enable-libx264 --enable-libxavs --enable-libxvid
 --enable-zlib
   libavutil      52. 59.100 / 52. 59.100
   libavcodec     55. 47.100 / 55. 47.100
   libavformat    55. 22.101 / 55. 22.101
   libavdevice    55.  5.102 / 55.  5.102
   libavfilter     4.  0.103 /  4.  0.103
   libswscale      2.  5.101 /  2.  5.101
   libswresample   0. 17.104 /  0. 17.104
   libpostproc    52.  3.100 / 52.  3.100
 [dshow @ 03fe65e0] Could not connect pins=    0KB sq=    0B f=0/0
 video=HD Webcam C525: Input/output error
 }}}

 It's the same for most mjpeg configurations on the list. Sometimes it
 doesn't show this error, but simply gets stuck. Here's an example of a
 configuration that finally works.
 {{{
 C:\FFmpeg>ffplay -f dshow -video_size 1280x960 -framerate 30 -vcodec mjpeg
 -i video="HD Webcam C525"
 ffplay version N-59453-gd52882f Copyright (c) 2003-2013 the FFmpeg
 developers
   built on Dec 30 2013 22:01:59 with gcc 4.8.2 (GCC)
   configuration: --enable-gpl --enable-version3 --disable-w32threads
 --enable-avisynth --enable-bzlib --enable-fontconfig --e
 nable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-
 libbluray --enable-libcaca --enable-libfreetype --enable
 -libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-
 libopencore-amrnb --enable-libopencore-amrwb --enab
 le-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger
 --enable-libsoxr --enable-libspeex --enable-libtheo
 ra --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-
 libvo-amrwbenc --enable-libvorbis --enable-libvpx -
 -enable-libwavpack --enable-libx264 --enable-libxavs --enable-libxvid
 --enable-zlib
   libavutil      52. 59.100 / 52. 59.100
   libavcodec     55. 47.100 / 55. 47.100
   libavformat    55. 22.101 / 55. 22.101
   libavdevice    55.  5.102 / 55.  5.102
   libavfilter     4.  0.103 /  4.  0.103
   libswscale      2.  5.101 /  2.  5.101
   libswresample   0. 17.104 /  0. 17.104
   libpostproc    52.  3.100 / 52.  3.100
 Input #0, dshow, from 'video=HD Webcam C525': 0KB sq=    0B f=0/0
   Duration: N/A, start: 18896.505000, bitrate: N/A
     Stream #0:0: Video: mjpeg, yuvj422p(pc), 1280x960, 30 tbr, 10000k tbn,
 30 tbc
 [swscaler @ 027af9c0] deprecated pixel format used, make sure you did set
 range correctly
 18898.23 M-V:  0.000 fd=   1 aq=    0KB vq=  688KB sq=    0B f=0/0
 }}}

 I suspect it may be because dshow is using deprecated Windows structs.
 Most of the fields it uses in VIDEO_STREAM_CONFIG_CAPS are deprecated as
 listed here: http://msdn.microsoft.com/en-
 us/library/windows/desktop/dd407352%28v=vs.85%29.aspx

--
Ticket URL: <https://trac.ffmpeg.org/ticket/3288>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list