summaryrefslogtreecommitdiffstats
path: root/video/decode/dec_video.h
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-11-25 23:08:29 +0100
committerwm4 <wm4@nowhere>2013-11-25 23:08:29 +0100
commit4205bbf243227bf151f2439ecb7772c41ecbfd12 (patch)
tree141fa5f769a6bd5eb5a3b5095ba9c36e85666cd9 /video/decode/dec_video.h
parent51bce52d57467cffba040cf926708befb3d6633b (diff)
downloadmpv-4205bbf243227bf151f2439ecb7772c41ecbfd12.tar.bz2
mpv-4205bbf243227bf151f2439ecb7772c41ecbfd12.tar.xz
video: pass PTS as part of demux_packet/AVPacket and mp_image/AVFrame
Instead of passing the PTS as separate field, pass it as part of the usual data structures. Basically, this removes strange artifacts from the API. (It's not finished, though: the final decoded PTS goes through strange paths, and filter_video() finally overwrites the decoded mp_image's pts field with it.) We also stop using libavcodec's reordered_opaque fields, and use AVPacket.pts and AVFrame.pkt_pts. This is slightly unorthodox, because these pts fields are not "really" opaque anymore, yet we treat them as such. But the end result should be the same, and reordered_opaque is marked as partially deprecated (it's not clear whether it's really deprecated).
Diffstat (limited to 'video/decode/dec_video.h')
-rw-r--r--video/decode/dec_video.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/video/decode/dec_video.h b/video/decode/dec_video.h
index 9f01d32947..7d8928eb58 100644
--- a/video/decode/dec_video.h
+++ b/video/decode/dec_video.h
@@ -42,8 +42,6 @@ struct dec_video {
void *priv;
- float next_frame_time;
- double last_pts;
double buffered_pts[32];
int num_buffered_pts;
double codec_reordered_pts;
@@ -59,6 +57,10 @@ struct dec_video {
int i_bps; // == bitrate (compressed bytes/sec)
float fps; // FPS from demuxer or from user override
float initial_decoder_aspect;
+
+ // State used only by player/video.c
+ float next_frame_time;
+ double last_pts;
};
struct mp_decoder_list *video_decoder_list(void);
@@ -68,7 +70,7 @@ void video_uninit(struct dec_video *d_video);
struct demux_packet;
void *video_decode(struct dec_video *d_video, struct demux_packet *packet,
- int drop_frame, double pts);
+ int drop_frame);
int video_get_colors(struct dec_video *d_video, const char *item, int *value);
int video_set_colors(struct dec_video *d_video, const char *item, int value);