From 3373fec7ffeb9eb3b60f379bb679315e759f1e88 Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Sat, 14 Mar 2020 17:14:19 +0100 Subject: [PATCH] - updated to 2.23 - removed obsolete ffmpeg patches - drop .la file --- ffmpeg3.patch | 328 ----------------------------------- ffmpeg4.patch | 31 ---- ffmpegsource-ffmpeg011.patch | 11 -- ffms2.spec | 28 ++- 4 files changed, 12 insertions(+), 386 deletions(-) delete mode 100644 ffmpeg3.patch delete mode 100644 ffmpeg4.patch delete mode 100644 ffmpegsource-ffmpeg011.patch diff --git a/ffmpeg3.patch b/ffmpeg3.patch deleted file mode 100644 index c03b2de..0000000 --- a/ffmpeg3.patch +++ /dev/null @@ -1,328 +0,0 @@ ---- ffms2-2.20/configure.ac~ 2016-03-22 18:01:21.000000000 +0100 -+++ ffms2-2.20/configure.ac 2016-03-22 18:02:57.590572584 +0100 -@@ -156,7 +156,7 @@ - avcodec_register_all(); - swscale_version(); - #ifdef FFMS_USE_FFMPEG_COMPAT -- int bogus = CODEC_ID_G2M; -+ int bogus = AV_CODEC_ID_G2M; - (void) bogus; - #endif - ]])], [eval $1=yes], [eval $1=no]) ---- ffms2-2.20/src/core/videosource.h~ 2014-06-20 17:09:10.000000000 +0200 -+++ ffms2-2.20/src/core/videosource.h 2016-03-22 18:04:27.388385707 +0100 -@@ -39,19 +39,19 @@ - - int LastFrameHeight; - int LastFrameWidth; -- PixelFormat LastFramePixelFormat; -+ AVPixelFormat LastFramePixelFormat; - - int TargetHeight; - int TargetWidth; -- std::vector TargetPixelFormats; -+ std::vector TargetPixelFormats; - int TargetResizer; - -- PixelFormat OutputFormat; -+ AVPixelFormat OutputFormat; - AVColorRange OutputColorRange; - AVColorSpace OutputColorSpace; - - bool InputFormatOverridden; -- PixelFormat InputFormat; -+ AVPixelFormat InputFormat; - AVColorRange InputColorRange; - AVColorSpace InputColorSpace; - -@@ -89,9 +89,9 @@ - virtual FFMS_Frame *GetFrame(int n) = 0; - void GetFrameCheck(int n); - FFMS_Frame *GetFrameByTime(double Time); -- void SetOutputFormat(const PixelFormat *TargetFormats, int Width, int Height, int Resizer); -+ void SetOutputFormat(const AVPixelFormat *TargetFormats, int Width, int Height, int Resizer); - void ResetOutputFormat(); -- void SetInputFormat(int ColorSpace, int ColorRange, PixelFormat Format); -+ void SetInputFormat(int ColorSpace, int ColorRange, AVPixelFormat Format); - void ResetInputFormat(); - }; - ---- ffms2-2.20/src/core/videosource.cpp~ 2014-06-20 17:09:10.000000000 +0200 -+++ ffms2-2.20/src/core/videosource.cpp 2016-03-22 18:05:31.439198279 +0100 -@@ -55,7 +55,7 @@ - if (LastFrameWidth != CodecContext->width || LastFrameHeight != CodecContext->height || LastFramePixelFormat != CodecContext->pix_fmt) { - if (TargetHeight > 0 && TargetWidth > 0 && !TargetPixelFormats.empty()) { - if (!InputFormatOverridden) { -- InputFormat = PIX_FMT_NONE; -+ InputFormat = AV_PIX_FMT_NONE; - InputColorSpace = AVCOL_SPC_UNSPECIFIED; - InputColorRange = AVCOL_RANGE_UNSPECIFIED; - } -@@ -129,18 +129,18 @@ - - LastFrameHeight = -1; - LastFrameWidth = -1; -- LastFramePixelFormat = PIX_FMT_NONE; -+ LastFramePixelFormat = AV_PIX_FMT_NONE; - - TargetHeight = -1; - TargetWidth = -1; - TargetResizer = 0; - -- OutputFormat = PIX_FMT_NONE; -+ OutputFormat = AV_PIX_FMT_NONE; - OutputColorSpace = AVCOL_SPC_UNSPECIFIED; - OutputColorRange = AVCOL_RANGE_UNSPECIFIED; - - InputFormatOverridden = false; -- InputFormat = PIX_FMT_NONE; -+ InputFormat = AV_PIX_FMT_NONE; - InputColorSpace = AVCOL_SPC_UNSPECIFIED; - InputColorRange = AVCOL_RANGE_UNSPECIFIED; - if (Threads < 1) -@@ -151,7 +151,7 @@ - LastDecodedFrame = av_frame_alloc(); - - // Dummy allocations so the unallocated case doesn't have to be handled later -- avpicture_alloc(&SWSFrame, PIX_FMT_GRAY8, 16, 16); -+ avpicture_alloc(&SWSFrame, AV_PIX_FMT_GRAY8, 16, 16); - - Index.AddRef(); - } -@@ -172,33 +172,33 @@ - return GetFrame(Frame); - } - --static AVColorRange handle_jpeg(PixelFormat *format) { -+static AVColorRange handle_jpeg(AVPixelFormat *format) { - switch (*format) { -- case PIX_FMT_YUVJ420P: *format = PIX_FMT_YUV420P; return AVCOL_RANGE_JPEG; -- case PIX_FMT_YUVJ422P: *format = PIX_FMT_YUV422P; return AVCOL_RANGE_JPEG; -- case PIX_FMT_YUVJ444P: *format = PIX_FMT_YUV444P; return AVCOL_RANGE_JPEG; -- case PIX_FMT_YUVJ440P: *format = PIX_FMT_YUV440P; return AVCOL_RANGE_JPEG; -+ case AV_PIX_FMT_YUVJ420P: *format = AV_PIX_FMT_YUV420P; return AVCOL_RANGE_JPEG; -+ case AV_PIX_FMT_YUVJ422P: *format = AV_PIX_FMT_YUV422P; return AVCOL_RANGE_JPEG; -+ case AV_PIX_FMT_YUVJ444P: *format = AV_PIX_FMT_YUV444P; return AVCOL_RANGE_JPEG; -+ case AV_PIX_FMT_YUVJ440P: *format = AV_PIX_FMT_YUV440P; return AVCOL_RANGE_JPEG; - default: return AVCOL_RANGE_UNSPECIFIED; - } - } - --void FFMS_VideoSource::SetOutputFormat(const PixelFormat *TargetFormats, int Width, int Height, int Resizer) { -+void FFMS_VideoSource::SetOutputFormat(const AVPixelFormat *TargetFormats, int Width, int Height, int Resizer) { - TargetWidth = Width; - TargetHeight = Height; - TargetResizer = Resizer; - TargetPixelFormats.clear(); -- while (*TargetFormats != PIX_FMT_NONE) -+ while (*TargetFormats != AV_PIX_FMT_NONE) - TargetPixelFormats.push_back(*TargetFormats++); -- OutputFormat = PIX_FMT_NONE; -+ OutputFormat = AV_PIX_FMT_NONE; - - ReAdjustOutputFormat(); - OutputFrame(DecodeFrame); - } - --void FFMS_VideoSource::SetInputFormat(int ColorSpace, int ColorRange, PixelFormat Format) { -+void FFMS_VideoSource::SetInputFormat(int ColorSpace, int ColorRange, AVPixelFormat Format) { - InputFormatOverridden = true; - -- if (Format != PIX_FMT_NONE) -+ if (Format != AV_PIX_FMT_NONE) - InputFormat = Format; - if (ColorRange != AVCOL_RANGE_UNSPECIFIED) - InputColorRange = (AVColorRange)ColorRange; -@@ -212,7 +212,7 @@ - } - - void FFMS_VideoSource::DetectInputFormat() { -- if (InputFormat == PIX_FMT_NONE) -+ if (InputFormat == AV_PIX_FMT_NONE) - InputFormat = CodecContext->pix_fmt; - - AVColorRange RangeFromFormat = handle_jpeg(&InputFormat); -@@ -239,7 +239,7 @@ - DetectInputFormat(); - - OutputFormat = FindBestPixelFormat(TargetPixelFormats, InputFormat); -- if (OutputFormat == PIX_FMT_NONE) { -+ if (OutputFormat == AV_PIX_FMT_NONE) { - ResetOutputFormat(); - throw FFMS_Exception(FFMS_ERROR_SCALING, FFMS_ERROR_INVALID_ARGUMENT, - "No suitable output format found"); -@@ -287,7 +287,7 @@ - TargetHeight = -1; - TargetPixelFormats.clear(); - -- OutputFormat = PIX_FMT_NONE; -+ OutputFormat = AV_PIX_FMT_NONE; - OutputColorSpace = AVCOL_SPC_UNSPECIFIED; - OutputColorRange = AVCOL_RANGE_UNSPECIFIED; - -@@ -296,7 +296,7 @@ - - void FFMS_VideoSource::ResetInputFormat() { - InputFormatOverridden = false; -- InputFormat = PIX_FMT_NONE; -+ InputFormat = AV_PIX_FMT_NONE; - InputColorSpace = AVCOL_SPC_UNSPECIFIED; - InputColorRange = AVCOL_RANGE_UNSPECIFIED; - -@@ -318,9 +318,9 @@ - VP.ColorSpace = CodecContext->colorspace; - VP.ColorRange = CodecContext->color_range; - // these pixfmt's are deprecated but still used -- if (CodecContext->pix_fmt == PIX_FMT_YUVJ420P || -- CodecContext->pix_fmt == PIX_FMT_YUVJ422P || -- CodecContext->pix_fmt == PIX_FMT_YUVJ444P -+ if (CodecContext->pix_fmt == AV_PIX_FMT_YUVJ420P || -+ CodecContext->pix_fmt == AV_PIX_FMT_YUVJ422P || -+ CodecContext->pix_fmt == AV_PIX_FMT_YUVJ444P - ) - VP.ColorRange = AVCOL_RANGE_JPEG; - ---- ffms2-2.20/src/core/videoutils.h~ 2014-06-20 17:09:10.000000000 +0200 -+++ ffms2-2.20/src/core/videoutils.h 2016-03-22 18:06:41.360081076 +0100 -@@ -35,7 +35,7 @@ - - // swscale and pp-related functions - int64_t GetSWSCPUFlags(); --SwsContext *GetSwsContext(int SrcW, int SrcH, PixelFormat SrcFormat, int SrcColorSpace, int SrcColorRange, int DstW, int DstH, PixelFormat DstFormat, int DstColorSpace, int DstColorRange, int64_t Flags); -+SwsContext *GetSwsContext(int SrcW, int SrcH, AVPixelFormat SrcFormat, int SrcColorSpace, int SrcColorRange, int DstW, int DstH, AVPixelFormat DstFormat, int DstColorSpace, int DstColorRange, int64_t Flags); - AVColorSpace GetAssumedColorSpace(int Width, int Height); - - // timebase-related functions -@@ -43,6 +43,6 @@ - void CorrectTimebase(FFMS_VideoProperties *VP, FFMS_TrackTimeBase *TTimebase); - - // our implementation of avcodec_find_best_pix_fmt() --PixelFormat FindBestPixelFormat(const std::vector &Dsts, PixelFormat Src); -+AVPixelFormat FindBestPixelFormat(const std::vector &Dsts, AVPixelFormat Src); - - void RegisterCustomParsers(); ---- ffms2-2.20/src/core/videoutils.cpp~ 2014-06-20 17:09:10.000000000 +0200 -+++ ffms2-2.20/src/core/videoutils.cpp 2016-03-22 18:07:35.707431208 +0100 -@@ -29,7 +29,7 @@ - #include - } - --SwsContext *GetSwsContext(int SrcW, int SrcH, PixelFormat SrcFormat, int SrcColorSpace, int SrcColorRange, int DstW, int DstH, PixelFormat DstFormat, int DstColorSpace, int DstColorRange, int64_t Flags) { -+SwsContext *GetSwsContext(int SrcW, int SrcH, AVPixelFormat SrcFormat, int SrcColorSpace, int SrcColorRange, int DstW, int DstH, AVPixelFormat DstFormat, int DstColorSpace, int DstColorRange, int64_t Flags) { - Flags |= SWS_FULL_CHR_H_INT | SWS_FULL_CHR_H_INP | SWS_ACCURATE_RND | SWS_BITEXACT; - SwsContext *Context = sws_alloc_context(); - if (!Context) return 0; -@@ -123,10 +123,8 @@ - cUNUSABLE - }; - --static BCSType GuessCSType(PixelFormat p) { -+static BCSType GuessCSType(AVPixelFormat p) { - // guessing the colorspace type from the name is kinda hackish but libav doesn't export this kind of metadata -- if (av_pix_fmt_desc_get(p)->flags & PIX_FMT_HWACCEL) -- return cUNUSABLE; - const char *n = av_get_pix_fmt_name(p); - if (strstr(n, "gray") || strstr(n, "mono") || strstr(n, "y400a")) - return cGRAY; -@@ -138,7 +138,7 @@ - } - - struct LossAttributes { -- PixelFormat Format; -+ AVPixelFormat Format; - int ChromaUndersampling; - int ChromaOversampling; - int DepthDifference; -@@ -153,7 +153,7 @@ - return depth + 1; - } - --static LossAttributes CalculateLoss(PixelFormat Dst, PixelFormat Src) { -+static LossAttributes CalculateLoss(AVPixelFormat Dst, AVPixelFormat Src) { - const AVPixFmtDescriptor &SrcDesc = *av_pix_fmt_desc_get(Src); - const AVPixFmtDescriptor &DstDesc = *av_pix_fmt_desc_get(Dst); - BCSType SrcCS = GuessCSType(Src); -@@ -182,15 +182,15 @@ - return Loss; - } - --PixelFormat FindBestPixelFormat(const std::vector &Dsts, PixelFormat Src) { -+AVPixelFormat FindBestPixelFormat(const std::vector &Dsts, AVPixelFormat Src) { - // some trivial special cases to make sure there's as little conversion as possible - if (Dsts.empty()) -- return PIX_FMT_NONE; -+ return AV_PIX_FMT_NONE; - if (Dsts.size() == 1) - return Dsts[0]; - - // is the input in the output? -- std::vector::const_iterator i = std::find(Dsts.begin(), Dsts.end(), Src); -+ std::vector::const_iterator i = std::find(Dsts.begin(), Dsts.end(), Src); - if (i != Dsts.end()) - return Src; - ---- ffms2-2.20/src/core/ffms.cpp~ 2014-06-20 17:09:10.000000000 +0200 -+++ ffms2-2.20/src/core/ffms.cpp 2016-03-22 18:08:09.401187196 +0100 -@@ -216,7 +216,7 @@ - FFMS_API(int) FFMS_SetOutputFormatV2(FFMS_VideoSource *V, const int *TargetFormats, int Width, int Height, int Resizer, FFMS_ErrorInfo *ErrorInfo) { - ClearErrorInfo(ErrorInfo); - try { -- V->SetOutputFormat(reinterpret_cast(TargetFormats), Width, Height, Resizer); -+ V->SetOutputFormat(reinterpret_cast(TargetFormats), Width, Height, Resizer); - } catch (FFMS_Exception &e) { - return e.CopyOut(ErrorInfo); - } -@@ -230,7 +230,7 @@ - FFMS_API(int) FFMS_SetInputFormatV(FFMS_VideoSource *V, int ColorSpace, int ColorRange, int Format, FFMS_ErrorInfo *ErrorInfo) { - ClearErrorInfo(ErrorInfo); - try { -- V->SetInputFormat(ColorSpace, ColorRange, static_cast(Format)); -+ V->SetInputFormat(ColorSpace, ColorRange, static_cast(Format)); - } catch (FFMS_Exception &e) { - return e.CopyOut(ErrorInfo); - } ---- ffms2-2.20/src/vapoursynth/vapoursource.cpp~ 2014-06-20 17:09:10.000000000 +0200 -+++ ffms2-2.20/src/vapoursynth/vapoursource.cpp 2016-03-22 18:19:10.716042796 +0100 -@@ -48,7 +48,7 @@ - - static int GetNumPixFmts() { - int n = 0; -- while (av_get_pix_fmt_name((PixelFormat)n)) -+ while (av_get_pix_fmt_name((AVPixelFormat)n)) - n++; - return n; - } -@@ -63,7 +63,7 @@ - static int GetColorFamily(const AVPixFmtDescriptor &desc) { - if (desc.nb_components == 1) - return cmGray; -- else if (desc.flags & PIX_FMT_RGB) -+ else if (desc.flags & AV_PIX_FMT_FLAG_RGB) - return cmRGB; - else - return cmYUV; -@@ -82,7 +82,7 @@ - && desc.log2_chroma_h == f->subSamplingH) - return i; - } -- return PIX_FMT_NONE; -+ return AV_PIX_FMT_NONE; - } else { - int colorfamily = cmYUV; - if (av_pix_fmt_desc_get((AVPixelFormat) id)->nb_components == 1) -@@ -239,12 +239,12 @@ - for (int i = 0; i < npixfmt; i++) - if (IsRealPlanar(*av_pix_fmt_desc_get((AVPixelFormat) i))) - TargetFormats.push_back(i); -- TargetFormats.push_back(PIX_FMT_NONE); -+ TargetFormats.push_back(AV_PIX_FMT_NONE); - -- int TargetPixelFormat = PIX_FMT_NONE; -+ int TargetPixelFormat = AV_PIX_FMT_NONE; - if (ConvertToFormat != pfNone) { - TargetPixelFormat = formatConversion(ConvertToFormat, true, core, vsapi); -- if (TargetPixelFormat == PIX_FMT_NONE) -+ if (TargetPixelFormat == AV_PIX_FMT_NONE) - throw std::runtime_error(std::string("Source: Invalid output colorspace specified")); - - TargetFormats.clear(); diff --git a/ffmpeg4.patch b/ffmpeg4.patch deleted file mode 100644 index fa0c760..0000000 --- a/ffmpeg4.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- ffms2-2.20/src/core/matroskareader.cpp~ 2014-06-20 17:09:10.000000000 +0200 -+++ ffms2-2.20/src/core/matroskareader.cpp 2018-04-29 09:42:31.607973790 +0200 -@@ -301,8 +301,8 @@ - } - - void MatroskaReaderContext::Append(const void *Data, size_t Length) { -- if (BufferSize < Length + FrameSize + FF_INPUT_BUFFER_PADDING_SIZE) { -- size_t NewSize = (FrameSize + Length) * 2 + FF_INPUT_BUFFER_PADDING_SIZE; -+ if (BufferSize < Length + FrameSize + AV_INPUT_BUFFER_PADDING_SIZE) { -+ size_t NewSize = (FrameSize + Length) * 2 + AV_INPUT_BUFFER_PADDING_SIZE; - safe_aligned_reallocz(Buffer, BufferSize, NewSize); - BufferSize = NewSize; - } -@@ -340,5 +340,5 @@ - } - - if (FrameSize) -- memset(Buffer + FrameSize, 0, FF_INPUT_BUFFER_PADDING_SIZE); -+ memset(Buffer + FrameSize, 0, AV_INPUT_BUFFER_PADDING_SIZE); - } ---- ffms2-2.20/src/core/utils.cpp~ 2018-04-29 09:41:45.000000000 +0200 -+++ ffms2-2.20/src/core/utils.cpp 2018-04-29 09:43:06.088381421 +0200 -@@ -173,7 +173,7 @@ - // but I don't think anyone actually uses that. - - if (PrivateDataSrc && PrivateDataSize > 0) { -- CodecContext->extradata = static_cast(av_mallocz(PrivateDataSize + FF_INPUT_BUFFER_PADDING_SIZE)); -+ CodecContext->extradata = static_cast(av_mallocz(PrivateDataSize + AV_INPUT_BUFFER_PADDING_SIZE)); - CodecContext->extradata_size = PrivateDataSize; - memcpy(CodecContext->extradata, PrivateDataSrc, PrivateDataSize); - } diff --git a/ffmpegsource-ffmpeg011.patch b/ffmpegsource-ffmpeg011.patch deleted file mode 100644 index a586660..0000000 --- a/ffmpegsource-ffmpeg011.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- configure.ac.orig 2012-07-09 14:45:54.088864442 +0200 -+++ configure.ac 2012-07-09 14:46:55.868944948 +0200 -@@ -145,7 +144,7 @@ - ]) - - AC_MSG_CHECKING([whether $_lav_name works]) --LIBS="$_LIBS $LIBAV_LIBS" -+LIBS="$_LIBS $LIBAV_LIBS -lvpx" - TEST_LIBAV([LIBAV_WORKS]) - AC_MSG_RESULT([$LIBAV_WORKS]) - if test "$LIBAV_WORKS" = no; then diff --git a/ffms2.spec b/ffms2.spec index 8e3fc46..f2357ac 100644 --- a/ffms2.spec +++ b/ffms2.spec @@ -6,21 +6,19 @@ Summary: FFmpegSource - FFmpeg wrapper library Summary(pl.UTF-8): FFmpegSource - biblioteka obudowująca FFmpeg Name: ffms2 -Version: 2.20 -Release: 5 +Version: 2.23 +Release: 1 License: MIT (ffmpegsource itself), GPL v3+ (forced by ffmpeg) Group: Libraries +#Source0Download: https://github.com/FFMS/ffms2/releases Source0: https://github.com/FFMS/ffms2/archive/%{version}/%{name}-%{version}.tar.gz -# Source0-md5: d6f2faa9e0ffed2e2d8d926592a87744 -Patch0: ffmpegsource-ffmpeg011.patch -Patch1: ffmpeg3.patch -Patch2: ffmpeg4.patch +# Source0-md5: e7728ae581e278ade6bc9f204faaff9e URL: https://github.com/FFMS/ffms2 BuildRequires: autoconf >= 2.58 BuildRequires: automake >= 1:1.11 # PKG_CHECK_MODULES(LIBAV, [libavformat >= 53.20.0 libavcodec >= 53.24.0 libswscale >= 0.7.0 libavutil >= 51.21.0 ]) BuildRequires: ffmpeg-devel >= 0.9 -# libavresample >= 1.0.0 +# libavresample >= 1.0.0 or libswresample >= 1.0.0 %{?with_avresample:BuildRequires: ffmpeg-devel >= 1.1} BuildRequires: libstdc++-devel BuildRequires: libtool >= 2:2.0 @@ -86,14 +84,9 @@ Statyczna biblioteka FFmpegSource. %prep %setup -q -%patch0 -p0 -%patch1 -p1 -%patch2 -p1 -%undos src/core/{indexing,lavfindexer,utils}.cpp -%{__rm} configure %build -CXXFLAGS="%{rpmcxxflags} -Wall -Wextra -Wno-missing-field-initializers" +CXXFLAGS="%{rpmcxxflags} -Wall -Wextra" %{__libtoolize} %{__aclocal} -I m4 %{__autoconf} @@ -109,9 +102,13 @@ CXXFLAGS="%{rpmcxxflags} -Wall -Wextra -Wno-missing-field-initializers" %install rm -rf $RPM_BUILD_ROOT + %{__make} install \ DESTDIR=$RPM_BUILD_ROOT +# obsoleted by pkg-config +%{__rm} $RPM_BUILD_ROOT%{_libdir}/libffms2.la + %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name} %clean @@ -125,13 +122,12 @@ rm -rf $RPM_BUILD_ROOT %doc COPYING README.md %attr(755,root,root) %{_bindir}/ffmsindex %attr(755,root,root) %{_libdir}/libffms2.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libffms2.so.3 +%attr(755,root,root) %ghost %{_libdir}/libffms2.so.4 %files devel %defattr(644,root,root,755) -%doc doc/*.{html,css} +%doc doc/ffms2-*.md %attr(755,root,root) %{_libdir}/libffms2.so -%{_libdir}/libffms2.la %{_includedir}/ffms.h %{_includedir}/ffmscompat.h %{_pkgconfigdir}/ffms2.pc -- 2.44.0