diff -r c9ff263c29ad -r e684f11070d5 src/jlibrtp/RTCPAVPFIntf.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/jlibrtp/RTCPAVPFIntf.java Sat Mar 14 22:15:41 2009 +0100 @@ -0,0 +1,96 @@ +/** + * Java RTP Library (jlibrtp) + * Copyright (C) 2006 Arne Kepp + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +package jlibrtp; + + +/** + * This is the callback interface for the AVPF profile (RFC 4585) + * + * It is optional, you do not have to register it. + * + * If there are specific events you wish to ignore, + * you can simply implement empty functions. + * + * These are all syncrhonous, make sure to return quickly + * or do the handling in a new thread. + * + * @author Arne Kepp + */ +public interface RTCPAVPFIntf { + + /** + * This function is called when a + * Picture Loss Indication (PLI, FMT = 1) is received + * + * @param ssrcPacketSender the SSRC of the participant reporting loss of picture + */ + public void PSFBPktPictureLossReceived( + long ssrcPacketSender); + + /** + * This function is called when a + * Slice Loss Indication (SLI, FMT=2) is received + * + * @param ssrcPacketSender the SSRC of the participant reporting loss of slice(s) + * @param sliceFirst macroblock address of first macroblock + * @param sliceNumber number of lost macroblocks, in scan order + * @param slicePictureId the six least significant bits of the picture identifier + */ + public void PSFBPktSliceLossIndic( + long ssrcPacketSender, + int[] sliceFirst, int[] sliceNumber, int[] slicePictureId); + + /** + * This function is called when a + * Reference Picture Selection Indication (RPSI, FMT=3) is received + * + * @param ssrcPacketSender the SSRC of the participant reporting the selection + * @param rpsiPayloadType the RTP payload type related to the RPSI bit string + * @param rpsiBitString the RPSI information as natively defined by the video codec + * @param rpsiPaddingBits the number of padding bits at the end of the string + */ + public void PSFBPktRefPictureSelIndic( + long ssrcPacketSender, + int rpsiPayloadType, byte[] rpsiBitString, int rpsiPaddingBits); + + /** + * This function is called when a + * Transport Layer Feedback Messages is received + * + * @param ssrcPacketSender + * @param alfBitString + */ + public void PSFBPktAppLayerFBReceived( + long ssrcPacketSender, + byte[] alfBitString); + + /** + * This function is called when a + * Transport Layer Feedback Messages is received + * + * @param ssrcPacketSender + * @param FMT 1: NACK, 0,2-30: unassigned, 31: reserved + * @param packetID the RTP sequence number of the lost packet + * @param bitmaskLostPackets the bitmask of following lost packets + */ + public void RTPFBPktReceived( + long ssrcPacketSender, + int FMT, int[] packetID, int[] bitmaskLostPackets); +} \ No newline at end of file