Commit Graph

69 Commits

Author SHA1 Message Date
rogerdpack
d01234419b dshow: allow selecting devices by an alternative name (workaround for devices with symbols in them), allow specifying capture pins by name and alternative (unique) name
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
2015-01-23 05:38:14 -07:00
Michael Niedermayer
9c3a8693a2 avdevice/dshow: Remove unneeded NULL checks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-28 18:17:12 +01:00
Michael Niedermayer
a3f6e8c4d9 avdevice/dshow: Use av_freep() to avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-28 18:16:37 +01:00
Michael Niedermayer
60420fa3dc avdevice/dshow: fix build, ensure that feature enable #defines are set before includes
dshow_capture.h sets up various flags before including windows headers
this must occur before other headers (like os_support.h) include these
headers without the setup

This could be fixed differently but for now this fixes building on mingw

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 04:02:48 +01:00
James Almer
1fd880cef3 lavd/dshow: use av_codec_get_id()
ff_codec_get_id() is a lavf internal function

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 13:03:17 +02:00
James Almer
0ab00a75e4 avcodec/raw: add avpriv_get_raw_pix_fmt_tags()
Used to expose ff_raw_pix_fmt_tags[] to other libav* libraries

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 12:52:38 +02:00
rogerdpack
773eb74bab dshow: show device name when outputting buffer overflow log message
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 00:22:55 +01:00
rogerdpack
10056bc964 dshow: log error and continue if unable to set audio buffer
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-25 17:32:39 +01:00
rogerdpack
6abc56e892 dshow: use distinct buffers per stream.
Basically sometimes if you start dropping video packets, you also drop audio packets. Now they each have separate buffers to avoid this unexpected behavior.

Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 03:46:10 +01:00
Don Moir
24e2a82f75 Make 32bit RGB dshow input opaque. 2014-03-08 13:46:05 +01:00
Carl Eugen Hoyos
6208bb965d Set codec_tag in dshow device, needed to distinguish between YUV and YVU.
Fixes ticket #3447.
2014-03-08 13:42:47 +01:00
Lukasz Marek
f607767d93 lavd: add categories to device implementations
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-03-03 23:34:46 +01:00
Stefano Sabatini
3b8c7da7a3 lavu,lavfi,lavd: do not hardcode AV_PIX_FMT_NB value when setting pixel format max value
The constant may change in libavutil but the library may be compiled
against an older version, thus rejecting a value which is otherwise
supported by the new libavutil.

INT_MAX is used here to denote the max allowed value for a pixel format.

The opt-test code is changed to provide a valid reference example.
2013-12-26 11:35:27 +01:00
Michael Niedermayer
8862ed7340 avdevice/dshow: make constant arrays static
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-03 22:24:11 +02:00
Clément Bœsch
d4982b115d lavd/dshow: fix style and typo recently introduced. 2013-03-19 21:26:24 +01:00
rogerdpack
12c71f648c dshow: Fix MSVC support, remove av_export, which was apparently unneeded anyway.
Also cleanup exported symbols

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-15 00:08:12 +01:00
rogerdpack
c916389bd2 dshow: allow for more codec ID's
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
2013-01-16 00:23:53 -07:00
rogerdpack
3b9166fc7e dshow: better error reporting
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
2013-01-16 00:18:40 -07:00
rogerdpack
6d33026668 dshow: fix log message
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
2013-01-16 00:11:15 -07:00
rogerdpack
47e88486b4 hdyc col
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
2013-01-15 18:37:30 -07:00
rogerdpack
a50049a197 dshow: use standardized raw pixel format lookup
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
2013-01-15 17:07:54 -07:00
Ramiro Polla
83a9f29f60 dshow: call CoUninitialize() on dshow_read_close()
Every call to CoInitialize should have a matching CoUnititalize.

Based on patch by Don Moir <donmoir@comcast.net>.
2012-12-17 03:44:51 -02:00
Ramiro Polla
190f6135b4 dshow: handle events in graph
Handling DirectShow events prevents infinite loops when there is an error in
the graph, such as a device being disconnected. This makes it possible for
dshow to return an error to the caller and run the cleanup code.

Based on patch by Don Moir <donmoir@comcast.net>.
2012-12-17 03:44:12 -02:00
rogerdpack
fe3e0e486e lavd/dshow: rename dshow class name
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-12-15 15:46:20 +01:00
Ramiro Polla
f2c49da9ac dshow: fix return code when opening device
Successfully opening a device altered the ret variable, making the function
not cleanup properly and return an incorrect value for errors that happened
afterwards.

Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 21:44:30 +01:00
Stefano Sabatini
c9ff32215b lavu/opt: allow to set sample and pixel format with av_opt_set_int()
This change requires the user to specify min and max value, and makes
possible to prevent the user to set AV_{SAMPLE,PIX}_FMT_NONE if
forbidden.

