Update API for video display

* pass video frame as an argument (not a fake one)
* currently all restriction apply as before (see video_display.h)
This commit is contained in:
Martin Pulec
2012-08-23 15:55:01 +02:00
parent e753d45a14
commit 775e412cae
22 changed files with 29 additions and 23 deletions

View File

@@ -327,7 +327,7 @@ AC_SUBST(common_lib_abi_version)
AC_SUBST(COMMON_LIB_TARGET, "lib/ultragrid/ug_lib_common.so.$common_lib_abi_version")
LIB_TARGETS="$LIB_TARGETS $COMMON_LIB_TARGET"
video_display_abi_version=2
video_display_abi_version=3
video_capture_abi_version=2
video_compress_abi_version=1
video_decompress_abi_version=2

View File

@@ -647,7 +647,7 @@ static void *receiver_thread(void *arg)
gettimeofday(&uv->curr_time, NULL);
fr = 1;
display_put_frame(uv->display_device,
(char *) cp->video_decoder_state->frame_buffer);
cp->video_decoder_state->frame_buffer);
cp->video_decoder_state->frame_buffer =
display_get_frame(uv->display_device);
}

View File

@@ -89,7 +89,7 @@ typedef struct {
const char *func_finish_str;
struct video_frame *(*func_getf) (void *state);
const char *func_getf_str;
int (*func_putf) (void *state, char *frame);
int (*func_putf) (void *state, struct video_frame *frame);
const char *func_putf_str;
int (*func_reconfigure)(void *state, struct video_desc desc);
const char *func_reconfigure_str;
@@ -461,7 +461,7 @@ struct video_frame *display_get_frame(struct display *d)
return display_device_table[d->index].func_getf(d->state);
}
void display_put_frame(struct display *d, char *frame)
void display_put_frame(struct display *d, struct video_frame *frame)
{
perf_record(UVP_PUTFRAME, frame);
assert(d->magic == DISPLAY_MAGIC);

View File

@@ -131,13 +131,19 @@ void display_finish(struct display *d);
/**
* Returns video frame which will be written to.
* Currently there is a restriction on number of concurrently acquired frames - only one frame
* can be hold at the moment.
*
* @return video frame
*/
struct video_frame *display_get_frame(struct display *d);
/* TODO: figure out what with frame parameter, which is no longer used. Leave out? */
/**
* Puts filled video frame.
* Currnetly, it must be the frame previously obtained by display_get_frame. Moreover, every frame
* acquired from video display should be put.
*/
void display_put_frame(struct display *d, char *frame);
void display_put_frame(struct display *d, struct video_frame *frame);
/**
* Tells display to reconfigure according to video description
*/

View File

@@ -236,7 +236,7 @@ struct video_frame *display_aggregate_getf(void *state)
return s->frame;
}
int display_aggregate_putf(void *state, char *frame)
int display_aggregate_putf(void *state, struct video_frame *frame)
{
unsigned int i;
struct display_aggregate_state *s = (struct display_aggregate_state *)state;

View File

@@ -57,7 +57,7 @@ void display_aggregate_run(void *state);
void display_aggregate_finish(void *state);
void display_aggregate_done(void *state);
struct video_frame *display_aggregate_getf(void *state);
int display_aggregate_putf(void *state, char *frame);
int display_aggregate_putf(void *state, struct video_frame *frame);
int display_aggregate_reconfigure(void *state, struct video_desc desc);
int display_aggregate_get_property(void *state, int property, void *val, size_t *len);

View File

@@ -409,7 +409,7 @@ static void update_timecode(DeckLinkTimecode *tc, double fps)
tc->SetBCD(bcd);
}
int display_decklink_putf(void *state, char *frame)
int display_decklink_putf(void *state, struct video_frame *frame)
{
int tmp;
struct state_decklink *s = (struct state_decklink *)state;

View File

@@ -55,7 +55,7 @@ void display_decklink_run(void *state);
void display_decklink_finish(void *state);
void display_decklink_done(void *state);
struct video_frame *display_decklink_getf(void *state);
int display_decklink_putf(void *state, char *frame);
int display_decklink_putf(void *state, struct video_frame *frame);
int display_decklink_reconfigure(void *state,
struct video_desc desc);
int display_decklink_get_property(void *state, int property, void *val, size_t *len);

View File

@@ -165,7 +165,7 @@ display_deltacast_getf(void *state)
return s->frame;
}
int display_deltacast_putf(void *state, char *frame)
int display_deltacast_putf(void *state, struct video_frame *frame)
{
int tmp;
struct state_deltacast *s = (struct state_deltacast *)state;

View File

@@ -68,7 +68,7 @@ void display_deltacast_run(void *state);
void display_deltacast_finish(void *state);
void display_deltacast_done(void *state);
struct video_frame *display_deltacast_getf(void *state);
int display_deltacast_putf(void *state, char *frame);
int display_deltacast_putf(void *state, struct video_frame *frame);
int display_deltacast_reconfigure(void *state,
struct video_desc desc);
int display_deltacast_get_property(void *state, int property, void *val, size_t *len);

View File

@@ -493,7 +493,7 @@ display_dvs_getf(void *state)
return s->frame;
}
int display_dvs_putf(void *state, char *frame)
int display_dvs_putf(void *state, struct video_frame *frame)
{
struct state_hdsp *s = (struct state_hdsp *)state;
struct timeval t;

View File

@@ -63,7 +63,7 @@ void display_dvs_run(void *state);
void display_dvs_finish(void *state);
void display_dvs_done(void *state);
struct video_frame *display_dvs_getf(void *state);
int display_dvs_putf(void *state, char *frame);
int display_dvs_putf(void *state, struct video_frame *frame);
int display_dvs_reconfigure(void *state,
struct video_desc desc);
int display_dvs_get_property(void *state, int property, void *val, size_t *len);

View File

@@ -1100,7 +1100,7 @@ struct video_frame * display_gl_getf(void *state)
return s->frame;
}
int display_gl_putf(void *state, char *frame)
int display_gl_putf(void *state, struct video_frame *frame)
{
struct state_gl *s = (struct state_gl *) state;

View File

@@ -58,7 +58,7 @@ void display_gl_run(void *state);
void display_gl_done(void *state);
void display_gl_finish(void *state);
struct video_frame *display_gl_getf(void *state);
int display_gl_putf(void *state, char *frame);
int display_gl_putf(void *state, struct video_frame *frame);
int display_gl_reconfigure(void *state, struct video_desc desc);
int display_gl_get_property(void *state, int property, void *val, size_t *len);

View File

@@ -93,7 +93,7 @@ struct video_frame *display_null_getf(void *state)
return NULL;
}
int display_null_putf(void *state, char *frame)
int display_null_putf(void *state, struct video_frame *frame)
{
struct state_null *s = (struct state_null *)state;
assert(s->magic == MAGIC_NULL);

View File

@@ -54,7 +54,7 @@ void display_null_run(void *state);
void display_null_finish(void *state);
void display_null_done(void *state);
struct video_frame *display_null_getf(void *state);
int display_null_putf(void *state, char *frame);
int display_null_putf(void *state, struct video_frame *frame);
int display_null_reconfigure(void *state, struct video_desc desc);
int display_null_get_property(void *state, int property, void *val, size_t *len);

View File

@@ -385,7 +385,7 @@ display_quicktime_getf(void *state)
return &s->frame[0];
}
int display_quicktime_putf(void *state, char *frame)
int display_quicktime_putf(void *state, struct video_frame *frame)
{
struct state_quicktime *s = (struct state_quicktime *)state;

View File

@@ -68,7 +68,7 @@ void display_quicktime_run(void *state);
void display_quicktime_finish(void *state);
void display_quicktime_done(void *state);
struct video_frame *display_quicktime_getf(void *state);
int display_quicktime_putf(void *state, char *frame);
int display_quicktime_putf(void *state, struct video_frame *frame);
int display_quicktime_reconfigure(void *state, struct video_desc desc);
int display_quicktime_get_property(void *state, int property, void *val, size_t *len);

View File

@@ -269,7 +269,7 @@ struct video_frame *display_sage_getf(void *state)
return s->frame;
}
int display_sage_putf(void *state, char *frame)
int display_sage_putf(void *state, struct video_frame *frame)
{
int tmp;
struct state_sage *s = (struct state_sage *)state;

View File

@@ -58,7 +58,7 @@ void display_sage_run(void *state);
void display_sage_done(void *state);
void display_sage_finish(void *state);
struct video_frame *display_sage_getf(void *state);
int display_sage_putf(void *state, char *frame);
int display_sage_putf(void *state, struct video_frame *frame);
int display_sage_reconfigure(void *state, struct video_desc desc);
int display_sage_get_property(void *state, int property, void *val, size_t *len);

View File

@@ -706,7 +706,7 @@ struct video_frame *display_sdl_getf(void *state)
return s->frame;
}
int display_sdl_putf(void *state, char *frame)
int display_sdl_putf(void *state, struct video_frame *frame)
{
int tmp;
struct state_sdl *s = (struct state_sdl *)state;

View File

@@ -57,7 +57,7 @@ void display_sdl_run (void *state);
void display_sdl_finish(void *state);
void display_sdl_done (void *state);
struct video_frame * display_sdl_getf (void *state);
int display_sdl_putf (void *state, char *frame);
int display_sdl_putf (void *state, struct video_frame *frame);
int display_sdl_reconfigure(void *state, struct video_desc desc);
int display_sdl_get_property(void *state, int property, void *val, size_t *len);