Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37850411
en ru br
ALT Linux repos
S:164-alt1.1
5.0: 65-alt0.4
4.1: 0.59-alt0.20080418.1
4.0: 0.56-alt0.671.1

Group :: Video
RPM: x264

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

%define githash 5f8a149

%define _optlevel 3
%def_with utils
%def_with xyuv
%def_enable visualize
%def_disable mp4
%def_enable shared
%def_enable static
%def_enable pthread
%def_disable debug
%def_disable prof
#----------------------------------------------------------------------
%define subst_enable_to() %{expand:%%{?_enable_%{1}:--enable-%{2}}} %{expand:%%{?_disable_%{1}:--disable-%{2}}}

Name: x264
%define lname lib%name
Version: 65
%define rel 4
%ifdef githash
# http://git.videolan.org/
Release: alt0.%rel
Source: %name-git-%githash.tar
%else
Release: alt%rel
Source: %name-%version.tar
%endif
Patch: %name-%version-%release.patch
Summary: CLI H.264 encoder
Summary(uk_UA.CP1251): CLI H.264 кодер
Summary(ru_RU.CP1251): CLI H.264 кодер
URL: http://www.videolan.org/%name.html
License: %gpl2plus
Group: Video
%{?_enable_shared:Requires: %lname = %version-%release}
Packager: Led <led at altlinux.ru>

BuildRequires(pre): rpm-build-licenses
BuildRequires: yasm
%{?_with_xyuv:BuildRequires: libSDL-devel}
%{?_enable_visualize:BuildRequires: libX11-devel}


%description
%name is a free library for encoding H264/AVC video streams. The code is
written from scratch.
Encoder features:
- CAVLC/CABAC
- Multi-references
- Intra: all macroblock types (16x16, 8x8, and 4x4 with all
 predictions)
- Inter P: all partitions (from 16x16 down to 4x4)
- Inter B: partitions from 16x16 down to 8x8 (including skip/direct)
- Ratecontrol: constant quantizer, single or multipass ABR, optional
 VBV
- Scene cut detection
- Adaptive B-frame placement
- B-frames as references / arbitrary frame order
- 8x8 and 4x4 adaptive spatial transform
- Lossless mode
- Custom quantization matrices
- Parallel encoding of multiple slices.

This package includes CLI based H.264 encoder.

%description -l uk_UA.CP1251
%name - вільна бібліотека для кодування відеопотоків H264/AVC. Код
написано "з нуля".
Властивості кодера:
- CAVLC/CABAC.
- Мультіпосилання.
- Intra: всі типи макроблоків (16x16, 8x8 та 4x4 з усіма
 передбаченнями).
- Inter P: усі розподіли (від 16x16 до 4x4).
- Inter B: роподіли від 16x16 до 8x8 (включаючи skip/direct).
- Ratecontrol: сталий квантизатор, одно- або багатопрохідний ABR,
 додатковий VBV.
- Виявлення обрізки сцени.
- Адаптивне розміщення B-кадрів.
- B-кадри у вигляді посилань / довільний порядок кадрів.
- 8x8 та 4x4 адаптивне просторове перетворення.
- Безвтратний метод.
- Пристосовувані матриці квантування.
- Паралельне кодування множини слайсів.

Цей пакет включає CLI H.264 кодер.

%description -l ru_RU.CP1251
%name - свободная библиотека для кодирования видеопотоков H264/AVC. Код
написан "с нуля".
Свойства кодера:
- CAVLC/CABAC.
- Мультиссылки.
- Intra: все типы макроблоков (16x16, 8x8 и 4x4 со всеми
 предвидениями).
- Inter P: все распределения (от 16x16 до 4x4).
- Inter B: распределения от 16x16 до 8x8 (включая skip/direct).
- Ratecontrol: постоянный квантизатор, одно- или многопроходный ABR,
 дополнительный VBV.
- Обнаружение обрезки сцены.
- Адаптивное розмещение B-кадров.
- B-кадры в виде ссылок / произвольный порядок кадров.
- 8x8 и 4x4 адаптивное пространственное превращение.
- Метод без потерь.
- Приспосабливаемые матрицы квантования.
- Параллельное кодирование множества слайсов.

Этот пакет содержит CLI H.264 кодер.


%if_with utils
%package utils
Group: Video
Summary: H.264 encoder utils
Summary(uk_UA.CP1251): Утиліти кодера H.264
Summary(ru_RU.CP1251): Утилиты кодера H.264
%{?_enable_shared:Requires: %lname = %version-%release}

%description utils
%name is a free library for encoding H264/AVC video streams. The code is
written from scratch.
Encoder features:
- CAVLC/CABAC
- Multi-references
- Intra: all macroblock types (16x16, 8x8, and 4x4 with all
 predictions)
