You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-11-23 21:54:53 +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:
@@ -13,6 +13,10 @@ libavutil: 2014-08-09
|
|||||||
|
|
||||||
API changes, most recent first:
|
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
|
201x-xx-xx - xxxxxxx - lavc 56.10.0 - vdpau.h
|
||||||
Add av_vdpau_get_surface_parameters().
|
Add av_vdpau_get_surface_parameters().
|
||||||
|
|
||||||
|
|||||||
@@ -917,6 +917,12 @@ enum AVPacketSideDataType {
|
|||||||
* Stereoscopic 3D information in form of the AVStereo3D struct.
|
* Stereoscopic 3D information in form of the AVStereo3D struct.
|
||||||
*/
|
*/
|
||||||
AV_PKT_DATA_STEREO3D,
|
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 {
|
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_REPLAYGAIN , AV_FRAME_DATA_REPLAYGAIN },
|
||||||
{ AV_PKT_DATA_DISPLAYMATRIX, AV_FRAME_DATA_DISPLAYMATRIX },
|
{ AV_PKT_DATA_DISPLAYMATRIX, AV_FRAME_DATA_DISPLAYMATRIX },
|
||||||
{ AV_PKT_DATA_STEREO3D, AV_FRAME_DATA_STEREO3D },
|
{ 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;
|
frame->color_primaries = avctx->color_primaries;
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
#include "libavutil/version.h"
|
#include "libavutil/version.h"
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_MAJOR 56
|
#define LIBAVCODEC_VERSION_MAJOR 56
|
||||||
#define LIBAVCODEC_VERSION_MINOR 11
|
#define LIBAVCODEC_VERSION_MINOR 12
|
||||||
#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, \
|
||||||
|
|||||||
@@ -157,6 +157,30 @@ static void dump_replaygain(AVFilterContext *ctx, AVFrameSideData *sd)
|
|||||||
print_peak(ctx, "album peak", rg->album_peak);
|
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)
|
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);
|
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_MATRIXENCODING: dump_matrixenc (ctx, sd); break;
|
||||||
case AV_FRAME_DATA_DOWNMIX_INFO: dump_downmix (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_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;
|
default: dump_unknown (ctx, sd); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -87,6 +87,12 @@ enum AVFrameSideDataType {
|
|||||||
* in ETSI TS 101 154 using enum AVActiveFormatDescription.
|
* in ETSI TS 101 154 using enum AVActiveFormatDescription.
|
||||||
*/
|
*/
|
||||||
AV_FRAME_DATA_AFD,
|
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 {
|
enum AVActiveFormatDescription {
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#define LIBAVUTIL_VERSION_MAJOR 54
|
#define LIBAVUTIL_VERSION_MAJOR 54
|
||||||
#define LIBAVUTIL_VERSION_MINOR 7
|
#define LIBAVUTIL_VERSION_MINOR 8
|
||||||
#define LIBAVUTIL_VERSION_MICRO 0
|
#define LIBAVUTIL_VERSION_MICRO 0
|
||||||
|
|
||||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||||
|
|||||||
Reference in New Issue
Block a user