1. 28 5月, 2020 1 次提交
  2. 27 5月, 2020 2 次提交
  3. 14 5月, 2020 2 次提交
  4. 23 4月, 2020 1 次提交
  5. 22 4月, 2020 5 次提交
  6. 23 12月, 2019 1 次提交
  7. 13 12月, 2019 1 次提交
  8. 03 12月, 2019 5 次提交
  9. 04 11月, 2019 1 次提交
  10. 03 9月, 2019 1 次提交
    • M
      avformat/mpegtsenc: fix flushing of audio packets · f4eb7d84
      Marton Balint 提交于
      7d097a0f had the same purpose as
      3700f655 but the former is much simpler, so
      let's remove the latter.
      
      Unfortunately both checks were wrong, because in order to make sure DTS > PCR
      we have to give us some headroom, so instead of using a dts_difference <
      max_delay check let's use a dts_difference < max_delay/2 check.
      
      Fixes DTS < PCR errors with this command line:
      
      ./ffmpeg -loglevel verbose -y -f lavfi -i \
        "testsrc=s=64x64:d=20,split=2[out0][tmp1];[tmp1]vflip[out1];sine=d=20,asetnsamples=1000[out2]" \
        -flags +bitexact -fflags +bitexact -sws_flags +accurate_rnd+bitexact  \
        -codec:v libx264 -codec:a mp2 -b:a 32k -pix_fmt yuv420p \
        -map '0:v:0' \
        -map '0:v:1' \
        -map '0:a:0'  \
        -muxrate 800000 \
        -program st=0:st=2 -program st=1:st=2 -program st=2 -program st=0 -f mpegts out1.ts
      Signed-off-by: NMarton Balint <cus@passwd.hu>
      f4eb7d84
  11. 24 8月, 2019 4 次提交
  12. 15 8月, 2019 6 次提交
    • M
      avformat/mpegtsenc: remove deprecated resend_headers option · 59744637
      Marton Balint 提交于
      Deprecated since 2014.
      Signed-off-by: NMarton Balint <cus@passwd.hu>
      59744637
    • M
      avformat/mpegtsenc: fix PCR generation intervals · 88ac76be
      Marton Balint 提交于
      PCR generation was based on counting packets for both CBR and VBR streams.
      Couting packets might have worked for CBR streams (when muxrate was specified)
      but it only took into account the packets of a service (or the packets of the
      PCR stream lately), so even that was problematic for multi program streams.
      
      The new code works on actual timestamps for both CBR and VBR streams. For VBR
      streams the behaviour of the old code is simulated by selecting a PCR interval
      which is the highest multiple of the frame duration but still less than 100 ms.
      
      It should be trivial to add support for setting the PCR interval for VBR
      streams as well in a later patch.
      
      The accuracy of PCR packets for CBR streams was greatly improved by preemtively
      sending them at PCR intervals even if sending the payload of another stream
      is in progress.
      
      This may fix these tickets:
      - #5750
      - #7524
      Signed-off-by: NMarton Balint <cus@passwd.hu>
      88ac76be
    • M
      avformat/mpegtsenc: use increasing numbers in default service names · a4d984ad
      Marton Balint 提交于
      Maybe we should use service ID instead of increasing numbers?
      Signed-off-by: NMarton Balint <cus@passwd.hu>
      a4d984ad
    • M
    • M
      avformat/mpegtsenc: factorize setting up services · 47ea654b
      Marton Balint 提交于
      Signed-off-by: NMarton Balint <cus@passwd.hu>
      47ea654b
    • M
      avformat/mpegtsenc: fix incorrect PCR selection with multiple programs · d770e0f4
      Marton Balint 提交于
      The MPEG-TS muxer had a serious bug related to the use of multiple programs:
      in that case, the PCR pid selection was incomplete for all services except one.
      This patch solves this problem and selects a stream to become PCR for each
      service, preferably the video stream.
      
      This patch also moves pcr calculation attributes to MpegTSWriteStream from
      MpegTSService. PCR is a per-stream and not per-service thing, so it was
      misleading to refer to it as something that is per-service.
      
      Also remove *service from MpegTSWriteStream because a stream can belong to
      multiple services so it was misleading to select one for each stream.
      
      You can check the result with this example command:
      
      ./ffmpeg -loglevel verbose -y -f lavfi -i \
        "testsrc=s=64x64:d=10,split=2[out0][tmp1];[tmp1]vflip[out1];sine=d=10,asetnsamples=1152[out2]" \
        -flags +bitexact -fflags +bitexact -sws_flags +accurate_rnd+bitexact  \
        -codec:v libx264 -codec:a mp2 -pix_fmt yuv420p \
        -map '0:v:0' \
        -map '0:v:1' \
        -map '0:a:0'  \
        -program st=0:st=2 -program st=1:st=2 -program st=2 -program st=0 -f mpegts out.ts
      
      You should now see this:
      
      [mpegts @ 0x37505c0] service 1 using PCR in pid=256
      [mpegts @ 0x37505c0] service 2 using PCR in pid=257
      [mpegts @ 0x37505c0] service 3 using PCR in pid=258
      [mpegts @ 0x37505c0] service 4 using PCR in pid=256
      
      Fixes ticket #8039.
      
      v2: a video is stream is preferred if there are no programs, just like before
      the patch.
      Signed-off-by: NMarton Balint <cus@passwd.hu>
      d770e0f4
  13. 02 3月, 2019 2 次提交
  14. 22 2月, 2019 1 次提交
  15. 08 12月, 2018 1 次提交
  16. 13 5月, 2018 1 次提交
  17. 29 1月, 2018 1 次提交
  18. 07 7月, 2017 1 次提交
  19. 29 3月, 2017 1 次提交
  20. 17 3月, 2017 1 次提交
  21. 18 1月, 2017 1 次提交