Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
ffmpeg
Project
Project
Details
Activity
Releases
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
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Stefan Westerfeld
ffmpeg
Commits
6cb57bb4
Commit
6cb57bb4
authored
Jul 02, 2023
by
James Almer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avcodec/cbs_h266: add support for Operating point information NALU type
Signed-off-by:
James Almer
<
jamrial@gmail.com
>
parent
319a6b3a
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
56 additions
and
0 deletions
+56
-0
cbs_h2645.c
libavcodec/cbs_h2645.c
+18
-0
cbs_h266.h
libavcodec/cbs_h266.h
+11
-0
cbs_h266_syntax_template.c
libavcodec/cbs_h266_syntax_template.c
+27
-0
No files found.
libavcodec/cbs_h2645.c
View file @
6cb57bb4
...
...
@@ -1059,6 +1059,14 @@ static int cbs_h266_read_nal_unit(CodedBitstreamContext *ctx,
return
err
;
switch
(
unit
->
type
)
{
case
VVC_OPI_NUT
:
{
err
=
cbs_h266_read_opi
(
ctx
,
&
gbc
,
unit
->
content
);
if
(
err
<
0
)
return
err
;
}
break
;
case
VVC_VPS_NUT
:
{
H266RawVPS
*
vps
=
unit
->
content
;
...
...
@@ -1593,6 +1601,15 @@ static int cbs_h266_write_nal_unit(CodedBitstreamContext *ctx,
int
err
;
switch
(
unit
->
type
)
{
case
VVC_OPI_NUT
:
{
H266RawOPI
*
opi
=
unit
->
content
;
err
=
cbs_h266_write_opi
(
ctx
,
pbc
,
opi
);
if
(
err
<
0
)
return
err
;
}
break
;
case
VVC_VPS_NUT
:
{
H266RawVPS
*
vps
=
unit
->
content
;
...
...
@@ -1965,6 +1982,7 @@ static void cbs_h266_free_sei(void *opaque, uint8_t *content)
}
static
const
CodedBitstreamUnitTypeDescriptor
cbs_h266_unit_types
[]
=
{
CBS_UNIT_TYPE_INTERNAL_REF
(
VVC_OPI_NUT
,
H266RawOPI
,
extension_data
.
data
),
CBS_UNIT_TYPE_INTERNAL_REF
(
VVC_VPS_NUT
,
H266RawVPS
,
extension_data
.
data
),
CBS_UNIT_TYPE_INTERNAL_REF
(
VVC_SPS_NUT
,
H266RawSPS
,
extension_data
.
data
),
CBS_UNIT_TYPE_INTERNAL_REF
(
VVC_PPS_NUT
,
H266RawPPS
,
extension_data
.
data
),
...
...
libavcodec/cbs_h266.h
View file @
6cb57bb4
...
...
@@ -230,6 +230,17 @@ typedef struct H266RawVUI {
H266RawExtensionData
extension_data
;
}
H266RawVUI
;
typedef
struct
H266RawOPI
{
H266RawNALUnitHeader
nal_unit_header
;
uint8_t
opi_ols_info_present_flag
;
uint8_t
opi_htid_info_present_flag
;
uint16_t
opi_ols_idx
;
uint8_t
opi_htid_plus1
;
uint8_t
opi_extension_flag
;
H266RawExtensionData
extension_data
;
}
H266RawOPI
;
typedef
struct
H266RawVPS
{
H266RawNALUnitHeader
nal_unit_header
;
...
...
libavcodec/cbs_h266_syntax_template.c
View file @
6cb57bb4
...
...
@@ -623,6 +623,33 @@ static int FUNC(ols_timing_hrd_parameters) (CodedBitstreamContext *ctx,
return
0
;
}
static
int
FUNC
(
opi
)(
CodedBitstreamContext
*
ctx
,
RWContext
*
rw
,
H266RawOPI
*
current
)
{
int
err
;
HEADER
(
"Operating point information"
);
CHECK
(
FUNC
(
nal_unit_header
)(
ctx
,
rw
,
&
current
->
nal_unit_header
,
VVC_OPI_NUT
));
flag
(
opi_ols_info_present_flag
);
flag
(
opi_htid_info_present_flag
);
if
(
current
->
opi_ols_info_present_flag
)
ue
(
opi_ols_idx
,
0
,
VVC_MAX_TOTAL_NUM_OLSS
-
1
);
if
(
current
->
opi_htid_info_present_flag
)
ub
(
3
,
opi_htid_plus1
);
flag
(
opi_extension_flag
);
if
(
current
->
opi_extension_flag
)
CHECK
(
FUNC
(
extension_data
)
(
ctx
,
rw
,
&
current
->
extension_data
));
CHECK
(
FUNC
(
rbsp_trailing_bits
)
(
ctx
,
rw
));
return
0
;
}
static
int
FUNC
(
vps
)
(
CodedBitstreamContext
*
ctx
,
RWContext
*
rw
,
H266RawVPS
*
current
)
{
...
...
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