54 int f, p, i, sbit, ebit,
src,
r;
78 r = ((buf[1] & 0x01) << 3) | ((buf[2] & 0xe0) >> 5);
82 if (len < header_size) {
84 "Too short H.263 RTP packet: %d bytes, %d header bytes\n",
93 if (len < header_size) {
95 "Too short H.263 RTP packet: %d bytes, %d header bytes\n",
102 sbit = (buf[0] >> 3) & 0x7;
104 src = (buf[1] & 0xe0) >> 5;
105 if (!(buf[0] & 0xf8)) {
106 if ((src == 0 || src >= 6) &&
r) {
110 "Interpreting H.263 RTP data as RFC 2429/4629 even though "
111 "signalled with a static payload type.\n");
124 if (len > 4 &&
AV_RB32(buf) >> 10 == 0x20) {
137 data->
endbyte |= buf[0] & (0xff >> sbit);
165 data->
endbyte = buf[len - 1] & (0xff << ebit);
193 .static_payload_id = 34,
static int h263_handle_packet(AVFormatContext *ctx, PayloadContext *data, AVStream *st, AVPacket *pkt, uint32_t *timestamp, const uint8_t *buf, int len, uint16_t seq, int flags)
static void h263_close_context(PayloadContext *data)
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
ptrdiff_t const GLvoid * data
static unsigned int get_bits(GetBitContext *s, int n)
Read 1-25 bits.
const RTPDynamicProtocolHandler ff_h263_rfc2190_dynamic_handler
#define AV_LOG_WARNING
Something somehow does not look correct.
RTP/JPEG specific private data.
int index
stream index in AVFormatContext
int avio_open_dyn_buf(AVIOContext **s)
Open a write only memory stream.
enum AVMediaType codec_type
Macro definitions for various function/variable attributes.
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_RB32
bitstream reader API header.
void avio_write(AVIOContext *s, const unsigned char *buf, int size)
#define AV_PKT_FLAG_KEY
The packet contains a keyframe.
static int get_bits_left(GetBitContext *gb)
uint32_t timestamp
current frame timestamp
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
#define RTP_FLAG_MARKER
RTP marker bit was set for this packet.
int flags
A combination of AV_PKT_FLAG values.
void ffio_free_dyn_buf(AVIOContext **s)
Free a dynamic buffer.
void avio_w8(AVIOContext *s, int b)
static void skip_bits(GetBitContext *s, int n)
static int init_get_bits(GetBitContext *s, const uint8_t *buffer, int bit_size)
Initialize GetBitContext.
uint8_t * buf
the temporary storage buffer
#define flags(name, subs,...)
int ff_rtp_finalize_packet(AVPacket *pkt, AVIOContext **dyn_buf, int stream_idx)
Close the dynamic buffer and make a packet from it.
This structure stores compressed data.