Add required ifdeffery in case of mixed libraries, when libavutil is
updated but not the other libraries.

This is a followup of 08d0969c14.
2012-12-01 19:33:30 +01:00
Stefano Sabatini
08d0969c14 lavu/opt: change the way default pixel and sample format value is set
Use the i64 field rather than the string value. Using a string to set a
default sample/pixel format is weird, also the new interface is more
consistent with the rest of the API.

This is technically an API break, but hopefully there are no applications
using this feature outside of FFmpeg. In order to save backward
compatibility with mixed libraries in case libavutil is updated but not
the other libraries, some ifdeffery hacks are added.

Note that the version check is only performed when class->version != 0,
since if it is not defined then we assume that no version was defined and
the class is not affected by the change.

We will luckily get rid of the hack at the next major bump.
2012-11-30 00:01:53 +01:00
Michael Niedermayer
ac627b3d38 Merge commit '716d413c13981da15323c7a3821860536eefdbbb'
* commit '716d413c13981da15323c7a3821860536eefdbbb':
  Replace PIX_FMT_* -> AV_PIX_FMT_*, PixelFormat -> AVPixelFormat

Conflicts:
	doc/examples/muxing.c
	ffmpeg.h
	ffmpeg_filter.c
	ffmpeg_opt.c
	ffplay.c
	ffprobe.c
	libavcodec/8bps.c
	libavcodec/aasc.c
	libavcodec/aura.c
	libavcodec/avcodec.h
	libavcodec/avs.c
	libavcodec/bfi.c
	libavcodec/bmp.c
	libavcodec/bmpenc.c
	libavcodec/c93.c
	libavcodec/cscd.c
	libavcodec/cyuv.c
	libavcodec/dpx.c
	libavcodec/dpxenc.c
	libavcodec/eatgv.c
	libavcodec/escape124.c
	libavcodec/ffv1.c
	libavcodec/flashsv.c
	libavcodec/fraps.c
	libavcodec/h264.c
	libavcodec/huffyuv.c
	libavcodec/iff.c
	libavcodec/imgconvert.c
	libavcodec/indeo3.c
	libavcodec/kmvc.c
	libavcodec/libopenjpegdec.c
	libavcodec/libopenjpegenc.c
	libavcodec/libx264.c
	libavcodec/ljpegenc.c
	libavcodec/mjpegdec.c
	libavcodec/mjpegenc.c
	libavcodec/motionpixels.c
	libavcodec/mpeg12.c
	libavcodec/mpeg12enc.c
	libavcodec/mpeg4videodec.c
	libavcodec/mpegvideo_enc.c
	libavcodec/pamenc.c
	libavcodec/pcxenc.c
	libavcodec/pgssubdec.c
	libavcodec/pngdec.c
	libavcodec/pngenc.c
	libavcodec/pnm.c
	libavcodec/pnmdec.c
	libavcodec/pnmenc.c
	libavcodec/ptx.c
	libavcodec/qdrw.c
	libavcodec/qpeg.c
	libavcodec/qtrleenc.c
	libavcodec/raw.c
	libavcodec/rawdec.c
	libavcodec/rl2.c
	libavcodec/sgidec.c
	libavcodec/sgienc.c
	libavcodec/snowdec.c
	libavcodec/snowenc.c
	libavcodec/sunrast.c
	libavcodec/targa.c
	libavcodec/targaenc.c
	libavcodec/tiff.c
	libavcodec/tiffenc.c
	libavcodec/tmv.c
	libavcodec/truemotion2.c
	libavcodec/utils.c
	libavcodec/vb.c
	libavcodec/vp3.c
	libavcodec/wnv1.c
	libavcodec/xl.c
	libavcodec/xwddec.c
	libavcodec/xwdenc.c
	libavcodec/yop.c
	libavdevice/v4l2.c
	libavdevice/x11grab.c
	libavfilter/avfilter.c
	libavfilter/avfilter.h
	libavfilter/buffersrc.c
	libavfilter/drawutils.c
	libavfilter/formats.c
	libavfilter/src_movie.c
	libavfilter/vf_ass.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_fade.c
	libavfilter/vf_format.c
	libavfilter/vf_hflip.c
	libavfilter/vf_lut.c
	libavfilter/vf_overlay.c
	libavfilter/vf_pad.c
	libavfilter/vf_scale.c
	libavfilter/vf_transpose.c
	libavfilter/vf_yadif.c
	libavfilter/video.c
	libavfilter/vsrc_testsrc.c
	libavformat/movenc.c
	libavformat/mxf.h
	libavformat/utils.c
	libavformat/yuv4mpeg.c
	libavutil/imgutils.c
	libavutil/pixdesc.c
	libswscale/input.c
	libswscale/output.c
	libswscale/swscale_internal.h
	libswscale/swscale_unscaled.c
	libswscale/utils.c
	libswscale/x86/swscale_template.c
	libswscale/x86/yuv2rgb.c
	libswscale/x86/yuv2rgb_template.c
	libswscale/yuv2rgb.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-08 21:06:57 +02:00
