MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / packet_queue_put

Function packet_queue_put

ffplay.c:320–350  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

318}
319
320static int packet_queue_put(PacketQueue *q, AVPacket *pkt)
321{
322 AVPacketList *pkt1;
323
324 /* duplicate the packet */
325 if (pkt!=&flush_pkt && av_dup_packet(pkt) < 0)
326 return -1;
327
328 pkt1 = av_malloc(sizeof(AVPacketList));
329 if (!pkt1)
330 return -1;
331 pkt1->pkt = *pkt;
332 pkt1->next = NULL;
333
334
335 SDL_LockMutex(q->mutex);
336
337 if (!q->last_pkt)
338
339 q->first_pkt = pkt1;
340 else
341 q->last_pkt->next = pkt1;
342 q->last_pkt = pkt1;
343 q->nb_packets++;
344 q->size += pkt1->pkt.size + sizeof(*pkt1);
345 /* XXX: should duplicate packet data in DV case */
346 SDL_CondSignal(q->cond);
347
348 SDL_UnlockMutex(q->mutex);
349 return 0;
350}
351
352static void packet_queue_abort(PacketQueue *q)
353{

Callers 2

packet_queue_initFunction · 0.85
decode_threadFunction · 0.85

Calls 2

av_dup_packetFunction · 0.85
av_mallocFunction · 0.85

Tested by

no test coverage detected