Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Sabatini <stefasab@gmail.com>2012-07-30 18:00:05 +0400
committerStefano Sabatini <stefasab@gmail.com>2012-11-13 15:15:27 +0400
commit794566520018d65ae0678b3928fe78d5ed7a8004 (patch)
tree0879db4474c575f029c6f92f4cb9136aaf1888d5 /libavfilter
parent9d2a7c04812ae6f3db2e58570242a15ff25a335a (diff)
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.c4
-rw-r--r--libavfilter/avcodec.c2
-rw-r--r--libavfilter/avfilter.h1
-rw-r--r--libavfilter/version.h4
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, \