summaryrefslogtreecommitdiff
path: root/libavdevice
diff options
context:
space:
mode:
authorrogerdpack <rogerpack2005@gmail.com>2013-01-15 15:01:43 -0700
committerrogerdpack <rogerpack2005@gmail.com>2013-01-16 00:23:53 -0700
commitc916389bd286ee55a04f68490d83d5e90a07edbc (patch)
tree1dd441c45748fffb0a98776588c52180f16cde95 /libavdevice
parent3b9166fc7efb5375f81c3447cf9d418bdd76187d (diff)
downloadffmpeg-c916389bd286ee55a04f68490d83d5e90a07edbc.tar.gz
dshow: allow for more codec ID's
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Diffstat (limited to 'libavdevice')
-rw-r--r--libavdevice/dshow.c19
1 files changed, 4 insertions, 15 deletions
diff --git a/libavdevice/dshow.c b/libavdevice/dshow.c
index d47f36e371..c85ac0b22e 100644
--- a/libavdevice/dshow.c
+++ b/libavdevice/dshow.c
@@ -23,6 +23,7 @@
#include "libavutil/pixdesc.h"
#include "libavutil/opt.h"
#include "libavformat/internal.h"
+#include "libavformat/riff.h"
#include "avdevice.h"
#include "dshow_capture.h"
#include "libavcodec/raw.h"
@@ -94,18 +95,6 @@ static enum AVPixelFormat dshow_pixfmt(DWORD biCompression, WORD biBitCount)
return avpriv_find_pix_fmt(ff_raw_pix_fmt_tags, biCompression); // all others
}
-static enum AVCodecID dshow_codecid(DWORD biCompression)
-{
- switch(biCompression) {
- case MKTAG('d', 'v', 's', 'd'):
- return AV_CODEC_ID_DVVIDEO;
- case MKTAG('M', 'J', 'P', 'G'):
- case MKTAG('m', 'j', 'p', 'g'):
- return AV_CODEC_ID_MJPEG;
- }
- return AV_CODEC_ID_NONE;
-}
-
static int
dshow_read_close(AVFormatContext *s)
{
@@ -381,7 +370,7 @@ dshow_cycle_formats(AVFormatContext *avctx, enum dshowDeviceType devtype,
if (!pformat_set) {
enum AVPixelFormat pix_fmt = dshow_pixfmt(bih->biCompression, bih->biBitCount);
if (pix_fmt == AV_PIX_FMT_NONE) {
- enum AVCodecID codec_id = dshow_codecid(bih->biCompression);
+ enum AVCodecID codec_id = ff_codec_get_id(ff_codec_bmp_tags, bih->biCompression);
AVCodec *codec = avcodec_find_decoder(codec_id);
if (codec_id == AV_CODEC_ID_NONE || !codec) {
av_log(avctx, AV_LOG_INFO, " unknown compression type 0x%X", (int) bih->biCompression);
@@ -399,7 +388,7 @@ dshow_cycle_formats(AVFormatContext *avctx, enum dshowDeviceType devtype,
continue;
}
if (ctx->video_codec_id != AV_CODEC_ID_RAWVIDEO) {
- if (ctx->video_codec_id != dshow_codecid(bih->biCompression))
+ if (ctx->video_codec_id != ff_codec_get_id(ff_codec_bmp_tags, bih->biCompression))
goto next;
}
if (ctx->pixel_format != AV_PIX_FMT_NONE &&
@@ -790,7 +779,7 @@ dshow_add_device(AVFormatContext *avctx,
codec->color_range = AVCOL_RANGE_MPEG; // just in case it needs this...
}
if (codec->pix_fmt == AV_PIX_FMT_NONE) {
- codec->codec_id = dshow_codecid(bih->biCompression);
+ codec->codec_id = ff_codec_get_id(ff_codec_bmp_tags, bih->biCompression);
if (codec->codec_id == AV_CODEC_ID_NONE) {
av_log(avctx, AV_LOG_ERROR, "Unknown compression type. "
"Please report type 0x%X.\n", (int) bih->biCompression);