summaryrefslogtreecommitdiff
path: root/src/libmpeg2/decode.c
diff options
context:
space:
mode:
authorGuenter Bartsch <guenter@users.sourceforge.net>2001-07-24 12:57:29 +0000
committerGuenter Bartsch <guenter@users.sourceforge.net>2001-07-24 12:57:29 +0000
commitf6518586f4ff96282aa83faa5f1e54b26c657705 (patch)
tree13e32900db3df007b8f022bd360727ed3a2c16e0 /src/libmpeg2/decode.c
parentaa41997f54697faf52e539ec27c78db60ed8561e (diff)
downloadxine-lib-f6518586f4ff96282aa83faa5f1e54b26c657705.tar.gz
xine-lib-f6518586f4ff96282aa83faa5f1e54b26c657705.tar.bz2
big xshm cleanup (free memory properly, set up yuv2rgb only when necessary, clean up field picture handling), gearing up for rc2
CVS patchset: 334 CVS date: 2001/07/24 12:57:29
Diffstat (limited to 'src/libmpeg2/decode.c')
-rw-r--r--src/libmpeg2/decode.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/libmpeg2/decode.c b/src/libmpeg2/decode.c
index 0cbcff334..c08dc3ed2 100644
--- a/src/libmpeg2/decode.c
+++ b/src/libmpeg2/decode.c
@@ -196,7 +196,8 @@ static inline int parse_chunk (mpeg2dec_t * mpeg2dec, int code,
picture->coded_picture_height,
picture->aspect_ratio_information,
IMGFMT_YV12,
- picture->frame_duration);
+ picture->frame_duration,
+ VO_PREDICTION_FLAG | VO_BOTH_FIELDS);
picture->forward_reference_frame->PTS = 0;
picture->forward_reference_frame->bFrameBad = 1;
picture->backward_reference_frame =
@@ -205,7 +206,8 @@ static inline int parse_chunk (mpeg2dec_t * mpeg2dec, int code,
picture->coded_picture_height,
picture->aspect_ratio_information,
IMGFMT_YV12,
- picture->frame_duration);
+ picture->frame_duration,
+ VO_PREDICTION_FLAG | VO_BOTH_FIELDS);
picture->backward_reference_frame->PTS = 0;
picture->backward_reference_frame->bFrameBad = 1;
@@ -245,7 +247,8 @@ static inline int parse_chunk (mpeg2dec_t * mpeg2dec, int code,
picture->coded_picture_height,
picture->aspect_ratio_information,
IMGFMT_YV12,
- picture->frame_duration);
+ picture->frame_duration,
+ picture->picture_structure);
else {
picture->current_frame =
mpeg2dec->output->get_frame (mpeg2dec->output,
@@ -253,7 +256,8 @@ static inline int parse_chunk (mpeg2dec_t * mpeg2dec, int code,
picture->coded_picture_height,
picture->aspect_ratio_information,
IMGFMT_YV12,
- picture->frame_duration);
+ picture->frame_duration,
+ (VO_PREDICTION_FLAG | picture->picture_structure));
picture->forward_reference_frame->free (picture->forward_reference_frame);
picture->forward_reference_frame =
@@ -263,9 +267,6 @@ static inline int parse_chunk (mpeg2dec_t * mpeg2dec, int code,
picture->current_frame->bFrameBad = 0;
picture->current_frame->PTS = mpeg2dec->pts;
mpeg2dec->pts = 0;
- picture->current_frame->field(picture->current_frame,
- picture->picture_structure);
-
}
}
@@ -413,7 +414,8 @@ void mpeg2_find_sequence_header (mpeg2dec_t * mpeg2dec,
picture->coded_picture_height,
picture->aspect_ratio_information,
IMGFMT_YV12,
- picture->frame_duration);
+ picture->frame_duration,
+ VO_PREDICTION_FLAG | VO_BOTH_FIELDS);
picture->forward_reference_frame->PTS = 0;
picture->forward_reference_frame->bFrameBad = 1;
picture->backward_reference_frame =
@@ -422,7 +424,8 @@ void mpeg2_find_sequence_header (mpeg2dec_t * mpeg2dec,
picture->coded_picture_height,
picture->aspect_ratio_information,
IMGFMT_YV12,
- picture->frame_duration);
+ picture->frame_duration,
+ VO_PREDICTION_FLAG | VO_BOTH_FIELDS);
picture->backward_reference_frame->PTS = 0;
picture->backward_reference_frame->bFrameBad = 1;