diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-06-03 02:56:52 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-06-03 02:56:52 +0200 |
commit | f67309cabe27af33dcfcfb61fe1df39af9b5ab46 (patch) | |
tree | 31bf4f48fbbbbdb145f8163f0295266c86ca173d /libavformat/adtsenc.c | |
parent | a128b310efa31ea0f2a3898cd58c0d954c8605be (diff) | |
parent | 2439bd86817374362ac8daa701fdb567e14cbe50 (diff) | |
download | ffmpeg-f67309cabe27af33dcfcfb61fe1df39af9b5ab46.tar.gz |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
mpegtsenc: Support LATM packetization for AAC
adtsenc: Don't expose the muxer internals to the rest of lavf
mpegtsenc: use AVFormatContext for AAC packetization
mpegtsenc: use AVERROR() for return codes
Conflicts:
libavformat/adts.h
libavformat/mpegtsenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/adtsenc.c')
-rw-r--r-- | libavformat/adtsenc.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/libavformat/adtsenc.c b/libavformat/adtsenc.c index 18a055a1e5..bc2397f028 100644 --- a/libavformat/adtsenc.c +++ b/libavformat/adtsenc.c @@ -25,11 +25,21 @@ #include "libavcodec/avcodec.h" #include "libavcodec/mpeg4audio.h" #include "avformat.h" -#include "adts.h" + +#define ADTS_HEADER_SIZE 7 + +typedef struct { + int write_adts; + int objecttype; + int sample_rate_index; + int channel_conf; + int pce_size; + uint8_t pce_data[MAX_PCE_SIZE]; +} ADTSContext; #define ADTS_MAX_FRAME_BYTES ((1 << 13) - 1) -int ff_adts_decode_extradata(AVFormatContext *s, ADTSContext *adts, uint8_t *buf, int size) +static int adts_decode_extradata(AVFormatContext *s, ADTSContext *adts, uint8_t *buf, int size) { GetBitContext gb; PutBitContext pb; @@ -84,14 +94,14 @@ static int adts_write_header(AVFormatContext *s) AVCodecContext *avc = s->streams[0]->codec; if (avc->extradata_size > 0 && - ff_adts_decode_extradata(s, adts, avc->extradata, avc->extradata_size) < 0) + adts_decode_extradata(s, adts, avc->extradata, avc->extradata_size) < 0) return -1; return 0; } -int ff_adts_write_frame_header(ADTSContext *ctx, - uint8_t *buf, int size, int pce_size) +static int adts_write_frame_header(ADTSContext *ctx, + uint8_t *buf, int size, int pce_size) { PutBitContext pb; @@ -137,7 +147,7 @@ static int adts_write_packet(AVFormatContext *s, AVPacket *pkt) if (!pkt->size) return 0; if (adts->write_adts) { - int err = ff_adts_write_frame_header(adts, buf, pkt->size, + int err = adts_write_frame_header(adts, buf, pkt->size, adts->pce_size); if (err < 0) return err; |