[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