- Inter P: all partitions (from 16x16 down to 4x4)
- Inter B: partitions from 16x16 down to 8x8 (including skip/direct)
- Ratecontrol: constant quantizer, single or multipass ABR, optional
 VBV
- Scene cut detection
- Adaptive B-frame placement
- B-frames as references / arbitrary frame order
- 8x8 and 4x4 adaptive spatial transform
- Lossless mode
- Custom quantization matrices
- Parallel encoding of multiple slices.

This package includes %name encoder utils.

%description utils -l uk_UA.CP1251
%name - вільна бібліотека для кодування відеопотоків H264/AVC. Код
написано "з нуля".
Властивості кодера:
- CAVLC/CABAC.
- Мультіпосилання.
- Intra: всі типи макроблоків (16x16, 8x8 та 4x4 з усіма
 передбаченнями).
- Inter P: усі розподіли (від 16x16 до 4x4).
- Inter B: роподіли від 16x16 до 8x8 (включаючи skip/direct).
- Ratecontrol: сталий квантизатор, одно- або багатопрохідний ABR,
 додатковий VBV.
- Виявлення обрізки сцени.
- Адаптивне розміщення B-кадрів.
- B-кадри у вигляді посилань / довільний порядок кадрів.
- 8x8 та 4x4 адаптивне просторове перетворення.
- Безвтратний метод.
- Пристосовувані матриці квантування.
- Паралельне кодування множини слайсів.

Цей пакет включає утиліти для %name.

%description utils -l ru_RU.CP1251
%name - свободная библиотека для кодирования видеопотоков H264/AVC. Код
написан "с нуля".
Свойства кодера:
- CAVLC/CABAC.
- Мультиссылки.
- Intra: все типы макроблоков (16x16, 8x8 и 4x4 со всеми
 предвидениями).
- Inter P: все распределения (от 16x16 до 4x4).
- Inter B: распределения от 16x16 до 8x8 (включая skip/direct).
- Ratecontrol: постоянный квантизатор, одно- или многопроходный ABR,
 дополнительный VBV.
- Обнаружение обрезки сцены.
- Адаптивное розмещение B-кадров.
- B-кадры в виде ссылок / произвольный порядок кадров.
- 8x8 и 4x4 адаптивное пространственное превращение.
- Метод без потерь.
- Приспосабливаемые матрицы квантования.
- Параллельное кодирование множества слайсов.

Этот пакет содержит утилиты для %name.
%endif


%if_enabled shared
%package -n %lname
Summary: H.264 codec shared library
Summary(uk_UA.CP1251): Роздільна бібліотека кодека H.264
Summary(ru_RU.CP1251): Розделяемая библиотека кодека H.264
Group: System/Libraries
Conflicts: %{lname}_54

%description -n %lname
%name is a free library for encoding H264/AVC video streams. The code is
written from scratch.
Encoder features:
- CAVLC/CABAC
- Multi-references
- Intra: all macroblock types (16x16, 8x8, and 4x4 with all
 predictions)
- Inter P: all partitions (from 16x16 down to 4x4)
- Inter B: partitions from 16x16 down to 8x8 (including skip/direct)
- Ratecontrol: constant quantizer, single or multipass ABR, optional
 VBV
- Scene cut detection
- Adaptive B-frame placement
- B-frames as references / arbitrary frame order
- 8x8 and 4x4 adaptive spatial transform
- Lossless mode
- Custom quantization matrices
- Parallel encoding of multiple slices.

This package includes the shared library needed to run %lname-based
software.

%description -n %lname -l uk_UA.CP1251
%name - вільна бібліотека для кодування відеопотоків H264/AVC. Код
написано "з нуля".
Властивості кодера:
- CAVLC/CABAC.
- Мультіпосилання.
- Intra: всі типи макроблоків (16x16, 8x8 та 4x4 з усіма
 передбаченнями).
- Inter P: усі розподіли (від 16x16 до 4x4).
- Inter B: роподіли від 16x16 до 8x8 (включаючи skip/direct).
- Ratecontrol: сталий квантизатор, одно- або багатопрохідний ABR,
 додатковий VBV.
- Виявлення обрізки сцени.
- Адаптивне розміщення B-кадрів.
- B-кадри у вигляді посилань / довільний порядок кадрів.
- 8x8 та 4x4 адаптивне просторове перетворення.
- Безвтратний метод.
- Пристосовувані матриці квантування.
- Паралельне кодування множини слайсів.

Цей пакет включає роздільну бібліотеку, необхідну для виконання
програм, що потребують %lname.

