diff options
Diffstat (limited to 'src/libreal/xine_decoder.c')
-rw-r--r-- | src/libreal/xine_decoder.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/libreal/xine_decoder.c b/src/libreal/xine_decoder.c index 56757de0d..3234ea139 100644 --- a/src/libreal/xine_decoder.c +++ b/src/libreal/xine_decoder.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_decoder.c,v 1.63 2004/01/12 23:45:04 jstembridge Exp $ + * $Id: xine_decoder.c,v 1.64 2004/01/13 20:44:22 jstembridge Exp $ * * thin layer to use real binary-only codecs in xine * @@ -271,6 +271,12 @@ static void realdec_decode_data (video_decoder_t *this_gen, buf_element_t *buf) _x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_HANDLED, 0); } else if (this->decoder_ok && this->context) { + + /* Frame duration can be passed from demuxer to override value in + * real video header */ + + if (buf->decoder_flags & BUF_FLAG_FRAMERATE) + this->duration = buf->decoder_info[0]; /* Each frame starts with BUF_FLAG_FRAME_START and ends with * BUF_FLAG_FRAME_END. @@ -318,9 +324,6 @@ static void realdec_decode_data (video_decoder_t *this_gen, buf_element_t *buf) lprintf ("chunk table\n"); - if(buf->decoder_info[3]) - this->duration = buf->decoder_info[3]; - transform_in[0] = this->chunk_buffer_size; /* length of the packet (sub-packets appended) */ transform_in[1] = 0; /* unknown, seems to be unused */ transform_in[2] = buf->decoder_info[2]; /* number of sub-packets - 1 */ |