James Almer: > Using ff_cbs_read() on the raw buffer will not parse it as extradata, > resulting in parsing errors for example when handling ISOBMFF avcC. > This helper works around that. > > Signed-off-by: James Almer <jamr...@gmail.com> > --- > libavcodec/cbs.c | 13 +++++++++++++ > libavcodec/cbs.h | 4 ++++ > 2 files changed, 17 insertions(+) > > diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c > index 8d50ea1432..f6e371ddef 100644 > --- a/libavcodec/cbs.c > +++ b/libavcodec/cbs.c > @@ -294,6 +294,19 @@ int ff_cbs_read_packet(CodedBitstreamContext *ctx, > pkt->data, pkt->size, 0); > } > > +int ff_cbs_read_packet_side_data(CodedBitstreamContext *ctx, > + CodedBitstreamFragment *frag, > + const AVPacket *pkt) > +{ > + size_t side_data_size; > + const uint8_t *side_data = > + av_packet_get_side_data(pkt, AV_PKT_DATA_NEW_EXTRADATA, > + &side_data_size); > + > + return cbs_read_data(ctx, frag, NULL, > + side_data, side_data_size, 1); > +} > + > int ff_cbs_read(CodedBitstreamContext *ctx, > CodedBitstreamFragment *frag, > const uint8_t *data, size_t size) > diff --git a/libavcodec/cbs.h b/libavcodec/cbs.h > index b7acf98347..bd97d163b1 100644 > --- a/libavcodec/cbs.h > +++ b/libavcodec/cbs.h > @@ -276,6 +276,10 @@ int > ff_cbs_read_extradata_from_codec(CodedBitstreamContext *ctx, > CodedBitstreamFragment *frag, > const struct AVCodecContext *avctx); > > +int ff_cbs_read_packet_side_data(CodedBitstreamContext *ctx, > + CodedBitstreamFragment *frag, > + const AVPacket *pkt); > + > /** > * Read the data bitstream from a packet into a fragment, then > * split into units and decompose. > Despite using this function in both 2 and 3 the callers still have to check for whether extradata exists in the first place; in patch 3 this is unavoidable. This makes me wonder whether it might not be better to expose the header flag in ff_cbs_read().
- Andreas _______________________________________________ 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".