Browse Source

lavc: add a sample_rate field to AVFrame.

The field is filled with the codec context information.
tags/n0.11
Nicolas George 13 years ago
parent
commit
128dda7016
3 changed files with 12 additions and 0 deletions
  1. +9
    -0
      libavcodec/avcodec.h
  2. +1
    -0
      libavcodec/options.c
  3. +2
    -0
      libavcodec/utils.c

+ 9
- 0
libavcodec/avcodec.h View File

@@ -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;


+ 1
- 0
libavcodec/options.c View File

@@ -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},
};



+ 2
- 0
libavcodec/utils.c View File

@@ -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;


Loading…
Cancel
Save