1. 24 Apr, 2017 1 commit
  2. 18 Apr, 2017 2 commits
  3. 17 Apr, 2017 1 commit
  4. 15 Apr, 2017 1 commit
    • Aaron Levinson's avatar
      avdevice/decklink: remove pthread dependency · 9e86a618
      Aaron Levinson authored
      Purpose: avdevice/decklink: Removed pthread dependency by replacing
      semaphore used in code appropriately.  Doing so makes it easier to
      build ffmpeg using Visual C++ on Windows.  This is a contination of
      Kyle Schwarz's "avdevice/decklink: Remove pthread dependency" patch
      that is available at https://patchwork.ffmpeg.org/patch/2654/ .  This
      patch wasn't accepted, and as far as I can tell, there was no
      follow-up after it was rejected.
      
      Notes: Used Visual Studio 2015 (with update 3) for this.
      
      Comments:
      
      -- configure: Eliminated pthreads dependency for decklink_indev_deps
         and decklink_outdev_deps and replaced with threads dependency
      
      -- libavdevice/decklink_common.cpp / .h:
      a) Eliminated semaphore and replaced with a combination of a mutex,
         condition variable, and a counter (frames_buffer_available_spots).
      b) Removed include of pthread.h and semaphore.h and now using
         libavutil/thread.h instead.
      
      -- libavdevice/decklink_dec.cpp: Eliminated include of pthread.h and
         semaphore.h.
      
      -- libavdevice/decklink_enc.cpp:
      a) Eliminated include of pthread.h and semaphore.h.
      b) Replaced use of semaphore with the equivalent using a combination
         of a mutex, condition variable, and a counter
         (frames_buffer_available_spots).  In theory, libavutil/thread.h and
         the associated code could have been modified instead to add
         cross-platform implementations of the sem_ functions, but an
         inspection of the ffmpeg source base indicates that there are only
         two cases in which semaphores are used (including this one that was
         replaced), so it was deemed to not be worth the effort.
      Signed-off-by: 's avatarMarton Balint <cus@passwd.hu>
      9e86a618
  5. 13 Apr, 2017 2 commits
    • Aaron Levinson's avatar
      Support building C++ files with MSVC · bceb3d0f
      Aaron Levinson authored
      Made appropriate changes to be able to successfully
      build C++ files using a Visual C++ build on Windows.
      
      Based on an earlier patch by Kyle Schwarz.
      
      Comments:
      
      -- compat/w32pthreads.h: Made appropriate changes to w32pthreads.h to
         get it to build when it is being included in a C++ file and built
         with Visual C++.  This is mostly a copy of Kyle Schwarz's patch as
         described above.
      
      -- configure:
      a) Now calling set_ccvars CXX to cause the various CXX_ variables to
         be setup properly.  For example, with MSVC (Microsoft Visual C++),
         this causes CXX_O to be set to -Fo$@ instead of using the default
         value.  The default value does not work with Visual C++.  This
         change will also have the impact of correcting CXX_O (and possibly
         CXX_C) for other compilers, although this is really only relevant
         for the Intel compiler, in addition to MSVC.
      b) Now using cl for the C++ compiler for the MSVC toolchain.  This is
         currently only relevant for building the
         Blackmagic/Decklink-related files under avdevice.
      Signed-off-by: 's avatarHendrik Leppkes <h.leppkes@gmail.com>
      bceb3d0f
    • James Almer's avatar
      configure: add missing golomb dependency to hevcparse · 0dd27773
      James Almer authored
      Based on a dependency addition from fbec58da
      0dd27773
  6. 12 Apr, 2017 1 commit
  7. 09 Apr, 2017 1 commit
  8. 01 Apr, 2017 1 commit
  9. 31 Mar, 2017 1 commit
  10. 28 Mar, 2017 1 commit
  11. 27 Mar, 2017 1 commit
  12. 25 Mar, 2017 1 commit
  13. 20 Mar, 2017 5 commits
  14. 16 Mar, 2017 1 commit
  15. 15 Mar, 2017 1 commit
  16. 12 Mar, 2017 1 commit
  17. 08 Mar, 2017 1 commit
  18. 23 Feb, 2017 2 commits
  19. 16 Feb, 2017 2 commits
  20. 14 Feb, 2017 2 commits
    • Rostislav Pehlivanov's avatar
      opus: add a native Opus encoder · 5f47c85e
      Rostislav Pehlivanov authored
      This marks the first time anyone has written an Opus encoder without
      using any libopus code. The aim of the encoder is to prove how far
      the format can go by writing the craziest encoder for it.
      
      Right now the encoder's basic, it only supports CBR encoding, however
      internally every single feature the CELT layer has is implemented
      (except the pitch pre-filter which needs to work well with the rest of
      whatever gets implemented). Psychoacoustic and rate control systems are
      under development.
      
      The encoder takes in frames of 120 samples and depending on the value of
      opus_delay the plan is to use the extra buffered frames as lookahead.
      Right now the encoder will pick the nearest largest legal frame size and
      won't use the lookahead, but that'll change once there's a
      psychoacoustic system.
      
      Even though its a pretty basic encoder its already outperforming
      any other native encoder FFmpeg has by a huge amount.
      
      The PVQ search algorithm is faster and more accurate than libopus's
      algorithm so the encoder's performance is close to that of libopus
      at zero complexity (libopus has more SIMD).
      The algorithm might be ported to libopus or other codecs using PVQ in
      the future.
      
      The encoder still has a few minor bugs, like desyncs at ultra low
      bitrates (below 9kbps with 20ms frames).
      Signed-off-by: 's avatarRostislav Pehlivanov <atomnuker@gmail.com>
      5f47c85e
    • Rostislav Pehlivanov's avatar
      imdct15: rename to mdct15 and add a forward transform · d2119f62
      Rostislav Pehlivanov authored
      Handles strides (needed for Opus transients), does pre-reindexing and folding
      without needing a copy.
      Signed-off-by: 's avatarRostislav Pehlivanov <atomnuker@gmail.com>
      d2119f62
  21. 08 Feb, 2017 2 commits
  22. 06 Feb, 2017 1 commit
  23. 04 Feb, 2017 2 commits
  24. 17 Jan, 2017 2 commits
  25. 16 Jan, 2017 1 commit
  26. 13 Jan, 2017 3 commits