mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Add audio_service_type field to AVCodecContext for encoding and reporting
of the service type in the audio bitstream.
This commit is contained in:
parent
7e75f9fe5e
commit
34b47d7cbc
@ -586,6 +586,28 @@ Set the ISO 639 language code (3 letters) of the current audio stream.
|
||||
@table @option
|
||||
@item -atag @var{fourcc/tag}
|
||||
Force audio tag/fourcc.
|
||||
@item -audio_service_type @var{type}
|
||||
Set the type of service that the audio stream contains.
|
||||
@table @option
|
||||
@item ma
|
||||
Main Audio Service (default)
|
||||
@item ef
|
||||
Effects
|
||||
@item vi
|
||||
Visually Impaired
|
||||
@item hi
|
||||
Hearing Impaired
|
||||
@item di
|
||||
Dialogue
|
||||
@item co
|
||||
Commentary
|
||||
@item em
|
||||
Emergency
|
||||
@item vo
|
||||
Voice Over
|
||||
@item ka
|
||||
Karaoke
|
||||
@end table
|
||||
@item -absf @var{bitstream_filter}
|
||||
Bitstream filters available are "dump_extra", "remove_extra", "noise", "mp3comp", "mp3decomp".
|
||||
@end table
|
||||
|
1
ffmpeg.c
1
ffmpeg.c
@ -2100,6 +2100,7 @@ static int transcode(AVFormatContext **output_files,
|
||||
codec->sample_rate = icodec->sample_rate;
|
||||
codec->channels = icodec->channels;
|
||||
codec->frame_size = icodec->frame_size;
|
||||
codec->audio_service_type = icodec->audio_service_type;
|
||||
codec->block_align= icodec->block_align;
|
||||
if(codec->block_align == 1 && codec->codec_id == CODEC_ID_MP3)
|
||||
codec->block_align= 0;
|
||||
|
@ -546,6 +546,19 @@ enum AVLPCType {
|
||||
AV_LPC_TYPE_NB , ///< Not part of ABI
|
||||
};
|
||||
|
||||
enum AVAudioServiceType {
|
||||
AV_AUDIO_SERVICE_TYPE_MAIN = 0,
|
||||
AV_AUDIO_SERVICE_TYPE_EFFECTS = 1,
|
||||
AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED = 2,
|
||||
AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED = 3,
|
||||
AV_AUDIO_SERVICE_TYPE_DIALOGUE = 4,
|
||||
AV_AUDIO_SERVICE_TYPE_COMMENTARY = 5,
|
||||
AV_AUDIO_SERVICE_TYPE_EMERGENCY = 6,
|
||||
AV_AUDIO_SERVICE_TYPE_VOICE_OVER = 7,
|
||||
AV_AUDIO_SERVICE_TYPE_KARAOKE = 8,
|
||||
AV_AUDIO_SERVICE_TYPE_NB , ///< Not part of ABI
|
||||
};
|
||||
|
||||
typedef struct RcOverride{
|
||||
int start_frame;
|
||||
int end_frame;
|
||||
@ -2864,6 +2877,13 @@ typedef struct AVCodecContext {
|
||||
* - decoding: unused.
|
||||
*/
|
||||
uint64_t vbv_delay;
|
||||
|
||||
/**
|
||||
* Type of service that the audio stream conveys.
|
||||
* - encoding: Set by user.
|
||||
* - decoding: Set by libavcodec.
|
||||
*/
|
||||
enum AVAudioServiceType audio_service_type;
|
||||
} AVCodecContext;
|
||||
|
||||
/**
|
||||
|
@ -436,6 +436,16 @@ static const AVOption options[]={
|
||||
{"slice", NULL, 0, FF_OPT_TYPE_CONST, FF_THREAD_SLICE, INT_MIN, INT_MAX, V|E|D, "thread_type"},
|
||||
{"frame", NULL, 0, FF_OPT_TYPE_CONST, FF_THREAD_FRAME, INT_MIN, INT_MAX, V|E|D, "thread_type"},
|
||||
{"vbv_delay", "initial buffer fill time in periods of 27Mhz clock", 0, FF_OPT_TYPE_INT64, 0, 0, INT64_MAX},
|
||||
{"audio_service_type", "audio service type", OFFSET(audio_service_type), FF_OPT_TYPE_INT, AV_AUDIO_SERVICE_TYPE_MAIN, 0, AV_AUDIO_SERVICE_TYPE_NB-1, A|E, "audio_service_type"},
|
||||
{"ma", "Main Audio Service", 0, FF_OPT_TYPE_CONST, AV_AUDIO_SERVICE_TYPE_MAIN, INT_MIN, INT_MAX, A|E, "audio_service_type"},
|
||||
{"ef", "Effects", 0, FF_OPT_TYPE_CONST, AV_AUDIO_SERVICE_TYPE_EFFECTS, INT_MIN, INT_MAX, A|E, "audio_service_type"},
|
||||
{"vi", "Visually Impaired", 0, FF_OPT_TYPE_CONST, AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED, INT_MIN, INT_MAX, A|E, "audio_service_type"},
|
||||
{"hi", "Hearing Impaired", 0, FF_OPT_TYPE_CONST, AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED, INT_MIN, INT_MAX, A|E, "audio_service_type"},
|
||||
{"di", "Dialogue", 0, FF_OPT_TYPE_CONST, AV_AUDIO_SERVICE_TYPE_DIALOGUE, INT_MIN, INT_MAX, A|E, "audio_service_type"},
|
||||
{"co", "Commentary", 0, FF_OPT_TYPE_CONST, AV_AUDIO_SERVICE_TYPE_COMMENTARY, INT_MIN, INT_MAX, A|E, "audio_service_type"},
|
||||
{"em", "Emergency", 0, FF_OPT_TYPE_CONST, AV_AUDIO_SERVICE_TYPE_EMERGENCY, INT_MIN, INT_MAX, A|E, "audio_service_type"},
|
||||
{"vo", "Voice Over", 0, FF_OPT_TYPE_CONST, AV_AUDIO_SERVICE_TYPE_VOICE_OVER, INT_MIN, INT_MAX, A|E, "audio_service_type"},
|
||||
{"ka", "Karaoke", 0, FF_OPT_TYPE_CONST, AV_AUDIO_SERVICE_TYPE_KARAOKE, INT_MIN, INT_MAX, A|E, "audio_service_type"},
|
||||
{NULL},
|
||||
};
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
#define AVCODEC_VERSION_H
|
||||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 52
|
||||
#define LIBAVCODEC_VERSION_MINOR 114
|
||||
#define LIBAVCODEC_VERSION_MINOR 115
|
||||
#define LIBAVCODEC_VERSION_MICRO 0
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||
|
Loading…
Reference in New Issue
Block a user