• 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:mkv

710 static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv,
726 // ms precision is the de-facto standard timescale for mkv files
730 mkv->have_attachments = 1;
744 mkv->is_dash ? mkv->dash_track_number : i + 1);
746 mkv->is_dash ? mkv->dash_track_number : i + 1);
752 if (mkv->mode != MODE_WEBM || codec->codec_id != AV_CODEC_ID_WEBVTT) {
766 if (mkv->mode == MODE_WEBM && codec->codec_id == AV_CODEC_ID_WEBVTT) {
783 // look for a codec ID string specific to mkv to use,
795 // mkv->tracks[i].ts_offset = av_rescale_q(codec->delay,
807 if (mkv->mode == MODE_WEBM && !(codec->codec_id == AV_CODEC_ID_VP8 ||
838 // if there is no mkv-specific codec ID, use VFW mode
840 mkv->tracks[i].write_dts = 1;
858 if (mkv_write_stereo_mode(s, pb, st_mode, mkv->mode) < 0)
907 // no mkv-specific ID, use ACM mode
926 if (mkv->mode != MODE_WEBM || codec->codec_id != AV_CODEC_ID_WEBVTT)
936 if (mkv->mode != MODE_WEBM || codec->codec_id != AV_CODEC_ID_WEBVTT) {
949 MatroskaMuxContext *mkv = s->priv_data;
954 ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_TRACKS, avio_tell(pb));
964 ret = mkv_write_track(s, mkv, i, pb, default_stream_exists);
974 MatroskaMuxContext *mkv = s->priv_data;
980 if (!s->nb_chapters || mkv->wrote_chapters)
983 ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_CHAPTERS, avio_tell(pb));
996 put_ebml_uint(pb, MATROSKA_ID_CHAPTERUID, c->id + mkv->chapter_id_offset);
1014 mkv->wrote_chapters = 1;
1051 MatroskaMuxContext *mkv = s->priv_data;
1057 ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_TAGS, avio_tell(s->pb));
1092 MatroskaMuxContext *mkv = s->priv_data;
1119 ret = mkv_write_tag(s, ch->metadata, MATROSKA_ID_TAGTARGETS_CHAPTERUID, ch->id + mkv->chapter_id_offset, &tags);
1130 MatroskaMuxContext *mkv = s->priv_data;
1136 if (!mkv->have_attachments)
1141 ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_ATTACHMENTS, avio_tell(pb));
1209 MatroskaMuxContext *mkv = s->priv_data;
1216 mkv->mode = MODE_WEBM;
1218 mkv->mode = MODE_MATROSKAv2;
1223 if (mkv->mode != MODE_WEBM ||
1246 mkv->tracks = av_mallocz_array(s->nb_streams, sizeof(*mkv->tracks));
1247 if (!mkv->tracks)
1260 mkv->segment = start_ebml_master(pb, MATROSKA_ID_SEGMENT, 0);
1261 mkv->segment_offset = avio_tell(pb);
1268 mkv->main_seekhead = mkv_start_seekhead(pb, mkv->segment_offset, 10);
1269 if (!mkv->main_seekhead)
1272 ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_INFO, avio_tell(pb));
1309 mkv->duration = 0;
1310 mkv->duration_offset = avio_tell(pb);
1319 mkv->chapter_id_offset = FFMAX(mkv->chapter_id_offset, 1LL - s->chapters[i]->id);
1321 if (mkv->mode != MODE_WEBM) {
1336 mkv_write_seekhead(pb, mkv->main_seekhead);
1338 mkv->cues = mkv_start_cues(mkv->segment_offset);
1339 if (mkv->cues == NULL)
1342 if (pb->seekable && mkv->reserve_cues_space) {
1343 mkv->cues_pos = avio_tell(pb);
1344 put_ebml_void(pb, mkv->reserve_cues_space);
1347 av_init_packet(&mkv->cur_audio_pkt);
1348 mkv->cur_audio_pkt.size = 0;
1349 mkv->cluster_pos = -1;
1356 if (mkv->cluster_time_limit < 0)
1357 mkv->cluster_time_limit = 5000;
1358 if (mkv->cluster_size_limit < 0)
1359 mkv->cluster_size_limit = 5 * 1024 * 1024;
1361 if (mkv->cluster_time_limit < 0)
1362 mkv->cluster_time_limit = 1000;
1363 if (mkv->cluster_size_limit < 0)
1364 mkv->cluster_size_limit = 32 * 1024;
1403 MatroskaMuxContext *mkv = s->priv_data;
1434 avio_wb16(pb, pkt->pts - mkv->cluster_pts);
1502 MatroskaMuxContext *mkv = s->priv_data;
1506 int64_t ts = mkv->tracks[pkt->stream_index].write_dts ? pkt->dts : pkt->pts;
1564 avio_w8(pb, 0x80 | (mkv->is_dash ? mkv->dash_track_number : (pkt->stream_index + 1)));
1565 avio_wb16(pb, ts - mkv->cluster_pts);
1633 MatroskaMuxContext *mkv = s->priv_data;
1637 int64_t ts = mkv->tracks[pkt->stream_index].write_dts ? pkt->dts : pkt->pts;
1659 avio_wb16(pb, ts - mkv->cluster_pts);
1671 MatroskaMuxContext *mkv = s->priv_data;
1675 if (!mkv->dyn_bc)
1678 bufsize = avio_close_dyn_buf(mkv->dyn_bc, &dyn_buf);
1681 mkv->dyn_bc = NULL;
1686 MatroskaMuxContext *mkv = s->priv_data;
1692 int64_t ts = mkv->tracks[pkt->stream_index].write_dts ? pkt->dts : pkt->pts;
1695 int dash_tracknum = mkv->is_dash ? mkv->dash_track_number : pkt->stream_index + 1;
1701 ts += mkv->tracks[pkt->stream_index].ts_offset;
1704 if (!mkv->dyn_bc) {
1705 if ((ret = avio_open_dyn_buf(&mkv->dyn_bc)) < 0) {
1710 pb = mkv->dyn_bc;
1713 if (mkv->cluster_pos == -1) {
1714 mkv->cluster_pos = avio_tell(s->pb);
1715 mkv->cluster = start_ebml_master(pb, MATROSKA_ID_CLUSTER, 0);
1717 mkv->cluster_pts = FFMAX(0, ts);
1720 relative_packet_pos = avio_tell(s->pb) - mkv->cluster.pos;
1725 ret = mkv_add_cuepoint(mkv->cues, pkt->stream_index, dash_tracknum, ts, mkv->cluster_pos, relative_packet_pos, -1);
1732 ret = mkv_add_cuepoint(mkv->cues, pkt->stream_index, dash_tracknum, ts, mkv->cluster_pos, relative_packet_pos, duration);
1734 relative_packet_pos = avio_tell(s->pb) - mkv->cluster.pos;
1754 ret = mkv_add_cuepoint(mkv->cues, pkt->stream_index, dash_tracknum, ts,
1755 mkv->cluster_pos, relative_packet_pos, duration);
1760 mkv->duration = FFMAX(mkv->duration, ts + duration);
1766 MatroskaMuxContext *mkv = s->priv_data;
1775 if (mkv->tracks[pkt->stream_index].write_dts)
1776 cluster_time = pkt->dts - mkv->cluster_pts;
1778 cluster_time = pkt->pts - mkv->cluster_pts;
1779 cluster_time += mkv->tracks[pkt->stream_index].ts_offset;
1785 cluster_size = avio_tell(pb) - mkv->cluster_pos;
1787 pb = mkv->dyn_bc;
1791 if (mkv->is_dash && codec_type == AVMEDIA_TYPE_VIDEO) {
1796 } else if (mkv->is_dash && codec_type == AVMEDIA_TYPE_AUDIO &&
1797 cluster_time > mkv->cluster_time_limit) {
1800 } else if (!mkv->is_dash &&
1801 (cluster_size > mkv->cluster_size_limit ||
1802 cluster_time > mkv->cluster_time_limit ||
1810 if (mkv->cluster_pos != -1 && start_new_cluster) {
1815 end_ebml_master(pb, mkv->cluster);
1816 mkv->cluster_pos = -1;
1817 if (mkv->dyn_bc)
1823 if (mkv->cur_audio_pkt.size > 0) {
1825 ret = mkv_write_packet_internal(s, &mkv->cur_audio_pkt,
1826 mkv->is_dash ? start_new_cluster : 0);
1827 av_free_packet(&mkv->cur_audio_pkt);
1838 mkv->cur_audio_pkt = *pkt;
1840 mkv->cur_audio_pkt.buf = av_buffer_ref(pkt->buf);
1841 ret = mkv->cur_audio_pkt.buf ? 0 : AVERROR(ENOMEM);
1843 ret = av_dup_packet(&mkv->cur_audio_pkt);
1844 if (mkv->cur_audio_pkt.side_data_elems > 0) {
1845 ret = av_copy_packet_side_data(&mkv->cur_audio_pkt, &mkv->cur_audio_pkt);
1854 MatroskaMuxContext *mkv = s->priv_data;
1859 pb = mkv->dyn_bc;
1861 if (mkv->cluster_pos != -1) {
1865 end_ebml_master(pb, mkv->cluster);
1866 mkv->cluster_pos = -1;
1867 if (mkv->dyn_bc)
1878 MatroskaMuxContext *mkv = s->priv_data;
1884 if (mkv->cur_audio_pkt.size > 0) {
1885 ret = mkv_write_packet_internal(s, &mkv->cur_audio_pkt, 0);
1886 av_free_packet(&mkv->cur_audio_pkt);
1894 if (mkv->dyn_bc) {
1895 end_ebml_master(mkv->dyn_bc, mkv->cluster);
1897 } else if (mkv->cluster_pos != -1) {
1898 end_ebml_master(pb, mkv->cluster);
1901 if (mkv->mode != MODE_WEBM) {
1908 if (mkv->cues->num_entries) {
1909 if (mkv->reserve_cues_space) {
1913 avio_seek(pb, mkv->cues_pos, SEEK_SET);
1915 cuespos = mkv_write_cues(s, mkv->cues, mkv->tracks, s->nb_streams);
1917 if (cues_end > cuespos + mkv->reserve_cues_space) {
1921 mkv->reserve_cues_space, cues_end - cuespos);
1925 if (cues_end < cuespos + mkv->reserve_cues_space)
1926 put_ebml_void(pb, mkv->reserve_cues_space -
1931 cuespos = mkv_write_cues(s, mkv->cues, mkv->tracks, s->nb_streams);
1934 ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_CUES,
1940 mkv_write_seekhead(pb, mkv->main_seekhead);
1943 av_log(s, AV_LOG_DEBUG, "end duration = %" PRIu64 "\n", mkv->duration);
1945 avio_seek(pb, mkv->duration_offset, SEEK_SET);
1946 put_ebml_float(pb, MATROSKA_ID_DURATION, mkv->duration);
1951 end_ebml_master(pb, mkv->segment);
1952 av_freep(&mkv->tracks);
1953 av_freep(&mkv->cues->entries);
1954 av_freep(&mkv->cues);
1968 // mkv theoretically supports any video/audio through VFW/ACM
2024 .extensions = "mkv",