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
1a07df31
Commit
1a07df31
authored
Jan 27, 2015
by
Vittorio Giovara
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
DNxHD: Add support for id 1258 (DNx100 960x720@8)
Signed-off-by:
Vittorio Giovara
<
vittorio.giovara@gmail.com
>
parent
598f7d04
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
47 additions
and
0 deletions
+47
-0
Changelog
Changelog
+1
-0
dnxhddata.c
libavcodec/dnxhddata.c
+37
-0
dnxhddec.c
libavcodec/dnxhddec.c
+9
-0
No files found.
Changelog
View file @
1a07df31
...
@@ -11,6 +11,7 @@ version <next>:
...
@@ -11,6 +11,7 @@ version <next>:
- RTP/mpegts muxer
- RTP/mpegts muxer
- VP8 in Ogg demuxing
- VP8 in Ogg demuxing
- OpenH264 encoder wrapper
- OpenH264 encoder wrapper
- Support DNx100 (960x720@8)
version 11:
version 11:
...
...
libavcodec/dnxhddata.c
View file @
1a07df31
...
@@ -231,6 +231,28 @@ static const uint8_t dnxhd_1256_chroma_weight[] = {
...
@@ -231,6 +231,28 @@ static const uint8_t dnxhd_1256_chroma_weight[] = {
34
,
37
,
39
,
44
,
51
,
56
,
61
,
70
,
34
,
37
,
39
,
44
,
51
,
56
,
61
,
70
,
};
};
static
const
uint8_t
dnxhd_1258_luma_weight
[]
=
{
0
,
32
,
36
,
36
,
40
,
40
,
55
,
60
,
34
,
36
,
37
,
40
,
41
,
48
,
57
,
82
,
35
,
36
,
41
,
41
,
46
,
52
,
73
,
82
,
37
,
40
,
42
,
45
,
50
,
65
,
80
,
87
,
39
,
41
,
44
,
49
,
62
,
78
,
88
,
90
,
41
,
44
,
49
,
58
,
73
,
90
,
95
,
95
,
43
,
52
,
55
,
68
,
90
,
100
,
97
,
93
,
52
,
53
,
71
,
82
,
107
,
103
,
99
,
99
,
};
static
const
uint8_t
dnxhd_1258_chroma_weight
[]
=
{
0
,
32
,
37
,
38
,
49
,
53
,
65
,
66
,
35
,
37
,
40
,
49
,
56
,
64
,
65
,
82
,
36
,
42
,
50
,
56
,
64
,
67
,
73
,
85
,
46
,
50
,
57
,
63
,
71
,
72
,
89
,
87
,
49
,
58
,
65
,
72
,
78
,
88
,
88
,
90
,
60
,
64
,
74
,
81
,
84
,
90
,
95
,
134
,
62
,
74
,
77
,
80
,
90
,
114
,
129
,
125
,
74
,
74
,
90
,
100
,
128
,
125
,
116
,
116
,
};
static
const
uint8_t
dnxhd_1237_dc_codes
[
12
]
=
{
static
const
uint8_t
dnxhd_1237_dc_codes
[
12
]
=
{
0
,
12
,
13
,
1
,
2
,
3
,
4
,
5
,
14
,
30
,
62
,
63
,
0
,
12
,
13
,
1
,
2
,
3
,
4
,
5
,
14
,
30
,
62
,
63
,
};
};
...
@@ -1073,6 +1095,14 @@ static const uint8_t dnxhd_1252_ac_index_flag[257] = {
...
@@ -1073,6 +1095,14 @@ static const uint8_t dnxhd_1252_ac_index_flag[257] = {
1
,
1
,
};
};
static
const
uint8_t
dnxhd_1258_dc_codes
[
14
]
=
{
0
,
12
,
13
,
1
,
2
,
3
,
4
,
5
,
14
,
30
,
62
,
63
,
0
,
0
,
};
static
const
uint8_t
dnxhd_1258_dc_bits
[
14
]
=
{
3
,
4
,
4
,
3
,
3
,
3
,
3
,
3
,
4
,
5
,
6
,
6
,
0
,
0
,
};
const
CIDEntry
ff_dnxhd_cid_table
[]
=
{
const
CIDEntry
ff_dnxhd_cid_table
[]
=
{
{
1235
,
1920
,
1080
,
0
,
917504
,
917504
,
6
,
10
,
{
1235
,
1920
,
1080
,
0
,
917504
,
917504
,
6
,
10
,
dnxhd_1235_luma_weight
,
dnxhd_1235_chroma_weight
,
dnxhd_1235_luma_weight
,
dnxhd_1235_chroma_weight
,
...
@@ -1151,6 +1181,13 @@ const CIDEntry ff_dnxhd_cid_table[] = {
...
@@ -1151,6 +1181,13 @@ const CIDEntry ff_dnxhd_cid_table[] = {
dnxhd_1235_1241_ac_run_flag
,
dnxhd_1235_1241_ac_index_flag
,
dnxhd_1235_1241_ac_run_flag
,
dnxhd_1235_1241_ac_index_flag
,
dnxhd_1235_1238_1241_run_codes
,
dnxhd_1235_1238_1241_run_bits
,
dnxhd_1235_1241_run
,
dnxhd_1235_1238_1241_run_codes
,
dnxhd_1235_1238_1241_run_bits
,
dnxhd_1235_1241_run
,
{
350
,
390
,
440
,
730
,
880
}
},
{
350
,
390
,
440
,
730
,
880
}
},
{
1258
,
960
,
720
,
0
,
212992
,
212992
,
4
,
8
,
dnxhd_1258_luma_weight
,
dnxhd_1258_chroma_weight
,
dnxhd_1258_dc_codes
,
dnxhd_1258_dc_bits
,
dnxhd_1252_ac_codes
,
dnxhd_1252_ac_bits
,
dnxhd_1252_ac_level
,
dnxhd_1252_ac_run_flag
,
dnxhd_1252_ac_index_flag
,
dnxhd_1251_run_codes
,
dnxhd_1251_run_bits
,
dnxhd_1251_run
,
{
42
,
60
,
75
,
115
}
},
};
};
int
ff_dnxhd_get_cid_table
(
int
cid
)
int
ff_dnxhd_get_cid_table
(
int
cid
)
...
...
libavcodec/dnxhddec.c
View file @
1a07df31
...
@@ -165,6 +165,15 @@ static int dnxhd_decode_header(DNXHDContext *ctx, AVFrame *frame,
...
@@ -165,6 +165,15 @@ static int dnxhd_decode_header(DNXHDContext *ctx, AVFrame *frame,
if
((
ret
=
dnxhd_init_vlc
(
ctx
,
cid
))
<
0
)
if
((
ret
=
dnxhd_init_vlc
(
ctx
,
cid
))
<
0
)
return
ret
;
return
ret
;
// make sure profile size constraints are respected
// DNx100 allows 1920->1440 and 1280->960 subsampling
if
(
ctx
->
width
!=
ctx
->
cid_table
->
width
)
{
av_reduce
(
&
ctx
->
avctx
->
sample_aspect_ratio
.
num
,
&
ctx
->
avctx
->
sample_aspect_ratio
.
den
,
ctx
->
width
,
ctx
->
cid_table
->
width
,
255
);
ctx
->
width
=
ctx
->
cid_table
->
width
;
}
if
(
buf_size
<
ctx
->
cid_table
->
coding_unit_size
)
{
if
(
buf_size
<
ctx
->
cid_table
->
coding_unit_size
)
{
av_log
(
ctx
->
avctx
,
AV_LOG_ERROR
,
"incorrect frame size (%d < %d).
\n
"
,
av_log
(
ctx
->
avctx
,
AV_LOG_ERROR
,
"incorrect frame size (%d < %d).
\n
"
,
buf_size
,
ctx
->
cid_table
->
coding_unit_size
);
buf_size
,
ctx
->
cid_table
->
coding_unit_size
);
...
...
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