Index: head/multimedia/simplescreenrecorder/Makefile =================================================================== --- head/multimedia/simplescreenrecorder/Makefile (revision 469020) +++ head/multimedia/simplescreenrecorder/Makefile (revision 469021) @@ -1,43 +1,41 @@ # $FreeBSD$ PORTNAME= simplescreenrecorder DISTVERSION= 0.3.10-2 DISTVERSIONSUFFIX= -g7439813 PORTREVISION= 1 CATEGORIES= multimedia MAINTAINER= yuri@FreeBSD.org COMMENT= Screen video recorder LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/COPYING -BROKEN= fails to build with ffmpeg 4.0 - LIB_DEPENDS= libasound.so:audio/alsa-lib \ libavformat.so:multimedia/ffmpeg USES= cmake:outsource pkgconfig USE_GITHUB= yes GH_ACCOUNT= MaartenBaert GH_PROJECT= ssr USE_QT5= core gui widgets x11extras buildtools_build linguisttools_build qmake_build USE_XORG= x11 xext xfixes xi CMAKE_ON= WITH_QT5 CMAKE_OFF= WITH_GLINJECT # doesn't yet work on FreeBSD: https://github.com/MaartenBaert/ssr/issues/586#issuecomment-343780107 CMAKE_OFF+= WITH_OPENGL_RECORDING # extra option requiried when GLInject is off, because this makes OpenGL recording dysfunctional OPTIONS_DEFINE= PULSEAUDIO JACK OPTIONS_DEFAULT= PULSEAUDIO PULSEAUDIO_CMAKE_BOOL= WITH_PULSEAUDIO PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio JACK_CMAKE_BOOL= WITH_JACK JACK_LIB_DEPENDS= libjack.so:audio/jack post-install: # https://github.com/MaartenBaert/ssr/issues/609 @${RM} ${STAGEDIR}${PREFIX}/man/man1/ssr-glinject.* .include Index: head/multimedia/simplescreenrecorder/files/patch-ffmpeg4 =================================================================== --- head/multimedia/simplescreenrecorder/files/patch-ffmpeg4 (nonexistent) +++ head/multimedia/simplescreenrecorder/files/patch-ffmpeg4 (revision 469021) @@ -0,0 +1,59 @@ +https://github.com/MaartenBaert/ssr/issues/640 + +--- src/AV/Output/AudioEncoder.cpp.orig 2018-03-18 17:25:55 UTC ++++ src/AV/Output/AudioEncoder.cpp +@@ -58,7 +58,7 @@ AudioEncoder::~AudioEncoder() { + + unsigned int AudioEncoder::GetFrameSize() { + #if SSR_USE_AVCODEC_ENCODE_AUDIO2 +- return (GetCodecContext()->codec->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE)? DEFAULT_FRAME_SAMPLES : GetCodecContext()->frame_size; ++ return (GetCodecContext()->codec->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE)? DEFAULT_FRAME_SAMPLES : GetCodecContext()->frame_size; + #else + return (GetCodecContext()->frame_size <= 1)? DEFAULT_FRAME_SAMPLES : GetCodecContext()->frame_size; + #endif +@@ -122,7 +122,7 @@ void AudioEncoder::PrepareStream(AVStream* stream, AVC + if(key == "threads") { + codec_context->thread_count = ParseCodecOptionInt(key, value, 1, 100); + } else if(key == "qscale") { +- codec_context->flags |= CODEC_FLAG_QSCALE; ++ codec_context->flags |= AV_CODEC_FLAG_QSCALE; + codec_context->global_quality = lrint(ParseCodecOptionDouble(key, value, -1.0e6, 1.0e6, FF_QP2LAMBDA)); + } else if(key == "sampleformat") { + sample_format_name = value; +--- src/AV/Output/BaseEncoder.cpp.orig 2018-03-18 17:25:55 UTC ++++ src/AV/Output/BaseEncoder.cpp +@@ -213,7 +213,7 @@ void BaseEncoder::EncoderThread() { + } + + // flush the encoder +- if(!m_should_stop && (m_codec_context->codec->capabilities & CODEC_CAP_DELAY)) { ++ if(!m_should_stop && (m_codec_context->codec->capabilities & AV_CODEC_CAP_DELAY)) { + Logger::LogInfo("[BaseEncoder::EncoderThread] " + Logger::tr("Flushing encoder ...")); + while(!m_should_stop) { + if(!EncodeFrame(NULL)) { +--- src/AV/Output/Muxer.cpp.orig 2018-03-18 17:25:55 UTC ++++ src/AV/Output/Muxer.cpp +@@ -313,10 +313,10 @@ AVStream* Muxer::AddStream(AVCodec* codec, AVCodecCont + + // not sure why this is needed, but it's in the example code and it doesn't work without this + if(m_format_context->oformat->flags & AVFMT_GLOBALHEADER) +- (*codec_context)->flags |= CODEC_FLAG_GLOBAL_HEADER; ++ (*codec_context)->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; + + // if the codec is experimental, allow it +- if(codec->capabilities & CODEC_CAP_EXPERIMENTAL) { ++ if(codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL) { + Logger::LogWarning("[Muxer::AddStream] " + Logger::tr("Warning: This codec is considered experimental by libav/ffmpeg.")); + (*codec_context)->strict_std_compliance = FF_COMPLIANCE_EXPERIMENTAL; + } +--- src/AV/Output/VideoEncoder.cpp.orig 2018-03-18 17:25:55 UTC ++++ src/AV/Output/VideoEncoder.cpp +@@ -130,7 +130,7 @@ void VideoEncoder::PrepareStream(AVStream* stream, AVC + if(key == "threads") { + codec_context->thread_count = ParseCodecOptionInt(key, value, 1, 100); + } else if(key == "qscale") { +- codec_context->flags |= CODEC_FLAG_QSCALE; ++ codec_context->flags |= AV_CODEC_FLAG_QSCALE; + codec_context->global_quality = lrint(ParseCodecOptionDouble(key, value, -1.0e6, 1.0e6, FF_QP2LAMBDA)); + } else if(key == "minrate") { + codec_context->rc_min_rate = ParseCodecOptionInt(key, value, 1, 1000000, 1000); // kbit/s Property changes on: head/multimedia/simplescreenrecorder/files/patch-ffmpeg4 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property