• Home
  • Raw
  • Download

Lines Matching refs:pkt

547 static int compute_muxer_pkt_fields(AVFormatContext *s, AVStream *st, AVPacket *pkt)  argument
556 (pkt->pts == AV_NOPTS_VALUE || pkt->dts == AV_NOPTS_VALUE)) {
566 …av_ts2str(pkt->pts), av_ts2str(pkt->dts), av_ts2str(st->cur_dts), delay, pkt->size, pkt->stream_in…
568 if (pkt->pts == AV_NOPTS_VALUE && pkt->dts != AV_NOPTS_VALUE && delay == 0)
569 pkt->pts = pkt->dts;
572 if ((pkt->pts == 0 || pkt->pts == AV_NOPTS_VALUE) && pkt->dts == AV_NOPTS_VALUE && !delay) {
578 pkt->dts =
580 pkt->pts = st->internal->priv_pts->val;
584 if (pkt->pts != AV_NOPTS_VALUE && pkt->dts == AV_NOPTS_VALUE && delay <= MAX_REORDER_DELAY) {
585 st->internal->pts_buffer[0] = pkt->pts;
587 st->internal->pts_buffer[i] = pkt->pts + (i - delay - 1) * pkt->duration;
591 pkt->dts = st->internal->pts_buffer[0];
598 st->cur_dts >= pkt->dts) || st->cur_dts > pkt->dts)) {
601 st->index, av_ts2str(st->cur_dts), av_ts2str(pkt->dts));
604 if (pkt->dts != AV_NOPTS_VALUE && pkt->pts != AV_NOPTS_VALUE && pkt->pts < pkt->dts) {
607 av_ts2str(pkt->pts), av_ts2str(pkt->dts),
614 av_ts2str(pkt->pts), av_ts2str(pkt->dts));
616 st->cur_dts = pkt->dts;
617 st->internal->priv_pts->val = pkt->dts;
622 frame_size = (pkt->flags & AV_PKT_FLAG_UNCODED_FRAME) ?
623 (*(AVFrame **)pkt->data)->nb_samples :
624 av_get_audio_frame_duration(st->codec, pkt->size);
629 …if (frame_size >= 0 && (pkt->size || st->internal->priv_pts->num != st->internal->priv_pts->den >>…
642 static void guess_pkt_duration(AVFormatContext *s, AVStream *st, AVPacket *pkt) argument
644 if (pkt->duration < 0 && st->codecpar->codec_type != AVMEDIA_TYPE_SUBTITLE) {
646 pkt->duration, pkt->stream_index);
647 pkt->duration = 0;
650 if (pkt->duration)
656 pkt->duration = av_rescale_q(1, av_inv_q(st->avg_frame_rate),
659 pkt->duration = 1;
662 int frame_size = av_get_audio_frame_duration2(st->codecpar, pkt->size);
664 pkt->duration = av_rescale_q(frame_size,
681 static int write_packet(AVFormatContext *s, AVPacket *pkt) argument
688 AVStream *st = s->streams[pkt->stream_index];
691 if (pkt->dts != AV_NOPTS_VALUE)
692 pkt->dts += offset;
693 if (pkt->pts != AV_NOPTS_VALUE)
694 pkt->pts += offset;
698 AVStream *st = s->streams[pkt->stream_index];
700 int64_t ts = s->internal->avoid_negative_ts_use_pts ? pkt->pts : pkt->dts;
716 if (pkt->dts != AV_NOPTS_VALUE)
717 pkt->dts += offset;
718 if (pkt->pts != AV_NOPTS_VALUE)
719 pkt->pts += offset;
722 if (pkt->pts != AV_NOPTS_VALUE && pkt->pts < 0) {
726 av_ts2str(pkt->pts),
727 pkt->stream_index
731 av_assert2(pkt->dts == AV_NOPTS_VALUE || pkt->dts >= 0 || s->max_interleave_delta > 0);
732 if (pkt->dts != AV_NOPTS_VALUE && pkt->dts < 0) {
737 av_ts2str(pkt->dts),
738 pkt->stream_index
744 if ((pkt->flags & AV_PKT_FLAG_UNCODED_FRAME)) {
745 AVFrame **frame = (AVFrame **)pkt->data;
746 av_assert0(pkt->size == sizeof(*frame));
747 ret = s->oformat->write_uncoded_frame(s, pkt->stream_index, frame, 0);
749 ret = s->oformat->write_packet(s, pkt);
759 s->streams[pkt->stream_index]->nb_frames++;
764 static int check_packet(AVFormatContext *s, AVPacket *pkt) argument
766 if (pkt->stream_index < 0 || pkt->stream_index >= s->nb_streams) {
768 pkt->stream_index);
772 if (s->streams[pkt->stream_index]->codecpar->codec_type == AVMEDIA_TYPE_ATTACHMENT) {
780 static int prepare_input_packet(AVFormatContext *s, AVStream *st, AVPacket *pkt) argument
789 if (pkt->pts == AV_NOPTS_VALUE && pkt->dts != AV_NOPTS_VALUE)
790 pkt->pts = pkt->dts;
791 if (pkt->dts == AV_NOPTS_VALUE && pkt->pts != AV_NOPTS_VALUE)
792 pkt->dts = pkt->pts;
796 if (pkt->pts == AV_NOPTS_VALUE || pkt->dts == AV_NOPTS_VALUE) {
805 ((!(s->oformat->flags & AVFMT_TS_NONSTRICT) && st->cur_dts >= pkt->dts) ||
806 st->cur_dts > pkt->dts)) {
810 st->index, st->cur_dts, pkt->dts);
814 if (pkt->pts < pkt->dts) {
816 pkt->pts, pkt->dts, st->index);
823 pkt->flags |= AV_PKT_FLAG_KEY;
830 int ff_interleave_add_packet(AVFormatContext *s, AVPacket *pkt, argument
835 AVStream *st = s->streams[pkt->stream_index];
840 av_packet_unref(pkt);
843 if ((ret = av_packet_make_refcounted(pkt)) < 0) {
845 av_packet_unref(pkt);
849 av_packet_move_ref(&this_pktl->pkt, pkt);
850 pkt = &this_pktl->pkt;
860 st->internal->interleaver_chunk_size += pkt->size;
861 st->internal->interleaver_chunk_duration += pkt->duration;
865 pkt->flags |= CHUNK_START;
868 int64_t syncto = av_rescale(pkt->dts + syncoffset, 1, max)*max - syncoffset;
870 st->internal->interleaver_chunk_duration += (pkt->dts - syncto)/8 - max;
876 if (chunked && !(pkt->flags & CHUNK_START))
879 if (compare(s, &s->internal->packet_buffer_end->pkt, pkt)) {
881 && ((chunked && !((*next_point)->pkt.flags&CHUNK_START))
882 || !compare(s, &(*next_point)->pkt, pkt)))
903 const AVPacket *pkt) argument
905 AVStream *st = s->streams[pkt->stream_index];
907 int comp = av_compare_ts(next->dts, st2->time_base, pkt->dts,
916 ts = av_rescale_q(pkt ->dts, st ->time_base, AV_TIME_BASE_Q) - preload;
919 …ts = ((uint64_t)pkt ->dts*st ->time_base.num*AV_TIME_BASE - (uint64_t)preload *st ->time_base.den…
928 return pkt->stream_index < next->stream_index;
933 AVPacket *pkt, int flush) argument
941 if (pkt) {
942 if ((ret = ff_interleave_add_packet(s, pkt, interleave_compare_dts)) < 0)
964 AVPacket *top_pkt = &s->internal->packet_buffer->pkt;
977 last_dts = av_rescale_q(last->pkt.dts,
996 AVPacket *top_pkt = &s->internal->packet_buffer->pkt;
1005 AVPacket *top_pkt = &s->internal->packet_buffer->pkt;
1015 st = s->streams[pktl->pkt.stream_index];
1024 av_packet_unref(&pktl->pkt);
1033 *out = pktl->pkt;
1070 if (pktl->pkt.stream_index == stream) {
1071 return &pktl->pkt;
1095 static int check_bitstream(AVFormatContext *s, AVStream *st, AVPacket *pkt) argument
1104 if ((ret = s->oformat->check_bitstream(s, pkt)) < 0)
1114 static int interleaved_write_packet(AVFormatContext *s, AVPacket *pkt, int flush) argument
1118 int ret = interleave_packet(s, &opkt, pkt, flush);
1122 pkt = NULL;
1133 static int write_packet_common(AVFormatContext *s, AVStream *st, AVPacket *pkt, int interleaved) argument
1139 pkt->size, av_ts2str(pkt->dts), av_ts2str(pkt->pts));
1141 guess_pkt_duration(s, st, pkt);
1144 … if ((ret = compute_muxer_pkt_fields(s, st, pkt)) < 0 && !(s->oformat->flags & AVFMT_NOTIMESTAMPS))
1149 if (pkt->dts == AV_NOPTS_VALUE && !(s->oformat->flags & AVFMT_NOTIMESTAMPS))
1151 return interleaved_write_packet(s, pkt, 0);
1153 return write_packet(s, pkt);
1157 static int write_packets_from_bsfs(AVFormatContext *s, AVStream *st, AVPacket *pkt, int interleaved) argument
1162 if ((ret = av_bsf_send_packet(bsfc, pkt)) < 0) {
1170 ret = av_bsf_receive_packet(bsfc, pkt);
1180 av_packet_rescale_ts(pkt, bsfc->time_base_out, st->time_base);
1181 ret = write_packet_common(s, st, pkt, interleaved);
1183 av_packet_unref(pkt);
1189 static int write_packets_common(AVFormatContext *s, AVPacket *pkt, int interleaved) argument
1192 int ret = check_packet(s, pkt);
1195 st = s->streams[pkt->stream_index];
1197 ret = prepare_input_packet(s, st, pkt);
1201 ret = check_bitstream(s, st, pkt);
1206 return write_packets_from_bsfs(s, st, pkt, interleaved);
1208 return write_packet_common(s, st, pkt, interleaved);
1214 AVPacket *pkt = s->internal->pkt; local
1229 pkt = in;
1235 av_packet_unref(pkt);
1236 pkt->buf = NULL;
1237 pkt->data = in->data;
1238 pkt->size = in->size;
1239 ret = av_packet_copy_props(pkt, in);
1243 pkt->buf = av_buffer_ref(in->buf);
1244 if (!pkt->buf) {
1251 ret = write_packets_common(s, pkt, 0/*non-interleaved*/);
1255 av_packet_unref(pkt);
1259 int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt) argument
1263 if (pkt) {
1264 ret = write_packets_common(s, pkt, 1/*interleaved*/);
1266 av_packet_unref(pkt);
1277 AVPacket *pkt = s->internal->pkt; local
1279 av_packet_unref(pkt);
1282 ret1 = write_packets_from_bsfs(s, s->streams[i], pkt, 1/*interleaved*/);
1284 av_packet_unref(pkt);
1328 int ff_write_chained(AVFormatContext *dst, int dst_stream, AVPacket *pkt, argument
1334 local_pkt = *pkt;
1338 src->streams[pkt->stream_index]->time_base,
1343 pkt->buf = local_pkt.buf;
1344 pkt->side_data = local_pkt.side_data;
1345 pkt->side_data_elems = local_pkt.side_data_elems;
1358 AVPacket *pkt = s->internal->pkt; local
1367 pkt = NULL;
1374 av_packet_unref(pkt);
1375 pkt->buf = av_buffer_create((void *)framep, bufsize,
1377 if (!pkt->buf) {
1385 pkt->data = (void *)framep;
1386 pkt->size = sizeof(frame);
1387 pkt->pts =
1388 pkt->dts = frame->pts;
1389 pkt->duration = frame->pkt_duration;
1390 pkt->stream_index = stream_index;
1391 pkt->flags |= AV_PKT_FLAG_UNCODED_FRAME;
1394 return interleaved ? av_interleaved_write_frame(s, pkt) :
1395 av_write_frame(s, pkt);