[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xine-cvslog
Subject:    [xine-cvs] HG: xine-lib-1.2: Merge from 1.1,
From:       Darren Salt <linux () youmustbejoking ! demon ! co ! uk>
Date:       2007-10-23 22:16:40
Message-ID: 6640bca31bd9b1cd0d6b.1193177736 () hg ! debian ! org
[Download RAW message or body]

# HG changeset patch
# User Darren Salt <linux@youmustbejoking.demon.co.uk>
# Date 1193177736 -3600
# Node ID 6640bca31bd9b1cd0d6b42cdd607cc0ba0f46d78
# Parent  4e7fb3b66ae5f7158014a0cb4b52cf94bd0c3e70
# Parent  0012b2d7eee71d054a580587b76ede51449910ce
Merge from 1.1, updating plugin Conflicts/Replaces accordingly.

diff -r 6640bca31bd9b1cd0d6b42cdd607cc0ba0f46d78 -r \
                4e7fb3b66ae5f7158014a0cb4b52cf94bd0c3e70 ChangeLog
--- a/ChangeLog	Tue Oct 23 23:15:36 2007 +0100
+++ b/ChangeLog	Tue Oct 23 19:35:58 2007 +0100
@@ -54,6 +54,7 @@ xine-lib (1.1.9) (unreleased)
   * Improve syncing of audio and video in the presence of bad frames.
   * Improve handling of invalid or unknown frame sizes.
   * Fixed handling of streamed Flash videos (broken in 1.1.5).
+  * Fixed division by zero in sputext decoder
 
 xine-lib (1.1.8)
   * Send a channel-changed event to the frontend when receiving the SYNC
diff -r 6640bca31bd9b1cd0d6b42cdd607cc0ba0f46d78 -r \
                4e7fb3b66ae5f7158014a0cb4b52cf94bd0c3e70 debian/control
--- a/debian/control	Tue Oct 23 23:15:36 2007 +0100
+++ b/debian/control	Tue Oct 23 19:35:58 2007 +0100
@@ -66,6 +66,8 @@ Depends: ${shlibs:Depends}
 Depends: ${shlibs:Depends}
 Recommends: ${shlibs:Recommends}, libxine2-doc | libxine-doc
 Suggests: ${shlibs:Suggests}, libartsc0
+Conflicts: libxine2-console, libxine2-ffmpeg, libxine2-gnome, libxine2-misc-plugins, \
libxine2-plugins, libxine2-x +Replaces: libxine2-console, libxine2-ffmpeg, \
libxine2-gnome, libxine2-misc-plugins, libxine2-plugins, libxine2-x  Description: the \
xine video/media player library, binary files  This is the xine media player library \
                (libxine). 
  .
diff -r 6640bca31bd9b1cd0d6b42cdd607cc0ba0f46d78 -r \
                4e7fb3b66ae5f7158014a0cb4b52cf94bd0c3e70 \
                src/libffmpeg/ff_video_decoder.c
--- a/src/libffmpeg/ff_video_decoder.c	Tue Oct 23 23:15:36 2007 +0100
+++ b/src/libffmpeg/ff_video_decoder.c	Tue Oct 23 19:35:58 2007 +0100
@@ -1154,6 +1154,7 @@ static void ff_handle_buffer (ff_video_d
     int         got_one_picture = 0;
     int         offset = 0;
     int         codec_type = buf->type & 0xFFFF0000;
+    int         video_step_to_use;
 
     /* pad input data */
     /* note: bitstream, alt bitstream reader or something will cause
@@ -1193,6 +1194,9 @@ static void ff_handle_buffer (ff_video_d
           }
         }
       }
+
+      /* use externally provided video_step or fall back to stream's time_base \
otherwise */ +      video_step_to_use = (this->video_step || \
!this->context->time_base.den) ? this->video_step : (int)(90000ll * \
this->context->time_base.num / this->context->time_base.den);  
       /* aspect ratio provided by ffmpeg, override previous setting */
       if ((this->aspect_ratio_prio < 2) &&
@@ -1283,16 +1287,20 @@ static void ff_handle_buffer (ff_video_d
         img->pts  = this->pts;
         this->pts = 0;
 
+        /* workaround for demux_mpeg_pes sending fields as frames */
+        if (!this->video_step && this->av_frame->interlaced_frame)
+          video_step_to_use /= 2;
+
         /* workaround for weird 120fps streams */
-        if( this->video_step == 750 ) {
+        if( video_step_to_use == 750 ) {
           /* fallback to the VIDEO_PTS_MODE */
-          this->video_step = 0;
+          video_step_to_use = 0;
         }
         
         if (this->av_frame->repeat_pict)
-          img->duration = this->video_step * 3 / 2;
+          img->duration = video_step_to_use * 3 / 2;
         else
-          img->duration = this->video_step;
+          img->duration = video_step_to_use;
 
         img->crop_right  = this->crop_right;
         img->crop_bottom = this->crop_bottom;
@@ -1316,7 +1324,7 @@ static void ff_handle_buffer (ff_video_d
       img->pts       = this->pts;
       this->pts      = 0;
 
-      img->duration  = this->video_step;
+      img->duration  = video_step_to_use;
       img->bad_frame = 1;
       this->skipframes = img->draw(img, this->stream);
       img->free(img);
diff -r 6640bca31bd9b1cd0d6b42cdd607cc0ba0f46d78 -r \
                4e7fb3b66ae5f7158014a0cb4b52cf94bd0c3e70 \
                src/libsputext/xine_sputext_decoder.c
--- a/src/libsputext/xine_sputext_decoder.c	Tue Oct 23 23:15:36 2007 +0100
+++ b/src/libsputext/xine_sputext_decoder.c	Tue Oct 23 19:35:58 2007 +0100
@@ -703,9 +703,11 @@ static void spudec_decode_data (spu_deco
       lprintf("started\n");
 
       this->width = this->height = 0;
-      this->started = 1;
-
-      update_output_size( this );      
+
+      update_output_size( this );
+      if( this->width && this->height ) {
+        this->started = 1;
+      }
     }
 
     if( this->started ) {
diff -r 6640bca31bd9b1cd0d6b42cdd607cc0ba0f46d78 -r \
                4e7fb3b66ae5f7158014a0cb4b52cf94bd0c3e70 src/xine-utils/xmlparser.c
--- a/src/xine-utils/xmlparser.c	Tue Oct 23 23:15:36 2007 +0100
+++ b/src/xine-utils/xmlparser.c	Tue Oct 23 19:35:58 2007 +0100
@@ -239,6 +239,8 @@ static int xml_parser_get_node_internal 
 
   if (rec < MAX_RECURSION) {
 
+    memset (tok, 0, TOKEN_SIZE);
+
     while ((bypass_get_token) || (res = lexer_get_token(tok, TOKEN_SIZE)) != \
T_ERROR) {  bypass_get_token = 0;
       lprintf("info: %d - %d : '%s'\n", state, res, tok);

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Xine-cvslog mailing list
Xine-cvslog@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xine-cvslog


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic