summaryrefslogtreecommitdiffstats
path: root/libmpdemux/muxer_mpeg.c
diff options
context:
space:
mode:
authornicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-12-04 20:38:46 +0000
committernicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-12-04 20:38:46 +0000
commit858813f36fb0977afa8191d70f08ac375643b09d (patch)
tree990b3bbd17e6456a404f3ed145d8840b017276f8 /libmpdemux/muxer_mpeg.c
parentb20ee9dff3479da5ea961bc4280c3237e2000757 (diff)
downloadmpv-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
Diffstat (limited to 'libmpdemux/muxer_mpeg.c')
-rw-r--r--libmpdemux/muxer_mpeg.c9
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];
}
}