On Thu, Jan 14, 2021 at 12:22 PM James Almer <jamr...@gmail.com> wrote:
> On 1/11/2021 1:33 PM, Nuo Mi wrote: > > @@ -1218,6 +1464,20 @@ static int cbs_h2645_unit_requires_zero_byte(enum > AVCodecID codec_id, > > return type == H264_NAL_SPS || type == H264_NAL_PPS; > > if (codec_id == AV_CODEC_ID_HEVC) > > return type == HEVC_NAL_VPS || type == HEVC_NAL_SPS || type == > HEVC_NAL_PPS; > > + if (codec_id == AV_CODEC_ID_VVC) { > > + switch (type) { > > + case VVC_DCI_NUT: > > + case VVC_OPI_NUT: > > + case VVC_VPS_NUT: > > + case VVC_SPS_NUT: > > + case VVC_PPS_NUT: > > + case VVC_PREFIX_APS_NUT: > > + case VVC_SUFFIX_APS_NUT: > > + return 1; > > + default: > > + return 0; > > + } > > return type >= VVC_OPI_NUT && type <= VVC_SUFFIX_APS_NUT; > good suggestion. thanks fixed. > > > + } > > return 0; > > } > > > > @@ -1369,6 +1629,34 @@ static void cbs_h265_close(CodedBitstreamContext > *ctx) > > av_buffer_unref(&h265->pps_ref[i]); > > } > > > > +static void cbs_h266_flush(CodedBitstreamContext *ctx) > > +{ > > + CodedBitstreamH266Context *h266 = ctx->priv_data; > > + > > + for (int i = 0; i < FF_ARRAY_ELEMS(h266->sps); i++) { > > + av_buffer_unref(&h266->sps_ref[i]); > > + h266->sps[i] = NULL; > > + } > > + for (int i = 0; i < FF_ARRAY_ELEMS(h266->pps); i++) { > > + av_buffer_unref(&h266->pps_ref[i]); > > + h266->pps[i] = NULL; > > + } > > + av_buffer_unref(&h266->ph_ref); > > + h266->ph = NULL; > > + > > + h266->active_sps = NULL; > > + h266->active_pps = NULL; > > +} > > + > > +static void cbs_h266_close(CodedBitstreamContext *ctx) > > +{ > > + CodedBitstreamH266Context *h266 = ctx->priv_data; > > + > > + cbs_h266_flush(ctx); > > + ff_h2645_packet_uninit(&h266->common.read_packet); > > + > > + } > > + > > static void cbs_h264_free_sei_payload(H264RawSEIPayload *payload) > > { > > switch (payload->payload_type) { > > @@ -1513,6 +1801,76 @@ static const CodedBitstreamUnitTypeDescriptor > cbs_h265_unit_types[] = { > > CBS_UNIT_TYPE_END_OF_LIST > > }; > > > > +static void cbs_h266_free_sei(void *opaque, uint8_t *content) > > +{ > > +} > > static void cbs_h266_free_sei_payload(H266RawSEIPayload *payload) > { > switch (payload->payload_type) { > case VVC_SEI_TYPE_DECODED_PICTURE_HASH: > break; > default: > av_buffer_unref(&payload->payload.other.data_ref); > break; > } > av_buffer_unref(&payload->extension_data.data_ref); > } > > static void cbs_h266_free_sei(void *opaque, uint8_t *content) > { > H266RawSEI *sei = (H266RawSEI*)content; > > for (int i = 0; i < sei->payload_count; i++) > cbs_h266_free_sei_payload(&sei->payload[i]); > av_freep(&content); > } > fixed > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".