summaryrefslogtreecommitdiff
path: root/src/libmpeg2
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2006-02-06 12:54:17 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2006-02-06 12:54:17 +0000
commit78b33feb2a56784dc02031070f538ddb3cc9d9d4 (patch)
treec41080016b718fe1092dfc11c284d67d19054361 /src/libmpeg2
parentaa44eed73c6d43dfb033cce0004dec6a84ca3db9 (diff)
downloadxine-lib-78b33feb2a56784dc02031070f538ddb3cc9d9d4.tar.gz
xine-lib-78b33feb2a56784dc02031070f538ddb3cc9d9d4.tar.bz2
PATCH: detect aspect ratio changes in MPEG2 video
CVS patchset: 7883 CVS date: 2006/02/06 12:54:17
Diffstat (limited to 'src/libmpeg2')
-rw-r--r--src/libmpeg2/decode.c2
-rw-r--r--src/libmpeg2/mpeg2_internal.h1
2 files changed, 3 insertions, 0 deletions
diff --git a/src/libmpeg2/decode.c b/src/libmpeg2/decode.c
index f8dcbea41..c7656e11d 100644
--- a/src/libmpeg2/decode.c
+++ b/src/libmpeg2/decode.c
@@ -415,6 +415,7 @@ static inline int parse_chunk (mpeg2dec_t * mpeg2dec, int code,
}
if (mpeg2dec->is_sequence_needed
+ || (picture->aspect_ratio_information != picture->saved_aspect_ratio)
|| (picture->frame_width != picture->coded_picture_width)
|| (picture->frame_height != picture->coded_picture_height)) {
xine_event_t event;
@@ -451,6 +452,7 @@ static inline int parse_chunk (mpeg2dec_t * mpeg2dec, int code,
picture->frame_width = picture->coded_picture_width;
picture->frame_height = picture->coded_picture_height;
+ picture->saved_aspect_ratio = picture->aspect_ratio_information;
}
break;
diff --git a/src/libmpeg2/mpeg2_internal.h b/src/libmpeg2/mpeg2_internal.h
index 64c6a2149..915bece2c 100644
--- a/src/libmpeg2/mpeg2_internal.h
+++ b/src/libmpeg2/mpeg2_internal.h
@@ -168,6 +168,7 @@ typedef struct picture_s {
/* these things are not needed by the decoder */
/* this is a temporary interface, we will build a better one later. */
int aspect_ratio_information;
+ int saved_aspect_ratio;
int frame_rate_code;
int progressive_sequence;
int repeat_first_field;