28 #define RTP_VC2HQ_PL_HEADER_SIZE 4
30 #define DIRAC_DATA_UNIT_HEADER_SIZE 13
31 #define DIRAC_PIC_NR_SIZE 4
32 #define DIRAC_RTP_PCODE_HQ_PIC_FRAGMENT 0xEC
46 uint8_t parse_code, uint32_t data_unit_size)
50 AV_WB32(&buf[5], data_unit_size);
112 av_log(ctx,
AV_LOG_WARNING,
"Dropping buffered RTP/VC2hq packet fragments - non-continuous picture numbers\n");
117 if (no_slices == 0) {
118 if (len < frag_len + 16) {
145 if (len < frag_len + 20) {
185 av_log(ctx,
AV_LOG_WARNING,
"Dropping buffered RTP/VC2hq packet fragments - non-continuous timestamps\n");
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
#define DIRAC_PIC_NR_SIZE
#define AV_LOG_WARNING
Something somehow does not look correct.
RTP/JPEG specific private data.
int index
stream index in AVFormatContext
int64_t avio_seek(AVIOContext *s, int64_t offset, int whence)
fseek() equivalent for AVIOContext.
#define RTP_VC2HQ_PL_HEADER_SIZE
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_WB32 unsigned int_TMPL AV_WB24 unsigned int_TMPL AV_RB16
int avio_open_dyn_buf(AVIOContext **s)
Open a write only memory stream.
Interface to Dirac Decoder/Encoder.
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
static int vc2hq_handle_frame_fragment(AVFormatContext *ctx, PayloadContext *pl_ctx, AVStream *st, AVPacket *pkt, uint32_t *timestamp, const uint8_t *buf, int len, int flags)
#define DIRAC_RTP_PCODE_HQ_PIC_FRAGMENT
void avio_write(AVIOContext *s, const unsigned char *buf, int size)
static int vc2hq_handle_packet(AVFormatContext *ctx, PayloadContext *pl_ctx, AVStream *st, AVPacket *pkt, uint32_t *timestamp, const uint8_t *buf, int len, uint16_t seq, int flags)
int av_new_packet(AVPacket *pkt, int size)
Allocate the payload of a packet and initialize its fields with default values.
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.
static void fill_parse_info_header(PayloadContext *pl_ctx, uint8_t *buf, uint8_t parse_code, uint32_t data_unit_size)
static const uint8_t start_sequence[]
void ffio_free_dyn_buf(AVIOContext **s)
Free a dynamic buffer.
uint8_t * buf
the temporary storage buffer
static int vc2hq_handle_sequence_header(PayloadContext *pl_ctx, AVStream *st, AVPacket *pkt, const uint8_t *buf, int len)
#define DIRAC_DATA_UNIT_HEADER_SIZE
int ff_rtp_finalize_packet(AVPacket *pkt, AVIOContext **dyn_buf, int stream_idx)
Close the dynamic buffer and make a packet from it.
static int vc2hq_mark_end_of_sequence(PayloadContext *pl_ctx, AVStream *st, AVPacket *pkt)
const RTPDynamicProtocolHandler ff_vc2hq_dynamic_handler
This structure stores compressed data.