Lines Matching refs:vp8

56 static int vp8_broken_sequence(AVFormatContext *ctx, PayloadContext *vp8,  in vp8_broken_sequence()  argument
59 vp8->sequence_ok = 0; in vp8_broken_sequence()
61 ffio_free_dyn_buf(&vp8->data); in vp8_broken_sequence()
65 static int vp8_handle_packet(AVFormatContext *ctx, PayloadContext *vp8, in vp8_handle_packet() argument
79 if (vp8->data) { in vp8_handle_packet()
80 int ret = ff_rtp_finalize_packet(pkt, &vp8->data, st->index); in vp8_handle_packet()
83 *timestamp = vp8->timestamp; in vp8_handle_packet()
84 if (vp8->sequence_dirty) in vp8_handle_packet()
144 ffio_free_dyn_buf(&vp8->data); in vp8_handle_packet()
146 vp8->sequence_ok = 1; in vp8_handle_packet()
147 vp8->sequence_dirty = 0; in vp8_handle_packet()
148 vp8->got_keyframe = 1; in vp8_handle_packet()
150 int can_continue = vp8->data && !vp8->is_keyframe && in vp8_handle_packet()
151 avio_tell(vp8->data) >= vp8->first_part_size; in vp8_handle_packet()
152 if (!vp8->sequence_ok) in vp8_handle_packet()
154 if (!vp8->got_keyframe) in vp8_handle_packet()
155 return vp8_broken_sequence(ctx, vp8, "Keyframe missing\n"); in vp8_handle_packet()
157 if (pictureid != ((vp8->prev_pictureid + 1) & pictureid_mask)) { in vp8_handle_packet()
158 return vp8_broken_sequence(ctx, vp8, in vp8_handle_packet()
161 if (vp8->data && !can_continue) in vp8_handle_packet()
162 return vp8_broken_sequence(ctx, vp8, in vp8_handle_packet()
166 uint16_t expected_seq = vp8->prev_seq + 1; in vp8_handle_packet()
168 if (vp8->data) { in vp8_handle_packet()
179 return vp8_broken_sequence(ctx, vp8, in vp8_handle_packet()
184 return vp8_broken_sequence(ctx, vp8, in vp8_handle_packet()
188 if (vp8->data) { in vp8_handle_packet()
189 vp8->sequence_dirty = 1; in vp8_handle_packet()
190 if (avio_tell(vp8->data) >= vp8->first_part_size) { in vp8_handle_packet()
191 int ret = ff_rtp_finalize_packet(pkt, &vp8->data, st->index); in vp8_handle_packet()
196 old_timestamp = vp8->timestamp; in vp8_handle_packet()
199 ffio_free_dyn_buf(&vp8->data); in vp8_handle_packet()
203 vp8->first_part_size = (AV_RL16(&buf[1]) << 3 | buf[0] >> 5) + 3; in vp8_handle_packet()
204 if ((res = avio_open_dyn_buf(&vp8->data)) < 0) in vp8_handle_packet()
206 vp8->timestamp = *timestamp; in vp8_handle_packet()
207 vp8->broken_frame = 0; in vp8_handle_packet()
208 vp8->prev_pictureid = pictureid; in vp8_handle_packet()
209 vp8->is_keyframe = !non_key; in vp8_handle_packet()
211 uint16_t expected_seq = vp8->prev_seq + 1; in vp8_handle_packet()
213 if (!vp8->sequence_ok) in vp8_handle_packet()
216 if (vp8->timestamp != *timestamp) { in vp8_handle_packet()
218 return vp8_broken_sequence(ctx, vp8, in vp8_handle_packet()
223 if (vp8->is_keyframe) { in vp8_handle_packet()
224 return vp8_broken_sequence(ctx, vp8, in vp8_handle_packet()
226 } else if (vp8->data && avio_tell(vp8->data) >= vp8->first_part_size) { in vp8_handle_packet()
227 vp8->broken_frame = 1; in vp8_handle_packet()
228 vp8->sequence_dirty = 1; in vp8_handle_packet()
230 return vp8_broken_sequence(ctx, vp8, in vp8_handle_packet()
236 if (!vp8->data) in vp8_handle_packet()
237 return vp8_broken_sequence(ctx, vp8, "Received no start marker\n"); in vp8_handle_packet()
239 vp8->prev_seq = seq; in vp8_handle_packet()
240 if (!vp8->broken_frame) in vp8_handle_packet()
241 avio_write(vp8->data, buf, len); in vp8_handle_packet()
250 ret = ff_rtp_finalize_packet(pkt, &vp8->data, st->index); in vp8_handle_packet()
253 if (vp8->sequence_dirty) in vp8_handle_packet()
255 if (vp8->is_keyframe) in vp8_handle_packet()
263 static av_cold int vp8_init(AVFormatContext *s, int st_index, PayloadContext *vp8) in vp8_init() argument
265 vp8->sequence_ok = 1; in vp8_init()
269 static void vp8_close_context(PayloadContext *vp8) in vp8_close_context() argument
271 ffio_free_dyn_buf(&vp8->data); in vp8_close_context()
274 static int vp8_need_keyframe(PayloadContext *vp8) in vp8_need_keyframe() argument
276 return vp8->sequence_dirty || !vp8->sequence_ok; in vp8_need_keyframe()