rendered paste bodyIndex: libhb/encx264.c===================================================================--- libhb/encx264.c (revision 1017)+++ libhb/encx264.c (working copy)@@ -23,8 +23,7 @@ encx264Close }; -// 16 is probably overkill but it's also the maximum for h.264 reference frames-#define MAX_INFLIGHT_FRAMES 16+#define DTS_BUFFER_SIZE 32 struct hb_work_private_s {@@ -33,8 +32,8 @@ x264_picture_t pic_in; // Internal queue of DTS start/stop values.- int64_t dts_start[MAX_INFLIGHT_FRAMES];- int64_t dts_stop[MAX_INFLIGHT_FRAMES];+ int64_t dts_start[DTS_BUFFER_SIZE];+ int64_t dts_stop[DTS_BUFFER_SIZE]; int64_t dts_write_index; int64_t dts_read_index;@@ -304,8 +303,8 @@ pv->pic_in.i_qpplus1 = 0; // Remember current PTS value, use as DTS later- pv->dts_start[pv->dts_write_index & (MAX_INFLIGHT_FRAMES-1)] = in->start;- pv->dts_stop[pv->dts_write_index & (MAX_INFLIGHT_FRAMES-1)] = in->stop;+ pv->dts_start[pv->dts_write_index & (DTS_BUFFER_SIZE-1)] = in->start;+ pv->dts_stop[pv->dts_write_index & (DTS_BUFFER_SIZE-1)] = in->stop; pv->dts_write_index++; /* Feed the input DTS to x264 so it can figure out proper output PTS */@@ -345,8 +344,8 @@ int64_t dts_start, dts_stop; /* Get next DTS value to use */- dts_start = pv->dts_start[pv->dts_read_index & (MAX_INFLIGHT_FRAMES-1)];- dts_stop = pv->dts_stop[pv->dts_read_index & (MAX_INFLIGHT_FRAMES-1)];+ dts_start = pv->dts_start[pv->dts_read_index & (DTS_BUFFER_SIZE-1)];+ dts_stop = pv->dts_stop[pv->dts_read_index & (DTS_BUFFER_SIZE-1)]; pv->dts_read_index++; for( i = 0; i < i_nal; i++ )