RTCP is handled elsewhere, not in the depacketizer for an
individual format.
---
libavformat/rtpdec_h264.c | 28 +++-
1 file changed, 7 insertions(+), 21 deletions(-)
diff --git a/libavformat/rtpdec_h264.c b/libavformat/rtpdec_h264.c
index eb20397..d98be07 100644
--- a/libavformat/rtpdec_h264.c
+++ b/libavformat/rtpdec_h264.c
@@ -30,10 +30,6 @@
* Single Nal Unit Mode (0), or
* Non-Interleaved Mode (1). It currently does not support
* Interleaved Mode (2). (This requires implementing STAP-B, MTAP16, MTAP24,
FU-B packet types)
- *
- * @note TODO:
- * 1) RTCP sender reports for udp streams are required..
- *
*/
#include "libavutil/base64.h"
@@ -49,21 +45,17 @@
#include "rtpdec.h"
#include "rtpdec_formats.h"
-/**
-RTP/H264 specific private data.
-*/
struct PayloadContext {
//sdp setup parameters
-uint8_t profile_idc;///< from the sdp setup parameters.
-uint8_t profile_iop;///< from the sdp setup parameters.
-uint8_t level_idc; ///< from the sdp setup parameters.
-int packetization_mode; ///< from the sdp setup parameters.
+uint8_t profile_idc;
+uint8_t profile_iop;
+uint8_t level_idc;
+int packetization_mode;
#ifdef DEBUG
int packet_types_received[32];
#endif
};
-/* private code */
static int sdp_parse_fmtp_config_h264(AVStream * stream,
PayloadContext * h264_data,
char *attr, char *value)
@@ -99,7 +91,6 @@ static int sdp_parse_fmtp_config_h264(AVStream * stream,
buffer[0] = value[4]; buffer[1] = value[5];
level_idc = strtol(buffer, NULL, 16);
-// set the parameters...
av_log(codec, AV_LOG_DEBUG,
"RTP Profile IDC: %x Profile IOP: %x Level: %x\n",
profile_idc, profile_iop, level_idc);
@@ -136,7 +127,6 @@ static int sdp_parse_fmtp_config_h264(AVStream * stream,
{
if(codec->extradata_size)
{
-// av_realloc?
memcpy(dest, codec->extradata, codec->extradata_size);
av_free(codec->extradata);
}
@@ -213,7 +203,7 @@ static int h264_handle_packet(AVFormatContext *ctx,
int src_len= len;
while (src_len > 2) {
-uint16_t nal_size = AV_RB16(src); // this going to be a
problem if unaligned (can it be?)
+uint16_t nal_size = AV_RB16(src);
// consume the length of the aggregate...
src += 2;
@@ -275,7 +265,7 @@ static int h264_handle_packet(AVFormatContext *ctx,
if (len > 1) {
// these are the same as above, we just redo them here for
clarity...
uint8_t fu_indicator = nal;
-uint8_t fu_header = *buf; // read the fu_header.
+uint8_t fu_header = *buf;
uint8_t start_bit = fu_header >> 7;
//uint8_t end_bit = (fu_header & 0x40) >> 6;
uint8_t nal_type = (fu_header & 0x1f);
@@ -322,7 +312,6 @@ static int h264_handle_packet(AVFormatContext *ctx,
return result;
}
-/* public code */
static PayloadContext *h264_new_context(void)
{
return av_mallocz(sizeof(PayloadContext) + FF_INPUT_BUFFER_PADDING_SIZE);
@@ -380,12 +369,9 @@ static int parse_h264_sdp_line(AVFormatContext *s, int
st_index,
// could use this if we wanted.
}
-return 0; // keep processing it the normal way...
+return 0;
}
-/**
-This is the structure for expanding on the dynamic rtp protocols (makes
everything static. yay!)
-*/
RTPDynamicProtocolHandler ff_h264_dynamic_handler = {
.enc_name = "H264",
.codec_type = AVMEDIA_TYPE_VIDEO,
--
1.7.9.4
___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel