Hi Tomas > On May 12, 2019, at 6:47 AM, Tomas Härdin <tjop...@acc.umu.se> wrote: > > fre 2019-05-10 klockan 08:50 -0700 skrev Baptiste Coudurier: >> +static inline int get_ue_golomb(GetBitContext *gb) { >> + int i, v; >> + for (i = 0; i < 32 && !get_bits1(gb); i++) >> + ; >> + for (v = 1; i--;) >> + v = (v << 1) | get_bits1(gb); > > Isn't there already a function to get variable number of bits?
get_bits doesn’t work for n == 0 >> >> + >> + sps->profile_idc = get_bits(&gb, 8); >> + sps->constraint_set_flags |= get_bits1(&gb) << 0; // >> constraint_set0_flag >> + sps->constraint_set_flags |= get_bits1(&gb) << 1; // >> constraint_set1_flag >> + sps->constraint_set_flags |= get_bits1(&gb) << 2; // >> constraint_set2_flag >> + sps->constraint_set_flags |= get_bits1(&gb) << 3; // >> constraint_set3_flag >> + sps->constraint_set_flags |= get_bits1(&gb) << 4; // >> constraint_set4_flag >> + sps->constraint_set_flags |= get_bits1(&gb) << 5; // >> constraint_set5_flag > > Why not just get 6 bits at once? That’s how it’s done in h264_ps.c currently. >> +static void mxf_write_local_tags(AVIOContext *pb, const MXFLocalTagPair >> *local_tags, int count) >> +{ >> + int i; >> + for (i = 0; i < count; i++) { >> + avio_wb16(pb, local_tags[i].local_tag); >> + avio_write(pb, local_tags[i].uid, 16); >> + } >> +} > > This function could be used to simplify mxf_write_primer_pack(). But > that probably belongs in a separate patch. Yes, it does >> + >> static void mxf_write_primer_pack(AVFormatContext *s) >> { >> MXFContext *mxf = s->priv_data; >> AVIOContext *pb = s->pb; >> int local_tag_number, i = 0; >> + int avc_tags_count = 0; >> >> local_tag_number = FF_ARRAY_ELEMS(mxf_local_tag_batch); >> local_tag_number += mxf->store_user_comments * >> FF_ARRAY_ELEMS(mxf_user_comments_local_tag); >> >> + for (i = 0; i < s->nb_streams; i++) { >> + MXFStreamContext *sc = s->streams[i]->priv_data; >> + if (s->streams[i]->codecpar->codec_id == AV_CODEC_ID_H264 && >> !sc->avc_intra) { >> + avc_tags_count = >> FF_ARRAY_ELEMS(mxf_avc_subdescriptor_local_tags); >> + local_tag_number += avc_tags_count; > > This will output a broken file if there's more than one XAVC stream. > Not possible now I think, but will be a problem is someone decides to > give higher operational patterns a try Yes, it will get caught when this happens. — Baptiste _______________________________________________ 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".