• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/iserver/libav-0.8.8/libavformat/

Lines Matching defs:mkv

519     MatroskaMuxContext *mkv = s->priv_data;
524 ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_TRACKS, avio_tell(pb));
540 mkv->have_attachments = 1;
563 // look for a codec ID string specific to mkv to use,
573 if (mkv->mode == MODE_WEBM && !(codec->codec_id == CODEC_ID_VP8 ||
596 // if there is no mkv-specific codec ID, use VFW mode
598 mkv->tracks[i].write_dts = 1;
609 switch (mkv->mode) {
637 // no mkv-specific ID, use ACM mode
666 // ms precision is the de-facto standard timescale for mkv files
675 MatroskaMuxContext *mkv = s->priv_data;
684 ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_CHAPTERS, avio_tell(pb));
750 MatroskaMuxContext *mkv = s->priv_data;
756 ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_TAGS, avio_tell(s->pb));
815 MatroskaMuxContext *mkv = s->priv_data;
821 if (!mkv->have_attachments)
826 ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_ATTACHMENTS, avio_tell(pb));
877 MatroskaMuxContext *mkv = s->priv_data;
883 if (!strcmp(s->oformat->name, "webm")) mkv->mode = MODE_WEBM;
884 else mkv->mode = MODE_MATROSKAv2;
886 mkv->tracks = av_mallocz(s->nb_streams * sizeof(*mkv->tracks));
887 if (!mkv->tracks)
900 mkv->segment = start_ebml_master(pb, MATROSKA_ID_SEGMENT, 0);
901 mkv->segment_offset = avio_tell(pb);
908 mkv->main_seekhead = mkv_start_seekhead(pb, mkv->segment_offset, 10);
909 if (!mkv->main_seekhead)
912 ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_INFO, avio_tell(pb));
934 mkv->duration = 0;
935 mkv->duration_offset = avio_tell(pb);
942 if (mkv->mode != MODE_WEBM) {
954 mkv_write_seekhead(pb, mkv->main_seekhead);
956 mkv->cues = mkv_start_cues(mkv->segment_offset);
957 if (mkv->cues == NULL)
960 av_init_packet(&mkv->cur_audio_pkt);
961 mkv->cur_audio_pkt.size = 0;
962 mkv->audio_buffer_size = 0;
994 MatroskaMuxContext *mkv = s->priv_data;
1024 avio_wb16(pb, pkt->pts - mkv->cluster_pts);
1040 MatroskaMuxContext *mkv = s->priv_data;
1044 int64_t ts = mkv->tracks[pkt->stream_index].write_dts ? pkt->dts : pkt->pts;
1057 avio_wb16(pb, ts - mkv->cluster_pts);
1101 MatroskaMuxContext *mkv = s->priv_data;
1105 if (!mkv->dyn_bc)
1108 bufsize = avio_close_dyn_buf(mkv->dyn_bc, &dyn_buf);
1111 mkv->dyn_bc = NULL;
1116 MatroskaMuxContext *mkv = s->priv_data;
1122 int64_t ts = mkv->tracks[pkt->stream_index].write_dts ? pkt->dts : pkt->pts;
1130 if (!mkv->dyn_bc)
1131 avio_open_dyn_buf(&mkv->dyn_bc);
1132 pb = mkv->dyn_bc;
1135 if (!mkv->cluster_pos) {
1136 mkv->cluster_pos = avio_tell(s->pb);
1137 mkv->cluster = start_ebml_master(pb, MATROSKA_ID_CLUSTER, 0);
1139 mkv->cluster_pts = FFMAX(0, ts);
1157 ret = mkv_add_cuepoint(mkv->cues, pkt->stream_index, ts, mkv->cluster_pos);
1161 mkv->duration = FFMAX(mkv->duration, ts + duration);
1165 static int mkv_copy_packet(MatroskaMuxContext *mkv, const AVPacket *pkt)
1167 uint8_t *data = mkv->cur_audio_pkt.data;
1168 mkv->cur_audio_pkt = *pkt;
1169 mkv->cur_audio_pkt.data = av_fast_realloc(data, &mkv->audio_buffer_size, pkt->size);
1170 if (!mkv->cur_audio_pkt.data)
1173 memcpy(mkv->cur_audio_pkt.data, pkt->data, pkt->size);
1174 mkv->cur_audio_pkt.size = pkt->size;
1180 MatroskaMuxContext *mkv = s->priv_data;
1181 AVIOContext *pb = s->pb->seekable ? s->pb : mkv->dyn_bc;
1184 int64_t ts = mkv->tracks[pkt->stream_index].write_dts ? pkt->dts : pkt->pts;
1185 int cluster_size = avio_tell(pb) - (s->pb->seekable ? mkv->cluster_pos : 0);
1189 if (mkv->cluster_pos &&
1190 ((!s->pb->seekable && (cluster_size > 32*1024 || ts > mkv->cluster_pts + 1000))
1191 || cluster_size > 5*1024*1024 || ts > mkv->cluster_pts + 5000
1195 end_ebml_master(pb, mkv->cluster);
1196 mkv->cluster_pos = 0;
1197 if (mkv->dyn_bc)
1202 if (mkv->cur_audio_pkt.size > 0) {
1203 ret = mkv_write_packet_internal(s, &mkv->cur_audio_pkt);
1204 mkv->cur_audio_pkt.size = 0;
1214 ret = mkv_copy_packet(mkv, pkt);
1222 MatroskaMuxContext *mkv = s->priv_data;
1228 if (mkv->cur_audio_pkt.size > 0) {
1229 ret = mkv_write_packet_internal(s, &mkv->cur_audio_pkt);
1230 mkv->cur_audio_pkt.size = 0;
1237 if (mkv->dyn_bc) {
1238 end_ebml_master(mkv->dyn_bc, mkv->cluster);
1240 } else if (mkv->cluster_pos) {
1241 end_ebml_master(pb, mkv->cluster);
1245 if (mkv->cues->num_entries) {
1246 cuespos = mkv_write_cues(pb, mkv->cues, s->nb_streams);
1248 ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_CUES, cuespos);
1252 mkv_write_seekhead(pb, mkv->main_seekhead);
1255 av_log(s, AV_LOG_DEBUG, "end duration = %" PRIu64 "\n", mkv->duration);
1257 avio_seek(pb, mkv->duration_offset, SEEK_SET);
1258 put_ebml_float(pb, MATROSKA_ID_DURATION, mkv->duration);
1263 end_ebml_master(pb, mkv->segment);
1264 av_free(mkv->tracks);
1265 av_freep(&mkv->cues->entries);
1266 av_freep(&mkv->cues);
1267 av_destruct_packet(&mkv->cur_audio_pkt);
1279 if (std_compliance < FF_COMPLIANCE_NORMAL) { // mkv theoretically supports any
1293 .extensions = "mkv",