-rw-r--r-- | noncore/multimedia/opieplayer2/nullvideo.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/noncore/multimedia/opieplayer2/nullvideo.c b/noncore/multimedia/opieplayer2/nullvideo.c index 90f62f2..378bbd4 100644 --- a/noncore/multimedia/opieplayer2/nullvideo.c +++ b/noncore/multimedia/opieplayer2/nullvideo.c | |||
@@ -191,25 +191,26 @@ static vo_frame_t* null_alloc_frame( vo_driver_t* self ){ | |||
191 | frame->frame.dispose = null_frame_dispose; | 191 | frame->frame.dispose = null_frame_dispose; |
192 | 192 | ||
193 | /* | 193 | /* |
194 | * colorspace converter for this frame | 194 | * colorspace converter for this frame |
195 | */ | 195 | */ |
196 | frame->yuv2rgb = this->yuv2rgb_factory->create_converter (this->yuv2rgb_factory); | 196 | frame->yuv2rgb = this->yuv2rgb_factory->create_converter (this->yuv2rgb_factory); |
197 | 197 | ||
198 | return (vo_frame_t*) frame; | 198 | return (vo_frame_t*) frame; |
199 | } | 199 | } |
200 | 200 | ||
201 | static void null_update_frame_format( vo_driver_t* self, vo_frame_t* img, | 201 | static void null_update_frame_format( vo_driver_t* self, vo_frame_t* img, |
202 | uint32_t width, uint32_t height, | 202 | uint32_t width, uint32_t height, |
203 | double ratio_code, int format, int flags ){ | 203 | double ratio_code, int format, |
204 | int flags ){ | ||
204 | null_driver_t* this = (null_driver_t*) self; | 205 | null_driver_t* this = (null_driver_t*) self; |
205 | opie_frame_t* frame = (opie_frame_t*)img; | 206 | opie_frame_t* frame = (opie_frame_t*)img; |
206 | /* not needed now */ | 207 | /* not needed now */ |
207 | 208 | ||
208 | #ifdef LOG | 209 | #ifdef LOG |
209 | fprintf (stderr, "nullvideo: update_frame_format\n"); | 210 | fprintf (stderr, "nullvideo: update_frame_format\n"); |
210 | #endif | 211 | #endif |
211 | 212 | ||
212 | flags &= VO_BOTH_FIELDS; | 213 | flags &= VO_BOTH_FIELDS; |
213 | 214 | ||
214 | /* find out if we need to adapt this frame */ | 215 | /* find out if we need to adapt this frame */ |
215 | 216 | ||
@@ -360,40 +361,42 @@ static void null_display_frame( vo_driver_t* self, vo_frame_t *frame_gen ){ | |||
360 | 361 | ||
361 | 362 | ||
362 | /* blending related */ | 363 | /* blending related */ |
363 | static void null_overlay_clut_yuv2rgb (null_driver_t *this, | 364 | static void null_overlay_clut_yuv2rgb (null_driver_t *this, |
364 | vo_overlay_t *overlay, | 365 | vo_overlay_t *overlay, |
365 | opie_frame_t *frame) { | 366 | opie_frame_t *frame) { |
366 | int i; | 367 | int i; |
367 | clut_t* clut = (clut_t*) overlay->color; | 368 | clut_t* clut = (clut_t*) overlay->color; |
368 | if (!overlay->rgb_clut) { | 369 | if (!overlay->rgb_clut) { |
369 | for (i = 0; i < sizeof(overlay->color)/sizeof(overlay->color[0]); i++) { | 370 | for (i = 0; i < sizeof(overlay->color)/sizeof(overlay->color[0]); i++) { |
370 | *((uint32_t *)&clut[i]) = | 371 | *((uint32_t *)&clut[i]) = |
371 | frame->yuv2rgb->yuv2rgb_single_pixel_fun (frame->yuv2rgb, | 372 | frame->yuv2rgb->yuv2rgb_single_pixel_fun (frame->yuv2rgb, |
372 | clut[i].y, clut[i].cb, clut[i].cr); | 373 | clut[i].y, clut[i].cb, |
374 | clut[i].cr); | ||
373 | } | 375 | } |
374 | overlay->rgb_clut++; | 376 | overlay->rgb_clut++; |
375 | } | 377 | } |
376 | if (!overlay->clip_rgb_clut) { | 378 | if (!overlay->clip_rgb_clut) { |
377 | clut = (clut_t*) overlay->clip_color; | 379 | clut = (clut_t*) overlay->clip_color; |
378 | for (i = 0; i < sizeof(overlay->color)/sizeof(overlay->color[0]); i++) { | 380 | for (i = 0; i < sizeof(overlay->color)/sizeof(overlay->color[0]); i++) { |
379 | *((uint32_t *)&clut[i]) = | 381 | *((uint32_t *)&clut[i]) = |
380 | frame->yuv2rgb->yuv2rgb_single_pixel_fun(frame->yuv2rgb, | 382 | frame->yuv2rgb->yuv2rgb_single_pixel_fun(frame->yuv2rgb, |
381 | clut[i].y, clut[i].cb, clut[i].cr); | 383 | clut[i].y, clut[i].cb, clut[i].cr); |
382 | } | 384 | } |
383 | overlay->clip_rgb_clut++; | 385 | overlay->clip_rgb_clut++; |
384 | } | 386 | } |
385 | } | 387 | } |
386 | 388 | ||
387 | static void null_overlay_blend ( vo_driver_t *this_gen, vo_frame_t *frame_gen, vo_overlay_t *overlay) { | 389 | static void null_overlay_blend ( vo_driver_t *this_gen, vo_frame_t *frame_gen, |
390 | vo_overlay_t *overlay) { | ||
388 | null_driver_t *this = (null_driver_t *) this_gen; | 391 | null_driver_t *this = (null_driver_t *) this_gen; |
389 | opie_frame_t *frame = (opie_frame_t *) frame_gen; | 392 | opie_frame_t *frame = (opie_frame_t *) frame_gen; |
390 | 393 | ||
391 | if(!this->m_show_video || frame->sc.output_width == 0 | 394 | if(!this->m_show_video || frame->sc.output_width == 0 |
392 | || frame->sc.output_height== 0) | 395 | || frame->sc.output_height== 0) |
393 | return; | 396 | return; |
394 | 397 | ||
395 | /* Alpha Blend here */ | 398 | /* Alpha Blend here */ |
396 | if (overlay->rle) { | 399 | if (overlay->rle) { |
397 | if( !overlay->rgb_clut || !overlay->clip_rgb_clut) | 400 | if( !overlay->rgb_clut || !overlay->clip_rgb_clut) |
398 | null_overlay_clut_yuv2rgb(this,overlay,frame); | 401 | null_overlay_clut_yuv2rgb(this,overlay,frame); |
399 | 402 | ||
@@ -443,25 +446,27 @@ static int null_gui_data_exchange( vo_driver_t* self, | |||
443 | } | 446 | } |
444 | 447 | ||
445 | static void null_dispose ( vo_driver_t* self ){ | 448 | static void null_dispose ( vo_driver_t* self ){ |
446 | null_driver_t* this = (null_driver_t*)self; | 449 | null_driver_t* this = (null_driver_t*)self; |
447 | free ( this ); | 450 | free ( this ); |
448 | } | 451 | } |
449 | static int null_redraw_needed( vo_driver_t* self ){ | 452 | static int null_redraw_needed( vo_driver_t* self ){ |
450 | return 0; | 453 | return 0; |
451 | } | 454 | } |
452 | 455 | ||
453 | 456 | ||
454 | xine_vo_driver_t* init_video_out_plugin( xine_t *xine, | 457 | xine_vo_driver_t* init_video_out_plugin( xine_t *xine, |
455 | void* video, display_xine_frame_t frameDisplayFunc, void *userData ){ | 458 | void* video, |
459 | display_xine_frame_t frameDisplayFunc, | ||
460 | void *userData ){ | ||
456 | null_driver_t *vo; | 461 | null_driver_t *vo; |
457 | vo = (null_driver_t*)malloc( sizeof(null_driver_t ) ); | 462 | vo = (null_driver_t*)malloc( sizeof(null_driver_t ) ); |
458 | 463 | ||
459 | /* memset? */ | 464 | /* memset? */ |
460 | memset(vo,0, sizeof(null_driver_t ) ); | 465 | memset(vo,0, sizeof(null_driver_t ) ); |
461 | 466 | ||
462 | vo_scale_init (&vo->sc, 0, 0, xine->config); | 467 | vo_scale_init (&vo->sc, 0, 0, xine->config); |
463 | 468 | ||
464 | vo->sc.gui_pixel_aspect = 1.0; | 469 | vo->sc.gui_pixel_aspect = 1.0; |
465 | 470 | ||
466 | vo->m_show_video = 0; // false | 471 | vo->m_show_video = 0; // false |
467 | vo->m_video_fullscreen = 0; | 472 | vo->m_video_fullscreen = 0; |