[Mplayer-cvslog] CVS: main/libvo vo_dxr3.c,1.43,1.44
David Holm
mswitch at mplayer.dev.hu
Mon Feb 4 00:14:20 CET 2002
- Previous message: [Mplayer-cvslog] CVS: main/DOCS/German codecs.html,1.20,1.21 documentation.html,1.37,1.38 faq.html,1.14,1.15 formats.html,1.3,1.4 sound.html,1.9,1.10
- Next message: [Mplayer-cvslog] CVS: main/input input.c,1.3,1.4 joystick.c,1.2,1.3 joystick.h,1.2,1.3
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/mplayer/main/libvo
In directory mplayer:/var/tmp.root/cvs-serv17754/libvo
Modified Files:
vo_dxr3.c
Log Message:
Activate QSCALE flag for avcodec
Reset playback speed on exit (we aren't using this feature yet... but
will hopefully do soon)
Use fsync instead of the mediocre flush ioctl's on seeking/pausing, at
least video seems to stay in sync...
Index: vo_dxr3.c
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/vo_dxr3.c,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- vo_dxr3.c 3 Feb 2002 15:10:47 -0000 1.43
+++ vo_dxr3.c 3 Feb 2002 23:13:56 -0000 1.44
@@ -119,14 +119,14 @@
reg.val = MVCOMMAND_SYNC;
ioctl(fd_control, EM8300_IOCTL_WRITEREG, ®);
- /* Set the default playback speed to 0x900 */
- ioval = 0x900;
- ioctl(fd_control, EM8300_IOCTL_SCR_SETSPEED, &ioval);
-
/* Flush the buffer and make sure it is clean by syncing it */
ioval = EM8300_SUBDEVICE_VIDEO;
ioctl(fd_control, EM8300_IOCTL_FLUSH, &ioval);
fsync(fd_video);
+ ioval = 0x900;
+ ioctl(fd_control, EM8300_IOCTL_SCR_SETSPEED, &ioval);
+ ioval = 0;
+ ioctl(fd_control, EM8300_IOCTL_SCR_SET, &ioval);
/* We'll be nice and flush the audio buffer as well */
ioval = EM8300_SUBDEVICE_AUDIO;
ioctl(fd_control, EM8300_IOCTL_FLUSH, &ioval);
@@ -172,7 +172,8 @@
avc_context->frame_rate = 30 * FRAME_RATE_BASE;
avc_context->gop_size = 12;
avc_context->bit_rate = 8e6;
- avc_context->flags = CODEC_FLAG_HQ;
+ avc_context->flags = CODEC_FLAG_HQ | CODEC_FLAG_QSCALE;
+ avc_context->quality = 2;
avc_context->pix_fmt = PIX_FMT_YUV420P;
if (avcodec_open(avc_context, avc_codec) < 0) {
printf("VO: [dxr3] Unable to open codec\n");
@@ -239,14 +240,10 @@
static void draw_alpha(int x0, int y0, int w, int h, unsigned char* src, unsigned char *srca, int srcstride)
{
#ifdef USE_LIBAVCODEC
- /* This function draws the osd and subtitles etc. It will change to use spuenc soon */
- switch (img_format) {
- case IMGFMT_BGR24:
- case IMGFMT_YV12:
- case IMGFMT_YUY2:
+ /* This function draws the osd and subtitles etc. */
+ if (img_format != IMGFMT_MPEGPES) {
vo_draw_alpha_yv12(w, h, src, srca, srcstride,
avc_picture.data[0] + (x0 + d_pos_x) + (y0 + d_pos_y) * avc_picture.linesize[0], avc_picture.linesize[0]);
- break;
}
#endif
}
@@ -264,12 +261,8 @@
vo_mpegpes_t *p = (vo_mpegpes_t *) src[0];
if (p->id == 0x20) {
- ioval = vo_pts / 2;
- ioctl(fd_spu, EM8300_IOCTL_SPU_SETPTS, &ioval);
write(fd_spu, p->data, p->size);
} else {
- ioval = vo_pts / 2;
- ioctl(fd_video, EM8300_IOCTL_VIDEO_SETPTS, &ioval);
write(fd_video, p->data, p->size);
}
return 0;
@@ -297,8 +290,10 @@
/* Flush the device if a seek occured */
if (!vo_pts) {
/* Flush video */
- ioval = EM8300_SUBDEVICE_VIDEO;
+ /*ioval = EM8300_SUBDEVICE_VIDEO;
ioctl(fd_control, EM8300_IOCTL_FLUSH, &ioval);
+ */
+ fsync(fd_video);
}
#ifdef USE_LIBAVCODEC
if (img_format == IMGFMT_YV12) {
@@ -390,6 +385,9 @@
static void uninit(void)
{
printf("VO: [dxr3] Uninitializing\n");
+ /* Set the default playback speed to 0x900 */
+ ioval = 0x900;
+ ioctl(fd_control, EM8300_IOCTL_SCR_SETSPEED, &ioval);
#ifdef USE_LIBAVCODEC
if (avc_context) {
avcodec_close(avc_context);
- Previous message: [Mplayer-cvslog] CVS: main/DOCS/German codecs.html,1.20,1.21 documentation.html,1.37,1.38 faq.html,1.14,1.15 formats.html,1.3,1.4 sound.html,1.9,1.10
- Next message: [Mplayer-cvslog] CVS: main/input input.c,1.3,1.4 joystick.c,1.2,1.3 joystick.h,1.2,1.3
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the MPlayer-cvslog
mailing list