Lines Matching refs:unit

146 static void cbs_unit_uninit(CodedBitstreamUnit *unit)
148 av_buffer_unref(&unit->content_ref);
149 unit->content = NULL;
151 av_buffer_unref(&unit->data_ref);
152 unit->data = NULL;
153 unit->data_size = 0;
154 unit->data_bit_padding = 0;
185 CodedBitstreamUnit *unit = &frag->units[i];
189 if (ctx->decompose_unit_types[j] == unit->type)
196 av_buffer_unref(&unit->content_ref);
197 unit->content = NULL;
199 av_assert0(unit->data && unit->data_ref);
201 err = ctx->codec->read_unit(ctx, unit);
204 "Decomposition unimplemented for unit %d "
205 "(type %"PRIu32").\n", i, unit->type);
208 "Skipping decomposition of unit %d "
209 "(type %"PRIu32").\n", i, unit->type);
210 av_buffer_unref(&unit->content_ref);
211 unit->content = NULL;
213 av_log(ctx->log_ctx, AV_LOG_ERROR, "Failed to read unit %d "
214 "(type %"PRIu32").\n", i, unit->type);
319 * Allocate a new internal data buffer of the given size in the unit.
323 static int cbs_alloc_unit_data(CodedBitstreamUnit *unit,
326 av_assert0(!unit->data && !unit->data_ref);
328 unit->data_ref = av_buffer_alloc(size + AV_INPUT_BUFFER_PADDING_SIZE);
329 if (!unit->data_ref)
332 unit->data = unit->data_ref->data;
333 unit->data_size = size;
335 memset(unit->data + size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
341 CodedBitstreamUnit *unit)
362 ret = ctx->codec->write_unit(ctx, unit, &pbc);
379 unit->data_bit_padding = 8 - put_bits_count(&pbc) % 8;
381 unit->data_bit_padding = 0;
385 ret = cbs_alloc_unit_data(unit, put_bytes_output(&pbc));
389 memcpy(unit->data, ctx->write_buffer, unit->data_size);
400 CodedBitstreamUnit *unit = &frag->units[i];
402 if (!unit->content)
405 av_buffer_unref(&unit->data_ref);
406 unit->data = NULL;
408 err = cbs_write_unit_data(ctx, unit);
410 av_log(ctx->log_ctx, AV_LOG_ERROR, "Failed to write unit %d "
411 "(type %"PRIu32").\n", i, unit->type);
414 av_assert0(unit->data && unit->data_ref);
698 int ff_cbs_alloc_unit_content(CodedBitstreamUnit *unit,
702 av_assert0(!unit->content && !unit->content_ref);
704 unit->content = av_mallocz(size);
705 if (!unit->content)
708 unit->content_ref = av_buffer_create(unit->content, size,
710 if (!unit->content_ref) {
711 av_freep(&unit->content);
762 CodedBitstreamUnit *unit;
784 unit = &frag->units[position];
785 unit->type = type;
786 unit->content = content;
787 unit->content_ref = content_ref;
798 CodedBitstreamUnit *unit;
820 unit = &frag->units[position];
821 unit->type = type;
822 unit->data = data;
823 unit->data_size = data_size;
824 unit->data_ref = data_ref;
870 CodedBitstreamUnit *unit)
883 if (unit->type >= desc->unit_type_range_start &&
884 unit->type <= desc->unit_type_range_end)
888 if (desc->unit_types[j] == unit->type)
897 CodedBitstreamUnit *unit)
901 av_assert0(!unit->content && !unit->content_ref);
903 desc = cbs_find_unit_type_desc(ctx, unit);
907 unit->content = av_mallocz(desc->content_size);
908 if (!unit->content)
911 unit->content_ref =
912 av_buffer_create(unit->content, desc->content_size,
916 if (!unit->content_ref) {
917 av_freep(&unit->content);
925 CodedBitstreamUnit *unit,
933 av_assert0(unit->content);
934 src = unit->content;
991 CodedBitstreamUnit *unit)
997 av_assert0(unit->content);
998 if (unit->content_ref) {
1003 desc = cbs_find_unit_type_desc(ctx, unit);
1012 memcpy(ref->data, unit->content, desc->content_size);
1017 err = cbs_clone_unit_content(&ref, unit, desc);
1023 err = desc->content_clone(&ref, unit);
1033 unit->content_ref = ref;
1034 unit->content = ref->data;
1039 CodedBitstreamUnit *unit)
1046 err = ff_cbs_make_unit_refcounted(ctx, unit);
1049 av_assert0(unit->content && unit->content_ref);
1051 if (av_buffer_is_writable(unit->content_ref))
1054 desc = cbs_find_unit_type_desc(ctx, unit);
1060 err = av_buffer_make_writable(&unit->content_ref);
1064 err = cbs_clone_unit_content(&ref, unit, desc);
1070 err = desc->content_clone(&ref, unit);
1080 av_buffer_unref(&unit->content_ref);
1081 unit->content_ref = ref;
1083 unit->content = unit->content_ref->data;