of the service type in the audio bitstream.tags/n0.8
@@ -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 | ||||
@@ -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, \ | ||||