summaryrefslogtreecommitdiff
path: root/src/libmpeg2
diff options
context:
space:
mode:
Diffstat (limited to 'src/libmpeg2')
-rw-r--r--src/libmpeg2/decode.c7
-rw-r--r--src/libmpeg2/mpeg2.h5
-rw-r--r--src/libmpeg2/xine_decoder.c6
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);