diff options
| author | phintuka <phintuka> | 2011-03-07 12:36:39 +0000 |
|---|---|---|
| committer | phintuka <phintuka> | 2011-03-07 12:36:39 +0000 |
| commit | b468aa1644ee9d4d0b7154a3f47d8b928cd334e2 (patch) | |
| tree | 875bee3e742bf1c761119a83920fd4f9d53026f9 | |
| parent | 1541a784e2815ae378607e656adc219b71a04f2e (diff) | |
| download | xineliboutput-b468aa1644ee9d4d0b7154a3f47d8b928cd334e2.tar.gz xineliboutput-b468aa1644ee9d4d0b7154a3f47d8b928cd334e2.tar.bz2 | |
Added uncompressed LUT8 overlay support
| -rw-r--r-- | xine/osd_manager.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/xine/osd_manager.c b/xine/osd_manager.c index c2e5dc56..d4e2d615 100644 --- a/xine/osd_manager.c +++ b/xine/osd_manager.c @@ -4,7 +4,7 @@ * See the main source file 'xineliboutput.c' for copyright information and * how to reach the author. * - * $Id: osd_manager.c,v 1.22 2010-05-30 20:31:18 phintuka Exp $ + * $Id: osd_manager.c,v 1.23 2011-03-07 12:36:39 phintuka Exp $ * */ @@ -522,6 +522,25 @@ static int exec_osd_set_rle(osd_manager_impl_t *this, osd_command_t *cmd) return CONTROL_OK; } +static int exec_osd_set_lut8(osd_manager_impl_t *this, osd_command_t *cmd) +{ + osd_command_t cmdrle; + memcpy(&cmdrle, cmd, sizeof(osd_command_t)); + if (cmd->data) { + cmdrle.num_rle = rle_compress(&cmdrle.data, cmdrle.raw_data, cmdrle.w, cmdrle.h); + cmdrle.datalen = 4 * cmdrle.num_rle; + cmdrle.cmd = OSD_Set_RLE; + } + + return exec_osd_set_rle(this, &cmdrle); +} + +static int exec_osd_set_argb(osd_manager_impl_t *this, osd_command_t *cmd) +{ + LOGMSG("OSD_Set_ARGB not implemented"); + return CONTROL_PARAM_ERROR; +} + /* * exec_osd_set_palette() * @@ -613,6 +632,8 @@ static int exec_osd_command_internal(osd_manager_impl_t *this, struct osd_comman case OSD_Move: return exec_osd_move(this, cmd); case OSD_Flush: return exec_osd_flush(this, cmd); case OSD_Set_RLE: return exec_osd_set_rle(this, cmd); + case OSD_Set_LUT8: return exec_osd_set_lut8(this, cmd); + case OSD_Set_ARGB: return exec_osd_set_argb(this, cmd); case OSD_Close: return exec_osd_close(this, cmd); case OSD_VideoWindow:return exec_osd_video_window(this, cmd); case OSD_Commit: @@ -623,7 +644,7 @@ static int exec_osd_command_internal(osd_manager_impl_t *this, struct osd_comman /* TODO */ LOGMSG("OSD_Set_YUV not implemented !"); return CONTROL_PARAM_ERROR; - default:; + default: LOGMSG("Unknown OSD command %d", cmd->cmd); return CONTROL_PARAM_ERROR; } |
