<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hello</p>
    [I'm making it a new thread]<br>
    I've set thread_count in decoder's AVCodecContext and had a
    significant decoding speedup with some files but now some other mp4
    files fail with:
    <br>
    <br>
    <pre>[libx264 @ 0x3751e20] invalid DTS: PTS is less than DTS
[mp4 @ 0x35a05e0] pts (1548) < dts (2408) in stream 1
</pre>
    <br>
    I'm using a modified transcoding.c example that handles my sample
    mp4 file correctly with thread_count=1 and fails with 0 , >1 or
    "auto".
    <br>
    <br>
    Time stamps are as follows:<br>
    <pre><code>[INFO]Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'kanal_detka_lodz.mp4':</code></pre>
    <pre><code>[INFO]  Metadata:</code></pre>
    <pre><code>[INFO]    major_brand     : isom</code></pre>
    <pre><code>[INFO]    minor_version   : 512</code></pre>
    <pre><code>[INFO]    compatible_brands: isomiso2mp41</code></pre>
    <pre><code>[INFO]    creation_time   : 2016-09-05 12:53:02</code></pre>
    <pre><code>[INFO]  Duration: 00:02:52.03, start: 0.000000, bitrate: 5826 kb/s</code></pre>
    <pre><code>[INFO]    Stream #0:0(und), 24, 1/48000: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 123 kb/s (default)</code></pre>
    <pre><code>[INFO]    Metadata:</code></pre>
    <pre><code>[INFO]      creation_time   : 2016-09-05 12:53:02</code></pre>
    <pre><code>[INFO]    Stream #0:1(und), 1, 1/1000: Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(left), 1280x720 [SAR 1:1 DAR 16:9], 0/1, 5700 kb/s, 49.99 fps, 50 tbr, 1k tbn, 99.99 tbc (default)</code></pre>
    <pre><code>[INFO]Output #0, mp4, to '/tmp/out.mp4':</code></pre>
    <pre><code>[INFO]    Stream #0:0, 0, 86/8599: Video: h264 (libx264), 1 reference frame, yuv420p, 128x72 [SAR 1:1 DAR 16:9], 0/1, q=1-51, 256 kb/s, 49.99 fps, 99.99 tbn, 99.99 tbc</code></pre>
    <pre><code>[INFO]read frame pts: 0</code></pre>
    <pre><code>[DEBU]encoding frame pts: 0</code></pre>
    <pre><code>[INFO]read frame pts: 2</code></pre>
    <pre><code>[DEBU]encoding frame pts: 2</code></pre>
    <pre><code>[INFO]read frame pts: 4</code></pre>
    <pre><code>[DEBU]encoding frame pts: 4</code></pre>
    <pre><code>[INFO]read frame pts: 6</code></pre>
    <pre><code>[DEBU]encoding frame pts: 6</code></pre>
    <pre><code>[INFO]read frame pts: 8</code></pre>
    <pre><code>[DEBU]encoding frame pts: 8</code></pre>
    <pre><code>[INFO]read frame pts: 10</code></pre>
    <pre><code>[DEBU]encoding frame pts: 10</code></pre>
    <pre><code>[INFO]read frame pts: 12</code></pre>
    <pre><code>[DEBU]encoding frame pts: 12</code></pre>
    <pre><code>[INFO]read frame pts: 14</code></pre>
    <pre><code>[DEBU]encoding frame pts: 14</code></pre>
    <pre><code>[INFO]read frame pts: 16</code></pre>
    <pre><code>[DEBU]encoding frame pts: 16</code></pre>
    <pre><code>[INFO]read frame pts: 9</code></pre>
    <pre><code>[DEBU]encoding frame pts: 9</code></pre>
    <pre><code>[WARN][libx264] non-strictly-monotonic PTS</code></pre>
    <pre><code>[INFO]read frame pts: 10</code></pre>
    <pre><code>[DEBU]encoding frame pts: 10</code></pre>
    <pre><code>[INFO]read frame pts: 11</code></pre>
    <pre><code>[DEBU]encoding frame pts: 11</code></pre>
    <pre><code>[INFO]read frame pts: 12</code></pre>
    <pre><code>[DEBU]encoding frame pts: 12</code></pre>
    <pre><code>[INFO]read frame pts: 13</code></pre>
    <pre><code>[DEBU]encoding frame pts: 13</code></pre>
    <pre><code>[INFO]read frame pts: 14</code></pre>
    <pre><code>[DEBU]encoding frame pts: 14</code></pre>
    <pre><code>[INFO]read frame pts: 15</code></pre>
    <pre><code>[DEBU]encoding frame pts: 15</code></pre>
    <pre><code>[INFO]read frame pts: 16</code></pre>
    <pre><code>[DEBU]encoding frame pts: 16</code></pre>
    <pre><code>[INFO]read frame pts: 17</code></pre>
    <pre><code>[DEBU]encoding frame pts: 17</code></pre>
    <pre><code>[INFO]read frame pts: 18</code></pre>
    <pre><code>[DEBU]encoding frame pts: 18</code></pre>
    <pre><code>[INFO]read frame pts: 19</code></pre>
    <pre><code>[DEBU]encoding frame pts: 19</code></pre>
    <pre><code>[INFO]read frame pts: 20</code></pre>
    <pre><code>[DEBU]encoding frame pts: 20</code></pre>
    <pre><code>[INFO]read frame pts: 21</code></pre>
    <pre><code>[DEBU]encoding frame pts: 21</code></pre>
    <pre><code>[INFO]read frame pts: 22</code></pre>
    <pre><code>[DEBU]encoding frame pts: 22</code></pre>
    <pre><code>[INFO]read frame pts: 23</code></pre>
    <pre><code>[DEBU]encoding frame pts: 23</code></pre>
    <pre><code>[INFO]read frame pts: 24</code></pre>
    <pre><code>[DEBU]encoding frame pts: 24</code></pre>
    <pre><code>[INFO]read frame pts: 25</code></pre>
    <pre><code>[DEBU]encoding frame pts: 25</code></pre>
    <pre><code>[INFO]read frame pts: 26</code></pre>
    <pre><code>[DEBU]encoding frame pts: 26</code></pre>
    <pre><code>[INFO]read frame pts: 27</code></pre>
    <pre><code>[DEBU]encoding frame pts: 27</code></pre>
    <pre><code>[INFO]read frame pts: 28</code></pre>
    <pre><code>[DEBU]encoding frame pts: 28</code></pre>
    <pre><code>[INFO]read frame pts: 29</code></pre>
    <pre><code>[DEBU]encoding frame pts: 29</code></pre>
    <pre><code>[INFO]read frame pts: 30</code></pre>
    <pre><code>[DEBU]encoding frame pts: 30</code></pre>
    <pre><code>[INFO]read frame pts: 31</code></pre>
    <pre><code>[DEBU]encoding frame pts: 31</code></pre>
    <pre><code>[INFO]read frame pts: 32</code></pre>
    <pre><code>[DEBU]encoding frame pts: 32</code></pre>
    <pre><code>[INFO]read frame pts: 33</code></pre>
    <pre><code>[DEBU]encoding frame pts: 33</code></pre>
    <pre><code>[INFO]read frame pts: 34</code></pre>
    <pre><code>[DEBU]encoding frame pts: 34</code></pre>
    <pre><code>[INFO]read frame pts: 35</code></pre>
    <pre><code>[DEBU]encoding frame pts: 35</code></pre>
    <pre><code>[INFO]read frame pts: 36</code></pre>
    <pre><code>[DEBU]encoding frame pts: 36</code></pre>
    <pre><code>[INFO]read frame pts: 37</code></pre>
    <pre><code>[DEBU]encoding frame pts: 37</code></pre>
    <pre><code>[INFO]read frame pts: 38</code></pre>
    <pre><code>[DEBU]encoding frame pts: 38</code></pre>
    <pre><code>[INFO]read frame pts: 39</code></pre>
    <pre><code>[DEBU]encoding frame pts: 39</code></pre>
    <pre><code>[INFO]read frame pts: 40</code></pre>
    <pre><code>[DEBU]encoding frame pts: 40</code></pre>
    <pre><code>[INFO]read frame pts: 41</code></pre>
    <pre><code>[DEBU]encoding frame pts: 41</code></pre>
    <pre><code>[INFO]read frame pts: 42</code></pre>
    <pre><code>[DEBU]encoding frame pts: 42</code></pre>
    <pre><code>[INFO]read frame pts: 43</code></pre>
    <pre><code>[DEBU]encoding frame pts: 43</code></pre>
    <pre><code>[INFO]read frame pts: 44</code></pre>
    <pre><code>[DEBU]encoding frame pts: 44</code></pre>
    <pre><code>[INFO]read frame pts: 45</code></pre>
    <pre><code>[DEBU]encoding frame pts: 45</code></pre>
    <pre><code>[INFO]read frame pts: 46</code></pre>
    <pre><code>[DEBU]encoding frame pts: 46</code></pre>
    <pre><code>[INFO]read frame pts: 47</code></pre>
    <pre><code>[DEBU]encoding frame pts: 47</code></pre>
    <pre><code>[INFO]read frame pts: 48</code></pre>
    <pre><code>[DEBU]encoding frame pts: 48</code></pre>
    <pre><code>[INFO]read frame pts: 49</code></pre>
    <pre><code>[DEBU]encoding frame pts: 49</code></pre>
    <pre><code>[INFO]read frame pts: 50</code></pre>
    <pre><code>[DEBU]encoding frame pts: 50</code></pre>
    <pre><code>[INFO]read frame pts: 51</code></pre>
    <pre><code>[DEBU]encoding frame pts: 51</code></pre>
    <pre><code>[INFO]read frame pts: 52</code></pre>
    <pre><code>[DEBU]encoding frame pts: 52</code></pre>
    <pre><code>[INFO]read frame pts: 53</code></pre>
    <pre><code>[DEBU]encoding frame pts: 53</code></pre>
    <pre><code>[DEBU][libx264] frame=   0 QP=34.22 NAL=3 Slice:I Poc:0   I:40   P:0    SKIP:0    size=375 bytes</code></pre>
    <pre><code>[DEBU]Writing video packet (pts: 0, dts: -688)</code></pre>
    <pre><code>[INFO]read frame pts: 54</code></pre>
    <pre><code>[DEBU]encoding frame pts: 54</code></pre>
    <pre><code>[DEBU][libx264] frame=   1 QP=33.00 NAL=2 Slice:P Poc:6   I:0    P:0    SKIP:40   size=12 bytes</code></pre>
    <pre><code>[DEBU]Writing video packet (pts: 1032, dts: -344)</code></pre>
    <pre><code>[INFO]read frame pts: 55</code></pre>
    <pre><code>[DEBU]encoding frame pts: 55</code></pre>
    <pre><code>[DEBU][libx264] frame=   2 QP=37.00 NAL=2 Slice:B Poc:2   I:0    P:0    SKIP:40   size=12 bytes</code></pre>
    <pre><code>[DEBU]Writing video packet (pts: 344, dts: 0)</code></pre>
    <pre><code>[INFO]read frame pts: 56</code></pre>
    <pre><code>[DEBU]encoding frame pts: 56</code></pre>
    <pre><code>[DEBU][libx264] frame=   3 QP=39.00 NAL=0 Slice:B Poc:4   I:0    P:0    SKIP:40   size=12 bytes</code></pre>
    <pre><code>[DEBU]Writing video packet (pts: 688, dts: 344)</code></pre>
    <pre><code>[INFO]read frame pts: 57</code></pre>
    <pre><code>[DEBU]encoding frame pts: 57</code></pre>
    <pre><code>[DEBU][libx264] frame=   4 QP=35.90 NAL=2 Slice:P Poc:10  I:0    P:2    SKIP:38   size=25 bytes</code></pre>
    <pre><code>[DEBU]Writing video packet (pts: 1720, dts: 688)</code></pre>
    <pre><code>[INFO]read frame pts: 58</code></pre>
    <pre><code>[DEBU]encoding frame pts: 58</code></pre>
    <pre><code>[DEBU][libx264] frame=   5 QP=39.00 NAL=0 Slice:B Poc:8   I:0    P:0    SKIP:40   size=12 bytes</code></pre>
    <pre><code>[DEBU]Writing video packet (pts: 1376, dts: 1032)</code></pre>
    <pre><code>[INFO]read frame pts: 59</code></pre>
    <pre><code>[DEBU]encoding frame pts: 59</code></pre>
    <pre><code>[DEBU][libx264] frame=   6 QP=33.00 NAL=2 Slice:P Poc:14  I:0    P:0    SKIP:40   size=18 bytes</code></pre>
    <pre><code>[DEBU]Writing video packet (pts: 2408, dts: 1376)</code></pre>
    <pre><code>[INFO]read frame pts: 60</code></pre>
    <pre><code>[DEBU]encoding frame pts: 60</code></pre>
    <pre><code>[DEBU][libx264] frame=   7 QP=38.00 NAL=0 Slice:B Poc:12  I:0    P:0    SKIP:40   size=12 bytes</code></pre>
    <pre><code>[DEBU]Writing video packet (pts: 2064, dts: 1720)</code></pre>
    <pre><code>[INFO]read frame pts: 61</code></pre>
    <pre><code>[DEBU]encoding frame pts: 61</code></pre>
    <pre><code>[WARN][libx264] invalid DTS: PTS is less than DTS</code></pre>
    <pre><code>[DEBU][libx264] frame=   8 QP=33.00 NAL=2 Slice:P Poc:22  I:0    P:0    SKIP:40   size=17 bytes</code></pre>
    <pre><code>[DEBU]Writing video packet (pts: 1892, dts: 2064)</code></pre>
    <pre><code>[ERRO][mp4] pts (1892) < dts (2064) in stream 0</code></pre>
    <pre><code>[ERRO]Writing packet failed: Invalid argument</code></pre>
    <br>
    I can also send a copy of that file to this list.<br>
    <br>
    What has to be taken into consideration when using multithreaded
    decoding?
    <br>
    <br>
    --<br>
    Regards<br>
    Przemysław Sobala<br>
    <br>
  </body>
</html>