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
|
@table @option
|
||||||
@item -atag @var{fourcc/tag}
|
@item -atag @var{fourcc/tag}
|
||||||
Force audio tag/fourcc.
|
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}
|
@item -absf @var{bitstream_filter}
|
||||||
Bitstream filters available are "dump_extra", "remove_extra", "noise", "mp3comp", "mp3decomp".
|
Bitstream filters available are "dump_extra", "remove_extra", "noise", "mp3comp", "mp3decomp".
|
||||||
@end table
|
@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->sample_rate = icodec->sample_rate;
|
||||||
codec->channels = icodec->channels;
|
codec->channels = icodec->channels;
|
||||||
codec->frame_size = icodec->frame_size;
|
codec->frame_size = icodec->frame_size;
|
||||||
|
codec->audio_service_type = icodec->audio_service_type;
|
||||||
codec->block_align= icodec->block_align;
|
codec->block_align= icodec->block_align;
|
||||||
if(codec->block_align == 1 && codec->codec_id == CODEC_ID_MP3)
|
if(codec->block_align == 1 && codec->codec_id == CODEC_ID_MP3)
|
||||||
codec->block_align= 0;
|
codec->block_align= 0;
|
||||||
|
@ -546,6 +546,19 @@ enum AVLPCType {
|
|||||||
AV_LPC_TYPE_NB , ///< Not part of ABI
|
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{
|
typedef struct RcOverride{
|
||||||
int start_frame;
|
int start_frame;
|
||||||
int end_frame;
|
int end_frame;
|
||||||
@ -2864,6 +2877,13 @@ typedef struct AVCodecContext {
|
|||||||
* - decoding: unused.
|
* - decoding: unused.
|
||||||
*/
|
*/
|
||||||
uint64_t vbv_delay;
|
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;
|
} 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"},
|
{"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"},
|
{"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},
|
{"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},
|
{NULL},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
#define AVCODEC_VERSION_H
|
#define AVCODEC_VERSION_H
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_MAJOR 52
|
#define LIBAVCODEC_VERSION_MAJOR 52
|
||||||
#define LIBAVCODEC_VERSION_MINOR 114
|
#define LIBAVCODEC_VERSION_MINOR 115
|
||||||
#define LIBAVCODEC_VERSION_MICRO 0
|
#define LIBAVCODEC_VERSION_MICRO 0
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||||
|
Loading…
Reference in New Issue
Block a user