[FFmpeg-devel] [PATCH 1/4] lavc/audiotoolboxenc: remove unneeded packet metadata

Rodger Combs rodger.combs at gmail.com
Thu Mar 24 06:54:06 CET 2016


This isn't necessary here, and for some reason broke only multichannel
AAC encoding when a channel layout tag was set.
---
 libavcodec/audiotoolboxenc.c | 16 +++-------------
 1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c
index cb53f2a..fde7512 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;
 
@@ -310,10 +309,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;
     }
 
@@ -326,18 +321,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;
 }
-- 
2.7.3



More information about the ffmpeg-devel mailing list