diff options
author | Michael Roitzsch <mroi@users.sourceforge.net> | 2003-09-11 10:01:02 +0000 |
---|---|---|
committer | Michael Roitzsch <mroi@users.sourceforge.net> | 2003-09-11 10:01:02 +0000 |
commit | eb613ac0854b3a88b5d1e4f9d15c59ae7520c524 (patch) | |
tree | 12fedbc7991520a498ca26a9263eec546c21b63f /src/libffmpeg | |
parent | bf615c1c0db1047f5befc01860cde9c71aaf144b (diff) | |
download | xine-lib-eb613ac0854b3a88b5d1e4f9d15c59ae7520c524.tar.gz xine-lib-eb613ac0854b3a88b5d1e4f9d15c59ae7520c524.tar.bz2 |
fix stuttering playback for some non-MPEG content with the dxr3:
* move responsibility for the SCR plugin from the decoder to the video out
* use the SCR for non-MPEG content as well
* modify frames' vpts so they are sent earlier to the driver
* tag the encoded MPEG stream by SETPTS ioctls to leave the final display
scheduling to the card
CVS patchset: 5354
CVS date: 2003/09/11 10:01:02
Diffstat (limited to 'src/libffmpeg')
-rw-r--r-- | src/libffmpeg/xine_encoder.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/libffmpeg/xine_encoder.c b/src/libffmpeg/xine_encoder.c index a8b0e4c93..a993a6955 100644 --- a/src/libffmpeg/xine_encoder.c +++ b/src/libffmpeg/xine_encoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_encoder.c,v 1.5 2003/07/09 18:25:45 mroi Exp $ + * $Id: xine_encoder.c,v 1.6 2003/09/11 10:01:02 mroi Exp $ */ /* mpeg encoders for the dxr3 video out plugin. */ @@ -274,13 +274,8 @@ static int lavc_on_display_frame(dxr3_driver_t *drv, dxr3_frame_t *frame) size = avcodec_encode_video(this->context, this->ffmpeg_buffer, DEFAULT_BUFFER_SIZE, this->picture); frame->vo_frame.free(&frame->vo_frame); - - if (drv->fd_video == CLOSED_FOR_ENCODER) { - snprintf (tmpstr, sizeof(tmpstr), "%s_mv%s", drv->class->devname, drv->class->devnum); - drv->fd_video = open(tmpstr, O_WRONLY | O_NONBLOCK); - } - if (drv->fd_video < 0) return 0; - written = write(drv->fd_video, this->ffmpeg_buffer, size); + + written = write(drv->fd_video, this->ffmpeg_buffer, size); if (written < 0) { printf("dxr3_mpeg_encoder: video device write failed (%s)\n", strerror(errno)); |