Sn Sun, Sep 30, 2018 at 8:56 PM <alx.sukha...@gmail.com> wrote:
>
>  ...
> +    if (st->codecpar->codec_id == AV_CODEC_ID_H264) {
> +        if (pkt->size >= 5 && AV_RB32(pkt->data) != 0x0000001 &&
> +                             (AV_RB24(pkt->data) != 0x000001 ||
> +                              (st->codecpar->extradata_size > 0 &&
> +                               st->codecpar->extradata[0] == 1)))
> +            ret = ff_stream_add_bitstream_filter(st, "h264_mp4toannexb", 
> NULL);
> +    } else if (st->codecpar->codec_id == AV_CODEC_ID_HEVC) {
> +        if (pkt->size >= 5 && AV_RB32(pkt->data) != 0x0000001 &&
> +                             (AV_RB24(pkt->data) != 0x000001 ||
> +                              (st->codecpar->extradata_size > 0 &&
> +                               st->codecpar->extradata[0] == 1)))
> +            ret = ff_stream_add_bitstream_filter(st, "hevc_mp4toannexb", 
> NULL);

Please verify that there is no AVCc/Annex B deciding helper function
within lavf/lavc that could be used here. I tried to ask about this on
IRC but didn't get responses so I can't straight up note you a
function name. If there's none, then it might be worth making a lavf
helper for that since I think at least movenc/matroskaenc try to
figure out if the input bit stream is Annex B and convert it the other
way.

Additionally, please make sure that the files created with these
changes can be demuxed with the FFmpeg IVF demuxer (ivfdec.c). I would
guess the H.264 stuff would work, but since the IVF demuxer utilizes
the ff_codec_bmp_tags list, which doesn't seem to contain HEVC entries
I would guess additional stuff would be required there.

That of course doesn't have to be within this patch, but just within
this patch set (one patch for demuxer, one for muxer).

Best regards,
Jan
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to