FFmpeg
4.0
|
Microsoft RTP/ASF support. More...
#include "libavutil/avassert.h"
#include "libavutil/base64.h"
#include "libavutil/avstring.h"
#include "libavutil/intreadwrite.h"
#include "rtp.h"
#include "rtpdec_formats.h"
#include "rtsp.h"
#include "asf.h"
#include "avio_internal.h"
#include "internal.h"
Go to the source code of this file.
Data Structures | |
struct | PayloadContext |
RTP/JPEG specific private data. More... | |
Macros | |
#define | RTP_ASF_HANDLER(n, s, t) |
Functions | |
static int | rtp_asf_fix_header (uint8_t *buf, int len) |
From MSDN 2.2.1.4, we learn that ASF data packets over RTP should not contain any padding. More... | |
static int | packetizer_read (void *opaque, uint8_t *buf, int buf_size) |
The following code is basically a buffered AVIOContext, with the added benefit of returning -EAGAIN (instead of 0) on packet boundaries, such that the ASF demuxer can return safely and resume business at the next packet. More... | |
static void | init_packetizer (AVIOContext *pb, uint8_t *buf, int len) |
int | ff_wms_parse_sdp_a_line (AVFormatContext *s, const char *p) |
Parse a Windows Media Server-specific SDP line. More... | |
static int | asfrtp_parse_sdp_line (AVFormatContext *s, int stream_index, PayloadContext *asf, const char *line) |
static int | asfrtp_parse_packet (AVFormatContext *s, PayloadContext *asf, AVStream *st, AVPacket *pkt, uint32_t *timestamp, const uint8_t *buf, int len, uint16_t seq, int flags) |
static void | asfrtp_close_context (PayloadContext *asf) |
RTP_ASF_HANDLER (asf_pfv, "x-asf-pf", AVMEDIA_TYPE_VIDEO) | |
RTP_ASF_HANDLER (asf_pfa, "x-asf-pf", AVMEDIA_TYPE_AUDIO) | |
Microsoft RTP/ASF support.
Definition in file rtpdec_asf.c.
Definition at line 302 of file rtpdec_asf.c.
From MSDN 2.2.1.4, we learn that ASF data packets over RTP should not contain any padding.
Unfortunately, the header min/max_pktsize are not updated (thus making min_pktsize invalid). Here, we "fix" these faulty min_pktsize values in the ASF file header.
Definition at line 46 of file rtpdec_asf.c.
Referenced by ff_wms_parse_sdp_a_line().
The following code is basically a buffered AVIOContext, with the added benefit of returning -EAGAIN (instead of 0) on packet boundaries, such that the ASF demuxer can return safely and resume business at the next packet.
Definition at line 86 of file rtpdec_asf.c.
Referenced by init_packetizer().
|
static |
Definition at line 91 of file rtpdec_asf.c.
Referenced by asfrtp_parse_packet(), and ff_wms_parse_sdp_a_line().
int ff_wms_parse_sdp_a_line | ( | AVFormatContext * | s, |
const char * | p | ||
) |
Parse a Windows Media Server-specific SDP line.
s | RTSP demux context |
Definition at line 100 of file rtpdec_asf.c.
Referenced by get_sockaddr().
|
static |
Definition at line 153 of file rtpdec_asf.c.
|
static |
< relative timestamp
< has duration
< has location ID
If 0x40 is not set, the len_off field specifies an offset of this packet's payload data in the complete (reassembled) ASF packet. This is used to spread one ASF packet over multiple RTP packets.
If 0x40 is set, the len_off field specifies the length of the next ASF packet that can be read from this payload data alone. This is commonly the same as the payload size, but could be less in case of packet splitting (i.e. multiple ASF packets in one RTP packet).
Definition at line 191 of file rtpdec_asf.c.
|
static |
Definition at line 296 of file rtpdec_asf.c.
RTP_ASF_HANDLER | ( | asf_pfv | , |
"x-asf-pf" | , | ||
AVMEDIA_TYPE_VIDEO | |||
) |
RTP_ASF_HANDLER | ( | asf_pfa | , |
"x-asf-pf" | , | ||
AVMEDIA_TYPE_AUDIO | |||
) |