diff options
Diffstat (limited to 'src/libmpeg2')
-rw-r--r-- | src/libmpeg2/decode.c | 7 | ||||
-rw-r--r-- | src/libmpeg2/mpeg2.h | 5 | ||||
-rw-r--r-- | src/libmpeg2/xine_decoder.c | 6 |
3 files changed, 7 insertions, 11 deletions
diff --git a/src/libmpeg2/decode.c b/src/libmpeg2/decode.c index 68db8b3d5..a8099ef64 100644 --- a/src/libmpeg2/decode.c +++ b/src/libmpeg2/decode.c @@ -345,7 +345,6 @@ static inline int parse_chunk (mpeg2dec_t * mpeg2dec, int code, picture->current_frame->bad_frame = 1; picture->current_frame->drawn = 0; picture->current_frame->pts = mpeg2dec->pts; - picture->current_frame->scr = mpeg2dec->scr; picture->current_frame->top_field_first = picture->top_field_first; picture->current_frame->repeat_first_field = picture->repeat_first_field; @@ -418,7 +417,7 @@ static inline uint8_t * copy_chunk (mpeg2dec_t * mpeg2dec, } int mpeg2_decode_data (mpeg2dec_t * mpeg2dec, uint8_t * current, uint8_t * end, - uint32_t pts, uint32_t scr) + uint64_t pts) { int ret; uint8_t code; @@ -435,8 +434,6 @@ int mpeg2_decode_data (mpeg2dec_t * mpeg2dec, uint8_t * current, uint8_t * end, if (pts) mpeg2dec->pts = pts; - mpeg2dec->scr = scr; - while (current != end) { code = mpeg2dec->code; current = copy_chunk (mpeg2dec, current, end); @@ -521,7 +518,6 @@ void mpeg2_close (mpeg2dec_t * mpeg2dec) if (picture->backward_reference_frame) { printf ("libmpeg2: blasting out backward reference frame on close\n"); picture->backward_reference_frame->pts = 0; - picture->backward_reference_frame->scr = mpeg2dec->scr; get_frame_duration(mpeg2dec, picture->backward_reference_frame); if( !picture->backward_reference_frame->drawn) picture->backward_reference_frame->draw (picture->backward_reference_frame); @@ -615,7 +611,6 @@ static void process_userdata(mpeg2dec_t *mpeg2dec, uint8_t *buffer) event.buffer = &buffer[2]; event.buf_len = end - &buffer[2]; event.pts = mpeg2dec->pts; - event.scr = mpeg2dec->scr; xine_send_event(mpeg2dec->xine, &event.event); } } diff --git a/src/libmpeg2/mpeg2.h b/src/libmpeg2/mpeg2.h index c2ee5f6ec..a0efeaac5 100644 --- a/src/libmpeg2/mpeg2.h +++ b/src/libmpeg2/mpeg2.h @@ -43,7 +43,8 @@ typedef struct mpeg2dec_s { /* last start code ? */ uint8_t code; - uint32_t pts, scr; + int64_t pts; + uint32_t last_repeat_first_field; xine_t *xine; } mpeg2dec_t ; @@ -57,7 +58,7 @@ void mpeg2_close (mpeg2dec_t * mpeg2dec); int mpeg2_decode_data (mpeg2dec_t * mpeg2dec, uint8_t * data_start, uint8_t * data_end, - uint32_t pts, uint32_t scr); + uint64_t pts); void mpeg2_find_sequence_header (mpeg2dec_t * mpeg2dec, uint8_t * data_start, uint8_t * data_end); diff --git a/src/libmpeg2/xine_decoder.c b/src/libmpeg2/xine_decoder.c index 91274771a..d3fadcf7f 100644 --- a/src/libmpeg2/xine_decoder.c +++ b/src/libmpeg2/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.23 2002/02/17 17:32:50 guenter Exp $ + * $Id: xine_decoder.c,v 1.24 2002/03/11 12:31:26 guenter Exp $ * * stuff needed to turn libmpeg2 into a xine decoder plugin */ @@ -81,12 +81,12 @@ static void mpeg2dec_decode_data (video_decoder_t *this_gen, buf_element_t *buf) pthread_mutex_lock (&this->lock); - if (buf->decoder_info[0] == 0) { + if (buf->decoder_flags & BUF_FLAG_PREVIEW) { mpeg2_find_sequence_header (&this->mpeg2, buf->content, buf->content + buf->size); } else { mpeg2_decode_data (&this->mpeg2, buf->content, buf->content + buf->size, - buf->pts, buf->scr); + buf->pts); } pthread_mutex_unlock (&this->lock); |