diff options
author | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-12-04 20:38:46 +0000 |
---|---|---|
committer | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-12-04 20:38:46 +0000 |
commit | 858813f36fb0977afa8191d70f08ac375643b09d (patch) | |
tree | 990b3bbd17e6456a404f3ed145d8840b017276f8 | |
parent | b20ee9dff3479da5ea961bc4280c3237e2000757 (diff) | |
download | mpv-858813f36fb0977afa8191d70f08ac375643b09d.tar.bz2 mpv-858813f36fb0977afa8191d70f08ac375643b09d.tar.xz |
pre-store in bff_mask the correct or-mask to be saved in the pce (slightly faster)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21497 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r-- | libmpdemux/muxer_mpeg.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/libmpdemux/muxer_mpeg.c b/libmpdemux/muxer_mpeg.c index 0121c8bb45..3b6088c419 100644 --- a/libmpdemux/muxer_mpeg.c +++ b/libmpdemux/muxer_mpeg.c @@ -1670,9 +1670,7 @@ static int soft_telecine(muxer_priv_t *priv, muxer_headers_t *vpriv, uint8_t *fp } else if(vpriv->telecine == TELECINE_DGPULLDOWN) { - tff = (bff_mask[vpriv->display_frame % MAX_PATTERN_LENGTH] & 0x2) ? 0x80 : 0; - rff = (bff_mask[vpriv->display_frame % MAX_PATTERN_LENGTH] & 0x1) ? 0x02 : 0; - pce_ptr[3] = (pce_ptr[3] & 0xfd) | tff | rff; + pce_ptr[3] = (pce_ptr[3] & 0xfd) | bff_mask[vpriv->display_frame % MAX_PATTERN_LENGTH]; } else { @@ -2549,6 +2547,7 @@ static void generate_flags(int source, int target) { unsigned int i, trfp; uint64_t dfl,tfl; + unsigned char ormask[4] = {0x0, 0x2, 0x80, 0x82}; dfl = (target - source) << 1; tfl = source >> 1; @@ -2560,11 +2559,11 @@ static void generate_flags(int source, int target) if(tfl >= source) { tfl -= source; - bff_mask[i] = trfp + 1; + bff_mask[i] = ormask[trfp + 1]; trfp ^= 2; } else - bff_mask[i] = trfp; + bff_mask[i] = ormask[trfp]; } } |