diff -r 537ddd8aa407 -r 2036ebfaccda src/jlibrtp/RTCPAVPFIntf.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/jlibrtp/RTCPAVPFIntf.java Fri Nov 20 19:29:42 2009 +0100 @@ -0,0 +1,102 @@ +/** + * 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