summaryrefslogtreecommitdiff
path: root/src/libffmpeg
diff options
context:
space:
mode:
authorMichael Roitzsch <mroi@users.sourceforge.net>2003-09-11 10:01:02 +0000
committerMichael Roitzsch <mroi@users.sourceforge.net>2003-09-11 10:01:02 +0000
commiteb613ac0854b3a88b5d1e4f9d15c59ae7520c524 (patch)
tree12fedbc7991520a498ca26a9263eec546c21b63f /src/libffmpeg
parentbf615c1c0db1047f5befc01860cde9c71aaf144b (diff)
downloadxine-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.c11
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));