diff options
author | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-09-28 21:13:26 +0000 |
---|---|---|
committer | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-09-28 21:13:26 +0000 |
commit | 1cc65a788911e07bf343b661b7f66c5a494905d8 (patch) | |
tree | ed6aa112fdf8148d3a31f4e7961aaf0eacd2c35a | |
parent | 944b5d2acd1fd5a21dcd66f37bb8907784318cc5 (diff) | |
download | mpv-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
-rw-r--r-- | libmpdemux/muxer_mpeg.c | 6 |
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); } |