libavformat/rtpdec_h264.c File Reference

H.264 / RTP Code (RFC3984). More...

#include "libavutil/base64.h"
#include "libavutil/avstring.h"
#include "libavcodec/get_bits.h"
#include "avformat.h"
#include "mpegts.h"
#include <unistd.h>
#include "network.h"
#include <assert.h>
#include "rtpdec.h"
#include "rtpdec_formats.h"

Go to the source code of this file.

Data Structures

struct  PayloadContext
 RTP/H264 specific private data. More...

Defines

#define MAGIC_COOKIE   (0xdeadbeef)
 Cookie for the extradata; to verify we are what we think we are, and that we haven't been freed.
#define DEAD_COOKIE   (0xdeaddead)
 Cookie for the extradata; once it is freed.

Functions

static int sdp_parse_fmtp_config_h264 (AVStream *stream, PayloadContext *h264_data, char *attr, char *value)
static int h264_handle_packet (AVFormatContext *ctx, PayloadContext *data, AVStream *st, AVPacket *pkt, uint32_t *timestamp, const uint8_t *buf, int len, int flags)
static PayloadContexth264_new_context (void)
static void h264_free_context (PayloadContext *data)
static int parse_h264_sdp_line (AVFormatContext *s, int st_index, PayloadContext *h264_data, const char *line)

Variables

RTPDynamicProtocolHandler ff_h264_dynamic_handler
 This is the structure for expanding on the dynamic rtp protocols (makes everything static.


Detailed Description

H.264 / RTP Code (RFC3984).

Author:
Ryan Martell <rdm4@martellventures.com>
Note:
Notes: Notes: This currently supports packetization mode: 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)

TODO: 1) RTCP sender reports for udp streams are required..

Definition in file rtpdec_h264.c.


Define Documentation

#define DEAD_COOKIE   (0xdeaddead)

Cookie for the extradata; once it is freed.

Definition at line 69 of file rtpdec_h264.c.

Referenced by h264_free_context().

#define MAGIC_COOKIE   (0xdeadbeef)

Cookie for the extradata; to verify we are what we think we are, and that we haven't been freed.

Definition at line 68 of file rtpdec_h264.c.

Referenced by h264_free_context(), h264_handle_packet(), h264_new_context(), and parse_h264_sdp_line().


Function Documentation

static void h264_free_context ( PayloadContext data  )  [static]

Definition at line 335 of file rtpdec_h264.c.

static int h264_handle_packet ( AVFormatContext ctx,
PayloadContext data,
AVStream st,
AVPacket pkt,
uint32_t *  timestamp,
const uint8_t *  buf,
int  len,
int  flags 
) [static]

Definition at line 168 of file rtpdec_h264.c.

static PayloadContext* h264_new_context ( void   )  [static]

Definition at line 322 of file rtpdec_h264.c.

static int parse_h264_sdp_line ( AVFormatContext s,
int  st_index,
PayloadContext h264_data,
const char *  line 
) [static]

Definition at line 357 of file rtpdec_h264.c.

static int sdp_parse_fmtp_config_h264 ( AVStream stream,
PayloadContext h264_data,
char *  attr,
char *  value 
) [static]

Definition at line 72 of file rtpdec_h264.c.

Referenced by parse_h264_sdp_line().


Variable Documentation

Initial value:

 {
    .enc_name         = "H264",
    .codec_type       = AVMEDIA_TYPE_VIDEO,
    .codec_id         = CODEC_ID_H264,
    .parse_sdp_a_line = parse_h264_sdp_line,
    .alloc            = h264_new_context,
    .free             = h264_free_context,
    .parse_packet     = h264_handle_packet
}
This is the structure for expanding on the dynamic rtp protocols (makes everything static.

yay!)

Definition at line 396 of file rtpdec_h264.c.

Referenced by av_register_rtp_dynamic_payload_handlers().


Generated on Fri Oct 26 02:39:49 2012 for FFmpeg by  doxygen 1.5.8