Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
c916389b
Commit
c916389b
authored
Jan 15, 2013
by
rogerdpack
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dshow: allow for more codec ID's
Signed-off-by:
rogerdpack
<
rogerpack2005@gmail.com
>
parent
3b9166fc
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
4 additions
and
15 deletions
+4
-15
dshow.c
libavdevice/dshow.c
+4
-15
No files found.
libavdevice/dshow.c
View file @
c916389b
...
...
@@ -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
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment