annotate adts.h @ 6455:3f50c7effad1 libavformat

rtsp: 10l, try to update the correct rtp stream This fixes a bug from rev 22917. Now RTSP streams where the individual RTCP sender reports aren't sent at the same time actually are synced properly.
author mstorsjo
date Fri, 03 Sep 2010 07:10:21 +0000
parents 667736f463b3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5787
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
1 /*
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
2 * ADTS muxer.
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
3 * Copyright (c) 2006 Baptiste Coudurier <baptiste.coudurier@smartjog.com>
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
4 * Mans Rullgard <mans@mansr.com>
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
5 *
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
6 * This file is part of FFmpeg.
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
7 *
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
8 * FFmpeg is free software; you can redistribute it and/or
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
9 * modify it under the terms of the GNU Lesser General Public
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
10 * License as published by the Free Software Foundation; either
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
11 * version 2.1 of the License, or (at your option) any later version.
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
12 *
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
13 * FFmpeg is distributed in the hope that it will be useful,
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
16 * Lesser General Public License for more details.
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
17 *
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
18 * You should have received a copy of the GNU Lesser General Public
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
19 * License along with FFmpeg; if not, write to the Free Software
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
21 */
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
22
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
23 #ifndef AVFORMAT_ADTS_H
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
24 #define AVFORMAT_ADTS_H
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
25
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
26 #include "avformat.h"
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
27 #include "libavcodec/mpeg4audio.h"
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
28
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
29 #define ADTS_HEADER_SIZE 7
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
30
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
31 typedef struct {
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
32 int write_adts;
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
33 int objecttype;
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
34 int sample_rate_index;
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
35 int channel_conf;
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
36 int pce_size;
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
37 uint8_t pce_data[MAX_PCE_SIZE];
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
38 } ADTSContext;
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
39
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
40 int ff_adts_write_frame_header(ADTSContext *ctx, uint8_t *buf,
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
41 int size, int pce_size);
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
42 int ff_adts_decode_extradata(AVFormatContext *s, ADTSContext *adts,
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
43 uint8_t *buf, int size);
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
44
667736f463b3 In mpegts muxer, write adts header if aac bitstream does not contain it
bcoudurier
parents:
diff changeset
45 #endif /* AVFORMAT_ADTS_H */