mirror of https://git.ffmpeg.org/ffmpeg.git
vfwcap: Support compressed streams.
Originally committed as revision 19544 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
42477de59e
commit
1c0b9215ac
|
@ -69,6 +69,15 @@ static enum PixelFormat vfw_pixfmt(DWORD biCompression, WORD biBitCount)
|
||||||
return PIX_FMT_NONE;
|
return PIX_FMT_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static enum CodecID vfw_codecid(DWORD biCompression)
|
||||||
|
{
|
||||||
|
switch(biCompression) {
|
||||||
|
case MKTAG('d', 'v', 's', 'd'):
|
||||||
|
return CODEC_ID_DVVIDEO;
|
||||||
|
}
|
||||||
|
return CODEC_ID_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
#define dstruct(pctx, sname, var, type) \
|
#define dstruct(pctx, sname, var, type) \
|
||||||
av_log(pctx, AV_LOG_DEBUG, #var":\t%"type"\n", sname->var)
|
av_log(pctx, AV_LOG_DEBUG, #var":\t%"type"\n", sname->var)
|
||||||
|
|
||||||
|
@ -321,14 +330,20 @@ static int vfw_read_header(AVFormatContext *s, AVFormatParameters *ap)
|
||||||
codec->height = height;
|
codec->height = height;
|
||||||
codec->pix_fmt = vfw_pixfmt(biCompression, biBitCount);
|
codec->pix_fmt = vfw_pixfmt(biCompression, biBitCount);
|
||||||
if(codec->pix_fmt == PIX_FMT_NONE) {
|
if(codec->pix_fmt == PIX_FMT_NONE) {
|
||||||
|
codec->codec_id = vfw_codecid(biCompression);
|
||||||
|
if(codec->codec_id == CODEC_ID_NONE) {
|
||||||
av_log(s, AV_LOG_ERROR, "Unknown compression type. "
|
av_log(s, AV_LOG_ERROR, "Unknown compression type. "
|
||||||
"Please report verbose (-v 9) debug information.\n");
|
"Please report verbose (-v 9) debug information.\n");
|
||||||
vfw_read_close(s);
|
vfw_read_close(s);
|
||||||
return AVERROR_PATCHWELCOME;
|
return AVERROR_PATCHWELCOME;
|
||||||
|
}
|
||||||
|
codec->bits_per_coded_sample = biBitCount;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
codec->codec_id = CODEC_ID_RAWVIDEO;
|
codec->codec_id = CODEC_ID_RAWVIDEO;
|
||||||
if(biCompression == BI_RGB)
|
if(biCompression == BI_RGB)
|
||||||
codec->bits_per_coded_sample = biBitCount;
|
codec->bits_per_coded_sample = biBitCount;
|
||||||
|
}
|
||||||
|
|
||||||
av_set_pts_info(st, 32, 1, 1000);
|
av_set_pts_info(st, 32, 1, 1000);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue