diff options
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r-- | libmpdemux/demuxer.c | 38 |
1 files changed, 7 insertions, 31 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index 056822e1ab..6607f2399f 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -43,8 +43,6 @@ #include "libmpcodecs/dec_teletext.h" #include "libmpcodecs/vd_ffmpeg.h" -#include "ass_mp.h" - #ifdef CONFIG_FFMPEG #include "libavcodec/avcodec.h" #if MP_INPUT_BUFFER_PADDING_SIZE < FF_INPUT_BUFFER_PADDING_SIZE @@ -188,7 +186,7 @@ struct demux_packet *new_demux_packet(size_t len) dp->len = len; dp->next = NULL; dp->pts = MP_NOPTS_VALUE; - dp->endpts = MP_NOPTS_VALUE; + dp->duration = -1; dp->stream_pts = MP_NOPTS_VALUE; dp->pos = 0; dp->flags = 0; @@ -351,10 +349,6 @@ sh_sub_t *new_sh_sub_sid(demuxer_t *demuxer, int id, int sid) sh->opts = demuxer->opts; mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SUBTITLE_ID=%d\n", sid); } - if (sid == demuxer->opts->sub_id) { - demuxer->sub->id = id; - demuxer->sub->sh = demuxer->s_streams[id]; - } return demuxer->s_streams[id]; } @@ -373,10 +367,6 @@ static void free_sh_sub(sh_sub_t *sh) { mp_msg(MSGT_DEMUXER, MSGL_DBG2, "DEMUXER: freeing sh_sub at %p\n", sh); free(sh->extradata); -#ifdef CONFIG_ASS - if (sh->ass_track) - ass_free_track(sh->ass_track); -#endif free(sh->lang); #ifdef CONFIG_FFMPEG clear_parser((sh_common_t *)sh); @@ -1076,20 +1066,6 @@ static struct demuxer *demux_open_stream(struct MPOpts *opts, sh_video->fps, sh_video->i_bps * 0.008f, sh_video->i_bps / 1024.0f); } -#ifdef CONFIG_ASS - if (opts->ass_enabled && ass_library) { - for (int i = 0; i < MAX_S_STREAMS; ++i) { - sh_sub_t *sh = demuxer->s_streams[i]; - if (sh && sh->type == 'a') { - sh->ass_track = ass_new_track(ass_library); - if (sh->ass_track && sh->extradata) - ass_process_codec_private(sh->ass_track, sh->extradata, - sh->extradata_len); - } else if (sh && sh->type != 'v') - sh->ass_track = ass_default_track(ass_library); - } - } -#endif return demuxer; } @@ -1418,9 +1394,9 @@ int demuxer_add_chapter(demuxer_t *demuxer, struct bstr name, talloc_strdup(demuxer->chapters, mp_gtext("unknown")); mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CHAPTER_ID=%d\n", demuxer->num_chapters); - mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CHAPTER_%d_START=%"PRIu64"\n", demuxer->num_chapters, start); + mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CHAPTER_%d_START=%"PRIu64"\n", demuxer->num_chapters, start / 1000000); if (end) - mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CHAPTER_%d_END=%"PRIu64"\n", demuxer->num_chapters, end); + mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CHAPTER_%d_END=%"PRIu64"\n", demuxer->num_chapters, end / 1000000); if (name.start) mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CHAPTER_%d_NAME=%.*s\n", demuxer->num_chapters, BSTR_P(name)); @@ -1473,7 +1449,7 @@ int demuxer_seek_chapter(demuxer_t *demuxer, int chapter, double *seek_pts, if (chapter < 0) chapter = 0; - *seek_pts = demuxer->chapters[chapter].start / 1000.0; + *seek_pts = demuxer->chapters[chapter].start / 1e9; if (chapter_name) *chapter_name = talloc_strdup(NULL, demuxer->chapters[chapter].name); @@ -1490,7 +1466,7 @@ int demuxer_get_current_chapter(demuxer_t *demuxer, double time_now) &chapter) == STREAM_UNSUPPORTED) chapter = -2; } else { - uint64_t now = time_now * 1000 + 0.5; + uint64_t now = time_now * 1e9 + 0.5; for (chapter = demuxer->num_chapters - 1; chapter >= 0; --chapter) { if (demuxer->chapters[chapter].start <= now) break; @@ -1533,8 +1509,8 @@ float demuxer_chapter_time(demuxer_t *demuxer, int chapter, float *end) if (demuxer->num_chapters && demuxer->chapters && chapter >= 0 && chapter < demuxer->num_chapters) { if (end) - *end = demuxer->chapters[chapter].end / 1000.0; - return demuxer->chapters[chapter].start / 1000.0; + *end = demuxer->chapters[chapter].end / 1e9; + return demuxer->chapters[chapter].start / 1e9; } return -1.0; } |