- err = ff_cbs_write_fragment_data(ctx->cbc, frag);
- if (err < 0) {
- av_log(bsf, AV_LOG_ERROR, "Failed to write extradata into packet side data.\n");
- return err;
- }
-
- side_data = av_packet_new_side_data(pkt, AV_PKT_DATA_NEW_EXTRADATA, frag->data_size);
- if (!side_data)
- return AVERROR(ENOMEM);
- memcpy(side_data, frag->data, frag->data_size);
-
- ff_cbs_fragment_reset(ctx->cbc, frag);
-
- return 0;
-}
-
-static int av1_metadata_filter(AVBSFContext *bsf, AVPacket *pkt)
-{
- AV1MetadataContext *ctx = bsf->priv_data;
- CodedBitstreamFragment *frag = &ctx->access_unit;
- AV1RawOBU td, *obu;
- int err, i;
-
- err = ff_bsf_get_packet_ref(bsf, pkt);
- if (err < 0)
- return err;
-
- err = av1_metadata_update_side_data(bsf, pkt);
- if (err < 0)
- goto fail;
-
- err = ff_cbs_read_packet(ctx->cbc, frag, pkt);
- if (err < 0) {
- av_log(bsf, AV_LOG_ERROR, "Failed to read packet.\n");
- goto fail;
- }
-
- if (frag->nb_units == 0) {
- av_log(bsf, AV_LOG_ERROR, "No OBU in packet.\n");
- err = AVERROR_INVALIDDATA;
- goto fail;
- }
-
- for (i = 0; i < frag->nb_units; i++) {
- if (frag->units[i].type == AV1_OBU_SEQUENCE_HEADER) {
- obu = frag->units[i].content;
- err = av1_metadata_update_sequence_header(bsf, &obu->obu.sequence_header);
- if (err < 0)
- goto fail;
- }
- }
-