Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
30188b9d
Commit
30188b9d
authored
Jan 14, 2012
by
Ilkka Ollakka
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x264.c: add x26410b-module for 10-bit encoding alongside normal 8-bit, supports only static linking
parent
797ca65c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
90 additions
and
4 deletions
+90
-4
configure.ac
configure.ac
+54
-2
modules/codec/Modules.am
modules/codec/Modules.am
+1
-0
modules/codec/x264.c
modules/codec/x264.c
+35
-2
No files found.
configure.ac
View file @
30188b9d
...
...
@@ -152,7 +152,7 @@ case "${host_os}" in
LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
VLC_ADD_LIBS([mkv mp4 motion], [-Wl,-framework,IOKit,-framework,CoreFoundation])
VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup])
VLC_ADD_LIBS([avcodec avformat access_avio swscale postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
VLC_ADD_LIBS([avcodec avformat access_avio swscale postproc i420_rgb_mmx x264
x26410b
],[-Wl,-read_only_relocs,suppress])
VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation])
...
...
@@ -620,7 +620,7 @@ AC_CHECK_FUNC(getopt_long,, [
AC_SUBST(GNUGETOPT_LIBS)
AC_CHECK_LIB(m,cos,[
VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene kate flac lua chorus_flanger freetype avcodec avformat access_avio swscale postproc i420_rgb faad twolame equalizer spatializer param_eq samplerate freetype mpc dmo mp4 quicktime qt4 compressor headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract ball access_imem hotkeys mosaic gaussianblur dbus x264 hqdn3d anaglyph],[-lm])
VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene kate flac lua chorus_flanger freetype avcodec avformat access_avio swscale postproc i420_rgb faad twolame equalizer spatializer param_eq samplerate freetype mpc dmo mp4 quicktime qt4 compressor headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract ball access_imem hotkeys mosaic gaussianblur dbus x264
10b
hqdn3d anaglyph],[-lm])
LIBM="-lm"
], [
LIBM=""
...
...
@@ -2767,6 +2767,58 @@ AC_CHECK_HEADERS(png.h, [
fi
AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
dnl
dnl H264 encoder plugin (10-bit lib264)
dnl
AC_ARG_ENABLE(x26410b,
[ --enable-x26410b H264 10-bit encoding support with static libx264 (default disabled)])
if test "${enable_x26410b}" != "no"; then
AC_ARG_WITH(x26410b-tree,
[ --with-x26410b-tree=PATH H264 10-bit encoding module with libx264 (static linking)],[],[])
if test "${with_x26410b_tree}" != "no" -a -n "${with_x26410b_tree}"
then
real_x26410b_tree="̧`cd ${with_x26410b_tree} 2>/dev/null && pwd`"
if test -z "${real_x26410b_tree}"
then
AC_MSG_RESULT(no)
AC_MSG_ERROR([${with_x26410b_tree} directory does not exist])
fi
AC_MSG_CHECKING(for x264.h in ${real_x26410b_tree})
if test -f ${with_x26410b_tree}/x264_config.h
then
AC_MSG_RESULT(yes)
AC_MSG_CHECKING(for 10-bit build of x264)
if grep -q "BIT_DEPTH.*10" ${with_x26410b_tree}/x264_config.h ;then
AC_MSG_RESULT(yes)
VLC_ADD_PLUGIN([x26410b])
VLC_ADD_CFLAGS([x26410b],[-I${with_x26410b_tree}])
VLC_ADD_LIBS([x26410b],[-L${with_x26410b_tree} -lm -lpthread -lx264])
else
AC_MSG_RESULT(no)
AC_MSG_ERROR([${with_x26410b_tree} isnt build 10-bit])
fi
else
AC_MSG_RESULT(no)
AC_MSG_ERROR([${with_x26410b_tree} doesnt have x264_config.h])
fi
else
PKG_CHECK_MODULES(X26410B, x26410b, [
VLC_ADD_PLUGIN([x26410b])
VLC_ADD_LDFLAGS([x26410b],[${X26410B_LIBS}])
AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
VLC_ADD_LIBS([x26410b],[-Wl,-Bsymbolic])
])
VLC_ADD_CFLAGS([x26410b],[${X26410B_CFLAGS}])
if echo ${X26410B_LIBS} |grep -q 'pthreadGC2'; then
VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
fi
], [
AC_MSG_ERROR([x26410b module doesn't work without staticly compiled libx264.a])
])
fi
fi
dnl
dnl H264 encoder plugin (using libx264)
dnl
...
...
modules/codec/Modules.am
View file @
30188b9d
...
...
@@ -18,6 +18,7 @@ SOURCES_dvbsub = dvbsub.c
SOURCES_telx = telx.c
SOURCES_mash = mash.cpp
SOURCES_x264 = x264.c
SOURCES_x26410b = x264.c
SOURCES_twolame = twolame.c
SOURCES_dirac = dirac.c
SOURCES_png = png.c
...
...
modules/codec/x264.c
View file @
30188b9d
...
...
@@ -44,7 +44,11 @@
#include <assert.h>
#ifdef MODULE_NAME_IS_x26410b
#define SOUT_CFG_PREFIX "sout-x26410b-"
#else
#define SOUT_CFG_PREFIX "sout-x264-"
#endif
/*****************************************************************************
* Module descriptor
...
...
@@ -433,8 +437,13 @@ static const char *const framepacking_list_text[] =
{
""
,
N_
(
"checkerboard"
),
N_
(
"column alternation"
),
N_
(
"row alternation"
),
N_
(
"side by side"
),
N_
(
"top bottom"
),
N_
(
"frame alternation"
)
};
vlc_module_begin
()
#ifdef MODULE_NAME_IS_x26410b
set_description
(
N_
(
"H.264/MPEG4 AVC encoder (x264 10-bit)"
))
set_capability
(
"encoder"
,
0
)
#else
set_description
(
N_
(
"H.264/MPEG4 AVC encoder (x264)"
))
set_capability
(
"encoder"
,
200
)
#endif
set_callbacks
(
Open
,
Close
)
set_category
(
CAT_INPUT
)
set_subcategory
(
SUBCAT_INPUT_VCODEC
)
...
...
@@ -793,22 +802,46 @@ static int Open ( vlc_object_t *p_this )
if
(
psz_profile
)
{
const
int
mask
=
x264_bit_depth
>
8
?
X264_CSP_HIGH_DEPTH
:
0
;
#ifdef MODULE_NAME_IS_x26410b
if
(
mask
==
0
)
{
msg_Err
(
p_enc
,
"Only high bith depth encoding supported, bit depth:%d"
,
x264_bit_depth
);
return
VLC_EGENERIC
;
}
#endif
if
(
!
strcmp
(
psz_profile
,
"high10"
)
)
{
p_enc
->
fmt_in
.
i_codec
=
mask
?
VLC_CODEC_I420_10L
:
VLC_CODEC_I420
;
p_sys
->
i_colorspace
=
X264_CSP_I420
|
mask
;
}
if
(
!
strcmp
(
psz_profile
,
"high422"
)
)
else
if
(
!
strcmp
(
psz_profile
,
"high422"
)
)
{
p_enc
->
fmt_in
.
i_codec
=
mask
?
VLC_CODEC_I422_10L
:
VLC_CODEC_I422
;
p_sys
->
i_colorspace
=
X264_CSP_I422
|
mask
;
}
if
(
!
strcmp
(
psz_profile
,
"high444"
)
)
else
if
(
!
strcmp
(
psz_profile
,
"high444"
)
)
{
p_enc
->
fmt_in
.
i_codec
=
mask
?
VLC_CODEC_I444_10L
:
VLC_CODEC_I444
;
p_sys
->
i_colorspace
=
X264_CSP_I444
|
mask
;
}
#ifdef MODULE_NAME_IS_x26410b
else
{
msg_Err
(
p_enc
,
"Only high-profiles and 10-bit are supported"
);
return
VLC_EGENERIC
;
}
#endif
}
#ifdef MODULE_NAME_IS_x26410b
else
{
msg_Err
(
p_enc
,
"Only high-profiles and 10-bit are supported"
);
return
VLC_EGENERIC
;
}
#endif
free
(
psz_profile
);
#endif //X264_BUILD
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment