mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Add a side data type for audio service type.
Currently, audio service type is a field in AVCodecContext. However, side data is more appropriate for this kind of information.
This commit is contained in:
parent
80a11de7dc
commit
728685f37a
@ -13,6 +13,10 @@ libavutil: 2014-08-09
|
||||
|
||||
API changes, most recent first:
|
||||
|
||||
2014-11-xx - xxxxxxx - lavc 56.12.0, lavu 54.8.0 - avcodec.h, frame.h
|
||||
Add AV_PKT_DATA_AUDIO_SERVICE_TYPE and AV_FRAME_DATA_AUDIO_SERVICE_TYPE for
|
||||
storing the audio service type as side data.
|
||||
|
||||
201x-xx-xx - xxxxxxx - lavc 56.10.0 - vdpau.h
|
||||
Add av_vdpau_get_surface_parameters().
|
||||
|
||||
|
@ -917,6 +917,12 @@ enum AVPacketSideDataType {
|
||||
* Stereoscopic 3D information in form of the AVStereo3D struct.
|
||||
*/
|
||||
AV_PKT_DATA_STEREO3D,
|
||||
|
||||
/**
|
||||
* This side data should be associated with an audio stream and corresponds
|
||||
* to enum AVAudioServiceType.
|
||||
*/
|
||||
AV_PKT_DATA_AUDIO_SERVICE_TYPE,
|
||||
};
|
||||
|
||||
typedef struct AVPacketSideData {
|
||||
|
@ -569,6 +569,7 @@ int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame)
|
||||
{ AV_PKT_DATA_REPLAYGAIN , AV_FRAME_DATA_REPLAYGAIN },
|
||||
{ AV_PKT_DATA_DISPLAYMATRIX, AV_FRAME_DATA_DISPLAYMATRIX },
|
||||
{ AV_PKT_DATA_STEREO3D, AV_FRAME_DATA_STEREO3D },
|
||||
{ AV_PKT_DATA_AUDIO_SERVICE_TYPE, AV_FRAME_DATA_AUDIO_SERVICE_TYPE },
|
||||
};
|
||||
|
||||
frame->color_primaries = avctx->color_primaries;
|
||||
|
@ -29,7 +29,7 @@
|
||||
#include "libavutil/version.h"
|
||||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 56
|
||||
#define LIBAVCODEC_VERSION_MINOR 11
|
||||
#define LIBAVCODEC_VERSION_MINOR 12
|
||||
#define LIBAVCODEC_VERSION_MICRO 0
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||
|
@ -157,6 +157,30 @@ static void dump_replaygain(AVFilterContext *ctx, AVFrameSideData *sd)
|
||||
print_peak(ctx, "album peak", rg->album_peak);
|
||||
}
|
||||
|
||||
static void dump_audio_service_type(AVFilterContext *ctx, AVFrameSideData *sd)
|
||||
{
|
||||
enum AVAudioServiceType *ast;
|
||||
|
||||
av_log(ctx, AV_LOG_INFO, "audio service type: ");
|
||||
if (sd->size < sizeof(*ast)) {
|
||||
av_log(ctx, AV_LOG_INFO, "invalid data");
|
||||
return;
|
||||
}
|
||||
ast = (enum AVAudioServiceType*)sd->data;
|
||||
switch (*ast) {
|
||||
case AV_AUDIO_SERVICE_TYPE_MAIN: av_log(ctx, AV_LOG_INFO, "Main Audio Service"); break;
|
||||
case AV_AUDIO_SERVICE_TYPE_EFFECTS: av_log(ctx, AV_LOG_INFO, "Effects"); break;
|
||||
case AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED: av_log(ctx, AV_LOG_INFO, "Visually Impaired"); break;
|
||||
case AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED: av_log(ctx, AV_LOG_INFO, "Hearing Impaired"); break;
|
||||
case AV_AUDIO_SERVICE_TYPE_DIALOGUE: av_log(ctx, AV_LOG_INFO, "Dialogue"); break;
|
||||
case AV_AUDIO_SERVICE_TYPE_COMMENTARY: av_log(ctx, AV_LOG_INFO, "Commentary"); break;
|
||||
case AV_AUDIO_SERVICE_TYPE_EMERGENCY: av_log(ctx, AV_LOG_INFO, "Emergency"); break;
|
||||
case AV_AUDIO_SERVICE_TYPE_VOICE_OVER: av_log(ctx, AV_LOG_INFO, "Voice Over"); break;
|
||||
case AV_AUDIO_SERVICE_TYPE_KARAOKE: av_log(ctx, AV_LOG_INFO, "Karaoke"); break;
|
||||
default: av_log(ctx, AV_LOG_INFO, "unknown"); break;
|
||||
}
|
||||
}
|
||||
|
||||
static void dump_unknown(AVFilterContext *ctx, AVFrameSideData *sd)
|
||||
{
|
||||
av_log(ctx, AV_LOG_INFO, "unknown side data type: %d, size %d bytes", sd->type, sd->size);
|
||||
@ -208,6 +232,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
|
||||
case AV_FRAME_DATA_MATRIXENCODING: dump_matrixenc (ctx, sd); break;
|
||||
case AV_FRAME_DATA_DOWNMIX_INFO: dump_downmix (ctx, sd); break;
|
||||
case AV_FRAME_DATA_REPLAYGAIN: dump_replaygain(ctx, sd); break;
|
||||
case AV_FRAME_DATA_AUDIO_SERVICE_TYPE: dump_audio_service_type(ctx, sd); break;
|
||||
default: dump_unknown (ctx, sd); break;
|
||||
}
|
||||
|
||||
|
@ -87,6 +87,12 @@ enum AVFrameSideDataType {
|
||||
* in ETSI TS 101 154 using enum AVActiveFormatDescription.
|
||||
*/
|
||||
AV_FRAME_DATA_AFD,
|
||||
|
||||
/**
|
||||
* This side data must be associated with an audio frame and corresponds to
|
||||
* enum AVAudioServiceType defined in avcodec.h.
|
||||
*/
|
||||
AV_FRAME_DATA_AUDIO_SERVICE_TYPE,
|
||||
};
|
||||
|
||||
enum AVActiveFormatDescription {
|
||||
|
@ -54,7 +54,7 @@
|
||||
*/
|
||||
|
||||
#define LIBAVUTIL_VERSION_MAJOR 54
|
||||
#define LIBAVUTIL_VERSION_MINOR 7
|
||||
#define LIBAVUTIL_VERSION_MINOR 8
|
||||
#define LIBAVUTIL_VERSION_MICRO 0
|
||||
|
||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||
|
Loading…
Reference in New Issue
Block a user