+++ /dev/null
---- ffmpeg-2.8.5/libavcodec/libutvideoenc.cpp.orig 2016-01-17 15:47:01.790581181 +0100
-+++ ffmpeg-2.8.5/libavcodec/libutvideoenc.cpp 2016-01-17 20:53:18.793143645 +0100
-@@ -38,12 +38,11 @@
- {
- UtVideoContext *utv = (UtVideoContext *)avctx->priv_data;
- UtVideoExtra *info;
-- uint32_t flags, in_format;
-+ uint32_t flags;
- int ret;
-
- switch (avctx->pix_fmt) {
- case AV_PIX_FMT_YUV420P:
-- in_format = UTVF_YV12;
- avctx->bits_per_coded_sample = 12;
- if (avctx->colorspace == AVCOL_SPC_BT709)
- avctx->codec_tag = MKTAG('U', 'L', 'H', '0');
-@@ -51,7 +50,6 @@
- avctx->codec_tag = MKTAG('U', 'L', 'Y', '0');
- break;
- case AV_PIX_FMT_YUYV422:
-- in_format = UTVF_YUYV;
- avctx->bits_per_coded_sample = 16;
- if (avctx->colorspace == AVCOL_SPC_BT709)
- avctx->codec_tag = MKTAG('U', 'L', 'H', '2');
-@@ -59,12 +57,10 @@
- avctx->codec_tag = MKTAG('U', 'L', 'Y', '2');
- break;
- case AV_PIX_FMT_BGR24:
-- in_format = UTVF_NFCC_BGR_BU;
- avctx->bits_per_coded_sample = 24;
- avctx->codec_tag = MKTAG('U', 'L', 'R', 'G');
- break;
- case AV_PIX_FMT_RGB32:
-- in_format = UTVF_NFCC_BGRA_BU;
- avctx->bits_per_coded_sample = 32;
- avctx->codec_tag = MKTAG('U', 'L', 'R', 'A');
- break;
-@@ -113,16 +109,14 @@
- * Create a Ut Video instance. Since the function wants
- * an "interface name" string, pass it the name of the lib.
- */
-- utv->codec = CCodec::CreateInstance(UNFCC(avctx->codec_tag), "libavcodec");
-+ utv->codec = CCodec::CreateInstance(htobe32(avctx->codec_tag), "libavcodec");
-
- /* Initialize encoder */
-- utv->codec->EncodeBegin(in_format, avctx->width, avctx->height,
-- CBGROSSWIDTH_WINDOWS);
-+ utv->codec->EncodeBegin(avctx->width, avctx->height);
-
- /* Get extradata from encoder */
- avctx->extradata_size = utv->codec->EncodeGetExtraDataSize();
-- utv->codec->EncodeGetExtraData(info, avctx->extradata_size, in_format,
-- avctx->width, avctx->height,
-- CBGROSSWIDTH_WINDOWS);
-+ utv->codec->EncodeGetExtraData(info, avctx->extradata_size,
-+ avctx->width, avctx->height);
- avctx->extradata = (uint8_t *)info;
-
-@@ -140,6 +134,7 @@
- bool keyframe;
- uint8_t *y, *u, *v;
- uint8_t *dst;
-+ uint32_t in_format;
-
- /* Alloc buffer */
- if ((ret = ff_alloc_packet2(avctx, pkt, utv->buf_size, 0)) < 0)
-@@ -150,6 +145,7 @@
- /* Move input if needed data into Ut Video friendly buffer */
- switch (avctx->pix_fmt) {
- case AV_PIX_FMT_YUV420P:
-+ in_format = UTVF_YV12;
- y = utv->buffer;
- u = y + w * h;
- v = u + w * h / 4;
-@@ -165,12 +161,14 @@
- }
- break;
- case AV_PIX_FMT_YUYV422:
-+ in_format = UTVF_YUYV;
- for (i = 0; i < h; i++)
- memcpy(utv->buffer + i * (w << 1),
- pic->data[0] + i * pic->linesize[0], w << 1);
- break;
- case AV_PIX_FMT_BGR24:
- case AV_PIX_FMT_RGB32:
-+ in_format = avctx->pix_fmt == AV_PIX_FMT_BGR24 ? UTVF_NFCC_BGR_BU : UTVF_NFCC_BGRA_BU;
- /* Ut Video takes bottom-up BGR */
- rgb_size = avctx->pix_fmt == AV_PIX_FMT_BGR24 ? 3 : 4;
- for (i = 0; i < h; i++)
-@@ -183,7 +181,7 @@
- }
-
- /* Encode frame */
-- pkt->size = utv->codec->EncodeFrame(dst, &keyframe, utv->buffer);
-+ pkt->size = utv->codec->EncodeFrame(dst, &keyframe, utv->buffer, in_format, CBGROSSWIDTH_WINDOWS);
-
- if (!pkt->size) {
- av_log(avctx, AV_LOG_ERROR, "EncodeFrame failed!\n");
---- ffmpeg-2.8.5/libavcodec/libutvideodec.cpp.orig 2016-01-17 15:47:01.790581181 +0100
-+++ ffmpeg-2.8.5/libavcodec/libutvideodec.cpp 2016-01-17 20:39:38.713177720 +0100
-@@ -36,7 +36,6 @@
- {
- UtVideoContext *utv = (UtVideoContext *)avctx->priv_data;
- UtVideoExtra info;
-- int format;
- int begin_ret;
-
- if (avctx->extradata_size != 16 && avctx->extradata_size != 8 ) {
-@@ -56,34 +55,27 @@
- case MKTAG('U', 'L', 'H', '0'):
- avctx->pix_fmt = AV_PIX_FMT_YUV420P;
- avctx->colorspace = AVCOL_SPC_BT709;
-- format = UTVF_YV12;
- break;
- case MKTAG('U', 'L', 'H', '2'):
- avctx->pix_fmt = AV_PIX_FMT_YUYV422;
- avctx->colorspace = AVCOL_SPC_BT709;
-- format = UTVF_YUY2;
- break;
- #endif
- case MKTAG('U', 'L', 'Y', '0'):
- avctx->pix_fmt = AV_PIX_FMT_YUV420P;
-- format = UTVF_YV12;
- break;
- case MKTAG('U', 'L', 'Y', '2'):
- avctx->pix_fmt = AV_PIX_FMT_YUYV422;
-- format = UTVF_YUY2;
- break;
- case MKTAG('U', 'L', 'R', 'G'):
- avctx->pix_fmt = AV_PIX_FMT_BGR24;
-- format = UTVF_NFCC_BGR_BU;
- break;
- case MKTAG('U', 'L', 'R', 'A'):
- avctx->pix_fmt = AV_PIX_FMT_RGB32;
-- format = UTVF_NFCC_BGRA_BU;
- break;
- #ifdef UTVF_UQY2
- case MKTAG('U', 'Q', 'Y', '2'):
- avctx->pix_fmt = AV_PIX_FMT_YUV422P10;
-- format = UTVF_v210;
- break;
- #endif
- default:
-@@ -95,7 +87,7 @@
- /* Only allocate the buffer once */
- utv->buf_size = avpicture_get_size(avctx->pix_fmt, avctx->width, avctx->height);
- #ifdef UTVF_UQY2
-- if (format == UTVF_v210)
-+ if (avctx->pix_fmt == AV_PIX_FMT_YUV422P10)
- utv->buf_size += avctx->height * ((avctx->width + 47) / 48) * 128; // the linesize used by the decoder, this does not seem to be exported
- #endif
- utv->buffer = (uint8_t *)av_malloc(utv->buf_size * sizeof(uint8_t));
-@@ -121,11 +113,10 @@
- * Create a Ut Video instance. Since the function wants
- * an "interface name" string, pass it the name of the lib.
- */
-- utv->codec = CCodec::CreateInstance(UNFCC(avctx->codec_tag), "libavcodec");
-+ utv->codec = CCodec::CreateInstance(htobe32(avctx->codec_tag), "libavcodec");
-
- /* Initialize Decoding */
-- begin_ret = utv->codec->DecodeBegin(format, avctx->width, avctx->height,
-- CBGROSSWIDTH_WINDOWS, &info, sizeof(UtVideoExtra));
-+ begin_ret = utv->codec->DecodeBegin(avctx->width, avctx->height, &info, sizeof(UtVideoExtra));
-
- /* Check to see if the decoder initlized properly */
- if (begin_ret != 0) {
-@@ -143,13 +134,34 @@
- UtVideoContext *utv = (UtVideoContext *)avctx->priv_data;
- AVFrame *pic = avctx->coded_frame;
- int w = avctx->width, h = avctx->height;
-+ int format;
-
- /* Set flags */
- pic->pict_type = AV_PICTURE_TYPE_I;
- pic->key_frame = 1;
-
-+ switch (avctx->pix_fmt) {
-+ case AV_PIX_FMT_YUV420P:
-+ format = UTVF_YV12;
-+ break;
-+ case AV_PIX_FMT_YUYV422:
-+ format = UTVF_YUY2;
-+ break;
-+ case AV_PIX_FMT_BGR24:
-+ format = UTVF_NFCC_BGR_BU;
-+ break;
-+ case AV_PIX_FMT_RGB32:
-+ format = UTVF_NFCC_BGRA_BU;
-+ break;
-+#ifdef UTVF_UQY2
-+ case AV_PIX_FMT_YUV422P10:
-+ format = UTVF_v210;
-+ break;
-+#endif
-+ }
-+
- /* Decode the frame */
-- utv->codec->DecodeFrame(utv->buffer, avpkt->data, true);
-+ utv->codec->DecodeFrame(utv->buffer, avpkt->data, format, CBGROSSWIDTH_WINDOWS);
-
- /* Set the output data depending on the colorspace */
- switch (avctx->pix_fmt) {
%bcond_without bs2b # BS2B audio filter support
%bcond_without caca # textual display using libcaca
%bcond_without chromaprint # audio fingerprinting with chromaprint
-%bcond_without dcadec # DCA decoding via libdcadec
%bcond_without decklink # Blackmagic DeskLink output support
%bcond_without flite # flite voice synthesis support
%bcond_without frei0r # frei0r video filtering
%bcond_with tesseract # OCR filter based on Tesseract
%bcond_without x264 # H.264 x264 encoder
%bcond_without x265 # H.265/HEVC x265 encoder
-%bcond_without utvideo # Ut Video decoder
%bcond_without va # VAAPI (Video Acceleration API)
%bcond_without vidstab # vid.stab video stabilization support
%bcond_without vpx # VP8, a high-quality video codec
Summary: FFmpeg - a very fast video and audio converter
Summary(pl.UTF-8): FFmpeg - szybki konwerter audio/wideo
Name: ffmpeg
-Version: 3.0.2
+Version: 3.1
Release: 1
# LGPL or GPL, chosen at configure time (GPL version is more featured)
# (postprocessing, some filters, x264, x265, xavs, xvid, x11grab)
License: GPL v3+ with LGPL v3+ parts
Group: Applications/Multimedia
Source0: http://ffmpeg.org/releases/%{name}-%{version}.tar.xz
-# Source0-md5: beb5c69c671aba1386e7156fc2af1ab6
+# Source0-md5: 24ef0c0d541c857c8bc39215619b126f
Source1: ffserver.init
Source2: ffserver.sysconfig
Source3: ffserver.conf
-Patch0: %{name}-utvideo.patch
URL: http://www.ffmpeg.org/
%{?with_decklink:BuildRequires: Blackmagic_DeckLink_SDK}
%{?with_openal:BuildRequires: OpenAL-devel >= 1.1}
BuildRequires: alsa-lib-devel
BuildRequires: bzip2-devel
BuildRequires: celt-devel >= 0.11.0
-%{?with_dcadec:BuildRequires: dcadec-devel >= 0.2.0}
%{?with_faac:BuildRequires: faac-devel}
%{?with_fdk_aac:BuildRequires: fdk-aac-devel}
%{?with_flite:BuildRequires: flite-devel >= 1.4}
%{?with_doc:BuildRequires: texi2html}
%{?with_doc:BuildRequires: texinfo}
BuildRequires: twolame-devel
-%{?with_utvideo:BuildRequires: utvideo-devel >= 15.4}
%{?with_vidstab:BuildRequires: vid.stab-devel >= 0.98}
BuildRequires: vo-amrwbenc-devel
%{?with_wavpack:BuildRequires: wavpack-devel}
# overflows maximum hash table size
BuildConflicts: pdksh < 5.2.14-57
Requires: %{name}-libs = %{version}-%{release}
-%{?with_utvideo:Requires: utvideo >= 15.4}
%{?with_ilbc:Requires: webrtc-libilbc}
Requires: xvid >= 1:1.1.0
Obsoletes: libpostproc
Requires: alsa-lib-devel
Requires: bzip2-devel
Requires: celt-devel >= 0.11.0
-%{?with_dcadec:Requires: dcadec-devel >= 0.2.0}
%{?with_faac:Requires: faac-devel}
%{?with_fdk_aac:Requires: fdk-aac-devel}
%{?with_flite:Requires: flite-devel >= 1.4}
Requires: speex-devel >= 1:1.2-rc1
%{?with_tesseract:Requires: tesseract-devel}
Requires: twolame-devel
-%{?with_utvideo:Requires: utvideo-devel >= 15.4}
%{?with_vidstab:Requires: vid.stab-devel >= 0.98}
Requires: vo-amrwbenc-devel
%{?with_wavpack:Requires: wavpack-devel}
%prep
%setup -q
-%patch0 -p1
# package the grep result for mplayer, the result formatted as ./mplayer/configure
cat <<EOF > ffmpeg-avconfig
--enable-libcelt \
--enable-libcdio \
--enable-libdc1394 \
- %{?with_dcadec:--enable-libdcadec} \
%{?with_flite:--enable-libflite} \
--enable-libfreetype \
%{?with_fribidi:--enable-libfribidi} \
%{?with_tesseract:--enable-libtesseract} \
--enable-libtheora \
--enable-libtwolame \
- %{?with_utvideo:--enable-libutvideo} \
--enable-libv4l2 \
%{?with_vidstab:--enable-libvidstab} \
--enable-libvo-amrwbenc \