On 2012-02-10 14:19:29 +0100, [email protected] wrote: > > I'm currently finishing the encode2() switch for the mpegvideo-based > encoders, but there's one problem remaining to be solved: > > lavc currently sets has_b_frames as !low_delay (though according to my > limited understanding of the specs, low_delay=0 only means that the > stream _might_ contain bframes). > > Next we have some code in compute_pkt_fields() in lavf that checks > has_b_frames and if it is nonzero, it declares dts==pts combination for > I/P frames invalid and discards it. > > So even if we have a valid stream with no bframes (=> pts == dts), but > low_delay=0, lavf thinks the timestamps are invalid and invents some > nonsense instead. > > I'm not sure what would be the right way to fix this. Any suggestions?
I think the only invalid combination is (low_delay == 1) and (has_b_frames > 0). It is a flag if it is not set we are not obliged to do anything. Setting has_b_frames to !!max_b_frames makes more sense for mpegenc. Janne _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
