Mercurial > mplayer.hg
comparison libvo/vo_dxr3.c @ 4480:0919d2ec5e22
Cleaned up some code
author | mswitch |
---|---|
date | Sat, 02 Feb 2002 18:09:35 +0000 |
parents | df8e0f71cc3c |
children | 2e3800da1ceb |
comparison
equal
deleted
inserted
replaced
4479:423ce4451ca8 | 4480:0919d2ec5e22 |
---|---|
4 * Copyright (C) 2002 David Holm <dholm@iname.com> | 4 * Copyright (C) 2002 David Holm <dholm@iname.com> |
5 * | 5 * |
6 */ | 6 */ |
7 | 7 |
8 /* ChangeLog added 2002-01-10 | 8 /* ChangeLog added 2002-01-10 |
9 * 2002-02-02: | |
10 * Cleaned out some old code which might have slowed down writes | |
11 * | |
9 * 2002-01-17: | 12 * 2002-01-17: |
10 * Testrelease of new sync engine (using previously undocumented feature of em8300). | 13 * Testrelease of new sync engine (using previously undocumented feature of em8300). |
11 * | 14 * |
12 * 2002-01-15: | 15 * 2002-01-15: |
13 * Preliminary subpic support with -vc mpegpes and dvd's | 16 * Preliminary subpic support with -vc mpegpes and dvd's |
85 }; | 88 }; |
86 | 89 |
87 #ifdef USE_MP1E | 90 #ifdef USE_MP1E |
88 void write_dxr3(rte_context *context, void *data, size_t size, void *user_data) | 91 void write_dxr3(rte_context *context, void *data, size_t size, void *user_data) |
89 { | 92 { |
90 size_t data_left = size; | 93 write(fd_video, data, size); |
91 | |
92 /* Force data into the buffer */ | |
93 while (data_left) { | |
94 data_left -= write(fd_video, (void*) data + (size - data_left), data_left); | |
95 } | |
96 } | 94 } |
97 #endif | 95 #endif |
98 | 96 |
99 static uint32_t config(uint32_t scr_width, uint32_t scr_height, uint32_t width, uint32_t height, uint32_t fullscreen, char *title, uint32_t format,const vo_tune_info_t *info) | 97 static uint32_t config(uint32_t scr_width, uint32_t scr_height, uint32_t width, uint32_t height, uint32_t fullscreen, char *title, uint32_t format,const vo_tune_info_t *info) |
100 { | 98 { |
376 | 374 |
377 static uint32_t draw_frame(uint8_t * src[]) | 375 static uint32_t draw_frame(uint8_t * src[]) |
378 { | 376 { |
379 if (img_format == IMGFMT_MPEGPES) { | 377 if (img_format == IMGFMT_MPEGPES) { |
380 vo_mpegpes_t *p = (vo_mpegpes_t *) src[0]; | 378 vo_mpegpes_t *p = (vo_mpegpes_t *) src[0]; |
381 size_t data_left = p->size; | |
382 | 379 |
383 if (p->id == 0x20) { | 380 if (p->id == 0x20) { |
384 /* Force subpic data into buffer */ | 381 write(fd_spu, p->data, p->size); |
385 while (data_left) { | |
386 data_left -= write(fd_spu, (void*) (p->data + p->size-data_left), data_left); | |
387 } | |
388 } else { | 382 } else { |
389 /* Force video data into buffer */ | 383 write(fd_video, p->data, p->size); |
390 while (data_left) { | |
391 data_left -= write(fd_video, (void*) (p->data + p->size-data_left), data_left); | |
392 } | |
393 } | 384 } |
394 return 0; | 385 return 0; |
395 } | 386 } |
396 #ifdef USE_MP1E | 387 #ifdef USE_MP1E |
397 else if (img_format == IMGFMT_YUY2) { | 388 else if (img_format == IMGFMT_YUY2) { |
428 return -1; | 419 return -1; |
429 } | 420 } |
430 | 421 |
431 static void flip_page(void) | 422 static void flip_page(void) |
432 { | 423 { |
433 static int prev_pts = 0; | |
434 /* Flush the device if a seek occured */ | 424 /* Flush the device if a seek occured */ |
435 if (prev_pts > vo_pts) { | 425 if (!vo_pts) { |
436 /* Flush video */ | 426 /* Flush video */ |
437 ioval = EM8300_SUBDEVICE_VIDEO; | 427 ioval = EM8300_SUBDEVICE_VIDEO; |
438 ioctl(fd_control, EM8300_IOCTL_FLUSH, &ioval); | 428 ioctl(fd_control, EM8300_IOCTL_FLUSH, &ioval); |
439 } | 429 } |
440 prev_pts = vo_pts; | |
441 #ifdef USE_MP1E | 430 #ifdef USE_MP1E |
442 if (img_format == IMGFMT_YV12) { | 431 if (img_format == IMGFMT_YV12) { |
443 mp1e_buffer.data = picture_data[0]; | 432 mp1e_buffer.data = picture_data[0]; |
444 mp1e_buffer.time = vo_pts / 90000.0; | 433 mp1e_buffer.time = vo_pts / 90000.0; |
445 mp1e_buffer.user_data = NULL; | 434 mp1e_buffer.user_data = NULL; |
552 { | 541 { |
553 } | 542 } |
554 | 543 |
555 static uint32_t preinit(const char *arg) | 544 static uint32_t preinit(const char *arg) |
556 { | 545 { |
557 return 0; | 546 return 0; |
558 } | 547 } |
559 | 548 |
560 static void query_vaa(vo_vaa_t *vaa) | 549 static void query_vaa(vo_vaa_t *vaa) |
561 { | 550 { |
562 memset(vaa,0,sizeof(vo_vaa_t)); | 551 memset(vaa, 0, sizeof(vo_vaa_t)); |
563 } | 552 } |