aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-12-21 17:46:43 +0100
committerMichael Niedermayer <michaelni@gmx.at>2012-12-21 17:46:43 +0100
commitbb3420d88e71ee9bb04166467dde3056ff3aa2b6 (patch)
tree6153ab3fbc83a4f033cb3aa1f6f1b935068e505b
parentbe2c0adc968d3f8fc4a72dea7117529016f0a1ad (diff)
parent90c784cc13f6bf21a8eb69f3b88b50c7a70f6c59 (diff)
downloadffmpeg-bb3420d88e71ee9bb04166467dde3056ff3aa2b6.tar.gz
Merge commit '90c784cc13f6bf21a8eb69f3b88b50c7a70f6c59'
* commit '90c784cc13f6bf21a8eb69f3b88b50c7a70f6c59': rtpdec: Pass the sequence number to depacketizers configure: Make avconv depend on null, anull and resample filters Conflicts: configure Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavformat/rdt.c6
-rw-r--r--libavformat/rtpdec.c5
-rw-r--r--libavformat/rtpdec.h3
-rw-r--r--libavformat/rtpdec_amr.c11
-rw-r--r--libavformat/rtpdec_asf.c3
-rw-r--r--libavformat/rtpdec_formats.h2
-rw-r--r--libavformat/rtpdec_h263.c2
-rw-r--r--libavformat/rtpdec_h263_rfc2190.c7
-rw-r--r--libavformat/rtpdec_h264.c3
-rw-r--r--libavformat/rtpdec_jpeg.c3
-rw-r--r--libavformat/rtpdec_latm.c3
-rw-r--r--libavformat/rtpdec_mpeg4.c3
-rw-r--r--libavformat/rtpdec_qcelp.c3
-rw-r--r--libavformat/rtpdec_qdm2.c3
-rw-r--r--libavformat/rtpdec_qt.c2
-rw-r--r--libavformat/rtpdec_svq3.c3
-rw-r--r--libavformat/rtpdec_vp8.c11
-rw-r--r--libavformat/rtpdec_xiph.c10
18 files changed, 43 insertions, 40 deletions
diff --git a/libavformat/rdt.c b/libavformat/rdt.c
index 6404a5d5e3..695323ab0f 100644
--- a/libavformat/rdt.c
+++ b/libavformat/rdt.c
@@ -293,7 +293,7 @@ ff_rdt_parse_header(const uint8_t *buf, int len,
static int
rdt_parse_packet (AVFormatContext *ctx, PayloadContext *rdt, AVStream *st,
AVPacket *pkt, uint32_t *timestamp,
- const uint8_t *buf, int len, int flags)
+ const uint8_t *buf, int len, uint16_t rtp_seq, int flags)
{
int seq = 1, res;
AVIOContext pb;
@@ -348,7 +348,7 @@ ff_rdt_parse_packet(RDTDemuxContext *s, AVPacket *pkt,
timestamp= 0; ///< Should not be used if buf is NULL, but should be set to the timestamp of the packet returned....
rv= s->parse_packet(s->ic, s->dynamic_protocol_context,
s->streams[s->prev_stream_id],
- pkt, &timestamp, NULL, 0, flags);
+ pkt, &timestamp, NULL, 0, 0, flags);
return rv;
}
@@ -375,7 +375,7 @@ ff_rdt_parse_packet(RDTDemuxContext *s, AVPacket *pkt,
rv = s->parse_packet(s->ic, s->dynamic_protocol_context,
s->streams[s->prev_stream_id],
- pkt, &timestamp, buf, len, flags);
+ pkt, &timestamp, buf, len, 0, flags);
return rv;
}
diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c
index b0f0aaa4b0..8a80e03b77 100644
--- a/libavformat/rtpdec.c
+++ b/libavformat/rtpdec.c
@@ -539,7 +539,7 @@ static int rtp_parse_packet_internal(RTPDemuxContext *s, AVPacket *pkt,
return 0;
} else if (s->parse_packet) {
rv = s->parse_packet(s->ic, s->dynamic_protocol_context,
- s->st, pkt, &timestamp, buf, len, flags);
+ s->st, pkt, &timestamp, buf, len, seq, flags);
} else {
/* At this point, the RTP header has been stripped;
* This is ASSUMING that there is only 1 CSRC, which isn't wise. */
@@ -685,7 +685,8 @@ static int rtp_parse_one_packet(RTPDemuxContext *s, AVPacket *pkt,
* the packet is left with pts == AV_NOPTS_VALUE */
timestamp = RTP_NOTS_VALUE;
rv = s->parse_packet(s->ic, s->dynamic_protocol_context,
- s->st, pkt, &timestamp, NULL, 0, flags);
+ s->st, pkt, &timestamp, NULL, 0, 0,
+ flags);
finalize_packet(s, pkt, timestamp);
return rv;
} else {
diff --git a/libavformat/rtpdec.h b/libavformat/rtpdec.h
index 854c687451..fb1acc279d 100644
--- a/libavformat/rtpdec.h
+++ b/libavformat/rtpdec.h
@@ -101,6 +101,7 @@ typedef struct RTPStatistics {
* updated by the function if returning older, buffered data
* @param buf pointer to raw RTP packet data
* @param len length of buf
+ * @param seq RTP sequence number of the packet
* @param flags flags from the RTP packet header (RTP_FLAG_*)
*/
typedef int (*DynamicPayloadPacketHandlerProc)(AVFormatContext *ctx,
@@ -108,7 +109,7 @@ typedef int (*DynamicPayloadPacketHandlerProc)(AVFormatContext *ctx,
AVStream *st, AVPacket *pkt,
uint32_t *timestamp,
const uint8_t * buf,
- int len, int flags);
+ int len, uint16_t seq, int flags);
struct RTPDynamicProtocolHandler {
const char enc_name[50];
diff --git a/libavformat/rtpdec_amr.c b/libavformat/rtpdec_amr.c
index 3f5e775110..211cf1798f 100644
--- a/libavformat/rtpdec_amr.c
+++ b/libavformat/rtpdec_amr.c
@@ -51,13 +51,10 @@ static void amr_free_context(PayloadContext *data)
av_free(data);
}
-static int amr_handle_packet(AVFormatContext *ctx,
- PayloadContext *data,
- AVStream *st,
- AVPacket * pkt,
- uint32_t * timestamp,
- const uint8_t * buf,
- int len, int flags)
+static int amr_handle_packet(AVFormatContext *ctx, PayloadContext *data,
+ AVStream *st, AVPacket *pkt, uint32_t *timestamp,
+ const uint8_t *buf, int len, uint16_t seq,
+ int flags)
{
const uint8_t *frame_sizes = NULL;
int frames;
diff --git a/libavformat/rtpdec_asf.c b/libavformat/rtpdec_asf.c
index e37fde7906..35603f29e9 100644
--- a/libavformat/rtpdec_asf.c
+++ b/libavformat/rtpdec_asf.c
@@ -168,7 +168,8 @@ struct PayloadContext {
static int asfrtp_parse_packet(AVFormatContext *s, PayloadContext *asf,
AVStream *st, AVPacket *pkt,
uint32_t *timestamp,
- const uint8_t *buf, int len, int flags)
+ const uint8_t *buf, int len, uint16_t seq,
+ int flags)
{
AVIOContext *pb = &asf->pb;
int res, mflags, len_off;
diff --git a/libavformat/rtpdec_formats.h b/libavformat/rtpdec_formats.h
index 471888b703..6b6fcd3a2b 100644
--- a/libavformat/rtpdec_formats.h
+++ b/libavformat/rtpdec_formats.h
@@ -33,7 +33,7 @@ int ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p);
int ff_h263_handle_packet(AVFormatContext *ctx, PayloadContext *data,
AVStream *st, AVPacket *pkt, uint32_t *timestamp,
- const uint8_t *buf, int len, int flags);
+ const uint8_t *buf, int len, uint16_t seq, int flags);
extern RTPDynamicProtocolHandler ff_amr_nb_dynamic_handler;
extern RTPDynamicProtocolHandler ff_amr_wb_dynamic_handler;
diff --git a/libavformat/rtpdec_h263.c b/libavformat/rtpdec_h263.c
index e604dc1c42..ce02dc1c21 100644
--- a/libavformat/rtpdec_h263.c
+++ b/libavformat/rtpdec_h263.c
@@ -25,7 +25,7 @@
int ff_h263_handle_packet(AVFormatContext *ctx, PayloadContext *data,
AVStream *st, AVPacket *pkt, uint32_t *timestamp,
- const uint8_t *buf, int len, int flags)
+ const uint8_t *buf, int len, uint16_t seq, int flags)
{
uint8_t *ptr;
uint16_t header;
diff --git a/libavformat/rtpdec_h263_rfc2190.c b/libavformat/rtpdec_h263_rfc2190.c
index 4957b337c7..4792a9fdc5 100644
--- a/libavformat/rtpdec_h263_rfc2190.c
+++ b/libavformat/rtpdec_h263_rfc2190.c
@@ -57,7 +57,8 @@ static void h263_free_context(PayloadContext *data)
static int h263_handle_packet(AVFormatContext *ctx, PayloadContext *data,
AVStream *st, AVPacket *pkt, uint32_t *timestamp,
- const uint8_t *buf, int len, int flags)
+ const uint8_t *buf, int len, uint16_t seq,
+ int flags)
{
/* Corresponding to header fields in the RFC */
int f, p, i, sbit, ebit, src, r;
@@ -65,7 +66,7 @@ static int h263_handle_packet(AVFormatContext *ctx, PayloadContext *data,
if (data->newformat)
return ff_h263_handle_packet(ctx, data, st, pkt, timestamp, buf, len,
- flags);
+ seq, flags);
if (data->buf && data->timestamp != *timestamp) {
/* Dropping old buffered, unfinished data */
@@ -122,7 +123,7 @@ static int h263_handle_packet(AVFormatContext *ctx, PayloadContext *data,
"signalled with a static payload type.\n");
data->newformat = 1;
return ff_h263_handle_packet(ctx, data, st, pkt, timestamp, buf,
- len, flags);
+ len, seq, flags);
}
}
diff --git a/libavformat/rtpdec_h264.c b/libavformat/rtpdec_h264.c
index 083f8e89b2..2cab9c917c 100644
--- a/libavformat/rtpdec_h264.c
+++ b/libavformat/rtpdec_h264.c
@@ -165,7 +165,8 @@ static int sdp_parse_fmtp_config_h264(AVStream *stream,
// return 0 on packet, no more left, 1 on packet, 1 on partial packet
static int h264_handle_packet(AVFormatContext *ctx, PayloadContext *data,
AVStream *st, AVPacket *pkt, uint32_t *timestamp,
- const uint8_t *buf, int len, int flags)
+ const uint8_t *buf, int len, uint16_t seq,
+ int flags)
{
uint8_t nal;
uint8_t type;
diff --git a/libavformat/rtpdec_jpeg.c b/libavformat/rtpdec_jpeg.c
index 391ae12cb3..80fe2952b3 100644
--- a/libavformat/rtpdec_jpeg.c
+++ b/libavformat/rtpdec_jpeg.c
@@ -219,7 +219,8 @@ static void create_default_qtables(uint8_t *qtables, uint8_t q)
static int jpeg_parse_packet(AVFormatContext *ctx, PayloadContext *jpeg,
AVStream *st, AVPacket *pkt, uint32_t *timestamp,
- const uint8_t *buf, int len, int flags)
+ const uint8_t *buf, int len, uint16_t seq,
+ int flags)
{
uint8_t type, q, width, height;
const uint8_t *qtables = NULL;
diff --git a/libavformat/rtpdec_latm.c b/libavformat/rtpdec_latm.c
index 2ea141b88e..bacc186c49 100644
--- a/libavformat/rtpdec_latm.c
+++ b/libavformat/rtpdec_latm.c
@@ -51,7 +51,8 @@ static void latm_free_context(PayloadContext *data)
static int latm_parse_packet(AVFormatContext *ctx, PayloadContext *data,
AVStream *st, AVPacket *pkt, uint32_t *timestamp,
- const uint8_t *buf, int len, int flags)
+ const uint8_t *buf, int len, uint16_t seq,
+ int flags)
{
int ret, cur_len;
diff --git a/libavformat/rtpdec_mpeg4.c b/libavformat/rtpdec_mpeg4.c
index 02dc242c67..a3f60d348d 100644
--- a/libavformat/rtpdec_mpeg4.c
+++ b/libavformat/rtpdec_mpeg4.c
@@ -159,7 +159,8 @@ static int rtp_parse_mp4_au(PayloadContext *data, const uint8_t *buf)
/* Follows RFC 3640 */
static int aac_parse_packet(AVFormatContext *ctx, PayloadContext *data,
AVStream *st, AVPacket *pkt, uint32_t *timestamp,
- const uint8_t *buf, int len, int flags)
+ const uint8_t *buf, int len, uint16_t seq,
+ int flags)
{
if (rtp_parse_mp4_au(data, buf))
return -1;
diff --git a/libavformat/rtpdec_qcelp.c b/libavformat/rtpdec_qcelp.c
index 7e1d0b7972..eebcdd025b 100644
--- a/libavformat/rtpdec_qcelp.c
+++ b/libavformat/rtpdec_qcelp.c
@@ -210,7 +210,8 @@ static int return_stored_frame(AVFormatContext *ctx, PayloadContext *data,
static int qcelp_parse_packet(AVFormatContext *ctx, PayloadContext *data,
AVStream *st, AVPacket *pkt, uint32_t *timestamp,
- const uint8_t *buf, int len, int flags)
+ const uint8_t *buf, int len, uint16_t seq,
+ int flags)
{
if (buf)
return store_packet(ctx, data, st, pkt, timestamp, buf, len);
diff --git a/libavformat/rtpdec_qdm2.c b/libavformat/rtpdec_qdm2.c
index 3a8ffd5f99..6ce776db44 100644
--- a/libavformat/rtpdec_qdm2.c
+++ b/libavformat/rtpdec_qdm2.c
@@ -238,7 +238,8 @@ static int qdm2_restore_block(PayloadContext *qdm, AVStream *st, AVPacket *pkt)
static int qdm2_parse_packet(AVFormatContext *s, PayloadContext *qdm,
AVStream *st, AVPacket *pkt,
uint32_t *timestamp,
- const uint8_t *buf, int len, int flags)
+ const uint8_t *buf, int len, uint16_t seq,
+ int flags)
{
int res = AVERROR_INVALIDDATA, n;
const uint8_t *end = buf + len, *p = buf;
diff --git a/libavformat/rtpdec_qt.c b/libavformat/rtpdec_qt.c
index f0f01d9b19..9631b0ae19 100644
--- a/libavformat/rtpdec_qt.c
+++ b/libavformat/rtpdec_qt.c
@@ -42,7 +42,7 @@ struct PayloadContext {
static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
AVStream *st, AVPacket *pkt,
uint32_t *timestamp, const uint8_t *buf,
- int len, int flags)
+ int len, uint16_t seq, int flags)
{
AVIOContext pb;
GetBitContext gb;
diff --git a/libavformat/rtpdec_svq3.c b/libavformat/rtpdec_svq3.c
index 779ad8a42b..106b7857cb 100644
--- a/libavformat/rtpdec_svq3.c
+++ b/libavformat/rtpdec_svq3.c
@@ -41,7 +41,8 @@ struct PayloadContext {
static int svq3_parse_packet (AVFormatContext *s, PayloadContext *sv,
AVStream *st, AVPacket *pkt,
uint32_t *timestamp,
- const uint8_t *buf, int len, int flags)
+ const uint8_t *buf, int len, uint16_t seq,
+ int flags)
{
int config_packet, start_packet, end_packet;
diff --git a/libavformat/rtpdec_vp8.c b/libavformat/rtpdec_vp8.c
index 58dc24d010..46eac05552 100644
--- a/libavformat/rtpdec_vp8.c
+++ b/libavformat/rtpdec_vp8.c
@@ -36,13 +36,10 @@ struct PayloadContext {
uint32_t timestamp;
};
-static int vp8_handle_packet(AVFormatContext *ctx,
- PayloadContext *vp8,
- AVStream *st,
- AVPacket *pkt,
- uint32_t *timestamp,
- const uint8_t *buf,
- int len, int flags)
+static int vp8_handle_packet(AVFormatContext *ctx, PayloadContext *vp8,
+ AVStream *st, AVPacket *pkt, uint32_t *timestamp,
+ const uint8_t *buf, int len, uint16_t seq,
+ int flags)
{
int start_partition, end_packet;
int extended_bits, part_id;
diff --git a/libavformat/rtpdec_xiph.c b/libavformat/rtpdec_xiph.c
index ad24c2671a..d66b17af5e 100644
--- a/libavformat/rtpdec_xiph.c
+++ b/libavformat/rtpdec_xiph.c
@@ -69,12 +69,10 @@ static void xiph_free_context(PayloadContext * data)
av_free(data);
}
-static int xiph_handle_packet(AVFormatContext * ctx,
- PayloadContext * data,
- AVStream * st,
- AVPacket * pkt,
- uint32_t * timestamp,
- const uint8_t * buf, int len, int flags)
+static int xiph_handle_packet(AVFormatContext *ctx, PayloadContext *data,
+ AVStream *st, AVPacket *pkt, uint32_t *timestamp,
+ const uint8_t *buf, int len, uint16_t seq,
+ int flags)
{
int ident, fragmented, tdt, num_pkts, pkt_len;