Commit 4b0521ec authored by Nicolas George's avatar Nicolas George

lavc: add a channel_layout field to AVFrame.

The field is filled with the codec context information.

FIXME need a minor version bump.
parent 82c71913
...@@ -1257,6 +1257,16 @@ typedef struct AVFrame { ...@@ -1257,6 +1257,16 @@ typedef struct AVFrame {
* - decoding: Read by user. * - decoding: Read by user.
*/ */
int64_t pkt_pos; int64_t pkt_pos;
/**
* channel layout 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, "channel_layout")
*/
int64_t channel_layout;
} AVFrame; } AVFrame;
struct AVCodecInternal; struct AVCodecInternal;
......
...@@ -239,6 +239,7 @@ static const AVOption frame_options[]={ ...@@ -239,6 +239,7 @@ static const AVOption frame_options[]={
{"width", "", FOFFSET(width), AV_OPT_TYPE_INT, {.dbl = 0 }, 0, INT_MAX, 0}, {"width", "", FOFFSET(width), AV_OPT_TYPE_INT, {.dbl = 0 }, 0, INT_MAX, 0},
{"height", "", FOFFSET(height), AV_OPT_TYPE_INT, {.dbl = 0 }, 0, INT_MAX, 0}, {"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}, {"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},
{NULL}, {NULL},
}; };
......
...@@ -1545,6 +1545,8 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx, ...@@ -1545,6 +1545,8 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx,
frame->pkt_dts = avpkt->dts; frame->pkt_dts = avpkt->dts;
if (frame->format == AV_SAMPLE_FMT_NONE) if (frame->format == AV_SAMPLE_FMT_NONE)
frame->format = avctx->sample_fmt; frame->format = avctx->sample_fmt;
if (!frame->channel_layout)
frame->channel_layout = avctx->channel_layout;
} }
avctx->pkt = NULL; avctx->pkt = NULL;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment