|
|
|
@ -352,6 +352,7 @@ dshow_cycle_formats(AVFormatContext *avctx, enum dshowDeviceType devtype, |
|
|
|
|
VIDEO_STREAM_CONFIG_CAPS *vcaps = caps; |
|
|
|
|
BITMAPINFOHEADER *bih; |
|
|
|
|
int64_t *fr; |
|
|
|
|
const AVCodecTag *const tags[] = { avformat_get_riff_video_tags(), NULL }; |
|
|
|
|
#if DSHOWDEBUG |
|
|
|
|
ff_print_VIDEO_STREAM_CONFIG_CAPS(vcaps); |
|
|
|
|
#endif |
|
|
|
@ -369,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 = ff_codec_get_id(avformat_get_riff_video_tags(), bih->biCompression); |
|
|
|
|
enum AVCodecID codec_id = av_codec_get_id(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); |
|
|
|
@ -387,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 != ff_codec_get_id(avformat_get_riff_video_tags(), bih->biCompression)) |
|
|
|
|
if (ctx->video_codec_id != av_codec_get_id(tags, bih->biCompression)) |
|
|
|
|
goto next; |
|
|
|
|
} |
|
|
|
|
if (ctx->pixel_format != AV_PIX_FMT_NONE && |
|
|
|
@ -780,7 +781,8 @@ 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 = ff_codec_get_id(avformat_get_riff_video_tags(), bih->biCompression); |
|
|
|
|
const AVCodecTag *const tags[] = { avformat_get_riff_video_tags(), NULL }; |
|
|
|
|
codec->codec_id = av_codec_get_id(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); |
|
|
|
|