diff options
author | Stefano Sabatini <stefasab@gmail.com> | 2012-07-30 16:00:05 +0200 |
---|---|---|
committer | Stefano Sabatini <stefasab@gmail.com> | 2012-11-13 12:15:27 +0100 |
commit | 794566520018d65ae0678b3928fe78d5ed7a8004 (patch) | |
tree | 0879db4474c575f029c6f92f4cb9136aaf1888d5 /libavfilter | |
parent | 9d2a7c04812ae6f3db2e58570242a15ff25a335a (diff) | |
download | ffmpeg-794566520018d65ae0678b3928fe78d5ed7a8004.tar.gz |
lavfi: store and propagate number of channels information in audio buffer properties
The channels field is required since the channel layout is not always
available.
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/af_ashowinfo.c | 4 | ||||
-rw-r--r-- | libavfilter/avcodec.c | 2 | ||||
-rw-r--r-- | libavfilter/avfilter.h | 1 | ||||
-rw-r--r-- | libavfilter/version.h | 4 |
4 files changed, 7 insertions, 4 deletions
diff --git a/libavfilter/af_ashowinfo.c b/libavfilter/af_ashowinfo.c index 8e4f30159f..31a4e04653 100644 --- a/libavfilter/af_ashowinfo.c +++ b/libavfilter/af_ashowinfo.c @@ -85,12 +85,12 @@ static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *buf) av_log(ctx, AV_LOG_INFO, "n:%"PRIu64" pts:%s pts_time:%s pos:%"PRId64" " - "fmt:%s chlayout:%s rate:%d nb_samples:%d " + "fmt:%s channels:%d chlayout:%s rate:%d nb_samples:%d " "checksum:%08X ", s->frame, av_ts2str(buf->pts), av_ts2timestr(buf->pts, &inlink->time_base), buf->pos, - av_get_sample_fmt_name(buf->format), chlayout_str, + av_get_sample_fmt_name(buf->format), buf->audio->channels, chlayout_str, buf->audio->sample_rate, buf->audio->nb_samples, checksum); diff --git a/libavfilter/avcodec.c b/libavfilter/avcodec.c index c9c8f3c1c1..5ace9d9686 100644 --- a/libavfilter/avcodec.c +++ b/libavfilter/avcodec.c @@ -60,6 +60,7 @@ int avfilter_copy_frame_props(AVFilterBufferRef *dst, const AVFrame *src) case AVMEDIA_TYPE_AUDIO: dst->audio->sample_rate = src->sample_rate; dst->audio->channel_layout = src->channel_layout; + dst->audio->channels = src->channels; if(src->channels != av_get_channel_layout_nb_channels(src->channel_layout)) { av_log(0, AV_LOG_ERROR, "libavfilter does not support this channel layout\n"); return AVERROR(EINVAL); @@ -161,6 +162,7 @@ int avfilter_copy_buf_props(AVFrame *dst, const AVFilterBufferRef *src) dst->nb_samples = src->audio->nb_samples; av_frame_set_sample_rate (dst, src->audio->sample_rate); av_frame_set_channel_layout(dst, src->audio->channel_layout); + av_frame_set_channels (dst, src->audio->channels); break; default: return AVERROR(EINVAL); diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index ea8464e401..650ba095c8 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -117,6 +117,7 @@ typedef struct AVFilterBufferRefAudioProps { uint64_t channel_layout; ///< channel layout of audio buffer int nb_samples; ///< number of audio samples per channel int sample_rate; ///< audio buffer sample rate + int channels; ///< number of channels } AVFilterBufferRefAudioProps; /** diff --git a/libavfilter/version.h b/libavfilter/version.h index 87fe669c7c..9eda9b7270 100644 --- a/libavfilter/version.h +++ b/libavfilter/version.h @@ -29,8 +29,8 @@ #include "libavutil/avutil.h" #define LIBAVFILTER_VERSION_MAJOR 3 -#define LIBAVFILTER_VERSION_MINOR 22 -#define LIBAVFILTER_VERSION_MICRO 101 +#define LIBAVFILTER_VERSION_MINOR 23 +#define LIBAVFILTER_VERSION_MICRO 100 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ LIBAVFILTER_VERSION_MINOR, \ |