<div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif">Hi Guys,</div><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_default" style="font-family:georgia,serif">I'm using Window Media Foundation H.264 encoder to encode video frames and use ffmpeg as a muxer.</div><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_default" style="font-family:georgia,serif">The frames returned by the encoder has following timestamps </div><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_default" style="font-family:georgia,serif"><div class="gmail_default">pts = 0, dts = 0</div><div class="gmail_default">pts = 2, dts = 1</div><div class="gmail_default">pts = 1, dts = 2</div><div class="gmail_default">pts = 4, dts = 3</div><div class="gmail_default">pts = 3, dts = 4</div><div class="gmail_default">pts = 6, dts = 5</div><div class="gmail_default">pts = 5, dts = 6</div><div class="gmail_default">pts = 8, dts = 7</div><div class="gmail_default">pts = 7, dts = 8</div><div class="gmail_default">pts = 10, dts = 9</div><div class="gmail_default">pts = 9, dts = 10</div><div class="gmail_default">pts = 12, dts = 11</div><div class="gmail_default">pts = 11, dts = 12</div><div class="gmail_default">pts = 14, dts = 13</div><div class="gmail_default">pts = 13, dts = 14</div><div class="gmail_default">pts = 16, dts = 15</div><div class="gmail_default">pts = 15, dts = 16</div><div class="gmail_default">pts = 18, dts = 17</div><div class="gmail_default">pts = 17, dts = 18</div><div class="gmail_default">pts = 20, dts = 19</div><div class="gmail_default">pts = 19, dts = 20</div><div class="gmail_default">pts = 22, dts = 21</div><div class="gmail_default">pts = 21, dts = 22</div><div class="gmail_default">pts = 24, dts = 23</div><div class="gmail_default">pts = 23, dts = 24</div><div class="gmail_default">pts = 26, dts = 25</div><div class="gmail_default"><br></div><div class="gmail_default">But when I use av_write_frame to write these packets, some error are returned.</div><div class="gmail_default"><br></div><div class="gmail_default">Checking the sourcecode I can see that compute_pkt_fields2 in libavformat/mux.c rejects some frames </div><div class="gmail_default"><br></div><div class="gmail_default"><br></div><div class="gmail_default"><div class="gmail_default">    if (pkt->dts != AV_NOPTS_VALUE && pkt->pts != AV_NOPTS_VALUE && <font color="#ff0000">pkt->pts < pkt->dts</font>) {</div><div class="gmail_default">        av_log(s, AV_LOG_ERROR,</div><div class="gmail_default">               "pts (%s) < dts (%s) in stream %d\n",</div><div class="gmail_default">               av_ts2str(pkt->pts), av_ts2str(pkt->dts),</div><div class="gmail_default">               st->index);</div><div class="gmail_default">        return AVERROR(EINVAL);</div><div class="gmail_default">    }</div><div><br></div><div>Can someone give any suggestion how to do in this case?</div><div><br></div><div>Thanks</div></div></div></div>