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
73fd668c
Commit
73fd668c
authored
Mar 14, 2008
by
Jean-Paul Saman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Backport AAC Profile transcoding selection from 0.9.0
parent
eba02272
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
51 additions
and
2 deletions
+51
-2
modules/codec/ffmpeg/encoder.c
modules/codec/ffmpeg/encoder.c
+39
-2
modules/codec/ffmpeg/ffmpeg.c
modules/codec/ffmpeg/ffmpeg.c
+5
-0
modules/codec/ffmpeg/ffmpeg.h
modules/codec/ffmpeg/ffmpeg.h
+7
-0
No files found.
modules/codec/ffmpeg/encoder.c
View file @
73fd668c
...
...
@@ -145,7 +145,9 @@ struct encoder_sys_t
int
i_quality
;
/* for VBR */
float
f_lumi_masking
,
f_dark_masking
,
f_p_masking
,
f_border_masking
;
int
i_luma_elim
,
i_chroma_elim
;
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(40<<8)+4)
int
i_aac_profile
;
/* AAC profile to use.*/
#endif
/* Used to work around stupid timestamping behaviour in libavcodec */
uint64_t
i_framenum
;
mtime_t
pi_delay_pts
[
MAX_FRAME_DELAY
];
...
...
@@ -157,7 +159,11 @@ static const char *ppsz_enc_options[] = {
"interlace"
,
"i-quant-factor"
,
"noise-reduction"
,
"mpeg4-matrix"
,
"trellis"
,
"qscale"
,
"strict"
,
"lumi-masking"
,
"dark-masking"
,
"p-masking"
,
"border-masking"
,
"luma-elim-threshold"
,
"chroma-elim-threshold"
,
NULL
"chroma-elim-threshold"
,
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(40<<8)+4)
"aac-profile"
,
#endif
NULL
};
static
const
uint16_t
mpa_bitrate_tab
[
2
][
15
]
=
...
...
@@ -373,6 +379,30 @@ int E_(OpenEncoder)( vlc_object_t *p_this )
var_Get
(
p_enc
,
ENC_CFG_PREFIX
"chroma-elim-threshold"
,
&
val
);
p_sys
->
i_chroma_elim
=
val
.
i_int
;
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(40<<8)+4)
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
{
msg_Warn
(
p_enc
,
"unknown AAC profile requested"
);
p_sys
->
i_aac_profile
=
FF_PROFILE_UNKNOWN
;
}
}
if
(
val
.
psz_string
)
free
(
val
.
psz_string
);
#endif
if
(
p_enc
->
fmt_in
.
i_cat
==
VIDEO_ES
)
{
int
i_aspect_num
,
i_aspect_den
;
...
...
@@ -564,6 +594,13 @@ int E_(OpenEncoder)( vlc_object_t *p_this )
p_enc
->
fmt_in
.
i_codec
=
AOUT_FMT_S16_NE
;
p_context
->
sample_rate
=
p_enc
->
fmt_in
.
audio
.
i_rate
;
p_context
->
channels
=
p_enc
->
fmt_in
.
audio
.
i_channels
;
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(40<<8)+4)
/* Ignore FF_PROFILE_UNKNOWN */
if
(
(
p_sys
->
i_aac_profile
>=
FF_PROFILE_AAC_MAIN
)
&&
(
p_enc
->
fmt_out
.
i_codec
==
VLC_FOURCC
(
'm'
,
'p'
,
'4'
,
'a'
)
)
)
p_context
->
profile
=
p_sys
->
i_aac_profile
;
#endif
}
/* Misc parameters */
...
...
modules/codec/ffmpeg/ffmpeg.c
View file @
73fd668c
...
...
@@ -187,6 +187,11 @@ vlc_module_begin();
ENC_LUMA_ELIM_TEXT
,
ENC_LUMA_ELIM_LONGTEXT
,
VLC_TRUE
);
add_integer
(
ENC_CFG_PREFIX
"chroma-elim-threshold"
,
0
,
NULL
,
ENC_CHROMA_ELIM_TEXT
,
ENC_CHROMA_ELIM_LONGTEXT
,
VLC_TRUE
);
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(40<<8)+4)
/* Audio AAC encoder profile */
add_string
(
ENC_CFG_PREFIX
"aac-profile"
,
"main"
,
NULL
,
ENC_PROFILE_TEXT
,
ENC_PROFILE_LONGTEXT
,
VLC_TRUE
);
#endif
/* demux submodule */
add_submodule
();
...
...
modules/codec/ffmpeg/ffmpeg.h
View file @
73fd668c
...
...
@@ -294,5 +294,12 @@ N_("<filterName>[:<option>[:<option>...]][[,|/][-]<filterName>[:<option>...]]...
"the PSNR isn't much changed (default: 0.0). The H264 specification " \
"recommends 7." )
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(40<<8)+4)
#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)" )
#endif
#define SCALEMODE_TEXT N_("Scaling mode")
#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