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

Reply via email to