diff --git a/Library/TeamTalkLib/CMakeLists.txt b/Library/TeamTalkLib/CMakeLists.txt index 4b5091c0a4..ddf4f2e591 100644 --- a/Library/TeamTalkLib/CMakeLists.txt +++ b/Library/TeamTalkLib/CMakeLists.txt @@ -47,7 +47,7 @@ endif() if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") if (NOT CMAKE_OSX_DEPLOYMENT_TARGET) - set (CMAKE_OSX_DEPLOYMENT_TARGET 10.9) + set (CMAKE_OSX_DEPLOYMENT_TARGET 10.13) message(WARNING "No deployment target specified. Defaulting to ${CMAKE_OSX_DEPLOYMENT_TARGET}") endif() @@ -59,7 +59,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") elseif (${CMAKE_SYSTEM_NAME} MATCHES "iOS") if (NOT CMAKE_OSX_DEPLOYMENT_TARGET) - set (CMAKE_OSX_DEPLOYMENT_TARGET 7.0) + set (CMAKE_OSX_DEPLOYMENT_TARGET 8.0) message(WARNING "No deployment target specified. Defaulting to ${CMAKE_OSX_DEPLOYMENT_TARGET}") endif() list (APPEND COMPILE_FLAGS -fembed-bitcode) diff --git a/Library/TeamTalkLib/avstream/AVFCapture.h b/Library/TeamTalkLib/avstream/AVFCapture.h index 028360fb8e..efa8c8ac73 100644 --- a/Library/TeamTalkLib/avstream/AVFCapture.h +++ b/Library/TeamTalkLib/avstream/AVFCapture.h @@ -28,7 +28,7 @@ namespace vidcap { - class AVFCapture : public FFMpeg3Capture + class AVFCapture : public FFmpegCapture { protected: ffmpegvideoinput_t createStreamer(const VidCapDevice& viddevice, diff --git a/Library/TeamTalkLib/avstream/AVFVideoInput.cpp b/Library/TeamTalkLib/avstream/AVFVideoInput.cpp index 78c3dfabde..28d0db178c 100644 --- a/Library/TeamTalkLib/avstream/AVFVideoInput.cpp +++ b/Library/TeamTalkLib/avstream/AVFVideoInput.cpp @@ -62,7 +62,7 @@ bool AVFVideoInput::SetupInput(AVInputFormat *iformat, av_dict_set(&options, "pixel_format", "0rgb", 0); av_dict_set_int(&options, "video_device_index", atoi(m_dev.deviceid.c_str()), 0); - return FFMpegVideoInput::SetupInput(iformat, options, fmt_ctx, + return FFmpegVideoInput::SetupInput(iformat, options, fmt_ctx, aud_dec_ctx, vid_dec_ctx, audio_stream_index, video_stream_index); diff --git a/Library/TeamTalkLib/avstream/AVFVideoInput.h b/Library/TeamTalkLib/avstream/AVFVideoInput.h index 14b8f0d4c6..73dd221dc2 100644 --- a/Library/TeamTalkLib/avstream/AVFVideoInput.h +++ b/Library/TeamTalkLib/avstream/AVFVideoInput.h @@ -21,19 +21,19 @@ * */ -#include "FFMpeg3Capture.h" +#include "FFmpegCapture.h" namespace vidcap { - class AVFVideoInput : public FFMpegVideoInput + class AVFVideoInput : public FFmpegVideoInput { public: AVFVideoInput(const VidCapDevice& viddevice, const media::VideoFormat& fmt) - : FFMpegVideoInput(viddevice, fmt) { + : FFmpegVideoInput(viddevice, fmt) { } - // FFMpegStreamer override + // FFmpegStreamer override bool SetupInput(struct AVInputFormat *iformat, struct AVDictionary *options, struct AVFormatContext*& fmt_ctx, diff --git a/Library/TeamTalkLib/avstream/AudioResampler.cpp b/Library/TeamTalkLib/avstream/AudioResampler.cpp index f1a32c5526..67657268b2 100644 --- a/Library/TeamTalkLib/avstream/AudioResampler.cpp +++ b/Library/TeamTalkLib/avstream/AudioResampler.cpp @@ -30,7 +30,7 @@ #if defined(ENABLE_DMORESAMPLER) #include "DMOResampler.h" #elif defined(ENABLE_FFMPEG3) -#include "FFMpeg3Resampler.h" +#include "FFmpegResampler.h" #endif #include diff --git a/Library/TeamTalkLib/avstream/FFMpeg3Capture.cpp b/Library/TeamTalkLib/avstream/FFmpegCapture.cpp similarity index 71% rename from Library/TeamTalkLib/avstream/FFMpeg3Capture.cpp rename to Library/TeamTalkLib/avstream/FFmpegCapture.cpp index 8d785d69c9..26ba4ed4a0 100644 --- a/Library/TeamTalkLib/avstream/FFMpeg3Capture.cpp +++ b/Library/TeamTalkLib/avstream/FFmpegCapture.cpp @@ -21,7 +21,7 @@ * */ -#include "FFMpeg3Capture.h" +#include "FFmpegCapture.h" #include #include @@ -30,23 +30,23 @@ using namespace std::placeholders; using namespace vidcap; -FFMpegVideoInput::FFMpegVideoInput(const VidCapDevice& viddevice, +FFmpegVideoInput::FFmpegVideoInput(const VidCapDevice& viddevice, const media::VideoFormat& fmt) - : FFMpegStreamer(viddevice.deviceid, MediaStreamOutput(fmt)), m_dev(viddevice), m_vidfmt(fmt) + : FFmpegStreamer(viddevice.deviceid, MediaStreamOutput(fmt)), m_dev(viddevice), m_vidfmt(fmt) { } -FFMpeg3Capture::FFMpeg3Capture() +FFmpegCapture::FFmpegCapture() { InitAVConv(); } -FFMpeg3Capture::~FFMpeg3Capture() +FFmpegCapture::~FFmpegCapture() { } -bool FFMpeg3Capture::InitVideoCapture(const ACE_TString& deviceid, +bool FFmpegCapture::InitVideoCapture(const ACE_TString& deviceid, const media::VideoFormat& vidfmt) { vidcap_devices_t devs = GetDevices(); @@ -60,9 +60,9 @@ bool FFMpeg3Capture::InitVideoCapture(const ACE_TString& deviceid, ffmpegvideoinput_t streamer = createStreamer(dev, vidfmt); assert(streamer.get()); - streamer->RegisterVideoCallback(std::bind(&FFMpeg3Capture::MediaStreamVideoCallback, + streamer->RegisterVideoCallback(std::bind(&FFmpegCapture::MediaStreamVideoCallback, this, _1, _2), true); - streamer->RegisterStatusCallback(std::bind(&FFMpeg3Capture::MediaStreamStatusCallback, + streamer->RegisterStatusCallback(std::bind(&FFmpegCapture::MediaStreamStatusCallback, this, _1, _2), true); if (!streamer->Open()) return false; @@ -72,7 +72,7 @@ bool FFMpeg3Capture::InitVideoCapture(const ACE_TString& deviceid, return true; } -bool FFMpeg3Capture::StartVideoCapture() +bool FFmpegCapture::StartVideoCapture() { if (!m_videoinput) return false; @@ -86,20 +86,20 @@ bool FFMpeg3Capture::StartVideoCapture() return true; } -void FFMpeg3Capture::StopVideoCapture() +void FFmpegCapture::StopVideoCapture() { m_videoinput.reset(); m_callback = {}; } -media::VideoFormat FFMpeg3Capture::GetVideoCaptureFormat() +media::VideoFormat FFmpegCapture::GetVideoCaptureFormat() { if (m_videoinput) return m_videoinput->GetVideoFormat(); return media::VideoFormat(); } -bool FFMpeg3Capture::RegisterVideoFormat(VideoCaptureCallback callback, media::FourCC fcc) +bool FFmpegCapture::RegisterVideoFormat(VideoCaptureCallback callback, media::FourCC fcc) { if (m_videoinput && m_videoinput->GetVideoFormat().fourcc == fcc) { @@ -109,7 +109,7 @@ bool FFMpeg3Capture::RegisterVideoFormat(VideoCaptureCallback callback, media::F return false; } -void FFMpeg3Capture::UnregisterVideoFormat(media::FourCC fcc) +void FFmpegCapture::UnregisterVideoFormat(media::FourCC fcc) { if (m_videoinput && m_videoinput->GetVideoFormat().fourcc == fcc) { @@ -117,7 +117,7 @@ void FFMpeg3Capture::UnregisterVideoFormat(media::FourCC fcc) } } -bool FFMpeg3Capture::MediaStreamVideoCallback(media::VideoFrame& video_frame, +bool FFmpegCapture::MediaStreamVideoCallback(media::VideoFrame& video_frame, ACE_Message_Block* mb_video) { assert(m_videoinput.get()); @@ -128,7 +128,7 @@ bool FFMpeg3Capture::MediaStreamVideoCallback(media::VideoFrame& video_frame, return false; } -void FFMpeg3Capture::MediaStreamStatusCallback(const MediaFileProp& /*mfp*/, +void FFmpegCapture::MediaStreamStatusCallback(const MediaFileProp& /*mfp*/, MediaStreamStatus /*status*/) { } diff --git a/Library/TeamTalkLib/avstream/FFMpeg3Capture.h b/Library/TeamTalkLib/avstream/FFmpegCapture.h similarity index 87% rename from Library/TeamTalkLib/avstream/FFMpeg3Capture.h rename to Library/TeamTalkLib/avstream/FFmpegCapture.h index 9f2ded34f4..2941d18dc4 100644 --- a/Library/TeamTalkLib/avstream/FFMpeg3Capture.h +++ b/Library/TeamTalkLib/avstream/FFmpegCapture.h @@ -25,30 +25,30 @@ #define FFMPEG3CAPTURE_H #include "VideoCapture.h" -#include "FFMpeg3Streamer.h" +#include "FFmpegStreamer.h" #include #include namespace vidcap { - class FFMpegVideoInput : public FFMpegStreamer + class FFmpegVideoInput : public FFmpegStreamer { protected: VidCapDevice m_dev; media::VideoFormat m_vidfmt; public: - FFMpegVideoInput(const VidCapDevice& viddevice, + FFmpegVideoInput(const VidCapDevice& viddevice, const media::VideoFormat& fmt); virtual media::VideoFormat GetVideoFormat() = 0; bool IsSystemTime() const override { return true; } }; - typedef std::unique_ptr ffmpegvideoinput_t; + typedef std::unique_ptr ffmpegvideoinput_t; - class FFMpeg3Capture : public VideoCapture + class FFmpegCapture : public VideoCapture { protected: virtual ffmpegvideoinput_t createStreamer(const VidCapDevice& viddevice, @@ -57,8 +57,8 @@ namespace vidcap { VideoCaptureCallback m_callback; public: - FFMpeg3Capture(); - virtual ~FFMpeg3Capture(); + FFmpegCapture(); + virtual ~FFmpegCapture(); // VideoCapture interface bool InitVideoCapture(const ACE_TString& deviceid, diff --git a/Library/TeamTalkLib/avstream/FFMpeg3Resampler.cpp b/Library/TeamTalkLib/avstream/FFmpegResampler.cpp similarity index 96% rename from Library/TeamTalkLib/avstream/FFMpeg3Resampler.cpp rename to Library/TeamTalkLib/avstream/FFmpegResampler.cpp index 4963a9e48e..e90c1c90bf 100644 --- a/Library/TeamTalkLib/avstream/FFMpeg3Resampler.cpp +++ b/Library/TeamTalkLib/avstream/FFmpegResampler.cpp @@ -21,10 +21,10 @@ * */ -#include "FFMpeg3Resampler.h" +#include "FFmpegResampler.h" #include -#include "FFMpeg3Streamer.h" // need InitAVConv() +#include "FFmpegStreamer.h" // need InitAVConv() extern "C" { #include diff --git a/Library/TeamTalkLib/avstream/FFMpeg3Resampler.h b/Library/TeamTalkLib/avstream/FFmpegResampler.h similarity index 100% rename from Library/TeamTalkLib/avstream/FFMpeg3Resampler.h rename to Library/TeamTalkLib/avstream/FFmpegResampler.h diff --git a/Library/TeamTalkLib/avstream/FFMpeg3Streamer.cpp b/Library/TeamTalkLib/avstream/FFmpegStreamer.cpp similarity index 96% rename from Library/TeamTalkLib/avstream/FFMpeg3Streamer.cpp rename to Library/TeamTalkLib/avstream/FFmpegStreamer.cpp index 5bab3d563e..5741936d8b 100644 --- a/Library/TeamTalkLib/avstream/FFMpeg3Streamer.cpp +++ b/Library/TeamTalkLib/avstream/FFmpegStreamer.cpp @@ -21,7 +21,7 @@ * */ -#include "FFMpeg3Streamer.h" +#include "FFmpegStreamer.h" #include #include @@ -33,13 +33,13 @@ #include #endif -// FFMpeg type collides with AVFoundation, so keep in cpp file +// FFmpeg type collides with AVFoundation, so keep in cpp file extern "C" { #include #include #include #include -#include +#include #include #include #include @@ -86,13 +86,13 @@ bool OpenInput(const ACE_TString& filename, if (avformat_open_input(&fmt_ctx, filename.c_str(), iformat, &options) < 0) { - MYTRACE(ACE_TEXT("FFMpeg opened %s\n"), filename.c_str()); + MYTRACE(ACE_TEXT("FFmpeg opened %s\n"), filename.c_str()); goto cleanup; } if (avformat_find_stream_info(fmt_ctx, NULL) < 0) { - MYTRACE(ACE_TEXT("FFMpeg found stream info\n")); + MYTRACE(ACE_TEXT("FFmpeg found stream info\n")); goto cleanup; } @@ -215,19 +215,19 @@ bool GetAVMediaFileProp(const ACE_TString& filename, MediaFileProp& out_prop) } -FFMpegStreamer::FFMpegStreamer(const ACE_TString& filename, const MediaStreamOutput& out_prop) +FFmpegStreamer::FFmpegStreamer(const ACE_TString& filename, const MediaStreamOutput& out_prop) : MediaFileStreamer(filename, out_prop) { InitAVConv(); } -FFMpegStreamer::~FFMpegStreamer() +FFmpegStreamer::~FFmpegStreamer() { Close(); - MYTRACE(ACE_TEXT("~FFMpegStreamer()\n")); + MYTRACE(ACE_TEXT("~FFmpegStreamer()\n")); } -bool FFMpegStreamer::SetupInput(AVInputFormat *iformat, +bool FFmpegStreamer::SetupInput(AVInputFormat *iformat, AVDictionary *options, AVFormatContext*& fmt_ctx, AVCodecContext*& aud_dec_ctx, @@ -240,7 +240,7 @@ bool FFMpegStreamer::SetupInput(AVInputFormat *iformat, } -void FFMpegStreamer::Run() +void FFmpegStreamer::Run() { AVFormatContext *fmt_ctx = NULL; int audio_stream_index = -1, video_stream_index = -1; @@ -328,7 +328,7 @@ void FFMpegStreamer::Run() InitBuffers(); //wait for start signal - MYTRACE(ACE_TEXT("FFMpeg3 waiting to start streaming: %s\n"), m_media_in.filename.c_str()); + MYTRACE(ACE_TEXT("FFmpeg waiting to start streaming: %s\n"), m_media_in.filename.c_str()); m_run.get(start); if(!start) goto fail; @@ -528,7 +528,7 @@ void FFMpegStreamer::Run() if (m_statuscallback && !m_stop) m_statuscallback(m_media_in, MEDIASTREAM_FINISHED); - MYTRACE(ACE_TEXT("FFMpeg3 finished streaming: %s\n"), m_media_in.filename.c_str()); + MYTRACE(ACE_TEXT("FFmpeg finished streaming: %s\n"), m_media_in.filename.c_str()); goto end; fail: @@ -555,10 +555,10 @@ void FFMpegStreamer::Run() av_frame_free(&aud_frame); av_frame_free(&vid_frame); av_frame_free(&filt_frame); - MYTRACE(ACE_TEXT("Quitting FFMpegStreamer thread\n")); + MYTRACE(ACE_TEXT("Quitting FFmpegStreamer thread\n")); } -int64_t FFMpegStreamer::ProcessAudioBuffer(AVFilterContext* aud_buffersink_ctx, +int64_t FFmpegStreamer::ProcessAudioBuffer(AVFilterContext* aud_buffersink_ctx, AVFrame* filt_frame, AVStream* aud_stream, ACE_UINT32 start_time, @@ -606,7 +606,7 @@ int64_t FFMpegStreamer::ProcessAudioBuffer(AVFilterContext* aud_buffersink_ctx, return frame_timestamp; } -int64_t FFMpegStreamer::ProcessVideoBuffer(AVFilterContext* vid_buffersink_ctx, +int64_t FFmpegStreamer::ProcessVideoBuffer(AVFilterContext* vid_buffersink_ctx, AVFrame* filt_frame, AVStream* vid_stream, ACE_UINT32 start_time, @@ -694,8 +694,8 @@ AVFilterGraph* createAudioFilterGraph(AVFormatContext *fmt_ctx, //init filters AVFilterGraph *filter_graph = NULL; - AVFilter *abuffersrc = avfilter_get_by_name("abuffer"); - AVFilter *abuffersink = avfilter_get_by_name("abuffersink"); + const AVFilter *abuffersrc = avfilter_get_by_name("abuffer"); + const AVFilter *abuffersink = avfilter_get_by_name("abuffersink"); AVFilterInOut *outputs = avfilter_inout_alloc(); //TODO: Free?? AVFilterInOut *inputs = avfilter_inout_alloc(); //TODO: Free?? const enum AVSampleFormat out_sample_fmts[] = { AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE }; @@ -812,8 +812,8 @@ AVFilterGraph* createVideoFilterGraph(AVFormatContext *fmt_ctx, AVFilterGraph *filter_graph; char args[512]; int ret; - AVFilter *buffersrc = avfilter_get_by_name("buffer"); - AVFilter *buffersink = avfilter_get_by_name("buffersink"); + const AVFilter *buffersrc = avfilter_get_by_name("buffer"); + const AVFilter *buffersink = avfilter_get_by_name("buffersink"); AVFilterInOut *outputs = avfilter_inout_alloc(); AVFilterInOut *inputs = avfilter_inout_alloc(); const enum AVPixelFormat pix_fmts[] = { output_pixfmt, AV_PIX_FMT_NONE }; diff --git a/Library/TeamTalkLib/avstream/FFMpeg3Streamer.h b/Library/TeamTalkLib/avstream/FFmpegStreamer.h similarity index 95% rename from Library/TeamTalkLib/avstream/FFMpeg3Streamer.h rename to Library/TeamTalkLib/avstream/FFmpegStreamer.h index 8c58781f42..15d5e69f8f 100644 --- a/Library/TeamTalkLib/avstream/FFMpeg3Streamer.h +++ b/Library/TeamTalkLib/avstream/FFmpegStreamer.h @@ -38,11 +38,11 @@ void InitAVConv(); bool GetAVMediaFileProp(const ACE_TString& filename, MediaFileProp& out_prop); -class FFMpegStreamer : public MediaFileStreamer +class FFmpegStreamer : public MediaFileStreamer { public: - FFMpegStreamer(const ACE_TString& filename, const MediaStreamOutput& out_prop); - virtual ~FFMpegStreamer(); + FFmpegStreamer(const ACE_TString& filename, const MediaStreamOutput& out_prop); + virtual ~FFmpegStreamer(); virtual bool IsSystemTime() const { return false; } diff --git a/Library/TeamTalkLib/avstream/MediaStreamer.cpp b/Library/TeamTalkLib/avstream/MediaStreamer.cpp index 2cc37cb75c..7b1d2c4695 100644 --- a/Library/TeamTalkLib/avstream/MediaStreamer.cpp +++ b/Library/TeamTalkLib/avstream/MediaStreamer.cpp @@ -32,7 +32,7 @@ #endif /* ENABLE_DSHOW */ #if defined(ENABLE_FFMPEG3) -#include "FFMpeg3Streamer.h" +#include "FFmpegStreamer.h" #endif /* ENABLE_FFMPEG3*/ #if defined(ENABLE_OPUSTOOLS) && defined(ENABLE_OPUS) @@ -77,7 +77,7 @@ mediafile_streamer_t MakeMediaFileStreamer(const ACE_TString& filename, const Me #elif defined(ENABLE_DSHOW) streamer.reset(new DSWrapperThread()); #elif defined(ENABLE_FFMPEG3) - streamer.reset(new FFMpegStreamer(filename, out_prop)); + streamer.reset(new FFmpegStreamer(filename, out_prop)); #endif return streamer; diff --git a/Library/TeamTalkLib/avstream/V4L2Capture.cpp b/Library/TeamTalkLib/avstream/V4L2Capture.cpp index c49fbc6cbc..0e9eb4abdc 100644 --- a/Library/TeamTalkLib/avstream/V4L2Capture.cpp +++ b/Library/TeamTalkLib/avstream/V4L2Capture.cpp @@ -43,14 +43,14 @@ using namespace std; using namespace vidcap; using namespace media; -class V4L2Input : public FFMpegVideoInput +class V4L2Input : public FFmpegVideoInput { public: V4L2Input(const VidCapDevice& viddevice, const media::VideoFormat& fmt) - : FFMpegVideoInput(viddevice, fmt) { } + : FFmpegVideoInput(viddevice, fmt) { } - // FFMpegStreamer override + // FFmpegStreamer override bool SetupInput(AVInputFormat *iformat, AVDictionary *options, AVFormatContext*& fmt_ctx, @@ -79,7 +79,7 @@ class V4L2Input : public FFMpegVideoInput av_dict_set(&options, "pixel_format", "0rgb", 0); - return FFMpegVideoInput::SetupInput(iformat, options, fmt_ctx, + return FFmpegVideoInput::SetupInput(iformat, options, fmt_ctx, aud_dec_ctx, vid_dec_ctx, audio_stream_index, video_stream_index); diff --git a/Library/TeamTalkLib/avstream/V4L2Capture.h b/Library/TeamTalkLib/avstream/V4L2Capture.h index 87e67cf75c..fbf4ed6267 100644 --- a/Library/TeamTalkLib/avstream/V4L2Capture.h +++ b/Library/TeamTalkLib/avstream/V4L2Capture.h @@ -24,11 +24,11 @@ #if !defined(V4L2CAPTURE_H) #define V4L2CAPTURE_H -#include "FFMpeg3Capture.h" +#include "FFmpegCapture.h" namespace vidcap { - class V4L2Capture : public FFMpeg3Capture + class V4L2Capture : public FFmpegCapture { protected: diff --git a/Library/TeamTalkLib/build/avstream.cmake b/Library/TeamTalkLib/build/avstream.cmake index f5aa1a3874..64ed771fcb 100644 --- a/Library/TeamTalkLib/build/avstream.cmake +++ b/Library/TeamTalkLib/build/avstream.cmake @@ -24,17 +24,17 @@ if (FEATURE_FFMPEG) list (APPEND AVSTREAM_COMPILE_FLAGS -DENABLE_FFMPEG3 ${FFMPEG_COMPILE_FLAGS}) list (APPEND AVSTREAM_LINK_FLAGS ${FFMPEG_LINK_FLAGS}) - list (APPEND AVSTREAM_SOURCES ${TEAMTALKLIB_ROOT}/avstream/FFMpeg3Streamer.cpp) - list (APPEND AVSTREAM_SOURCES ${TEAMTALKLIB_ROOT}/avstream/FFMpeg3Resampler.cpp) - list (APPEND AVSTREAM_HEADERS ${TEAMTALKLIB_ROOT}/avstream/FFMpeg3Streamer.h) - list (APPEND AVSTREAM_HEADERS ${TEAMTALKLIB_ROOT}/avstream/FFMpeg3Resampler.h) + list (APPEND AVSTREAM_SOURCES ${TEAMTALKLIB_ROOT}/avstream/FFmpegStreamer.cpp) + list (APPEND AVSTREAM_SOURCES ${TEAMTALKLIB_ROOT}/avstream/FFmpegResampler.cpp) + list (APPEND AVSTREAM_HEADERS ${TEAMTALKLIB_ROOT}/avstream/FFmpegStreamer.h) + list (APPEND AVSTREAM_HEADERS ${TEAMTALKLIB_ROOT}/avstream/FFmpegResampler.h) if (FEATURE_V4L2) list (APPEND AVSTREAM_COMPILE_FLAGS -DENABLE_V4L2) - list (APPEND AVSTREAM_SOURCES ${TEAMTALKLIB_ROOT}/avstream/FFMpeg3Capture.cpp) + list (APPEND AVSTREAM_SOURCES ${TEAMTALKLIB_ROOT}/avstream/FFmpegCapture.cpp) list (APPEND AVSTREAM_SOURCES ${TEAMTALKLIB_ROOT}/avstream/VideoCapture.cpp) list (APPEND AVSTREAM_SOURCES ${TEAMTALKLIB_ROOT}/avstream/V4L2Capture.cpp) - list (APPEND AVSTREAM_HEADERS ${TEAMTALKLIB_ROOT}/avstream/FFMpeg3Capture.h) + list (APPEND AVSTREAM_HEADERS ${TEAMTALKLIB_ROOT}/avstream/FFmpegCapture.h) list (APPEND AVSTREAM_HEADERS ${TEAMTALKLIB_ROOT}/avstream/VideoCapture.h) list (APPEND AVSTREAM_HEADERS ${TEAMTALKLIB_ROOT}/avstream/V4L2Capture.h) endif() @@ -43,11 +43,11 @@ if (FEATURE_FFMPEG) list (APPEND AVSTREAM_COMPILE_FLAGS -DENABLE_AVF) list (APPEND AVSTREAM_SOURCES ${TEAMTALKLIB_ROOT}/avstream/AVFCapture.mm) list (APPEND AVSTREAM_SOURCES ${TEAMTALKLIB_ROOT}/avstream/AVFVideoInput.cpp) - list (APPEND AVSTREAM_SOURCES ${TEAMTALKLIB_ROOT}/avstream/FFMpeg3Capture.cpp) + list (APPEND AVSTREAM_SOURCES ${TEAMTALKLIB_ROOT}/avstream/FFmpegCapture.cpp) list (APPEND AVSTREAM_SOURCES ${TEAMTALKLIB_ROOT}/avstream/VideoCapture.cpp) list (APPEND AVSTREAM_HEADERS ${TEAMTALKLIB_ROOT}/avstream/AVFCapture.h) list (APPEND AVSTREAM_HEADERS ${TEAMTALKLIB_ROOT}/avstream/AVFVideoInput.h) - list (APPEND AVSTREAM_HEADERS ${TEAMTALKLIB_ROOT}/avstream/FFMpeg3Capture.h) + list (APPEND AVSTREAM_HEADERS ${TEAMTALKLIB_ROOT}/avstream/FFmpegCapture.h) list (APPEND AVSTREAM_HEADERS ${TEAMTALKLIB_ROOT}/avstream/VideoCapture.h) endif() endif() diff --git a/Library/TeamTalkLib/build/ffmpeg/CMakeLists.txt b/Library/TeamTalkLib/build/ffmpeg/CMakeLists.txt index c5f620527e..d6ac17b9f2 100644 --- a/Library/TeamTalkLib/build/ffmpeg/CMakeLists.txt +++ b/Library/TeamTalkLib/build/ffmpeg/CMakeLists.txt @@ -14,26 +14,38 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") ExternalProject_Add(ffmpeg-arm64-src GIT_REPOSITORY https://github.com/FFmpeg/FFmpeg - GIT_TAG n3.4.13 + GIT_TAG n4.0 GIT_SHALLOW TRUE UPDATE_COMMAND "" PREFIX ${TOOLCHAIN_BUILD_PREFIX}/ffmpeg-arm64 INSTALL_DIR ${TOOLCHAIN_INSTALL_PREFIX_FFMPEG}-arm64 - PATCH_COMMAND git apply ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-signature-of-read_probe-AVProbeData-p-in-libavfo.patch - COMMAND git apply ${CMAKE_CURRENT_LIST_DIR}/0002-Fix-int-vs.-ptrdiff_t-signature-for-weight_h264_pixe.patch - CONFIGURE_COMMAND export PKG_CONFIG_PATH=${OPENSSL_DIR}/lib/pkgconfig && - /configure --prefix= --disable-iconv - --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes - --disable-libxcb-shape --disable-securetransport - --disable-schannel --disable-xlib --disable-jack + CONFIGURE_COMMAND export PKG_CONFIG_PATH=${OPENSSL_DIR}/lib/pkgconfig && /configure + --prefix= + # External libraries: + --disable-iconv + --disable-libxcb + --disable-libxcb-shape + --disable-libxcb-shm + --disable-libxcb-xfixes --disable-lzma + --disable-schannel + --disable-sdl2 + --disable-securetransport + --disable-xlib + --enable-openssl + # Programs/docs + --disable-doc + --disable-programs + # Compile options (yasm does not work for arm64) + --disable-asm + --disable-optimizations + --disable-stripping + --enable-debug=3 --extra-cflags=-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}\ -arch\ arm64 --extra-cxxflags=-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}\ -arch\ arm64 --extra-ldexeflags=-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}\ -arch\ arm64 - --disable-videotoolbox --disable-sdl2 --pkg-config-flags=--static - --enable-debug=3 --disable-optimizations --disable-stripping --enable-openssl - --enable-cross-compile --target-os=darwin --arch=arm64 --disable-asm - # Seems --arch=arm64 has no effect and '-arch arm64' has to be applied + --pkg-config-flags=--static + --enable-cross-compile --target-os=darwin --arch=arm64 BUILD_COMMAND make ${TOOLCHAIN_BUILD_MAKEJOBS} INSTALL_COMMAND make ${TOOLCHAIN_BUILD_MAKEJOBS} install BUILD_BYPRODUCTS /lib/libavdevice.a @@ -49,24 +61,36 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") ExternalProject_Add(ffmpeg-intel-src GIT_REPOSITORY https://github.com/FFmpeg/FFmpeg - GIT_TAG n3.4.13 + GIT_TAG n4.0 GIT_SHALLOW TRUE UPDATE_COMMAND "" PREFIX ${TOOLCHAIN_BUILD_PREFIX}/ffmpeg-intel INSTALL_DIR ${TOOLCHAIN_INSTALL_PREFIX_FFMPEG}-intel - PATCH_COMMAND git apply ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-signature-of-read_probe-AVProbeData-p-in-libavfo.patch - COMMAND git apply ${CMAKE_CURRENT_LIST_DIR}/0002-Fix-int-vs.-ptrdiff_t-signature-for-weight_h264_pixe.patch - CONFIGURE_COMMAND export PKG_CONFIG_PATH=${OPENSSL_DIR}/lib/pkgconfig && - /configure --prefix= --disable-iconv - --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes - --disable-libxcb-shape --disable-securetransport - --disable-schannel --disable-xlib --disable-jack + CONFIGURE_COMMAND export PKG_CONFIG_PATH=${OPENSSL_DIR}/lib/pkgconfig && /configure + --prefix= + # External libraries: + --disable-iconv + --disable-libxcb + --disable-libxcb-shape + --disable-libxcb-shm + --disable-libxcb-xfixes --disable-lzma + --disable-schannel + --disable-sdl2 + --disable-securetransport + --disable-xlib + --enable-openssl + # Programs/docs + --disable-doc + --disable-programs + # Compile options + --disable-optimizations + --disable-stripping + --enable-debug=3 --extra-cflags=-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}\ -arch\ x86_64 --extra-cxxflags=-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}\ -arch\ x86_64 --extra-ldexeflags=-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}\ -arch\ x86_64 - --disable-videotoolbox --disable-sdl2 --pkg-config-flags=--static - --enable-debug=3 --disable-optimizations --disable-stripping --enable-openssl + --pkg-config-flags=--static --enable-cross-compile --target-os=darwin --arch=x86_64 BUILD_COMMAND make ${TOOLCHAIN_BUILD_MAKEJOBS} INSTALL_COMMAND make ${TOOLCHAIN_BUILD_MAKEJOBS} install @@ -126,6 +150,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") find_library(QUARTZCORE_LIBRARY QuartzCore) find_library(BZ2_LIBRARY bz2) find_library (AUDIOTOOLBOX_LIBRARY AudioToolBox) + find_library (VIDEOTOOLBOX_LIBRARY VideoToolBox) set (FFMPEG_LINK ${COCOA_LIBRARY} ${AVFOUNDATION_LIBRARY} ${COREMEDIA_LIBRARY} @@ -134,7 +159,8 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") ${VIDEODECODEACCELERATION_LIBRARY} ${QUARTZCORE_LIBRARY} ${BZ2_LIBRARY} - ${AUDIOTOOLBOX_LIBRARY}) + ${AUDIOTOOLBOX_LIBRARY} + ${VIDEOTOOLBOX_LIBRARY}) add_library(ffmpeg-avdevice STATIC IMPORTED GLOBAL) if (TOOLCHAIN_BUILD_EXTERNALPROJECTS) @@ -200,7 +226,7 @@ elseif (${CMAKE_SYSTEM_NAME} MATCHES "iOS") if (TOOLCHAIN_BUILD_EXTERNALPROJECTS) ExternalProject_Add(gas-preprocessor GIT_REPOSITORY https://github.com/FFmpeg/gas-preprocessor - GIT_TAG cbe8847 + GIT_TAG 7380ac2 UPDATE_COMMAND "" PREFIX ${TOOLCHAIN_BUILD_PREFIX}/gas-preprocessor INSTALL_DIR "" @@ -244,13 +270,11 @@ elseif (${CMAKE_SYSTEM_NAME} MATCHES "iOS") ExternalProject_Add(ffmpeg-src GIT_REPOSITORY https://github.com/FFmpeg/FFmpeg - GIT_TAG n3.4.13 + GIT_TAG n4.0 GIT_SHALLOW TRUE UPDATE_COMMAND "" PREFIX ${TOOLCHAIN_BUILD_PREFIX}/ffmpeg INSTALL_DIR ${TOOLCHAIN_INSTALL_PREFIX_FFMPEG} - PATCH_COMMAND git apply ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-signature-of-read_probe-AVProbeData-p-in-libavfo.patch - COMMAND git apply ${CMAKE_CURRENT_LIST_DIR}/0002-Fix-int-vs.-ptrdiff_t-signature-for-weight_h264_pixe.patch CONFIGURE_COMMAND /configure --prefix= ${FFMPEG_CFG_FLAGS} BUILD_COMMAND make ${TOOLCHAIN_BUILD_MAKEJOBS} INSTALL_COMMAND make ${TOOLCHAIN_BUILD_MAKEJOBS} install @@ -332,16 +356,20 @@ elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux") if (TOOLCHAIN_BUILD_EXTERNALPROJECTS) ExternalProject_Add(ffmpeg-src GIT_REPOSITORY https://github.com/FFmpeg/FFmpeg - GIT_TAG n3.4.13 + GIT_TAG n4.0 GIT_SHALLOW TRUE UPDATE_COMMAND "" PREFIX ${TOOLCHAIN_BUILD_PREFIX}/ffmpeg INSTALL_DIR ${TOOLCHAIN_INSTALL_PREFIX_FFMPEG} - PATCH_COMMAND git apply ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-signature-of-read_probe-AVProbeData-p-in-libavfo.patch - COMMAND git apply ${CMAKE_CURRENT_LIST_DIR}/0002-Fix-int-vs.-ptrdiff_t-signature-for-weight_h264_pixe.patch CONFIGURE_COMMAND /configure --prefix= - --enable-pic --enable-openssl --disable-jack + # External libraries: --disable-libxcb + --enable-openssl + # Programs/docs + --disable-doc + --disable-programs + # Compile options + --enable-pic BUILD_COMMAND make ${TOOLCHAIN_BUILD_MAKEJOBS} INSTALL_COMMAND make ${TOOLCHAIN_BUILD_MAKEJOBS} install BUILD_BYPRODUCTS /lib/libavdevice.a @@ -485,16 +513,20 @@ elseif (${CMAKE_SYSTEM_NAME} MATCHES "Android") ExternalProject_Add(ffmpeg-src GIT_REPOSITORY https://github.com/FFmpeg/FFmpeg - GIT_TAG n3.4.13 + GIT_TAG n4.0 GIT_SHALLOW TRUE UPDATE_COMMAND "" PREFIX ${TOOLCHAIN_BUILD_PREFIX}/ffmpeg INSTALL_DIR ${TOOLCHAIN_INSTALL_PREFIX_FFMPEG} - PATCH_COMMAND git apply ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-signature-of-read_probe-AVProbeData-p-in-libavfo.patch - COMMAND git apply ${CMAKE_CURRENT_LIST_DIR}/0002-Fix-int-vs.-ptrdiff_t-signature-for-weight_h264_pixe.patch CONFIGURE_COMMAND ${FFMPEG_EXPORT} && /configure ${FFMPEG_CFG} --prefix= + # External libraries: + --disable-indev=v4l2 + # Programs/docs + --disable-doc + --disable-programs + # Compile options + --enable-pic --enable-cross-compile --sysroot=${CMAKE_SYSROOT} --target-os=android - --enable-pic --disable-doc --disable-programs --disable-indev=v4l2 BUILD_COMMAND ${FFMPEG_EXPORT} && make ${TOOLCHAIN_BUILD_MAKEJOBS} INSTALL_COMMAND ${FFMPEG_EXPORT} && make ${TOOLCHAIN_BUILD_MAKEJOBS} install BUILD_BYPRODUCTS /lib/libavdevice.a diff --git a/Library/TeamTalkLib/test/CatchDefault.cpp b/Library/TeamTalkLib/test/CatchDefault.cpp index 0c19beeccd..e25ef4786c 100644 --- a/Library/TeamTalkLib/test/CatchDefault.cpp +++ b/Library/TeamTalkLib/test/CatchDefault.cpp @@ -63,7 +63,7 @@ #include #if defined(ENABLE_FFMPEG3) -#include +#include #endif #if defined (ENABLE_PORTAUDIO) @@ -1763,7 +1763,7 @@ TEST_CASE("testThumbnail") REQUIRE(!mfp.video.IsValid()); MediaStreamOutput prop(media::AudioFormat(16000, 2), 1600, media::FOURCC_NONE); - FFMpegStreamer ffmpeg(filename, prop); + FFmpegStreamer ffmpeg(filename, prop); REQUIRE(ffmpeg.Open()); @@ -3981,7 +3981,7 @@ TEST_CASE("TTPlayOpusOgg") REQUIRE(paused); durationMSec = GETTIMESTAMP() - durationMSec; // precision reduced due to GitHub CI being slow - REQUIRE(int(durationMSec) > int(mfi.uDurationMSec + 1000)); + REQUIRE(int(durationMSec) >= int(mfi.uDurationMSec + 1000)); } TEST_CASE("TTPlayFFmpegOpus") diff --git a/Library/TeamTalkLib/test/catchqt/TeamTalkCatchQT/TeamTalkCatchQT.pro b/Library/TeamTalkLib/test/catchqt/TeamTalkCatchQT/TeamTalkCatchQT.pro index 5d493d62cb..72f4c0d6bb 100644 --- a/Library/TeamTalkLib/test/catchqt/TeamTalkCatchQT/TeamTalkCatchQT.pro +++ b/Library/TeamTalkLib/test/catchqt/TeamTalkCatchQT/TeamTalkCatchQT.pro @@ -109,8 +109,8 @@ SOURCES += main.cpp \ $$TEAMTALKLIB_ROOT/avstream/AudioInputStreamer.cpp \ $$TEAMTALKLIB_ROOT/avstream/SpeexPreprocess.cpp \ $$TEAMTALKLIB_ROOT/avstream/SpeexResampler.cpp \ - $$TEAMTALKLIB_ROOT/avstream/FFMpeg3Streamer.cpp \ - $$TEAMTALKLIB_ROOT/avstream/FFMpeg3Resampler.cpp \ + $$TEAMTALKLIB_ROOT/avstream/FFmpegStreamer.cpp \ + $$TEAMTALKLIB_ROOT/avstream/FFmpegResampler.cpp \ $$TEAMTALKLIB_ROOT/avstream/WebRTCPreprocess.cpp \ $$TEAMTALKLIB_ROOT/avstream/WebRTCPreprocess.h \ $$TEAMTALKLIB_ROOT/avstream/OpusFileStreamer.cpp \