diff options
Diffstat (limited to 'demux')
-rw-r--r-- | demux/demux_lavf.c | 2 | ||||
-rw-r--r-- | demux/demux_mf.c | 1 | ||||
-rw-r--r-- | demux/demux_raw.c | 4 | ||||
-rw-r--r-- | demux/stheader.h | 4 |
4 files changed, 11 insertions, 0 deletions
diff --git a/demux/demux_lavf.c b/demux/demux_lavf.c index ef0a8583d5..4b236ee2be 100644 --- a/demux/demux_lavf.c +++ b/demux/demux_lavf.c @@ -670,6 +670,8 @@ static void handle_new_stream(demuxer_t *demuxer, int i) if (sh->codec->lav_headers) mp_copy_lav_codec_headers(sh->codec->lav_headers, codec); #endif + sh->codec->native_tb_num = st->time_base.num; + sh->codec->native_tb_den = st->time_base.den; if (st->disposition & AV_DISPOSITION_DEFAULT) sh->default_track = true; diff --git a/demux/demux_mf.c b/demux/demux_mf.c index c0b159e4ea..20b948630c 100644 --- a/demux/demux_mf.c +++ b/demux/demux_mf.c @@ -321,6 +321,7 @@ static int demux_open_mf(demuxer_t *demuxer, enum demux_check check) c->disp_w = 0; c->disp_h = 0; c->fps = demuxer->opts->mf_fps; + c->reliable_fps = true; demux_add_sh_stream(demuxer, sh); diff --git a/demux/demux_raw.c b/demux/demux_raw.c index bd8e11306d..51378e7031 100644 --- a/demux/demux_raw.c +++ b/demux/demux_raw.c @@ -145,6 +145,9 @@ static int demux_rawaudio_open(demuxer_t *demuxer, enum demux_check check) c->force_channels = true; c->samplerate = opts->samplerate; + c->native_tb_num = 1; + c->native_tb_den = c->samplerate; + int f = opts->aformat; // See PCM(): sign float bits endian mp_set_pcm_codec(sh->codec, f & 1, f & 2, f >> 3, f & 4); @@ -233,6 +236,7 @@ static int demux_rawvideo_open(demuxer_t *demuxer, enum demux_check check) c->codec = decoder; c->codec_tag = imgfmt; c->fps = opts->fps; + c->reliable_fps = true; c->disp_w = width; c->disp_h = height; demux_add_sh_stream(demuxer, sh); diff --git a/demux/stheader.h b/demux/stheader.h index f9d564c230..78e86a47ee 100644 --- a/demux/stheader.h +++ b/demux/stheader.h @@ -74,6 +74,9 @@ struct mp_codec_params { struct AVCodecContext *lav_headers; struct AVCodecParameters *lav_codecpar; + // Timestamp granularity for converting double<->rational timestamps. + int native_tb_num, native_tb_den; + // STREAM_AUDIO int samplerate; struct mp_chmap channels; @@ -85,6 +88,7 @@ struct mp_codec_params { // STREAM_VIDEO bool avi_dts; // use DTS timing; first frame and DTS is 0 float fps; // frames per second (set only if constant fps) + bool reliable_fps; // the fps field is definitely not broken int par_w, par_h; // pixel aspect ratio (0 if unknown/square) int disp_w, disp_h; // display size int rotate; // intended display rotation, in degrees, [0, 359] |