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
ba014d62
Commit
ba014d62
authored
Mar 02, 2008
by
Jean-Paul Saman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add option to encode aac low, main, sbr or ltp profiles.
parent
7c12daab
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
36 additions
and
4 deletions
+36
-4
modules/codec/ffmpeg/encoder.c
modules/codec/ffmpeg/encoder.c
+26
-4
modules/codec/ffmpeg/ffmpeg.c
modules/codec/ffmpeg/ffmpeg.c
+5
-0
modules/codec/ffmpeg/ffmpeg.h
modules/codec/ffmpeg/ffmpeg.h
+5
-0
No files found.
modules/codec/ffmpeg/encoder.c
View file @
ba014d62
...
@@ -141,6 +141,7 @@ struct encoder_sys_t
...
@@ -141,6 +141,7 @@ struct encoder_sys_t
int
i_quality
;
/* for VBR */
int
i_quality
;
/* for VBR */
float
f_lumi_masking
,
f_dark_masking
,
f_p_masking
,
f_border_masking
;
float
f_lumi_masking
,
f_dark_masking
,
f_p_masking
,
f_border_masking
;
int
i_luma_elim
,
i_chroma_elim
;
int
i_luma_elim
,
i_chroma_elim
;
int
i_aac_profile
;
/* AAC profile to use.*/
/* Used to work around stupid timestamping behaviour in libavcodec */
/* Used to work around stupid timestamping behaviour in libavcodec */
uint64_t
i_framenum
;
uint64_t
i_framenum
;
...
@@ -153,7 +154,7 @@ static const char *ppsz_enc_options[] = {
...
@@ -153,7 +154,7 @@ static const char *ppsz_enc_options[] = {
"interlace"
,
"i-quant-factor"
,
"noise-reduction"
,
"mpeg4-matrix"
,
"interlace"
,
"i-quant-factor"
,
"noise-reduction"
,
"mpeg4-matrix"
,
"trellis"
,
"qscale"
,
"strict"
,
"lumi-masking"
,
"dark-masking"
,
"trellis"
,
"qscale"
,
"strict"
,
"lumi-masking"
,
"dark-masking"
,
"p-masking"
,
"border-masking"
,
"luma-elim-threshold"
,
"p-masking"
,
"border-masking"
,
"luma-elim-threshold"
,
"chroma-elim-threshold"
,
NULL
"chroma-elim-threshold"
,
"aac-profile"
,
NULL
};
};
static
const
uint16_t
mpa_bitrate_tab
[
2
][
15
]
=
static
const
uint16_t
mpa_bitrate_tab
[
2
][
15
]
=
...
@@ -187,7 +188,6 @@ static const uint16_t mpeg4_default_non_intra_matrix[64] = {
...
@@ -187,7 +188,6 @@ static const uint16_t mpeg4_default_non_intra_matrix[64] = {
23
,
24
,
25
,
27
,
28
,
30
,
31
,
33
,
23
,
24
,
25
,
27
,
28
,
30
,
31
,
33
,
};
};
/*****************************************************************************
/*****************************************************************************
* OpenEncoder: probe the encoder
* OpenEncoder: probe the encoder
*****************************************************************************/
*****************************************************************************/
...
@@ -333,6 +333,7 @@ int E_(OpenEncoder)( vlc_object_t *p_this )
...
@@ -333,6 +333,7 @@ int E_(OpenEncoder)( vlc_object_t *p_this )
p_sys
->
i_quality
=
(
int
)(
FF_QP2LAMBDA
*
val
.
f_float
+
0
.
5
);
p_sys
->
i_quality
=
(
int
)(
FF_QP2LAMBDA
*
val
.
f_float
+
0
.
5
);
var_Get
(
p_enc
,
ENC_CFG_PREFIX
"hq"
,
&
val
);
var_Get
(
p_enc
,
ENC_CFG_PREFIX
"hq"
,
&
val
);
p_sys
->
i_hq
=
FF_MB_DECISION_RD
;
if
(
val
.
psz_string
&&
*
val
.
psz_string
)
if
(
val
.
psz_string
&&
*
val
.
psz_string
)
{
{
if
(
!
strcmp
(
val
.
psz_string
,
"rd"
)
)
if
(
!
strcmp
(
val
.
psz_string
,
"rd"
)
)
...
@@ -344,8 +345,6 @@ int E_(OpenEncoder)( vlc_object_t *p_this )
...
@@ -344,8 +345,6 @@ int E_(OpenEncoder)( vlc_object_t *p_this )
else
else
p_sys
->
i_hq
=
FF_MB_DECISION_RD
;
p_sys
->
i_hq
=
FF_MB_DECISION_RD
;
}
}
else
p_sys
->
i_hq
=
FF_MB_DECISION_RD
;
if
(
val
.
psz_string
)
free
(
val
.
psz_string
);
if
(
val
.
psz_string
)
free
(
val
.
psz_string
);
var_Get
(
p_enc
,
ENC_CFG_PREFIX
"qmin"
,
&
val
);
var_Get
(
p_enc
,
ENC_CFG_PREFIX
"qmin"
,
&
val
);
...
@@ -372,6 +371,26 @@ int E_(OpenEncoder)( vlc_object_t *p_this )
...
@@ -372,6 +371,26 @@ int E_(OpenEncoder)( vlc_object_t *p_this )
var_Get
(
p_enc
,
ENC_CFG_PREFIX
"chroma-elim-threshold"
,
&
val
);
var_Get
(
p_enc
,
ENC_CFG_PREFIX
"chroma-elim-threshold"
,
&
val
);
p_sys
->
i_chroma_elim
=
val
.
i_int
;
p_sys
->
i_chroma_elim
=
val
.
i_int
;
var_Get
(
p_enc
,
ENC_CFG_PREFIX
"aac-profile"
,
&
val
);
p_sys
->
i_aac_profile
=
FF_PROFILE_UNKNOWN
;
if
(
val
.
psz_string
&&
*
val
.
psz_string
)
{
if
(
!
strncmp
(
val
.
psz_string
,
"main"
,
4
)
)
p_sys
->
i_aac_profile
=
FF_PROFILE_AAC_MAIN
;
else
if
(
!
strncmp
(
val
.
psz_string
,
"low"
,
3
)
)
p_sys
->
i_aac_profile
=
FF_PROFILE_AAC_LOW
;
#if 0 /* Not supported by FAAC encoder */
else if( !strncmp( val.psz_string, "ssr", 3 ) )
p_sys->i_aac_profile = FF_PROFILE_AAC_SSR;
#endif
else
if
(
!
strncmp
(
val
.
psz_string
,
"ltp"
,
3
)
)
p_sys
->
i_aac_profile
=
FF_PROFILE_AAC_LTP
;
else
p_sys
->
i_aac_profile
=
FF_PROFILE_UNKNOWN
;
msg_Info
(
p_enc
,
"AAC profile %s"
,
val
.
psz_string
);
}
if
(
val
.
psz_string
)
free
(
val
.
psz_string
);
if
(
p_enc
->
fmt_in
.
i_cat
==
VIDEO_ES
)
if
(
p_enc
->
fmt_in
.
i_cat
==
VIDEO_ES
)
{
{
int
i_aspect_num
,
i_aspect_den
;
int
i_aspect_num
,
i_aspect_den
;
...
@@ -536,6 +555,9 @@ int E_(OpenEncoder)( vlc_object_t *p_this )
...
@@ -536,6 +555,9 @@ int E_(OpenEncoder)( vlc_object_t *p_this )
p_enc
->
fmt_in
.
i_codec
=
AOUT_FMT_S16_NE
;
p_enc
->
fmt_in
.
i_codec
=
AOUT_FMT_S16_NE
;
p_context
->
sample_rate
=
p_enc
->
fmt_in
.
audio
.
i_rate
;
p_context
->
sample_rate
=
p_enc
->
fmt_in
.
audio
.
i_rate
;
p_context
->
channels
=
p_enc
->
fmt_in
.
audio
.
i_channels
;
p_context
->
channels
=
p_enc
->
fmt_in
.
audio
.
i_channels
;
if
(
p_enc
->
fmt_out
.
i_codec
==
VLC_FOURCC
(
'm'
,
'p'
,
'4'
,
'a'
)
)
p_context
->
profile
=
p_sys
->
i_aac_profile
;
}
}
/* Misc parameters */
/* Misc parameters */
...
...
modules/codec/ffmpeg/ffmpeg.c
View file @
ba014d62
...
@@ -198,7 +198,12 @@ vlc_module_begin();
...
@@ -198,7 +198,12 @@ vlc_module_begin();
add_integer
(
ENC_CFG_PREFIX
"chroma-elim-threshold"
,
0
,
NULL
,
add_integer
(
ENC_CFG_PREFIX
"chroma-elim-threshold"
,
0
,
NULL
,
ENC_CHROMA_ELIM_TEXT
,
ENC_CHROMA_ELIM_LONGTEXT
,
VLC_TRUE
);
ENC_CHROMA_ELIM_TEXT
,
ENC_CHROMA_ELIM_LONGTEXT
,
VLC_TRUE
);
/* Audio AAC encoder profile */
add_string
(
ENC_CFG_PREFIX
"aac-profile"
,
"main"
,
NULL
,
ENC_PROFILE_TEXT
,
ENC_PROFILE_LONGTEXT
,
VLC_TRUE
);
#if defined(HAVE_LIBAVFORMAT_AVFORMAT_H) || defined(HAVE_FFMPEG_AVFORMAT_H) || defined(HAVE_LIBAVFORMAT_TREE)
#if defined(HAVE_LIBAVFORMAT_AVFORMAT_H) || defined(HAVE_FFMPEG_AVFORMAT_H) || defined(HAVE_LIBAVFORMAT_TREE)
/* demux submodule */
/* demux submodule */
add_submodule
();
add_submodule
();
set_description
(
_
(
"FFmpeg demuxer"
)
);
set_description
(
_
(
"FFmpeg demuxer"
)
);
...
...
modules/codec/ffmpeg/ffmpeg.h
View file @
ba014d62
...
@@ -306,6 +306,11 @@ N_("<filterName>[:<option>[:<option>...]][[,|/][-]<filterName>[:<option>...]]...
...
@@ -306,6 +306,11 @@ N_("<filterName>[:<option>[:<option>...]][[,|/][-]<filterName>[:<option>...]]...
"the PSNR isn't much changed (default: 0.0). The H264 specification " \
"the PSNR isn't much changed (default: 0.0). The H264 specification " \
"recommends 7." )
"recommends 7." )
#define ENC_PROFILE_TEXT N_( "Specify AAC audio profile to use" )
#define ENC_PROFILE_LONGTEXT N_( "Specify the AAC audio profile to use " \
"for encoding the audio bitstream. It takes the following options: " \
"main, low, ssr (not supported) and ltp (default: main)" )
#define SCALEMODE_TEXT N_("Scaling mode")
#define SCALEMODE_TEXT N_("Scaling mode")
#define SCALEMODE_LONGTEXT N_("Scaling mode to use.")
#define SCALEMODE_LONGTEXT N_("Scaling mode to use.")
...
...
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