Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-2-2
Commits
86401c10
Commit
86401c10
authored
Jun 16, 2013
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
v4l2: add per-codec bytes per pixel in codec table (refs #8802)
parent
0f21811d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
41 additions
and
40 deletions
+41
-40
modules/access/v4l2/demux.c
modules/access/v4l2/demux.c
+41
-40
No files found.
modules/access/v4l2/demux.c
View file @
86401c10
...
...
@@ -118,6 +118,7 @@ typedef struct
{
uint32_t
v4l2
;
vlc_fourcc_t
vlc
;
uint8_t
bpp
;
/**< Bytes per pixel (largest plane) */
uint32_t
red
;
uint32_t
green
;
uint32_t
blue
;
...
...
@@ -128,26 +129,26 @@ typedef struct
static
const
vlc_v4l2_fmt_t
v4l2_fmts
[]
=
{
/* Planar YUV 4:2:0 */
{
V4L2_PIX_FMT_YUV420
,
VLC_CODEC_I420
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_YVU420
,
VLC_CODEC_YV12
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_YUV422P
,
VLC_CODEC_I422
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_YUV420
,
VLC_CODEC_I420
,
1
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_YVU420
,
VLC_CODEC_YV12
,
1
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_YUV422P
,
VLC_CODEC_I422
,
1
,
0
,
0
,
0
},
/* Packed YUV 4:2:2 */
{
V4L2_PIX_FMT_YUYV
,
VLC_CODEC_YUYV
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_UYVY
,
VLC_CODEC_UYVY
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_YVYU
,
VLC_CODEC_YVYU
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_VYUY
,
VLC_CODEC_VYUY
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_YUYV
,
VLC_CODEC_YUYV
,
2
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_UYVY
,
VLC_CODEC_UYVY
,
2
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_YVYU
,
VLC_CODEC_YVYU
,
2
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_VYUY
,
VLC_CODEC_VYUY
,
2
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_YUV411P
,
VLC_CODEC_I41
1
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_YUV411P
,
VLC_CODEC_I411
,
1
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_YUV410
,
VLC_CODEC_I410
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_YUV410
,
VLC_CODEC_I410
,
1
,
0
,
0
,
0
},
// { V4L2_PIX_FMT_YVU410 },
// { V4L2_PIX_FMT_NV24, },
// { V4L2_PIX_FMT_NV42, },
// { V4L2_PIX_FMT_NV16,
VLC_CODEC_NV16
, 0, 0, 0 },
// { V4L2_PIX_FMT_NV61,
VLC_CODEC_NV6
1, 0, 0, 0 },
{
V4L2_PIX_FMT_NV12
,
VLC_CODEC_NV12
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_NV21
,
VLC_CODEC_NV2
1
,
0
,
0
,
0
},
// { V4L2_PIX_FMT_NV16,
VLC_CODEC_NV16, 1
, 0, 0, 0 },
// { V4L2_PIX_FMT_NV61,
VLC_CODEC_NV61,
1, 0, 0, 0 },
{
V4L2_PIX_FMT_NV12
,
VLC_CODEC_NV12
,
1
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_NV21
,
VLC_CODEC_NV21
,
1
,
0
,
0
,
0
},
/* V4L2-documented but VLC-unsupported misc. YUV formats */
// { V4L2_PIX_FMT_Y41P },
...
...
@@ -156,29 +157,29 @@ static const vlc_v4l2_fmt_t v4l2_fmts[] =
/* Packed RGB */
#ifdef WORDS_BIGENDIAN
{
V4L2_PIX_FMT_RGB32
,
VLC_CODEC_RGB32
,
0xFF00
,
0xFF0000
,
0xFF000000
},
{
V4L2_PIX_FMT_BGR32
,
VLC_CODEC_RGB32
,
0xFF000000
,
0xFF0000
,
0xFF00
},
{
V4L2_PIX_FMT_RGB24
,
VLC_CODEC_RGB24
,
0xFF0000
,
0x00FF00
,
0x0000FF
},
{
V4L2_PIX_FMT_BGR24
,
VLC_CODEC_RGB24
,
0x0000FF
,
0x00FF00
,
0xFF0000
},
{
V4L2_PIX_FMT_RGB32
,
VLC_CODEC_RGB32
,
4
,
0xFF00
,
0xFF0000
,
0xFF000000
},
{
V4L2_PIX_FMT_BGR32
,
VLC_CODEC_RGB32
,
4
,
0xFF000000
,
0xFF0000
,
0xFF00
},
{
V4L2_PIX_FMT_RGB24
,
VLC_CODEC_RGB24
,
3
,
0xFF0000
,
0x00FF00
,
0x0000FF
},
{
V4L2_PIX_FMT_BGR24
,
VLC_CODEC_RGB24
,
3
,
0x0000FF
,
0x00FF00
,
0xFF0000
},
// { V4L2_PIX_FMT_BGR666, },
// { V4L2_PIX_FMT_RGB565, },
{
V4L2_PIX_FMT_RGB565X
,
VLC_CODEC_RGB16
,
0x001F
,
0x07E0
,
0xF800
},
{
V4L2_PIX_FMT_RGB565X
,
VLC_CODEC_RGB16
,
2
,
0x001F
,
0x07E0
,
0xF800
},
// { V4L2_PIX_FMT_RGB555, },
{
V4L2_PIX_FMT_RGB555X
,
VLC_CODEC_RGB15
,
0x001F
,
0x03E0
,
0x7C00
},
// { V4L2_PIX_FMT_RGB444,
VLC_CODEC_RGB12,
0x000F, 0xF000, 0x0F00 },
{
V4L2_PIX_FMT_RGB555X
,
VLC_CODEC_RGB15
,
2
,
0x001F
,
0x03E0
,
0x7C00
},
// { V4L2_PIX_FMT_RGB444,
VLC_CODEC_RGB12, 2,
0x000F, 0xF000, 0x0F00 },
#else
{
V4L2_PIX_FMT_RGB32
,
VLC_CODEC_RGB32
,
0x0000FF
,
0x00FF00
,
0xFF0000
},
{
V4L2_PIX_FMT_BGR32
,
VLC_CODEC_RGB32
,
0xFF0000
,
0x00FF00
,
0x0000FF
},
{
V4L2_PIX_FMT_RGB24
,
VLC_CODEC_RGB24
,
0x0000FF
,
0x00FF00
,
0xFF0000
},
{
V4L2_PIX_FMT_BGR24
,
VLC_CODEC_RGB24
,
0xFF0000
,
0x00FF00
,
0x0000FF
},
{
V4L2_PIX_FMT_RGB32
,
VLC_CODEC_RGB32
,
4
,
0x0000FF
,
0x00FF00
,
0xFF0000
},
{
V4L2_PIX_FMT_BGR32
,
VLC_CODEC_RGB32
,
4
,
0xFF0000
,
0x00FF00
,
0x0000FF
},
{
V4L2_PIX_FMT_RGB24
,
VLC_CODEC_RGB24
,
3
,
0x0000FF
,
0x00FF00
,
0xFF0000
},
{
V4L2_PIX_FMT_BGR24
,
VLC_CODEC_RGB24
,
3
,
0xFF0000
,
0x00FF00
,
0x0000FF
},
// { V4L2_PIX_FMT_BGR666, },
{
V4L2_PIX_FMT_RGB565
,
VLC_CODEC_RGB16
,
0x001F
,
0x07E0
,
0xF800
},
{
V4L2_PIX_FMT_RGB565
,
VLC_CODEC_RGB16
,
2
,
0x001F
,
0x07E0
,
0xF800
},
// { V4L2_PIX_FMT_RGB565X, },
{
V4L2_PIX_FMT_RGB555
,
VLC_CODEC_RGB15
,
0x001F
,
0x03E0
,
0x7C00
},
{
V4L2_PIX_FMT_RGB555
,
VLC_CODEC_RGB15
,
2
,
0x001F
,
0x03E0
,
0x7C00
},
// { V4L2_PIX_FMT_RGB555X, },
// { V4L2_PIX_FMT_RGB444,
VLC_CODEC_RGB12,
0x0F00, 0x00F0, 0x000F },
// { V4L2_PIX_FMT_RGB444,
VLC_CODEC_RGB12, 2,
0x0F00, 0x00F0, 0x000F },
#endif
// { V4L2_PIX_FMT_RGB332,
VLC_CODEC_RGB8,
0xC0, 0x38, 0x07 },
// { V4L2_PIX_FMT_RGB332,
VLC_CODEC_RGB8, 1,
0xC0, 0x38, 0x07 },
/* Bayer (sub-sampled RGB). Not supported. */
// { V4L2_PIX_FMT_SBGGR16, }
...
...
@@ -196,21 +197,21 @@ static const vlc_v4l2_fmt_t v4l2_fmts[] =
// { V4L2_PIX_FMT_SRGGB8, }
/* Compressed data types */
{
V4L2_PIX_FMT_JPEG
,
VLC_CODEC_MJPG
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_H264
,
VLC_CODEC_H264
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_JPEG
,
VLC_CODEC_MJPG
,
0
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_H264
,
VLC_CODEC_H264
,
0
,
0
,
0
,
0
},
/* FIXME: fill p_extra for avc1... */
// { V4L2_PIX_FMT_H264_NO_SC, VLC_FOURCC('a','v','c','1'), 0, 0, 0 }
{
V4L2_PIX_FMT_MPEG4
,
VLC_CODEC_MP4V
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_XVID
,
VLC_CODEC_MP4V
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_H263
,
VLC_CODEC_H263
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_MPEG2
,
VLC_CODEC_MPGV
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_MPEG1
,
VLC_CODEC_MPGV
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_VC1_ANNEX_G
,
VLC_CODEC_VC1
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_VC1_ANNEX_L
,
VLC_CODEC_VC1
,
0
,
0
,
0
},
// { V4L2_PIX_FMT_H264_NO_SC, VLC_FOURCC('a','v','c','1'), 0, 0, 0
, 0
}
{
V4L2_PIX_FMT_MPEG4
,
VLC_CODEC_MP4V
,
0
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_XVID
,
VLC_CODEC_MP4V
,
0
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_H263
,
VLC_CODEC_H263
,
0
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_MPEG2
,
VLC_CODEC_MPGV
,
0
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_MPEG1
,
VLC_CODEC_MPGV
,
0
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_VC1_ANNEX_G
,
VLC_CODEC_VC1
,
0
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_VC1_ANNEX_L
,
VLC_CODEC_VC1
,
0
,
0
,
0
,
0
},
//V4L2_PIX_FMT_MPEG -> use access
/* Reserved formats */
{
V4L2_PIX_FMT_MJPEG
,
VLC_CODEC_MJPG
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_MJPEG
,
VLC_CODEC_MJPG
,
0
,
0
,
0
,
0
},
//V4L2_PIX_FMT_DV -> use access
/* Grey scale */
...
...
@@ -218,7 +219,7 @@ static const vlc_v4l2_fmt_t v4l2_fmts[] =
// { V4L2_PIX_FMT_Y12, },
// { V4L2_PIX_FMT_Y10, },
// { V4L2_PIX_FMT_Y10BPACK, },
{
V4L2_PIX_FMT_GREY
,
VLC_CODEC_GREY
,
0
,
0
,
0
},
{
V4L2_PIX_FMT_GREY
,
VLC_CODEC_GREY
,
1
,
0
,
0
,
0
},
};
static
const
vlc_v4l2_fmt_t
*
vlc_from_v4l2_fourcc
(
uint32_t
fourcc
)
...
...
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