• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/minidlna/ffmpeg-2.3.4/libavformat/

Lines Matching defs:asf

29 #include "asf.h"
263 /* write an asf chunk (only used in streaming case) */
267 ASFContext *asf = s->priv_data;
274 avio_wl32(pb, asf->seqno); // sequence number
277 asf->seqno++;
290 static int32_t get_send_time(ASFContext *asf, int64_t pres_time, uint64_t *offset)
294 *offset = asf->data_offset + DATA_HEADER_SIZE;
295 for (i = 0; i < asf->next_start_sec; i++) {
296 if (pres_time <= asf->index_ptr[i].send_time)
298 send_time = asf->index_ptr[i].send_time;
299 *offset = asf->index_ptr[i].offset;
307 ASFContext *asf = s->priv_data;
323 int32_t send_time = get_send_time(asf, pres_time, &offset);
352 ASFContext *asf = s->priv_data;
371 duration = asf->duration + PREROLL_TIME * 10000;
388 if (asf->is_streamed) {
405 avio_wl64(pb, asf->nb_packets); /* number of packets */
407 avio_wl64(pb, asf->duration); /* duration (in 100ns units) */
409 avio_wl32(pb, (asf->is_streamed || !pb->seekable) ? 3 : 2); /* ??? */
486 if (!asf->is_streamed && s->nb_chapters) {
494 // ASFStream *stream = &asf->streams[n];
497 asf->streams[n].num = n + 1;
498 asf->streams[n].seq = 1;
624 if (asf->is_streamed) {
640 asf->data_offset = cur_pos;
644 avio_wl64(pb, asf->nb_packets); /* nb packets */
652 ASFContext *asf = s->priv_data;
656 asf->nb_packets = 0;
658 asf->index_ptr = av_malloc(sizeof(ASFIndex) * ASF_INDEX_BLOCK);
659 asf->nb_index_memory_alloc = ASF_INDEX_BLOCK;
660 asf->maximum_packet = 0;
663 * data_size - asf->data_offset at the moment this function is done.
664 * It is needed to use asf as a streamable format. */
666 //av_free(asf);
672 asf->packet_nb_payloads = 0;
673 asf->packet_timestamp_start = -1;
674 asf->packet_timestamp_end = -1;
675 ffio_init_context(&asf->pb, asf->packet_buf, s->packet_size, 1,
686 ASFContext *asf = s->priv_data;
688 asf->is_streamed = 1;
697 ASFContext *asf = s->priv_data;
705 if (asf->multi_payloads_present)
713 if (asf->multi_payloads_present)
733 if (asf->multi_payloads_present)
743 ASFContext *asf = s->priv_data;
746 av_assert0(asf->packet_timestamp_end >= asf->packet_timestamp_start);
748 if (asf->is_streamed)
752 asf->packet_timestamp_start,
753 asf->packet_timestamp_end - asf->packet_timestamp_start,
754 asf->packet_nb_payloads,
755 asf->packet_size_left);
757 packet_filled_size = PACKET_SIZE - asf->packet_size_left;
758 av_assert0(packet_hdr_size <= asf->packet_size_left);
759 memset(asf->packet_buf + packet_filled_size, 0, asf->packet_size_left);
761 avio_write(s->pb, asf->packet_buf, s->packet_size - packet_hdr_size);
764 asf->nb_packets++;
765 asf->packet_nb_payloads = 0;
766 asf->packet_timestamp_start = -1;
767 asf->packet_timestamp_end = -1;
768 ffio_init_context(&asf->pb, asf->packet_buf, s->packet_size, 1,
776 ASFContext *asf = s->priv_data;
777 AVIOContext *pb = &asf->pb;
798 if (asf->multi_payloads_present) {
807 ASFContext *asf = s->priv_data;
813 if (asf->packet_timestamp_start == -1) {
814 asf->multi_payloads_present = (payload_len < MULTI_PAYLOAD_CONSTANT);
816 asf->packet_size_left = PACKET_SIZE;
817 if (asf->multi_payloads_present) {
822 asf->packet_timestamp_start = timestamp;
825 frag_len1 = asf->packet_size_left -
843 avio_write(&asf->pb, buf, payload_len);
845 if (asf->multi_payloads_present)
846 asf->packet_size_left -= (payload_len + PAYLOAD_HEADER_SIZE_MULTIPLE_PAYLOADS);
848 asf->packet_size_left -= (payload_len + PAYLOAD_HEADER_SIZE_SINGLE_PAYLOAD);
849 asf->packet_timestamp_end = timestamp;
851 asf->packet_nb_payloads++;
858 if (!asf->multi_payloads_present)
860 else if (asf->packet_size_left <= (PAYLOAD_HEADER_SIZE_MULTIPLE_PAYLOADS + PACKET_HEADER_MIN_SIZE + 1))
862 else if (asf->packet_nb_payloads == ASF_PAYLOADS_PER_PACKET)
872 ASFContext *asf = s->priv_data;
874 if (start_sec > asf->next_start_sec) {
877 if (!asf->next_start_sec) {
878 asf->next_packet_number = packet_number;
879 asf->next_packet_count = packet_count;
880 asf->next_packet_offset = packet_offset;
883 if (start_sec > asf->nb_index_memory_alloc) {
885 asf->nb_index_memory_alloc = (start_sec + ASF_INDEX_BLOCK) & ~(ASF_INDEX_BLOCK - 1);
886 if ((err = av_reallocp_array(&asf->index_ptr,
887 asf->nb_index_memory_alloc,
888 sizeof(*asf->index_ptr))) < 0) {
889 asf->nb_index_memory_alloc = 0;
893 for (i = asf->next_start_sec; i < start_sec; i++) {
894 asf->index_ptr[i].packet_number = asf->next_packet_number;
895 asf->index_ptr[i].packet_count = asf->next_packet_count;
896 asf->index_ptr[i].send_time = asf->next_start_sec * INT64_C(10000000);
897 asf->index_ptr[i].offset = asf->next_packet_offset;
901 asf->maximum_packet = FFMAX(asf->maximum_packet, packet_count);
902 asf->next_packet_number = packet_number;
903 asf->next_packet_count = packet_count;
904 asf->next_packet_offset = packet_offset;
905 asf->next_start_sec = start_sec;
912 ASFContext *asf = s->priv_data;
924 stream = &asf->streams[pkt->stream_index];
932 asf->duration = FFMAX(asf->duration, pts + pkt->duration * 10000);
934 packet_number = asf->nb_packets;
942 if ((!asf->is_streamed) && (flags & AV_PKT_FLAG_KEY)) {
943 uint16_t packet_count = asf->nb_packets - packet_number;
948 asf->end_sec = start_sec;
975 ASFContext *asf = s->priv_data;
980 if (asf->pb.buf_ptr > asf->pb.buffer)
985 if (!asf->is_streamed && asf->next_start_sec) {
986 if ((ret = update_index(s, asf->end_sec + 1, 0, 0, 0)) < 0)
988 asf_write_index(s, asf->index_ptr, asf->maximum_packet, asf->next_start_sec);
992 if (asf->is_streamed || !s->pb->seekable) {
998 asf_write_header1(s, file_size, data_size - asf->data_offset);
1001 av_freep(&asf->index_ptr);
1007 .name = "asf",
1009 .mime_type = "video/x-ms-asf",
1010 .extensions = "asf,wmv,wma",
1028 .mime_type = "video/x-ms-asf",
1029 .extensions = "asf,wmv,wma",