diff --git a/libavformat/rdt.c b/libavformat/rdt.c index 2865b422e0..ce8903dc4c 100644 --- a/libavformat/rdt.c +++ b/libavformat/rdt.c @@ -295,7 +295,7 @@ ff_rdt_parse_header(const uint8_t *buf, int len, /**< return 0 on packet, no more left, 1 on packet, 1 on partial packet... */ static int -rdt_parse_packet (PayloadContext *rdt, AVStream *st, +rdt_parse_packet (AVFormatContext *ctx, PayloadContext *rdt, AVStream *st, AVPacket *pkt, uint32_t *timestamp, const uint8_t *buf, int len, int flags) { @@ -347,7 +347,7 @@ ff_rdt_parse_packet(RDTDemuxContext *s, AVPacket *pkt, if (!buf && s->prev_stream_id != -1) { /* return the next packets, if any */ 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->dynamic_protocol_context, + rv= s->parse_packet(s->ic, s->dynamic_protocol_context, s->streams[s->prev_stream_id], pkt, ×tamp, NULL, 0, flags); return rv; @@ -374,7 +374,7 @@ ff_rdt_parse_packet(RDTDemuxContext *s, AVPacket *pkt, return -1; } - rv = s->parse_packet(s->dynamic_protocol_context, + rv = s->parse_packet(s->ic, s->dynamic_protocol_context, s->streams[s->prev_stream_id], pkt, ×tamp, buf, len, flags); diff --git a/libavformat/rtp.h b/libavformat/rtp.h index 1690be2f49..c66a0c7d71 100644 --- a/libavformat/rtp.h +++ b/libavformat/rtp.h @@ -107,6 +107,7 @@ typedef struct { /** * Packet parsing for "private" payloads in the RTP specs. * + * @param ctx RTSP demuxer context * @param s stream context * @param st stream that this packet belongs to * @param pkt packet in which to write the parsed data @@ -115,7 +116,8 @@ typedef struct { * @param len length of buf * @param flags flags from the RTP packet header (PKT_FLAG_*) */ -typedef int (*DynamicPayloadPacketHandlerProc) (PayloadContext *s, +typedef int (*DynamicPayloadPacketHandlerProc) (AVFormatContext *ctx, + PayloadContext *s, AVStream *st, AVPacket * pkt, uint32_t *timestamp, diff --git a/libavformat/rtp_h264.c b/libavformat/rtp_h264.c index 18f0e8e63a..4b89ea61af 100644 --- a/libavformat/rtp_h264.c +++ b/libavformat/rtp_h264.c @@ -159,7 +159,8 @@ static void 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(PayloadContext *data, +static int h264_handle_packet(AVFormatContext *ctx, + PayloadContext *data, AVStream *st, AVPacket * pkt, uint32_t * timestamp, diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c index f59484e644..8297b1eb34 100644 --- a/libavformat/rtpdec.c +++ b/libavformat/rtpdec.c @@ -407,7 +407,7 @@ int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, /* return the next packets, if any */ if(s->st && s->parse_packet) { 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->dynamic_protocol_context, + rv= s->parse_packet(s->ic, s->dynamic_protocol_context, s->st, pkt, ×tamp, NULL, 0, flags); finalize_packet(s, pkt, timestamp); return rv; @@ -472,7 +472,7 @@ int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, return 1; } } else if (s->parse_packet) { - rv = s->parse_packet(s->dynamic_protocol_context, + rv = s->parse_packet(s->ic, s->dynamic_protocol_context, s->st, pkt, ×tamp, buf, len, flags); } else { // at this point, the RTP header has been stripped; This is ASSUMING that there is only 1 CSRC, which in't wise.