%description -n %lname -l ru_RU.CP1251
%name - свободная библиотека для кодирования видеопотоков H264/AVC. Код
написан "с нуля".
Свойства кодера:
- CAVLC/CABAC.
- Мультиссылки.
- Intra: все типы макроблоков (16x16, 8x8 и 4x4 со всеми
 предвидениями).
- Inter P: все распределения (от 16x16 до 4x4).
- Inter B: распределения от 16x16 до 8x8 (включая skip/direct).
- Ratecontrol: постоянный квантизатор, одно- или многопроходный ABR,
 дополнительный VBV.
- Обнаружение обрезки сцены.
- Адаптивное розмещение B-кадров.
- B-кадры в виде ссылок / произвольный порядок кадров.
- 8x8 и 4x4 адаптивное пространственное превращение.
- Метод без потерь.
- Приспосабливаемые матрицы квантования.
- Параллельное кодирование множества слайсов.

Этот пакет включает разделяемую библиотеку, необходимую для исполнения
программ, требующих %lname.
%endif


%package -n %lname-devel
Summary: Development files of H.264 codec library
Summary(uk_UA.CP1251): Файли для розробки з використанням бібліотеки кодека H.264
Summary(ru_RU.CP1251): Файлы для разработки с использованием библиотеки кодека H.264
Group: Development/C
Requires: %lname%{?_disable_shared:-devel-static} = %version-%release

%description -n %lname-devel
%name is a free library for encoding H264/AVC video streams. The code is
written from scratch.
Encoder features:
- CAVLC/CABAC
- Multi-references
- Intra: all macroblock types (16x16, 8x8, and 4x4 with all
 predictions)
- Inter P: all partitions (from 16x16 down to 4x4)
- Inter B: partitions from 16x16 down to 8x8 (including skip/direct)
- Ratecontrol: constant quantizer, single or multipass ABR, optional
 VBV
- Scene cut detection
- Adaptive B-frame placement
- B-frames as references / arbitrary frame order
- 8x8 and 4x4 adaptive spatial transform
- Lossless mode
- Custom quantization matrices
- Parallel encoding of multiple slices.

This package includes the header files needed to develop %lname-based
software.

%description -n %lname-devel -l uk_UA.CP1251
%name - вільна бібліотека для кодування відеопотоків H264/AVC. Код
написано "з нуля".
Властивості кодера:
- CAVLC/CABAC.
- Мультіпосилання.
- Intra: всі типи макроблоків (16x16, 8x8 та 4x4 з усіма
 передбаченнями).
- Inter P: усі розподіли (від 16x16 до 4x4).
- Inter B: роподіли від 16x16 до 8x8 (включаючи skip/direct).
- Ratecontrol: сталий квантизатор, одно- або багатопрохідний ABR,
 додатковий VBV.
- Виявлення обрізки сцени.
- Адаптивне розміщення B-кадрів.
- B-кадри у вигляді посилань / довільний порядок кадрів.
- 8x8 та 4x4 адаптивне просторове перетворення.
- Безвтратний метод.
- Пристосовувані матриці квантування.
- Паралельне кодування множини слайсів.

Цей пакет включає файли заголовків, необхідних для розробки програм з
використанням %lname.

%description -n %lname-devel -l ru_RU.CP1251
%name - свободная библиотека для кодирования видеопотоков H264/AVC. Код
написан "с нуля".
Свойства кодера:
- CAVLC/CABAC.
- Мультиссылки.
- Intra: все типы макроблоков (16x16, 8x8 и 4x4 со всеми
 предвидениями).
- Inter P: все распределения (от 16x16 до 4x4).
- Inter B: распределения от 16x16 до 8x8 (включая skip/direct).
- Ratecontrol: постоянный квантизатор, одно- или многопроходный ABR,
 дополнительный VBV.
- Обнаружение обрезки сцены.
- Адаптивное розмещение B-кадров.
- B-кадры в виде ссылок / произвольный порядок кадров.
- 8x8 и 4x4 адаптивное пространственное превращение.
- Метод без потерь.
- Приспосабливаемые матрицы квантования.
- Параллельное кодирование множества слайсов.

Этот пакет включает файлы заголовков, необходимых для разработки
программ с иcпользованием %lname.


%if_enabled static
%package -n %lname-devel-static
Summary: Static H.264 codec library
Summary(uk_UA.CP1251): Статична бібліотека кодека H.264
Summary(ru_RU.CP1251): Статическая библиотека кодека H.264
Group: Development/C
Requires: %lname-devel = %version-%release

