summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2016-02-01 21:32:01 +0100
committerwm4 <wm4@nowhere>2016-02-01 22:03:04 +0100
commitab318aeea84f51fa0adcfb09a8a43abc67dae1cd (patch)
tree1c734ae196b8148f35cb65d30596339cadf8e575 /video
parent07d8a0e142a6f97c39abbf85acbe4adc90c360b1 (diff)
downloadmpv-ab318aeea84f51fa0adcfb09a8a43abc67dae1cd.tar.bz2
mpv-ab318aeea84f51fa0adcfb09a8a43abc67dae1cd.tar.xz
audio/video: merge decoder return values
Will be helpful for the coming filter support. I planned on merging audio/video decoding, but this will have to wait a bit longer, so only remove the duplicate status codes.
Diffstat (limited to 'video')
-rw-r--r--video/decode/dec_video.c34
-rw-r--r--video/decode/dec_video.h7
2 files changed, 18 insertions, 23 deletions
diff --git a/video/decode/dec_video.c b/video/decode/dec_video.c
index 2bda6d1533..b278cdfe82 100644
--- a/video/decode/dec_video.c
+++ b/video/decode/dec_video.c
@@ -67,7 +67,7 @@ void video_reset(struct dec_video *d_video)
d_video->codec_dts = MP_NOPTS_VALUE;
d_video->last_format = d_video->fixed_format = (struct mp_image_params){0};
d_video->dropped_frames = 0;
- d_video->current_state = VIDEO_SKIP;
+ d_video->current_state = DATA_AGAIN;
mp_image_unrefp(&d_video->current_mpi);
}
@@ -382,24 +382,24 @@ void video_work(struct dec_video *d_video)
return;
if (d_video->header->attached_picture) {
- if (d_video->current_state == VIDEO_SKIP && !d_video->cover_art_mpi) {
+ if (d_video->current_state == DATA_AGAIN && !d_video->cover_art_mpi) {
d_video->cover_art_mpi =
decode_packet(d_video, d_video->header->attached_picture, 0);
// Might need flush.
if (!d_video->cover_art_mpi)
d_video->cover_art_mpi = decode_packet(d_video, NULL, 0);
- d_video->current_state = VIDEO_OK;
+ d_video->current_state = DATA_OK;
}
- if (d_video->current_state == VIDEO_OK)
+ if (d_video->current_state == DATA_OK)
d_video->current_mpi = mp_image_new_ref(d_video->cover_art_mpi);
- // (VIDEO_OK is returned the first time, when current_mpi is sill set)
- d_video->current_state = VIDEO_EOF;
+ // (DATA_OK is returned the first time, when current_mpi is sill set)
+ d_video->current_state = DATA_EOF;
return;
}
struct demux_packet *pkt;
if (demux_read_packet_async(d_video->header, &pkt) == 0) {
- d_video->current_state = VIDEO_WAIT;
+ d_video->current_state = DATA_WAIT;
return;
}
@@ -414,31 +414,31 @@ void video_work(struct dec_video *d_video)
bool had_packet = !!pkt;
talloc_free(pkt);
- d_video->current_state = VIDEO_OK;
+ d_video->current_state = DATA_OK;
if (!d_video->current_mpi) {
- d_video->current_state = VIDEO_EOF;
+ d_video->current_state = DATA_EOF;
if (had_packet) {
if (framedrop_type == 1)
d_video->dropped_frames += 1;
- d_video->current_state = VIDEO_SKIP;
+ d_video->current_state = DATA_AGAIN;
}
}
}
// Fetch an image decoded with video_work(). Returns one of:
-// VIDEO_OK: *out_mpi is set to a new image
-// VIDEO_WAIT: waiting for demuxer; will receive a wakeup signal
-// VIDEO_EOF: end of file, no more frames to be expected
-// VIDEO_SKIP: dropped frame or something similar
+// DATA_OK: *out_mpi is set to a new image
+// DATA_WAIT: waiting for demuxer; will receive a wakeup signal
+// DATA_EOF: end of file, no more frames to be expected
+// DATA_AGAIN: dropped frame or something similar
int video_get_frame(struct dec_video *d_video, struct mp_image **out_mpi)
{
*out_mpi = NULL;
if (d_video->current_mpi) {
*out_mpi = d_video->current_mpi;
d_video->current_mpi = NULL;
- return VIDEO_OK;
+ return DATA_OK;
}
- if (d_video->current_state == VIDEO_OK)
- return VIDEO_SKIP;
+ if (d_video->current_state == DATA_OK)
+ return DATA_AGAIN;
return d_video->current_state;
}
diff --git a/video/decode/dec_video.h b/video/decode/dec_video.h
index 9e9f2d54c2..021c0be911 100644
--- a/video/decode/dec_video.h
+++ b/video/decode/dec_video.h
@@ -84,16 +84,11 @@ bool video_init_best_codec(struct dec_video *d_video, char* video_decoders);
void video_uninit(struct dec_video *d_video);
void video_work(struct dec_video *d_video);
+int video_get_frame(struct dec_video *d_video, struct mp_image **out_mpi);
void video_set_framedrop(struct dec_video *d_video, bool enabled);
void video_set_start(struct dec_video *d_video, double start_pts);
-#define VIDEO_OK 1
-#define VIDEO_WAIT 0
-#define VIDEO_EOF -1
-#define VIDEO_SKIP -2
-int video_get_frame(struct dec_video *d_video, struct mp_image **out_mpi);
-
int video_vd_control(struct dec_video *d_video, int cmd, void *arg);
void video_reset(struct dec_video *d_video);
void video_reset_aspect(struct dec_video *d_video);