summaryrefslogtreecommitdiff
path: root/libavcodec/audiotoolboxenc.c
diff options
context:
space:
mode:
authorRodger Combs <rodger.combs@gmail.com>2016-03-23 16:29:50 -0500
committerRodger Combs <rodger.combs@gmail.com>2016-04-02 03:03:13 -0500
commit7524b678175e69504c9360c884cfe9116cb8bb11 (patch)
tree5b102d59e1b1016054d7b9f5e9b750ee158ef942 /libavcodec/audiotoolboxenc.c
parentd38fe9f4930cba9379c1309c2433420a360f40ab (diff)
downloadffmpeg-7524b678175e69504c9360c884cfe9116cb8bb11.tar.gz
lavc/audiotoolboxenc: remove unneeded packet metadata
This isn't necessary here, and for some reason broke only multichannel AAC encoding when a channel layout tag was set.
Diffstat (limited to 'libavcodec/audiotoolboxenc.c')
-rw-r--r--libavcodec/audiotoolboxenc.c16
1 files changed, 3 insertions, 13 deletions
diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c
index c4d36f56d1..4797b2aae9 100644
--- a/libavcodec/audiotoolboxenc.c
+++ b/libavcodec/audiotoolboxenc.c
@@ -38,7 +38,6 @@ typedef struct ATDecodeContext {
int quality;
AudioConverterRef converter;
- AudioStreamPacketDescription pkt_desc;
AVFrame in_frame;
AVFrame new_in_frame;
@@ -312,10 +311,6 @@ static OSStatus ffat_encode_callback(AudioConverterRef converter, UInt32 *nb_pac
if (at->eof) {
*nb_packets = 0;
- if (packets) {
- *packets = &at->pkt_desc;
- at->pkt_desc.mDataByteSize = 0;
- }
return 0;
}
@@ -328,18 +323,13 @@ static OSStatus ffat_encode_callback(AudioConverterRef converter, UInt32 *nb_pac
}
data->mNumberBuffers = 1;
- data->mBuffers[0].mNumberChannels = 0;
+ data->mBuffers[0].mNumberChannels = avctx->channels;
data->mBuffers[0].mDataByteSize = at->in_frame.nb_samples *
av_get_bytes_per_sample(avctx->sample_fmt) *
avctx->channels;
data->mBuffers[0].mData = at->in_frame.data[0];
- *nb_packets = (at->in_frame.nb_samples + (at->frame_size - 1)) / at->frame_size;
-
- if (packets) {
- *packets = &at->pkt_desc;
- at->pkt_desc.mDataByteSize = data->mBuffers[0].mDataByteSize;
- at->pkt_desc.mVariableFramesInPacket = at->in_frame.nb_samples;
- }
+ if (*nb_packets > at->in_frame.nb_samples)
+ *nb_packets = at->in_frame.nb_samples;
return 0;
}