diff rdt.c @ 3976:64056a0c38ce libavformat

Change function prototype of RTPDynamicPayloadHandler.parse_packet() to not use RTPDemuxContext, but rather take a pointer to the payload context directly. This allows using payload handlers regardless over the transport over which they were sent, and prepares for the introduction of a future RDTDemuxContext. See discussion in "RDT/Realmedia patches #2" thread on ML.
author rbultje
date Sat, 04 Oct 2008 04:15:06 +0000
parents 44561554cb7e
children e6bf0896a019
line wrap: on
line diff
--- a/rdt.c	Sat Oct 04 04:11:12 2008 +0000
+++ b/rdt.c	Sat Oct 04 04:15:06 2008 +0000
@@ -163,14 +163,13 @@
 
 /**< return 0 on packet, no more left, 1 on packet, 1 on partial packet... */
 static int
-rdt_parse_packet (RTPDemuxContext *s, AVPacket *pkt, uint32_t *timestamp,
+rdt_parse_packet (PayloadContext *rdt, AVStream *st,
+                  AVPacket *pkt, uint32_t *timestamp,
                   const uint8_t *buf, int len, int flags)
 {
-    PayloadContext *rdt = s->dynamic_protocol_context;
     int seq = 1, res;
     ByteIOContext *pb = rdt->rmctx->pb;
     RMContext *rm = rdt->rmctx->priv_data;
-    AVStream *st = s->st;
 
     if (rm->audio_pkt_cnt == 0) {
         int pos;
@@ -217,7 +216,8 @@
     if (!buf) {
         /* 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, pkt, &timestamp, NULL, 0, flags);
+        rv= s->parse_packet(s->dynamic_protocol_context,
+                            s->st, pkt, &timestamp, NULL, 0, flags);
         return rv;
     }
 
@@ -235,7 +235,8 @@
     len -= rv;
     s->seq = seq;
 
-    rv = s->parse_packet(s, pkt, &timestamp, buf, len, flags);
+    rv = s->parse_packet(s->dynamic_protocol_context,
+                         s->st, pkt, &timestamp, buf, len, flags);
 
     return rv;
 }