[FFmpeg-cvslog] avcodec/cbs_av1: always store temporal_id and spatial_id in CodedBitstreamAV1Context
James Almer
git at videolan.org
Sun Aug 23 20:34:40 EEST 2020
ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Sun Aug 23 14:30:23 2020 -0300| [994d2567f13c11422aeb6506b6afca42a900d620] | committer: James Almer
avcodec/cbs_av1: always store temporal_id and spatial_id in CodedBitstreamAV1Context
Also infer them when not coded in the bitstream.
Reviewed-by: jkqxz
Signed-off-by: James Almer <jamrial at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=994d2567f13c11422aeb6506b6afca42a900d620
---
libavcodec/cbs_av1.c | 6 ------
libavcodec/cbs_av1_syntax_template.c | 7 +++++++
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/libavcodec/cbs_av1.c b/libavcodec/cbs_av1.c
index 75e9cb78df..72ad18151e 100644
--- a/libavcodec/cbs_av1.c
+++ b/libavcodec/cbs_av1.c
@@ -920,9 +920,6 @@ static int cbs_av1_read_unit(CodedBitstreamContext *ctx,
start_pos = get_bits_count(&gbc);
if (obu->header.obu_extension_flag) {
- priv->temporal_id = obu->header.temporal_id;
- priv->spatial_id = obu->header.spatial_id;
-
if (obu->header.obu_type != AV1_OBU_SEQUENCE_HEADER &&
obu->header.obu_type != AV1_OBU_TEMPORAL_DELIMITER &&
priv->operating_point_idc) {
@@ -934,9 +931,6 @@ static int cbs_av1_read_unit(CodedBitstreamContext *ctx,
// Decoding will drop this OBU at this operating point.
}
}
- } else {
- priv->temporal_id = 0;
- priv->spatial_id = 0;
}
switch (obu->header.obu_type) {
diff --git a/libavcodec/cbs_av1_syntax_template.c b/libavcodec/cbs_av1_syntax_template.c
index a315e8868a..240fa188e4 100644
--- a/libavcodec/cbs_av1_syntax_template.c
+++ b/libavcodec/cbs_av1_syntax_template.c
@@ -19,6 +19,7 @@
static int FUNC(obu_header)(CodedBitstreamContext *ctx, RWContext *rw,
AV1RawOBUHeader *current)
{
+ CodedBitstreamAV1Context *priv = ctx->priv_data;
int err;
HEADER("OBU header");
@@ -35,8 +36,14 @@ static int FUNC(obu_header)(CodedBitstreamContext *ctx, RWContext *rw,
fb(3, temporal_id);
fb(2, spatial_id);
fc(3, extension_header_reserved_3bits, 0, 0);
+ } else {
+ infer(temporal_id, 0);
+ infer(spatial_id, 0);
}
+ priv->temporal_id = current->temporal_id;
+ priv->spatial_id = current->spatial_id;
+
return 0;
}
More information about the ffmpeg-cvslog
mailing list