Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
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-2-2
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