rogerdpack
1bdb4b26a8 dshow: enhance error message
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Reviewed-by: Ramiro Polla <ramiro.polla@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-29 15:48:49 +02:00
Ramiro Polla
dc5fcdb896 lavd/dshow: use AV_OPT_TYPE_IMAGE_SIZE
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-09-07 09:59:12 +02:00
Ramiro Polla
37a0db50db lavd/dshow: support video codec and pixel format selection
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-09-07 09:59:12 +02:00
Michael Niedermayer
d46c1c72e4 Merge commit 'e6153f173a49e5bfa70b0c04d2f82930533597b9'
* commit 'e6153f173a49e5bfa70b0c04d2f82930533597b9':
  avopt: Store defaults for AV_OPT_TYPE_INT in the i64 union member

Conflicts:
	libavcodec/libopenjpegdec.c
	libavcodec/libopenjpegenc.c
	libavcodec/libx264.c
	libavcodec/mpeg12enc.c
	libavcodec/options_table.h
	libavcodec/snowenc.c
	libavcodec/tiffenc.c
	libavdevice/v4l2.c
	libavdevice/x11grab.c
	libavfilter/af_amix.c
	libavfilter/af_asyncts.c
	libavfilter/af_join.c
	libavfilter/buffersrc.c
	libavfilter/src_movie.c
	libavfilter/vf_delogo.c
	libavfilter/vf_drawtext.c
	libavformat/http.c
	libavformat/img2dec.c
	libavformat/img2enc.c
	libavformat/movenc.c
	libavformat/mpegenc.c
	libavformat/mpegtsenc.c
	libavformat/options_table.h
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 14:33:32 +02:00
Michael Niedermayer
d5f65e9d40 Merge commit '124134e42455763b28cc346fed1d07017a76e84e'
* commit '124134e42455763b28cc346fed1d07017a76e84e':
  avopt: Store defaults for AV_OPT_TYPE_CONST in the i64 union member

Conflicts:
	libavcodec/aacenc.c
	libavcodec/libopenjpegenc.c
	libavcodec/options_table.h
	libavdevice/bktr.c
	libavdevice/v4l2.c
	libavdevice/x11grab.c
	libavfilter/af_amix.c
	libavfilter/vf_drawtext.c
	libavformat/movenc.c
	libavformat/options_table.h
	libavutil/opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 13:58:11 +02:00
Ramiro Polla
ad7fae4ee1 dshow: allow user to specify audio buffer size
Based on patch by rogerdpack <rogerpack2005@gmail.com>

Tested-by: Roger Pack <rogerdpack2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-29 18:58:20 +02:00
rogerdpack
415f4cca1d dshow:protect access to curbufsize to promote consistency
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 20:58:05 +02:00
rogerdpack
a966d94891 dshow: avoid integer overflow when using curbufsize
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 20:56:45 +02:00
rogerdpack
a93c221ccd dshow: protect access to curbufsize
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-19 18:36:26 +02:00
rogerdpack
42dbf06df0 dshow: cleanup reference
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-19 18:30:50 +02:00
Michael Niedermayer
bb2f13c19f rename missed CodecID to AVCodecID
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-07 23:57:21 +02:00
Michael Niedermayer
7a72695c05 Merge commit '36ef5369ee9b336febc2c270f8718cec4476cb85'
* commit '36ef5369ee9b336febc2c270f8718cec4476cb85':
  Replace all CODEC_ID_* with AV_CODEC_ID_*
  lavc: add AV prefix to codec ids.

Conflicts:
	doc/APIchanges
	doc/examples/decoding_encoding.c
	doc/examples/muxing.c
	ffmpeg.c
	ffprobe.c
	ffserver.c
	libavcodec/8svx.c
	libavcodec/avcodec.h
	libavcodec/dnxhd_parser.c
	libavcodec/dvdsubdec.c
	libavcodec/error_resilience.c
	libavcodec/h263dec.c
	libavcodec/libvorbisenc.c
	libavcodec/mjpeg_parser.c
	libavcodec/mjpegenc.c
	libavcodec/mpeg12.c
	libavcodec/mpeg4videodec.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/pcm.c
	libavcodec/r210dec.c
	libavcodec/utils.c
	libavcodec/v210dec.c
	libavcodec/version.h
	libavdevice/alsa-audio-dec.c
	libavdevice/bktr.c
	libavdevice/v4l2.c
	libavformat/asfdec.c
	libavformat/asfenc.c
	libavformat/avformat.h
	libavformat/avidec.c
	libavformat/caf.c
	libavformat/electronicarts.c
	libavformat/flacdec.c
	libavformat/flvdec.c
	libavformat/flvenc.c
	libavformat/framecrcenc.c
	libavformat/img2.c
	libavformat/img2dec.c
	libavformat/img2enc.c
	libavformat/ipmovie.c
	libavformat/isom.c
	libavformat/matroska.c
	libavformat/matroskadec.c
	libavformat/matroskaenc.c
	libavformat/mov.c
	libavformat/movenc.c
	libavformat/mp3dec.c
	libavformat/mpeg.c
	libavformat/mpegts.c
	libavformat/mxf.c
	libavformat/mxfdec.c
	libavformat/mxfenc.c
	libavformat/nsvdec.c
	libavformat/nut.c
	libavformat/oggenc.c
	libavformat/pmpdec.c
	libavformat/rawdec.c
	libavformat/rawenc.c
	libavformat/riff.c
	libavformat/sdp.c
	libavformat/utils.c
	libavformat/vocenc.c
	libavformat/wtv.c
	libavformat/xmv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-07 22:45:46 +02:00
Kyle
02cc66dd78 dshow: rename dshow.h to avoid conflict with system header of equal name
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-24 14:15:10 +02:00
Ramiro Polla
1f0fa80bfa dshow: use DirectShow information to set time_base
Fixes build after removal of AVFormatParameters.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-03 18:12:29 +01:00
Ramiro Polla
c9e5acad61 dshow: fix AVInputFormat declaration after ABI breakage
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-03 18:11:55 +01:00
Michael Niedermayer
e37f161e66 Merge remote-tracking branch 'qatar/master'
* qatar/master: (71 commits)
  movenc: Allow writing to a non-seekable output if using empty moov
  movenc: Support adding isml (smooth streaming live) metadata
  libavcodec: Don't crash in avcodec_encode_audio if time_base isn't set
  sunrast: Document the different Sun Raster file format types.
  sunrast: Add a check for experimental type.
  libspeexenc: use AVSampleFormat instead of deprecated/removed SampleFormat
  lavf: remove disabled FF_API_SET_PTS_INFO cruft
  lavf: remove disabled FF_API_OLD_INTERRUPT_CB cruft
  lavf: remove disabled FF_API_REORDER_PRIVATE cruft
  lavf: remove disabled FF_API_SEEK_PUBLIC cruft
  lavf: remove disabled FF_API_STREAM_COPY cruft
  lavf: remove disabled FF_API_PRELOAD cruft
  lavf: remove disabled FF_API_NEW_STREAM cruft
  lavf: remove disabled FF_API_RTSP_URL_OPTIONS cruft
  lavf: remove disabled FF_API_MUXRATE cruft
  lavf: remove disabled FF_API_FILESIZE cruft
  lavf: remove disabled FF_API_TIMESTAMP cruft
  lavf: remove disabled FF_API_LOOP_OUTPUT cruft
  lavf: remove disabled FF_API_LOOP_INPUT cruft
  lavf: remove disabled FF_API_AVSTREAM_QUALITY cruft
  ...

Conflicts:
	doc/APIchanges
	libavcodec/8bps.c
	libavcodec/avcodec.h
	libavcodec/libx264.c
	libavcodec/mjpegbdec.c
	libavcodec/options.c
	libavcodec/sunrast.c
	libavcodec/utils.c
	libavcodec/version.h
	libavcodec/x86/h264_deblock.asm
	libavdevice/libdc1394.c
	libavdevice/v4l2.c
	libavformat/avformat.h
	libavformat/avio.c
	libavformat/avio.h
	libavformat/aviobuf.c
	libavformat/dv.c
	libavformat/mov.c
	libavformat/utils.c
	libavformat/version.h
	libavformat/wtv.c
	libavutil/Makefile
	libavutil/file.c
	libswscale/x86/input.asm
	libswscale/x86/swscale_mmx.c
	libswscale/x86/swscale_template.c
	tests/ref/lavf/ffm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-28 07:53:34 +01:00
Clément Bœsch
215b7724e7 lavf: rename remaining av_set_pts_info() to avpriv_set_pts_info(). 2011-12-03 03:24:32 +01:00
Ramiro Polla
d3bc75c666 dshow: support BI_BITFIELDS compression type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-06 16:53:49 +01:00
Ramiro Polla
526a7d855d dshow: don't print min/max values for fps the wrong way around
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-06 01:19:57 +01:00
Ramiro Polla
e3e962835f dshow: save opened device reference so it may be properly closed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-06 01:19:57 +01:00
Ramiro Polla
21a928d07c dshow: release filter reference obtained from enumeration
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-06 01:19:56 +01:00
Ramiro Polla
5b186148bf dshow: indent
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-06 01:19:56 +01:00