diff options
author | Nicolas George <nicolas.george@normalesup.org> | 2012-04-28 14:07:50 +0200 |
---|---|---|
committer | Nicolas George <nicolas.george@normalesup.org> | 2012-04-28 20:14:48 +0200 |
commit | 128dda7016719fc763c0c9f754abb3196b9e18f3 (patch) | |
tree | 9154e3d96ebe1fa5262cf1e71465891f4d2ca66d | |
parent | 4b0521eca9647a092388c44186ea07b3d4416cdb (diff) | |
download | ffmpeg-128dda7016719fc763c0c9f754abb3196b9e18f3.tar.gz |
lavc: add a sample_rate field to AVFrame.
The field is filled with the codec context information.
-rw-r--r-- | libavcodec/avcodec.h | 9 | ||||
-rw-r--r-- | libavcodec/options.c | 1 | ||||
-rw-r--r-- | libavcodec/utils.c | 2 |
3 files changed, 12 insertions, 0 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index fed72bb69b..ba51ec1928 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -1267,6 +1267,15 @@ typedef struct AVFrame { */ int64_t channel_layout; + /** + * sample rate of the audio frame + * - encoding: unused + * - decoding: read by user. + * Code outside libavcodec should access this field using: + * av_opt_ptr(avcodec_get_frame_class(), frame, "sample_rate") + */ + int sample_rate; + } AVFrame; struct AVCodecInternal; diff --git a/libavcodec/options.c b/libavcodec/options.c index 173729cbc2..3731b1f535 100644 --- a/libavcodec/options.c +++ b/libavcodec/options.c @@ -240,6 +240,7 @@ static const AVOption frame_options[]={ {"height", "", FOFFSET(height), AV_OPT_TYPE_INT, {.dbl = 0 }, 0, INT_MAX, 0}, {"format", "", FOFFSET(format), AV_OPT_TYPE_INT, {.dbl = -1 }, 0, INT_MAX, 0}, {"channel_layout", "", FOFFSET(channel_layout), AV_OPT_TYPE_INT64, {.dbl = 0 }, 0, INT64_MAX, 0}, +{"sample_rate", "", FOFFSET(sample_rate), AV_OPT_TYPE_INT, {.dbl = 0 }, 0, INT_MAX, 0}, {NULL}, }; diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 85c6351380..4b6ddeae1c 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -1547,6 +1547,8 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx, frame->format = avctx->sample_fmt; if (!frame->channel_layout) frame->channel_layout = avctx->channel_layout; + if (!frame->sample_rate) + frame->sample_rate = avctx->sample_rate; } avctx->pkt = NULL; |