diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c
index 3e833a1822b47f8b7abef774b48a1623d4221a44..764385dd27a4c9cc177464a67a90d08d34eb6619 100644
--- a/libavformat/rtpdec.c
+++ b/libavformat/rtpdec.c
@@ -473,6 +473,7 @@ int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt,
             s->read_buf_index = 0;
             return 1;
         }
+        return 0;
     } else if (s->parse_packet) {
         rv = s->parse_packet(s->ic, s->dynamic_protocol_context,
                              s->st, pkt, &timestamp, buf, len, flags);
@@ -535,10 +536,11 @@ int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt,
             memcpy(pkt->data, buf, len);
             break;
         }
+    }
 
         // now perform timestamp things....
         finalize_packet(s, pkt, timestamp);
-    }
+
     return rv;
 }