X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Frtp.h;h=01b83dfa23e8ca933e524050f553b4c1403f3ae7;hb=6ccf76aec73b2cd598bb1e65d126d8a12540c411;hp=0ffe18fd840784e21ef127c40c7e217bb6172cd2;hpb=09f211987cddf279390f8abe24d6a7a69622e356;p=ffmpeg diff --git a/libavformat/rtp.h b/libavformat/rtp.h index 0ffe18fd840..01b83dfa23e 100644 --- a/libavformat/rtp.h +++ b/libavformat/rtp.h @@ -23,15 +23,21 @@ #include "libavformat/avformat.h" #include "libavcodec/avcodec.h" +#include "libavutil/mathematics.h" /** - * Return the payload type for a given codec used in the given format context. + * Return the payload type for a given stream used in the given format context. + * Static payload types are derived from the codec. + * Dynamic payload type are derived from the id field in AVStream. + * The format context private option payload_type overrides both. * * @param fmt The context of the format - * @param codec The context of the codec + * @param par The codec parameters + * @param idx The stream index * @return The payload type (the 'PT' field in the RTP header). */ -int ff_rtp_get_payload_type(AVFormatContext *fmt, AVCodecContext *codec); +int ff_rtp_get_payload_type(AVFormatContext *fmt, AVCodecParameters *par, + int idx); /** * Initialize a codec context based on the payload type. @@ -40,12 +46,12 @@ int ff_rtp_get_payload_type(AVFormatContext *fmt, AVCodecContext *codec); * information depending on the payload type; for audio codecs, the * channels and sample_rate fields are also filled. * - * @param codec The context of the codec + * @param par The codec parameters * @param payload_type The payload type (the 'PT' field in the RTP header) * @return In case of unknown payload type or dynamic payload type, a * negative value is returned; otherwise, 0 is returned */ -int ff_rtp_get_codec_info(AVCodecContext *codec, int payload_type); +int ff_rtp_get_codec_info(AVCodecParameters *par, int payload_type); /** * Return the encoding name (as defined in @@ -63,10 +69,10 @@ const char *ff_rtp_enc_name(int payload_type); * * @param buf A pointer to the string containing the encoding name * @param codec_type The codec type - * @return In case of unknown encoding name, CODEC_ID_NONE is returned; + * @return In case of unknown encoding name, AV_CODEC_ID_NONE is returned; * otherwise, the codec id is returned */ -enum CodecID ff_rtp_codec_id(const char *buf, enum AVMediaType codec_type); +enum AVCodecID ff_rtp_codec_id(const char *buf, enum AVMediaType codec_type); #define RTP_PT_PRIVATE 96 #define RTP_VERSION 2 @@ -84,13 +90,26 @@ enum CodecID ff_rtp_codec_id(const char *buf, enum AVMediaType codec_type); /* RTCP packet types */ enum RTCPType { + RTCP_FIR = 192, + RTCP_NACK, // 193 + RTCP_SMPTETC,// 194 + RTCP_IJ, // 195 RTCP_SR = 200, RTCP_RR, // 201 RTCP_SDES, // 202 RTCP_BYE, // 203 - RTCP_APP // 204 + RTCP_APP, // 204 + RTCP_RTPFB,// 205 + RTCP_PSFB, // 206 + RTCP_XR, // 207 + RTCP_AVB, // 208 + RTCP_RSI, // 209 + RTCP_TOKEN,// 210 }; -#define RTP_PT_IS_RTCP(x) ((x) >= RTCP_SR && (x) <= RTCP_APP) +#define RTP_PT_IS_RTCP(x) (((x) >= RTCP_FIR && (x) <= RTCP_IJ) || \ + ((x) >= RTCP_SR && (x) <= RTCP_TOKEN)) + +#define NTP_TO_RTP_FORMAT(x) av_rescale((x), INT64_C(1) << 32, 1000000) #endif /* AVFORMAT_RTP_H */