}
if (got_output) {
fwrite(pkt.data, 1, pkt.size, f);
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
}
}
pkt.data += ret;
pkt.size -= ret;
} while (pkt.size > 0);
- av_free_packet(&orig_pkt);
+ av_packet_unref(&orig_pkt);
}
/* flush cached frames */
pkt.data += ret;
pkt.size -= ret;
} while (pkt.size > 0);
- av_free_packet(&orig_pkt);
+ av_packet_unref(&orig_pkt);
}
/* flush cached frames */
}
if (packet.size <= 0)
- av_free_packet(&packet0);
+ av_packet_unref(&packet0);
} else {
/* discard non-wanted packets */
- av_free_packet(&packet0);
+ av_packet_unref(&packet0);
}
}
end:
av_frame_unref(frame);
}
}
- av_free_packet(&packet);
+ av_packet_unref(&packet);
}
end:
avfilter_graph_free(&filter_graph);
fprintf(stderr, "Error muxing packet\n");
break;
}
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
}
av_write_trailer(ofmt_ctx);
if (ret < 0)
goto end;
}
- av_free_packet(&packet);
+ av_packet_unref(&packet);
}
/* flush filters and encoders */
av_write_trailer(ofmt_ctx);
end:
- av_free_packet(&packet);
+ av_packet_unref(&packet);
av_frame_free(&frame);
for (i = 0; i < ifmt_ctx->nb_streams; i++) {
avcodec_close(ifmt_ctx->streams[i]->codec);
*/
if (!(avctx->codec_type == AVMEDIA_TYPE_VIDEO && avctx->codec)) {
if (ost->frame_number >= ost->max_frames) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
return;
}
ost->frame_number++;
if (a > 0) {
pkt->side_data = NULL;
pkt->side_data_elems = 0;
- av_free_packet(pkt);
+ av_packet_unref(pkt);
new_pkt.buf = av_buffer_create(new_pkt.data, new_pkt.size,
av_buffer_default_free, NULL, 0);
if (!new_pkt.buf)
main_return_code = 1;
close_all_output_streams(ost, MUXER_FINISHED | ENCODER_FINISHED, ENCODER_FINISHED);
}
- av_free_packet(pkt);
+ av_packet_unref(pkt);
}
static void close_output_stream(OutputStream *ost)
break;
}
if (ost->finished & MUXER_FINISHED) {
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
continue;
}
av_packet_rescale_ts(&pkt, enc->time_base, ost->st->time_base);
av_log(f->ctx, AV_LOG_ERROR,
"Unable to send packet to main thread: %s\n",
av_err2str(ret));
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
av_thread_message_queue_set_err_recv(f->in_thread_queue, ret);
break;
}
continue;
av_thread_message_queue_set_err_send(f->in_thread_queue, AVERROR_EOF);
while (av_thread_message_queue_recv(f->in_thread_queue, &pkt, 0) >= 0)
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
pthread_join(f->thread, NULL);
f->joined = 1;
process_input_packet(ist, &pkt, 0);
discard_packet:
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
return 0;
}
SDL_UnlockMutex(q->mutex);
if (pkt != &flush_pkt && ret < 0)
- av_free_packet(pkt);
+ av_packet_unref(pkt);
return ret;
}
SDL_LockMutex(q->mutex);
for (pkt = q->first_pkt; pkt; pkt = pkt1) {
pkt1 = pkt->next;
- av_free_packet(&pkt->pkt);
+ av_packet_unref(&pkt->pkt);
av_freep(&pkt);
}
q->last_pkt = NULL;
d->next_pts_tb = d->start_pts_tb;
}
} while (pkt.data == flush_pkt.data || d->queue->serial != d->pkt_serial);
- av_free_packet(&d->pkt);
+ av_packet_unref(&d->pkt);
d->pkt_temp = d->pkt = pkt;
d->packet_pending = 1;
}
}
static void decoder_destroy(Decoder *d) {
- av_free_packet(&d->pkt);
+ av_packet_unref(&d->pkt);
}
static void frame_queue_unref_item(Frame *vp)
} else if (pkt->stream_index == is->subtitle_stream && pkt_in_play_range) {
packet_queue_put(&is->subtitleq, pkt);
} else {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
}
}
c->packet_stream_index = pkt.stream_index;
ctx = c->rtp_ctx[c->packet_stream_index];
if(!ctx) {
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
break;
}
codec = ctx->streams[0]->codec;
codec->frame_number++;
if (len == 0) {
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
goto redo;
}
}
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
}
}
break;
}
mpeg4_count--;
}
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
}
}
return 0;
failed_alloc:
- av_free_packet(pkt);
+ av_packet_unref(pkt);
return AVERROR(ENOMEM);
}
bytestream_put_be64(&p, FF_MERGE_MARKER);
av_assert0(p-pkt->data == pkt->size);
memset(p, 0, AV_INPUT_BUFFER_PADDING_SIZE);
- av_free_packet(&old);
+ av_packet_unref(&old);
pkt->side_data_elems = 0;
pkt->side_data = NULL;
return 1;
discard_padding = opus->opts.packet_size - avpkt->duration;
// Check if subtraction resulted in an overflow
if ((discard_padding < opus->opts.packet_size) != (avpkt->duration > 0)) {
- av_free_packet(avpkt);
+ av_packet_unref(avpkt);
av_free(avpkt);
return AVERROR(EINVAL);
}
AV_PKT_DATA_SKIP_SAMPLES,
10);
if(!side_data) {
- av_free_packet(avpkt);
+ av_packet_unref(avpkt);
av_free(avpkt);
return AVERROR(ENOMEM);
}
AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL,
cx_frame->sz_alpha + 8);
if(!side_data) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
av_free(pkt);
return AVERROR(ENOMEM);
}
ret = FFMIN(AVERROR(errno), -1);
av_log(avctx, AV_LOG_ERROR, "Unable to recode subtitle event \"%s\" "
"from %s to UTF-8\n", inpkt->data, avctx->sub_charenc);
- av_free_packet(&tmp);
+ av_packet_unref(&tmp);
goto end;
}
outpkt->size -= outl;
pkt_recoded.side_data = NULL;
pkt_recoded.side_data_elems = 0;
- av_free_packet(&pkt_recoded);
+ av_packet_unref(&pkt_recoded);
}
if (avctx->codec_descriptor->props & AV_CODEC_PROP_BITMAP_SUB)
sub->format = 0;
pthread_mutex_lock(&q->mutex);
for (pkt = q->first_pkt; pkt != NULL; pkt = pkt1) {
pkt1 = pkt->next;
- av_free_packet(&pkt->pkt);
+ av_packet_unref(&pkt->pkt);
av_freep(&pkt);
}
q->last_pkt = NULL;
pktl = ctx->pktl;
while (pktl) {
AVPacketList *next = pktl->next;
- av_free_packet(&pktl->pkt);
+ av_packet_unref(&pktl->pkt);
av_free(pktl);
pktl = next;
}
fail:
/* Handle failure */
if (pkt->data)
- av_free_packet(pkt);
+ av_packet_unref(pkt);
if (error_msg)
av_log(ctx, AV_LOG_ERROR, "Error: %s\n", error_msg);
return error;
av_image_copy(data, linesize, (const uint8_t **)frame->data, frame->linesize, *pix_fmt, *w, *h);
end:
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
avcodec_close(codec_ctx);
avformat_close_input(&format_ctx);
av_frame_free(&frame);
pkt_out_id = pkt->stream_index > movie->max_stream_index ? -1 :
movie->out_index[pkt->stream_index];
if (pkt_out_id < 0) {
- av_free_packet(&movie->pkt0);
+ av_packet_unref(&movie->pkt0);
pkt->size = 0; /* ready for next run */
pkt->data = NULL;
return 0;
if (ret < 0) {
av_log(ctx, AV_LOG_WARNING, "Decode error: %s\n", av_err2str(ret));
av_frame_free(&frame);
- av_free_packet(&movie->pkt0);
+ av_packet_unref(&movie->pkt0);
movie->pkt.size = 0;
movie->pkt.data = NULL;
return 0;
pkt->data += ret;
pkt->size -= ret;
if (pkt->size <= 0) {
- av_free_packet(&movie->pkt0);
+ av_packet_unref(&movie->pkt0);
pkt->size = 0; /* ready for next run */
pkt->data = NULL;
}
mcdeint->parity ^= 1;
end:
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
av_frame_free(&inpic);
if (ret < 0) {
av_frame_free(&outpic);
}
}
}
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
avsubtitle_free(&sub);
}
if (ret != size) {
if (ret < 0) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
return ret;
}
av_shrink_packet(pkt, ret);
while (pict_list) {
AVPacketList *next = pict_list->next;
- av_free_packet(&pict_list->pkt);
+ av_packet_unref(&pict_list->pkt);
av_freep(&pict_list);
pict_list = next;
}
AV_WL32(pkt->data + 4, ape->frames[ape->currentframe].skip);
ret = avio_read(s->pb, pkt->data + extra_size, ape->frames[ape->currentframe].size);
if (ret < 0) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
return ret;
}
}
++apng->frame_number;
- av_free_packet(apng->prev_packet);
+ av_packet_unref(apng->prev_packet);
if (packet)
av_copy_packet(apng->prev_packet, packet);
}
fail:
av_freep(&desc);
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
return ret;
}
if ((ret = av_get_packet(pb, &pkt, len)) < 0)
return ret;
av_hex_dump_log(s, AV_LOG_DEBUG, pkt.data, pkt.size);
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
len= avio_rl32(pb);
get_tag(s, "ASF_Protection_Type", -1, len, 32);
len= avio_rl32(pb);
"freeing incomplete packet size %d, new %d\n",
asf_st->pkt.size, asf_st->packet_obj_size);
asf_st->frag_offset = 0;
- av_free_packet(&asf_st->pkt);
+ av_packet_unref(&asf_st->pkt);
}
/* new packet */
if ((ret = av_new_packet(&asf_st->pkt, asf_st->packet_obj_size)) < 0)
if (i == asf_st->pkt.size) {
av_log(s, AV_LOG_DEBUG, "discarding ms fart\n");
asf_st->frag_offset = 0;
- av_free_packet(&asf_st->pkt);
+ av_packet_unref(&asf_st->pkt);
continue;
}
}
for (i = 0; i < 128; i++) {
asf_st = &asf->streams[i];
- av_free_packet(&asf_st->pkt);
+ av_packet_unref(&asf_st->pkt);
asf_st->packet_obj_size = 0;
asf_st->frag_offset = 0;
asf_st->seq = 0;
pts = pkt->dts;
- av_free_packet(pkt);
+ av_packet_unref(pkt);
if (pkt->flags & AV_PKT_FLAG_KEY) {
i = pkt->stream_index;
}
if (!avi->non_interleaved && pkt->pos >= 0 && ast->seek_pos > pkt->pos) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
goto resync;
}
ast->seek_pos= 0;
dst += size;
avio_skip(s->pb, skip);
if (ret != size) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
break;
}
}
ret = 1;
}
if (ret > 0) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
pkt2.buf = av_buffer_create(pkt2.data, pkt2.size,
av_buffer_default_free, NULL, 0);
if (!pkt2.buf) {
if (partial_packet) {
avpriv_request_sample(s, "video header followed by audio packet");
- av_free_packet(pkt);
+ av_packet_unref(pkt);
partial_packet = 0;
}
}
if (ret < 0 && partial_packet)
- av_free_packet(pkt);
+ av_packet_unref(pkt);
return ret;
}
pkt->stream_index = ffm->header[0];
if ((unsigned)pkt->stream_index >= s->nb_streams) {
av_log(s, AV_LOG_ERROR, "invalid stream index %d\n", pkt->stream_index);
- av_free_packet(pkt);
+ av_packet_unref(pkt);
ffm->read_state = READ_HEADER;
return -1;
}
ffm->read_state = READ_HEADER;
if (ffm_read_data(s, pkt->data, size, 0) != size) {
/* bad case: desynchronized packet. we cancel all the packet loading */
- av_free_packet(pkt);
+ av_packet_unref(pkt);
return -1;
}
pkt->pts = AV_RB64(ffm->header+8);
&out_pkt.data, &out_pkt.size, pkt.data, pkt.size,
pkt.pts, pkt.dts, *ppos);
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
if (out_pkt.size){
int size = out_pkt.size;
if (parser->pts != AV_NOPTS_VALUE){
av_log(s, AV_LOG_ERROR, "Packet mismatch %d %d\n", last, orig_size + 11);
avio_seek(s->pb, pos + 1, SEEK_SET);
ret = resync(s);
- av_free_packet(pkt);
+ av_packet_unref(pkt);
if (ret >= 0) {
goto retry;
}
avio_write(pb, pkt->data, pkt->size);
- av_free_packet(gif->prev_pkt);
+ av_packet_unref(gif->prev_pkt);
if (new)
av_copy_packet(gif->prev_pkt, new);
bytestream_put_be16(&buf, 2);
ret = avio_read(pb, buf, iff->body_size);
if (ret<0) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
} else if (ret < iff->body_size)
av_shrink_packet(pkt, ret + 2);
} else {
(ret = avformat_write_header(fmt, NULL)) < 0 ||
(ret = av_interleaved_write_frame(fmt, &pkt2)) < 0 ||
(ret = av_write_trailer(fmt)) < 0) {
- av_free_packet(&pkt2);
+ av_packet_unref(&pkt2);
avformat_free_context(fmt);
return ret;
}
- av_free_packet(&pkt2);
+ av_packet_unref(&pkt2);
avformat_free_context(fmt);
} else {
avio_write(pb[0], pkt->data, pkt->size);
pkt->size = ModPlug_Read(modplug->f, pkt->data, AUDIO_PKT_SIZE);
if (pkt->size <= 0) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
return pkt->size == 0 ? AVERROR_EOF : AVERROR(EIO);
}
return 0;
AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL,
additional_size + 8);
if (!side_data) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
av_free(pkt);
return AVERROR(ENOMEM);
}
AV_PKT_DATA_SKIP_SAMPLES,
10);
if (!side_data) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
av_free(pkt);
return AVERROR(ENOMEM);
}
return ret;
if (info->num_blocks != 6)
return 0;
- av_free_packet(pkt);
+ av_packet_unref(pkt);
if ((ret = av_copy_packet(pkt, &info->pkt)) < 0)
return ret;
- av_free_packet(&info->pkt);
+ av_packet_unref(&info->pkt);
info->num_blocks = 0;
}
av_free(buf);
end:
- av_free_packet(&info->pkt);
+ av_packet_unref(&info->pkt);
av_freep(&track->eac3_priv);
return size;
end.stream_index = stream_index;
ret = mov_write_single_packet(s, &end);
- av_free_packet(&end);
+ av_packet_unref(&end);
return ret;
}
pkt->pos = idx_pkt.pos;
pkt->stream_index = idx_pkt.stream_index;
- av_free_packet(&idx_pkt);
+ av_packet_unref(&idx_pkt);
return 0;
fail:
- av_free_packet(pkt);
- av_free_packet(&idx_pkt);
+ av_packet_unref(pkt);
+ av_packet_unref(&idx_pkt);
return ret;
}
ts->pkt = pkt;
ret = handle_packets(ts, 0);
if (ret < 0) {
- av_free_packet(ts->pkt);
+ av_packet_unref(ts->pkt);
/* flush pes data left */
for (i = 0; i < NB_PID_MAX; i++)
if (ts->pids[i] && ts->pids[i]->type == MPEGTS_PES) {
ret = av_read_frame(s, &pkt);
if (ret < 0)
return AV_NOPTS_VALUE;
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
if (pkt.dts != AV_NOPTS_VALUE && pkt.pos >= 0) {
ff_reduce_index(s, pkt.stream_index);
av_add_index_entry(s->streams[pkt.stream_index], pkt.pos, pkt.dts, 0, 0, AVINDEX_KEYFRAME /* FIXME keyframe? */);
return 0;
fail:
- av_free_packet(pkt);
+ av_packet_unref(pkt);
return ret;
}
return psize;
fail:
- av_free_packet(pkt);
+ av_packet_unref(pkt);
return AVERROR(ENOMEM);
}
ret = av_get_packet(s->pb, pkt, size);
if (ret != size) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
return AVERROR(EIO);
}
AV_WL32(pkt->data + 1, 1);
AV_WL32(pkt->data + 5, 0);
if ((ret = avio_read(pb, pkt->data + 9, len)) != len) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
av_log(s, AV_LOG_ERROR, "Failed to read %d bytes\n", len);
return ret < 0 ? ret : AVERROR(EIO);
}
memcpy(pkt->data, header, 24);
ret = avio_read(s->pb, pkt->data + 24, next - 52);
if (ret < 0) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
return ret;
}
av_shrink_packet(pkt, ret + 24);
if (c->gmcsize)
memcpy(pkt->data + 2, c->gmc, c->gmcsize);
if (avio_read(s->pb, pkt->data + 2 + c->gmcsize, size) != size) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
return AVERROR_INVALIDDATA;
}
pkt->stream_index = 0;
q->subs[i].stream_index == last->stream_index &&
!strcmp(q->subs[i].data, last->data)) {
- av_free_packet(&q->subs[i]);
+ av_packet_unref(&q->subs[i]);
drop++;
} else if (drop) {
q->subs[last_id + 1] = q->subs[i];
int i;
for (i = 0; i < q->nb_subs; i++)
- av_free_packet(&q->subs[i]);
+ av_packet_unref(&q->subs[i]);
av_freep(&q->subs);
q->nb_subs = q->allocated_size = q->current_sub_idx = 0;
}
if ((res = av_new_packet(pkt, len)) < 0)
return res;
if (avio_read(pb, pkt->data, 4) != 4) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
return AVERROR_INVALIDDATA;
}
if (AV_RB32(pkt->data) == 0xffd8ffd9 ||
}
if (res != pkt->size) {
if (res < 0) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
return res;
}
av_shrink_packet(pkt, res);
}
if (ret > 0) {
- av_free_packet(pkt);
+ av_packet_unref(pkt);
new_pkt.buf = av_buffer_create(new_pkt.data, new_pkt.size,
av_buffer_default_free, NULL, 0);
if (!new_pkt.buf)
if (pkt->flags & AV_PKT_FLAG_KEY)
st->skip_to_keyframe = 0;
if (st->skip_to_keyframe) {
- av_free_packet(&cur_pkt);
+ av_packet_unref(&cur_pkt);
if (got_packet) {
*pkt = cur_pkt;
}
fail:
if (ret < 0)
- av_free_packet(pkt);
+ av_packet_unref(pkt);
return ret;
}
avio_w8(s->pb, 0);
}
avio_write(s->pb, w->last_pkt.data + skip, w->last_pkt.size - skip);
- av_free_packet(&w->last_pkt);
+ av_packet_unref(&w->last_pkt);
}
return 0;
av_free(wctx->sp_pairs);
av_free(wctx->st_pairs);
- av_free_packet(&wctx->thumbnail);
+ av_packet_unref(&wctx->thumbnail);
return 0;
}
return -1;
}
}
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
av_init_packet(&pkt);
}
} while (!end_of_stream || got_frame);
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
av_frame_free(&fr);
avcodec_close(ctx);
avformat_close_input(&fmt_ctx);
out_offset += out_frame_bytes;
}
}
- av_free_packet(&enc_pkt);
+ av_packet_unref(&enc_pkt);
}
if (memcmp(raw_in, raw_out, out_frame_bytes * NUMBER_OF_FRAMES) != 0) {
fr->pkt_pts, fr->pkt_dts, av_frame_get_pkt_duration(fr),
number_of_written_bytes, av_adler32_update(0, (const uint8_t*)byte_buffer, number_of_written_bytes));
}
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
av_init_packet(&pkt);
}
i++;
} while (!end_of_stream || got_frame);
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
av_frame_free(&fr);
avcodec_close(ctx);
avformat_close_input(&fmt_ctx);
}
}
}
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
av_init_packet(&pkt);
} while ((!end_of_stream || got_frame) && (no_seeking || (fr->pkt_pts + av_frame_get_pkt_duration(fr) <= ts_end)));
- av_free_packet(&pkt);
+ av_packet_unref(&pkt);
av_freep(&byte_buffer);
return 0;
ret, packet.size, packet.stream_index,
av_ts2str(packet.dts), av_ts2timestr(packet.dts, tb),
av_ts2str(packet.pts), av_ts2timestr(packet.pts, tb));
- av_free_packet(&packet);
+ av_packet_unref(&packet);
}
} else if (sscanf(*argv, "seek:%i:%"SCNi64":%"SCNi64":%"SCNi64":%i",
&stream, &min_ts, &ts, &max_ts, &flags) == 5) {