Jason Tackaberry wrote:
> Author: tack
> Date: Mon May 21 23:08:28 2007
> New Revision: 2681
>
> Modified:
>    trunk/popcorn/src/backends/xine/child.py
>
> Log:
> Commented out some dubious code and some wrong code, and added some notes
> about that.

Since it is my code, let me explain.

> Modified: trunk/popcorn/src/backends/xine/child.py
> ==============================================================================
> --- trunk/popcorn/src/backends/xine/child.py  (original)
> +++ trunk/popcorn/src/backends/xine/child.py  Mon May 21 23:08:28 2007
> @@ -157,16 +157,23 @@
>          Return the frame output position, dimensions and aspect
>          """
>          if self._vo_settings:
> -            if self._vo_settings[0] and self._vo_settings[1][:2] == (width, 
> height):
> +            #if self._vo_settings[0] and self._vo_settings[1][:2] == (width, 
> height):
>                  # Use cached values. Dimensions have not changed between the
>                  # last frame. The aspect may be different now because we 
> messed with
>                  # it. This is a bug somehow and it happens. So we return the 
> cached
>                  # values and reset self._vo_settings[0] so we recalculate 
> when
>                  # the aspect changes the next time.
> -                self._vo_settings = False, (width, height, aspect)
> -                return self._vo_settings_calculated
> +
> +                # (from tack) why don't we want to recalculate here?   We 
> need to,
> +                # and it's not a bug that you'd get the same frame size but a
> +                # different aspect.  Consider an NTSC DVD: the frame size is
> +                # always 720x480, but the aspect is either 16/9 or 4/3.  By 
> not
> +                # calculating the dimensions here we are breaking aspect.
> +                #self._vo_settings = False, (width, height, aspect)
> +                #return self._vo_settings_calculated

It is a special case with self._vo_settings[0] = True. I had the
straneg bug that aspect changes between two frames between two
values. I have no idea why. So this code only is active between a full
calculation and the next frame. Later frames are handled by:

>              if self._vo_settings[1] == (width, height, aspect):
>                  # use cache when nothing has changed
> +                print " <-", self._vo_settings_calculated
>                  return self._vo_settings_calculated

This includes the aspect. Do you have files where the aspect changes
two times between frames?

>          # keep given video aspect in calculation (in most cases 1.0)
> -        aspect *= vid_a
> +        # Why multiply by vid_a?  This isn't right.
> +        # aspect *= vid_a

So what is? I had a video where this is what I needed to make it
work. We need to calculate with vid_a at some point.


Dischi

-- 
One nuclear bomb can ruin your whole day.

Attachment: pgpqBazgQhhVy.pgp
Description: PGP signature

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to