%description -n %lname-devel-static
%name is a free library for encoding H264/AVC video streams. The code is
written from scratch.
Encoder features:
- CAVLC/CABAC
- Multi-references
- Intra: all macroblock types (16x16, 8x8, and 4x4 with all
 predictions)
- Inter P: all partitions (from 16x16 down to 4x4)
- Inter B: partitions from 16x16 down to 8x8 (including skip/direct)
- Ratecontrol: constant quantizer, single or multipass ABR, optional
 VBV
- Scene cut detection
- Adaptive B-frame placement
- B-frames as references / arbitrary frame order
- 8x8 and 4x4 adaptive spatial transform
- Lossless mode
- Custom quantization matrices
- Parallel encoding of multiple slices.

This package includes the static library needed to develop
%lname-based software.

%description -n %lname-devel-static -l uk_UA.CP1251
%name - вільна бібліотека для кодування відеопотоків H264/AVC. Код
написано "з нуля".
Властивості кодера:
- CAVLC/CABAC.
- Мультіпосилання.
- Intra: всі типи макроблоків (16x16, 8x8 та 4x4 з усіма
 передбаченнями).
- Inter P: усі розподіли (від 16x16 до 4x4).
- Inter B: роподіли від 16x16 до 8x8 (включаючи skip/direct).
- Ratecontrol: сталий квантизатор, одно- або багатопрохідний ABR,
 додатковий VBV.
- Виявлення обрізки сцени.
- Адаптивне розміщення B-кадрів.
- B-кадри у вигляді посилань / довільний порядок кадрів.
- 8x8 та 4x4 адаптивне просторове перетворення.
- Безвтратний метод.
- Пристосовувані матриці квантування.
- Паралельне кодування множини слайсів.

Цей пакет включає статичну бібліотеку, необхідну для розробки програм з
використанням %lname.

%description -n %lname-devel-static -l ru_RU.CP1251
%name - свободная библиотека для кодирования видеопотоков H264/AVC. Код
написан "с нуля".
Свойства кодера:
- CAVLC/CABAC.
- Мультиссылки.
- Intra: все типы макроблоков (16x16, 8x8 и 4x4 со всеми
 предвидениями).
- Inter P: все распределения (от 16x16 до 4x4).
- Inter B: распределения от 16x16 до 8x8 (включая skip/direct).
- Ratecontrol: постоянный квантизатор, одно- или многопроходный ABR,
 дополнительный VBV.
- Обнаружение обрезки сцены.
- Адаптивное розмещение B-кадров.
- B-кадры в виде ссылок / произвольный порядок кадров.
- 8x8 и 4x4 адаптивное пространственное превращение.
- Метод без потерь.
- Приспосабливаемые матрицы квантования.
- Параллельное кодирование множества слайсов.

Этот пакет включает статическую библиотеку, необходимую для разработки
программ с иcпользованием %lname.
%endif


%prep
%setup %{?githash:-n %name-git-%githash}
%patch -p1


%build
%ifarch x86_64
subst 's/^UNAMEM=.*$/UNAMEM=x86_64/' configure
%endif
%define _optlevel 3
%configure \
   %{subst_enable debug} \
   %{subst_enable_to prof gprof} \
   %{subst_enable pthread} \
%ifarch x86_64
   --enable-pic \
%else
   --disable-pic \
%endif
   %{subst_enable shared} \
   %{subst_enable static} \
   %{subst_enable_to mp4 mp4-output} \
   %{subst_enable visualize} \
   --disable-avis-input

%make_build %{?_enable_static:%lname.a} %name
%{?_with_utils:%{?_with_xyuv:gcc %optflags -o tools/xyuv tools/xyuv.c -lSDL}}


%install
%make_install DESTDIR=%buildroot install
%{?_with_utils:install -c -m 755 tools/{countquant_%name.pl%{?_with_xyuv:,xyuv}} %buildroot%_bindir}

%ifnarch x86_64
%set_verify_elf_method textrel=relaxed
%endif


%files
%_bindir/%name


%if_with utils
%files utils
%doc tools/q_matrix_jvt.cfg
%{?_with_xyuv:%_bindir/xyuv}
%_bindir/countquant_%name.pl
%endif


%if_enabled shared
%files -n %lname
%doc doc/*.txt AUTHORS
%_libdir/%lname.so.*
%endif


%files -n %lname-devel
%{?_disable_shared:%doc doc/*.txt AUTHORS}
%_includedir/%name.h
%_pkgconfigdir/*
%if_enabled shared
%_libdir/%lname.so
%else
%doc doc/*.txt AUTHORS
%endif


%if_enabled static
%files -n %lname-devel-static
%_libdir/*.a
%endif


%changelog

Full changelog you can see here

 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin