@@ -896,12 +896,11 @@ static int cbs_av1_read_unit(CodedBitstreamContext *ctx,
if (err < 0)
return err;
- av_buffer_unref(&priv->sequence_header_ref);
- priv->sequence_header = NULL;
-
- priv->sequence_header_ref = av_buffer_ref(unit->content_ref);
- if (!priv->sequence_header_ref)
- return AVERROR(ENOMEM);
+ err = av_buffer_replace(&priv->sequence_header_ref, unit->content_ref);
+ if (err < 0) {
+ priv->sequence_header = NULL;
+ return err;
+ }
priv->sequence_header = &obu->obu.sequence_header;
}
break;
@@ -1039,12 +1038,11 @@ static int cbs_av1_write_obu(CodedBitstreamContext *ctx,
if (err < 0)
return err;
- av_buffer_unref(&priv->sequence_header_ref);
- priv->sequence_header = NULL;
-
- priv->sequence_header_ref = av_buffer_ref(unit->content_ref);
- if (!priv->sequence_header_ref)
- return AVERROR(ENOMEM);
+ err = av_buffer_replace(&priv->sequence_header_ref, unit->content_ref);
+ if (err < 0) {
+ priv->sequence_header = NULL;
+ return err;
+ }
priv->sequence_header = &obu->obu.sequence_header;
}
break;
Signed-off-by: Gil Pedersen <git@gpost.dk> --- libavcodec/cbs_av1.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-)