summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authornicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-09-28 21:13:26 +0000
committernicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-09-28 21:13:26 +0000
commit1cc65a788911e07bf343b661b7f66c5a494905d8 (patch)
treeed6aa112fdf8148d3a31f4e7961aaf0eacd2c35a /libmpdemux
parent944b5d2acd1fd5a21dcd66f37bb8907784318cc5 (diff)
downloadmpv-1cc65a788911e07bf343b661b7f66c5a494905d8.tar.bz2
mpv-1cc65a788911e07bf343b661b7f66c5a494905d8.tar.xz
1000l, the tff flag was never cleared before being overwritten with the value on bff_mask;
also, the sequence extension pointer was set to point to the sequence_display_extension, so the progressive_sequence was never set and the sde was being corrupted patch by Christopher Montgomery (xhiphmont xiph org) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24650 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/muxer_mpeg.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libmpdemux/muxer_mpeg.c b/libmpdemux/muxer_mpeg.c
index fe9981b8af..82abd5a569 100644
--- a/libmpdemux/muxer_mpeg.c
+++ b/libmpdemux/muxer_mpeg.c
@@ -1611,7 +1611,8 @@ static int soft_telecine(muxer_priv_t *priv, muxer_headers_t *vpriv, uint8_t *fp
if(se_ptr)
se_ptr[1] &= 0xf7;
- pce_ptr[3] = (pce_ptr[3] & 0xfd) | bff_mask[vpriv->display_frame % MAX_PATTERN_LENGTH];
+ //disable tff and rff and overwrite them with the value in bff_mask
+ pce_ptr[3] = (pce_ptr[3] & 0x7d) | bff_mask[vpriv->display_frame % MAX_PATTERN_LENGTH];
pce_ptr[4] |= 0x80; //sets progressive frame
vpriv->display_frame += n;
@@ -1677,9 +1678,10 @@ static size_t parse_mpeg12_video(muxer_stream_t *s, muxer_priv_t *priv, muxer_he
break;
}
mp_header_process_extension(&(spriv->picture), &(s->buffer[i+4]));
+ if(((s->buffer[i+4] & 0xf0) == 0x10))
+ se_ptr = &(s->buffer[i+4]);
if(((s->buffer[i+4] & 0xf0) == 0x20))
{
- se_ptr = &(s->buffer[i+4]);
if(priv->patch_sde)
patch_panscan(priv, se_ptr);
}