1. 26 Dec, 2017 6 commits
    • wm4's avatar
      h264: add AVOption to set x264_build default · cf57cb3a
      wm4 authored
      This provides a generic way to the API user to deal with files that
      either lack this SEI, or which have the SEI only in packets not passed
      to the decoder (such as the common case of the SEI being in the very
      firsat video packet, but decoding is started somewhere in the middle of
      the file). Bugs like 840b41b2 make this
      somewhat of a necessity.
      
      This intentionally uses the version in the SEI instead, if any is found.
      cf57cb3a
    • wm4's avatar
      lavc: remove complex debug code around avcodec init locking · 4ed66517
      wm4 authored
      This is just a lot of complicated and confusing code that had no purpose
      anymore.
      
      Also, the functions return values were checked only sometimes. Locking
      shouldn't fail anyway, so remove the return values. Barely any other
      pthread lock calls check the return value (including more important code
      that is more likely to fail horribly if locking fails).
      
      It could be argued that it might be helpful in some debugging
      situations, or when the user built FFmpeg without thread support against
      all good advice.
      
      But there are dummy atomics too, so the atomic check won't help with
      ensuring correctness absolutely. You gain very little.
      
      Also, for debugging, you can just raise the ASSERT_LEVEL, and then
      libavutil/thread.h will redefine the locking functions to explicitly
      check the return values.
      4ed66517
    • wm4's avatar
      lavc, lavf: move avformat static mutex from avcodec to avformat · 86a13bf2
      wm4 authored
      It's completely absurd that libavcodec would care about libavformat
      locking, but it was there because the lock manager was in libavcodec.
      
      This is more stright forward. Changes ABI, but we don't require ABI
      compatibility currently.
      86a13bf2
    • wm4's avatar
      ffplay: drop lock manager use · e24f192a
      wm4 authored
      Deprecated and useless.
      e24f192a
    • wm4's avatar
      lavc: replace and deprecate the lock manager · a04c2c70
      wm4 authored
      Use static mutexes instead of requiring a lock manager. The behavior
      should be roughly the same before and after this change for API users
      which did not set the lock manager at all (except that a minor memory
      leak disappears).
      a04c2c70
    • wm4's avatar
      w32pthreads: always use Vista+ API, drop XP support · 9b121dfc
      wm4 authored
      This removes the XP compatibility code, and switches entirely to SWR
      locks, which are available starting at Windows Vista.
      
      This removes CRITICAL_SECTION use, which allows us to add
      PTHREAD_MUTEX_INITIALIZER, which will be useful later.
      
      Windows XP is hereby not a supported build target anymore. It was
      decided in a project vote that this is OK.
      9b121dfc
  2. 25 Dec, 2017 9 commits
  3. 24 Dec, 2017 12 commits
  4. 23 Dec, 2017 9 commits
  5. 22 Dec, 2017 4 commits
    • Aman Gupta's avatar
      avformat/hls: add http_multiple option · 1f0eaa02
      Aman Gupta authored
      This improves network throughput of the hls demuxer by avoiding
      the latency introduced by downloading segments one at a time.
      
      The problem is particularly noticable over high-latency network
      connections: for instance, if RTT is 250ms, there will a 250ms idle
      period between when one segment response is read and the next one
      starts.
      
      The obvious solution to this is to use HTTP pipelining, where a
      second request can be sent (on the persistent http/1.1 connection)
      before the first response is fully read. Unfortunately the way the
      http protocol is implemented in avformat makes implementing pipleining
      very complex.
      
      Instead, this commit simulates pipelining using two separate persistent
      http connections. This has the advantage of working independently of
      the http_persistent option, and can be used with http/1.0 servers as
      well. The pair of connections is swapped every time a new segment starts
      downloading, and a request for the next segment is sent on the secondary
      connection right away. This means the second response will be ready and
      waiting by the time the current response is fully read.
      Signed-off-by: 's avatarAman Gupta <aman@tmm1.net>
      Signed-off-by: 's avatarAnssi Hannula <anssi.hannula@iki.fi>
      1f0eaa02
    • Aman Gupta's avatar
      avformat/hls: allow open_input to be re-used · 03765aa6
      Aman Gupta authored
      Signed-off-by: 's avatarAman Gupta <aman@tmm1.net>
      Signed-off-by: 's avatarAnssi Hannula <anssi.hannula@iki.fi>
      03765aa6
    • Aman Gupta's avatar
      avformat/hls: add http_persistent option · b7d6c0cd
      Aman Gupta authored
      This teaches the HLS demuxer to use the HTTP protocols
      multiple_requests=1 option, to take advantage of "Connection:
      Keep-Alive" when downloading playlists and segments from the HLS server.
      
      With the new option, you can avoid TCP connection and TLS negotiation
      overhead, which is particularly beneficial when streaming via a
      high-latency internet connection.
      
      Similar to the http_persistent option recently implemented in hlsenc.c
      Signed-off-by: 's avatarAman Gupta <aman@tmm1.net>
      Signed-off-by: 's avatarAnssi Hannula <anssi.hannula@iki.fi>
      b7d6c0cd
    • Aman Gupta's avatar
      avformat/http: add "Opening" info logging to ff_http_do_new_request · 9395e44b
      Aman Gupta authored
      This mimics logging that was added in 53e0d5d7 for security
      purposes.
      Signed-off-by: 's avatarAman Gupta <aman@tmm1.net>
      Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
      9395e44b