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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user