Bug#289182: kino endianness issues on powerpc

2005-03-29 Thread Michael Schmitz
 On Fri, Mar 25, 2005 at 01:38:27AM +0100, Daniel Kobras wrote:
  On Tue, Mar 22, 2005 at 08:36:01PM +, Paul Brossier wrote:
   there is probably a better mean to do so though, ie checking what
   type of conversion is needed according to libavcodec, but it does
   effectively fixes the XV Display of kino.
 
  Actually, we should probably check the value of component_order[] in the
  struct returned by XvListImageFormats() and shuffle components as
  appropriate, but from the feedback so far, apparently nowadays it is
  sufficient to keep the order of YUV components fixed, independent of
  host arch. I've attached a patch to this effect, and would welcome
  feedback from testers.

 it works perfectly on powerpc, a much nicer solution indeed. and
 the first patch was wrong, the image was slightly more redish.

Entirely possible; I hacked the original patch based on my limited
understanding of YUV encoding, using a perhaps flawed piece of code from
a yet earlier patch. It was enough to convice me there's some missing
endianness adjustment, and to make the display bearable.

   audio seems to work better now. there are a few glitches but at
   least it's not white noise. oh and export to mpeg2 and wav bot
   work.
 
  Great. We're getting closer, it seems. Does the video part of mpeg2
  export also work correctly now?

 oh yes, very well. and the video filters too.

Great, thanks for testing this (and sorry I didn't report any test
results - simply didn't get around to do more video editing yet).

Michael



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#289182: kino endianness issues on powerpc

2005-03-24 Thread Daniel Kobras
On Tue, Mar 22, 2005 at 08:36:01PM +, Paul Brossier wrote:
 On Tue, Mar 08, 2005 at 03:39:16PM +0100, Daniel Kobras wrote:
  Furthermore, it looks obviously buggy. Eg. the little-endian
  version of the first loop uses values Y[0] and Y[1], while the
  big-endian variant reuses Y[0] twice. And I can't make sense of
  the other array indices, either. I was expecting something like
  dest_big_endian = bswap_32(dest_little_endian); maybe that's
  what was intended, and the current version of the patch makes
  little difference with smooth input data? 
 
 well, i am not familiar with these maths, but it does look like
 there's some logic:
 
 LE   - BE

 
 Cr[0]  24  - Cr[0]
 Y [1]  16  - Y [0]  8
 Cb[0]  8   - Cb[1]  16
 Y [0]- Y [0]  24

Certainly, but as I noted before, this logic is flawed, incorrectly
reusing an old luminance value and shifting the blue component by one
pixel. (In a smooth image, artifacts might be small, though.) 

 there is probably a better mean to do so though, ie checking what
 type of conversion is needed according to libavcodec, but it does
 effectively fixes the XV Display of kino.

Actually, we should probably check the value of component_order[] in the
struct returned by XvListImageFormats() and shuffle components as
appropriate, but from the feedback so far, apparently nowadays it is
sufficient to keep the order of YUV components fixed, independent of
host arch. I've attached a patch to this effect, and would welcome
feedback from testers.

 audio seems to work better now. there are a few glitches but at
 least it's not white noise. oh and export to mpeg2 and wav bot
 work.

Great. We're getting closer, it seems. Does the video part of mpeg2
export also work correctly now?

Paul, thanks a lot for looking into this issue!

Regards,

Daniel.

#! /bin/sh /usr/share/dpatch/dpatch-run
## 40_yuvdisplay_endian_fixes.dpatch by Daniel Kobras [EMAIL PROTECTED]
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Always unroll YUV formats in same order, independent of host
## DP: endianness.

@DPATCH@
diff -urNad kino/src/frame.cc /tmp/dpep.thGYPG/kino/src/frame.cc
--- kino/src/frame.cc   2005-03-25 00:52:58.0 +0100
+++ /tmp/dpep.thGYPG/kino/src/frame.cc  2005-03-25 00:57:04.0 +0100
@@ -1052,12 +1052,10 @@
 
for ( int x = 0; x  width; x += 2 )
{
-   *reinterpret_castuint32_t*( dest ) = Y[ 0 ] + 
( Cb[ 0 ]  8 ) + ( Y[ 1 ]  16 ) + ( Cr[ 0 ]  24 );
-
-   dest += 4;
-   Y += 2;
-   ++Cb;
-   ++Cr;
+   *dest++ = *Y++;
+   *dest++ = *Cb++;
+   *dest++ = *Y++;
+   *dest++ = *Cr++;
}
}
}
@@ -1071,13 +1069,14 @@
 
for ( int x = 0; x  width; x += 4 )
{
-   *reinterpret_castuint32_t*( dest ) = Y[ 0 ] + 
( Cb[ 0 ]  8 ) + ( Y[ 1 ]  16 ) + ( Cr[ 0 ]  24 );
-   *reinterpret_castuint32_t*( dest + 4 ) = Y[ 2 
] + ( Cb[ 0 ]  8 ) + ( Y[ 3 ]  16 ) + ( Cr[ 0 ]  24 );
-
-   dest += 8;
-   Y += 4;
-   ++Cb;
-   ++Cr;
+   *dest++ = *Y++;
+   *dest++ = *Cb;
+   *dest++ = *Y++;
+   *dest++ = *Cr;
+   *dest++ = *Y++;
+   *dest++ = *Cb++;
+   *dest++ = *Y++;
+   *dest++ = *Cr++;
}
}
}


Bug#289182: kino endianness issues on powerpc

2005-03-24 Thread Paul Brossier
On Fri, Mar 25, 2005 at 01:38:27AM +0100, Daniel Kobras wrote:
 On Tue, Mar 22, 2005 at 08:36:01PM +, Paul Brossier wrote:
  there is probably a better mean to do so though, ie checking what
  type of conversion is needed according to libavcodec, but it does
  effectively fixes the XV Display of kino.
 
 Actually, we should probably check the value of component_order[] in the
 struct returned by XvListImageFormats() and shuffle components as
 appropriate, but from the feedback so far, apparently nowadays it is
 sufficient to keep the order of YUV components fixed, independent of
 host arch. I've attached a patch to this effect, and would welcome
 feedback from testers.

it works perfectly on powerpc, a much nicer solution indeed. and
the first patch was wrong, the image was slightly more redish.

  audio seems to work better now. there are a few glitches but at
  least it's not white noise. oh and export to mpeg2 and wav bot
  work.
 
 Great. We're getting closer, it seems. Does the video part of mpeg2
 export also work correctly now?

oh yes, very well. and the video filters too.

bye, paul


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#289182: kino endianness issues on powerpc

2005-03-22 Thread Paul Brossier
Hi,

On Tue, Mar 08, 2005 at 03:39:16PM +0100, Daniel Kobras wrote:
 On Mon, Feb 14, 2005 at 05:41:26PM +0100, Michael Schmitz wrote:
  I can confirm the XV problem is the same old problem that a patch had
  been posted for in http://jira.schirmacher.de/jira-kino/browse/KINO-76.
  I've added some #ifdef __BIG_ENDIAN__ around that, the following patch
  should finally fix the display issue:

 Err, this patch did fix the display problems for you!? It does
 not touch a single line of code that was executed in the Debian
 build that uses libdv to do the decoding. (Actually, this is no
 longer true as of today.  Now with ffmpeg in main, I've
 uploaded a new version that uses libavcodec instead of libdv
 for the decoding part.) 

mmh, after testing the patch, it does look much better with :)

 Furthermore, it looks obviously buggy. Eg. the little-endian
 version of the first loop uses values Y[0] and Y[1], while the
 big-endian variant reuses Y[0] twice. And I can't make sense of
 the other array indices, either. I was expecting something like
 dest_big_endian = bswap_32(dest_little_endian); maybe that's
 what was intended, and the current version of the patch makes
 little difference with smooth input data? 

well, i am not familiar with these maths, but it does look like
there's some logic:

LE   - BE

Cr[0]  24  - Cr[0]
Y [1]  16  - Y [0]  8
Cb[0]  8   - Cb[1]  16
Y [0]- Y [0]  24

and for the third line (dest + 4)

Y [2]- Y [0]  24
Cb[0]  8   - Cb[3]  16
Y [3]  16  - Y [0]  8
Cr[0]  24  - Cr[2]

there is probably a better mean to do so though, ie checking what
type of conversion is needed according to libavcodec, but it does
effectively fixes the XV Display of kino.

  --- src/frame.cc.org2005-02-14 16:59:13.798585200 +0100
  +++ src/frame.cc2005-02-14 17:14:01.196680184 +0100

attached is and updated patch to go in debian/patches

 I've uploaded kino 0.75-5 that should make the archive by today's
 dinstall run. It includes a comprehensive patch that might fix the
 endianness problems with audio. Alas, I had to do some guessing on the
 endianness of the input data, so it might actually do worse than before,
 but in any case the framework is now in place to fix this with a few
 keypresses.

audio seems to work better now. there are a few glitches but at
least it's not white noise. oh and export to mpeg2 and wav bot
work.

 The second change in 0.75-5 related to this bug was the
 mentioned switch from libdv to libavcodec for video decoding. There's a
 small chance that it fixes the display problem out of the box already.

I can confirm that the switch did not fix anything.

IMO with this last patch the bug should be closed, as the main
functionalities of kino (ie display and export) have been fixed.
there are other bugs around, but they are probably not endian
related nor RC.

Cheers, piem
#! /bin/sh /usr/share/dpatch/dpatch-run
## 40_yuv_endian_fix.dpatch by  [EMAIL PROTECTED]
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.

@DPATCH@
diff -urNad kino-0.75/src/frame.cc /tmp/dpep.RS5WqC/kino-0.75/src/frame.cc
--- kino-0.75/src/frame.cc  2005-03-22 20:29:47.0 +
+++ /tmp/dpep.RS5WqC/kino-0.75/src/frame.cc 2005-03-22 20:30:25.0 
+
@@ -1052,7 +1052,11 @@
 
for ( int x = 0; x  width; x += 2 )
{
+#if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN
+*reinterpret_castuint32_t*( dest ) = Cr[ 0 ] 
+ ( Y[ 0 ]  8 ) + ( Cb[ 1 ]  16 ) + ( Y[ 0 ]  24 );
+#else
*reinterpret_castuint32_t*( dest ) = Y[ 0 ] + 
( Cb[ 0 ]  8 ) + ( Y[ 1 ]  16 ) + ( Cr[ 0 ]  24 );
+#endif
 
dest += 4;
Y += 2;
@@ -1071,8 +1075,13 @@
 
for ( int x = 0; x  width; x += 4 )
{
+#if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN
+*reinterpret_castuint32_t*( dest ) = Cr[ 0 ] 
+ ( Y[ 0 ]  8 ) + ( Cb[ 1 ]  16 ) + ( Y[ 0 ]  24 );
+*reinterpret_castuint32_t*( dest + 4 ) = Cr[ 
2 ] + ( Y[ 0 ]  8 ) + ( Cb[ 3 ]  16 ) + ( Y[ 0 ]  24 );
+#else
*reinterpret_castuint32_t*( dest ) = Y[ 0 ] + 
( Cb[ 0 ]  8 ) + ( Y[ 1 ]  16 ) + ( Cr[ 0 ]  24 );
*reinterpret_castuint32_t*( dest + 4 ) = Y[ 2 
] + ( Cb[ 0 ]  8 ) + ( Y[ 3 ]  16 ) + ( Cr[ 0 ]  24 );
+#endif
 
dest += 8;
Y += 4;


Bug#289182: kino endianness issues on powerpc

2005-03-08 Thread Daniel Kobras
On Mon, Feb 14, 2005 at 05:41:26PM +0100, Michael Schmitz wrote:
 I can confirm the XV problem is the same old problem that a patch had
 been posted for in http://jira.schirmacher.de/jira-kino/browse/KINO-76.
 I've added some #ifdef __BIG_ENDIAN__ around that, the following patch
 should finally fix the display issue:

Err, this patch did fix the display problems for you!? It does not touch
a single line of code that was executed in the Debian build that uses
libdv to do the decoding. (Actually, this is no longer true as of today.
Now with ffmpeg in main, I've uploaded a new version that uses
libavcodec instead of libdv for the decoding part.) Furthermore, it
looks obviously buggy. Eg. the little-endian version of the first loop
uses values Y[0] and Y[1], while the big-endian variant reuses Y[0]
twice. And I can't make sense of the other array indices, either. I was
expecting something like dest_big_endian = bswap_32(dest_little_endian);
maybe that's what was intended, and the current version of the patch
makes little difference with smooth input data? Anyway, what I remember
from years ago, Xv did expect image data in host-endian format with DRI
turned off, and in PCI-endian (little-endian) format with DRI turned on.
I'd be very interested to know whether this still holds true. (Cc'ing
debian-powerpc, hoping someone there might be able to help.)

 --- src/frame.cc.org  2005-02-14 16:59:13.798585200 +0100
 +++ src/frame.cc  2005-02-14 17:14:01.196680184 +0100
 @@ -1052,7 +1052,11 @@
 
   for ( int x = 0; x  width; x += 2 )
   {
 +#if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN
 + *reinterpret_castuint32_t*( dest ) = Cr[ 0 ] 
 + ( Y[ 0 ]  8 ) + ( Cb[ 1 ]  16 ) + ( Y[ 0 ]  24 );
 +#else
   *reinterpret_castuint32_t*( dest ) = Y[ 0 ] + 
 ( Cb[ 0 ]  8 ) + ( Y[ 1 ]  16 ) + ( Cr[ 0 ]  24 );
 +#endif
 
   dest += 4;
   Y += 2;
 @@ -1071,8 +1075,13 @@
 
   for ( int x = 0; x  width; x += 4 )
   {
 +#if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN
 + *reinterpret_castuint32_t*( dest ) = Cr[ 0 ] 
 + ( Y[ 0 ]  8 ) + ( Cb[ 1 ]  16 ) + ( Y[ 0 ]  24 );
 + *reinterpret_castuint32_t*( dest + 4 ) = Cr[ 
 2 ] + ( Y[ 0 ]  8 ) + ( Cb[ 3 ]  16 ) + ( Y[ 0 ]  24 );
 +#else
   *reinterpret_castuint32_t*( dest ) = Y[ 0 ] + 
 ( Cb[ 0 ]  8 ) + ( Y[ 1 ]  16 ) + ( Cr[ 0 ]  24 );
   *reinterpret_castuint32_t*( dest + 4 ) = Y[ 2 
 ] + ( Cb[ 0 ]  8 ) + ( Y[ 3 ]  16 ) + ( Cr[ 0 ]  24 );
 +#endif
 
   dest += 8;
   Y += 4;
 
 Waiting for your audio export fix now :-)

I've uploaded kino 0.75-5 that should make the archive by today's
dinstall run. It includes a comprehensive patch that might fix the
endianness problems with audio. Alas, I had to do some guessing on the
endianness of the input data, so it might actually do worse than before,
but in any case the framework is now in place to fix this with a few
keypresses. The second change in 0.75-5 related to this bug was the
mentioned switch from libdv to libavcodec for video decoding. There's a
small chance that it fixes the display problem out of the box already.
Otherwise, I'll have to apply a cleaned up version of the cited patch.
In any case, this move should significantly boost decoding performance
on non-x86 and bring us a bit closer to getting kino usable on ppc and
friends as well.

Regards,

Daniel.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#289182: kino endianness issues on powerpc

2005-03-08 Thread Michel Dänzer
On Tue, 2005-03-08 at 15:39 +0100, Daniel Kobras wrote:
 
 Anyway, what I remember from years ago, Xv did expect image data in 
 host-endian format with DRI turned off, and in PCI-endian (little-endian) 
 format with DRI turned on.

The expected byte order should be well-defined regardless of whether the
DRI is enabled or not. If it isn't, that's probably a driver bug.


-- 
Earthling Michel Dnzer  | Debian (powerpc), X and DRI developer
Libre software enthusiast|   http://svcs.affero.net/rm.php?r=daenzer




Bug#289182: kino endianness issues on powerpc

2005-03-08 Thread Michael Schmitz
 On Mon, Feb 14, 2005 at 05:41:26PM +0100, Michael Schmitz wrote:
  I can confirm the XV problem is the same old problem that a patch had
  been posted for in http://jira.schirmacher.de/jira-kino/browse/KINO-76.
  I've added some #ifdef __BIG_ENDIAN__ around that, the following patch
  should finally fix the display issue:

 Err, this patch did fix the display problems for you!? It does not touch
 a single line of code that was executed in the Debian build that uses
 libdv to do the decoding. (Actually, this is no longer true as of today.

It did fix the xv problems for me - not sure what libdv version I was
using at that time. 0.103-2 is what I find in the package cache.
My guess is I didn't use libavcodec at first - preview speed was abysmal
and is quite decent now that I built against libdv4 plus libavcodec-cvs.
The patch is still required to fix byte ordering with libavcodec, however.

 Now with ffmpeg in main, I've uploaded a new version that uses
 libavcodec instead of libdv for the decoding part.) Furthermore, it
 looks obviously buggy. Eg. the little-endian version of the first loop
 uses values Y[0] and Y[1], while the big-endian variant reuses Y[0]
 twice. And I can't make sense of the other array indices, either. I was
 expecting something like dest_big_endian = bswap_32(dest_little_endian);
 maybe that's what was intended, and the current version of the patch

I took the patch from a URL mentioned in one of the comments in the BTS. I
had established that yuv byte ordering was broken by experimenting with
byteswappig schemes in displayer.cc but that, naturally, would not fix
export issues.

 makes little difference with smooth input data? Anyway, what I remember
 from years ago, Xv did expect image data in host-endian format with DRI
 turned off, and in PCI-endian (little-endian) format with DRI turned on.

DRI is off in my case IIRC (I need to use UseFBDev in the server).

 I'd be very interested to know whether this still holds true. (Cc'ing
 debian-powerpc, hoping someone there might be able to help.)

Just saw a message by Michel Dänzer arrive in my inbox, seems he knew
something.

 I've uploaded kino 0.75-5 that should make the archive by today's
 dinstall run. It includes a comprehensive patch that might fix the
 endianness problems with audio. Alas, I had to do some guessing on the
 endianness of the input data, so it might actually do worse than before,
 but in any case the framework is now in place to fix this with a few
 keypresses. The second change in 0.75-5 related to this bug was the
 mentioned switch from libdv to libavcodec for video decoding. There's a
 small chance that it fixes the display problem out of the box already.

I'll test that ASAP.

 Otherwise, I'll have to apply a cleaned up version of the cited patch.
 In any case, this move should significantly boost decoding performance
 on non-x86 and bring us a bit closer to getting kino usable on ppc and
 friends as well.

You bet - I was quite happy with ffmpeg (hacked to assume BE audio) as
export pipe plus libavcodec for decoding.

Michael




Bug#289182: [Kino-dev] [schmitz@zirkon.biophys.uni-duesseldorf.de: Bug#289182: kino endianness issues on powerpc]

2005-02-18 Thread Dan Dennedy
No movement. What is sickening is that I even have an iMac I could work
on this, but I am already way overburdened with other tasks. As I like
to remind people, I still have the rest of my life, so I might get
around to it ;-)

On Thu, 2005-02-17 at 21:14 -0500, Henry A. Leinhos wrote:
 Hi,
 
 Has there been any movement regarding endian issues in Kino?  Are there 
 any patches I can try to clean some up, or perhaps test?




-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#289182: kino endianness issues on powerpc

2005-02-14 Thread Michael Schmitz
Sorry for the late reply; I've been away from my Powerbook (or indeed,
the net) for the last weeks...

 On Fri, Jan 07, 2005 at 06:37:52PM +0100, Michael Schmitz wrote:
  Severity: serious

 Can you please comment on why you think these bugs make kino unsuitable
 for release; specifically, which section of policy is violated? I'm not

kino in its current shape is non-functional in a couple of ways on PPC
(and perhaps other BE architectures). Steve initially suggested 'grave'
and I think that's the correct one indeed - IIRC I had not succeeded in
finding an export method that generates both correct video and audio
formats - either one is broken, or both.

Anyway, you seem to have found the audio problem, and the video problem
indeed seems to be the old byteswap thing (see below) so I guess this can
be finally fixed soon.

 denying that the bugs you reported are nasty and should be fixed, but
 unless you convince me otherwise, the severity looks inappropriate to
 me.

  kino appears to have multiple issues with data endianness on powerpc.
 
  Symptoms:
 
  Video display: fine when using GDK, reverse video (or rather: magenta on
  cyan) when using XV for display in the edit and trim menus. Audio in
  edit/trim mode is fine BTW (see audio problems below).

 This sounds a lot like an old Xv bug that first came up in 2002. Can you
 please supply me with the output of xvinfo? Which system are you testing

X-Video Extension version 2.2
screen #0
  Adaptor #0: ATI Radeon Video Overlay
number of ports: 1
port base: 53
operations supported: PutImage
supported visuals:
  depth 24, visualID 0x21
  depth 24, visualID 0x22
number of attributes: 12
  XV_SET_DEFAULTS (range 0 to 1)
  client settable attribute
  XV_AUTOPAINT_COLORKEY (range 0 to 1)
  client settable attribute
  client gettable attribute (current value is 1)
  XV_COLORKEY (range 0 to -1)
  client settable attribute
  client gettable attribute (current value is 30)
  XV_DOUBLE_BUFFER (range 0 to 1)
  client settable attribute
  client gettable attribute (current value is 1)
  XV_BRIGHTNESS (range -1000 to 1000)
  client settable attribute
  client gettable attribute (current value is 0)
  XV_CONTRAST (range -1000 to 1000)
  client settable attribute
  client gettable attribute (current value is 0)
  XV_SATURATION (range -1000 to 1000)
  client settable attribute
  client gettable attribute (current value is 0)
  XV_COLOR (range -1000 to 1000)
  client settable attribute
  client gettable attribute (current value is 0)
  XV_HUE (range -1000 to 1000)
  client settable attribute
  client gettable attribute (current value is 0)
  XV_RED_INTENSITY (range -1000 to 1000)
  client settable attribute
  client gettable attribute (current value is 0)
  XV_GREEN_INTENSITY (range -1000 to 1000)
  client settable attribute
  client gettable attribute (current value is 0)
  XV_BLUE_INTENSITY (range -1000 to 1000)
  client settable attribute
  client gettable attribute (current value is 0)
maximum XvImage size: 2048 x 2048
Number of image formats: 4
  id: 0x32595559 (2YUY)
guid: 59555932--0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
  id: 0x59565955 (YVYU)
guid: 55595659--0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
  id: 0x32315659 (21VY)
guid: 59563132--0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
  id: 0x30323449 (024I)
guid: 49343230--0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)

 this on, and what's your graphics adapter? Is DRI turned on, and does it

That's a Powerbook G4 17 (PowerBook5,5). The graphics adapter is ATI
Technologies Inc RV350 [Mobility Radeon 9600 M10]. DRI is disabled, as
currrent XFree86 needs to use the framebuffer device interface for mode
switching etc., and this clashes with DRI.

With altivec optimized encoders, encoding speed is about on par with what
the MacOS tools achieve, so it's only screen display that's dog slow here.

 make a difference if you turn it off? For reference, the original
 discussion should be available from here:
 http://www.geocrawler.com/mail/thread.php3?subject=%5Blibdv-dev%5D+Re%3A+Should+dv1394+work+on+PPC%3Flist=3147

  I suspect kino declares BE audio data to be LE in the DV export (or indeed
  any) pipe. No idea what's the cause of the XV and mpeg2enc endianness
  problems though.

 The audio problems seem to be caused (at least) by big-endian length
 fields in an 

Bug#289182: kino endianness issues on powerpc

2005-02-14 Thread Michael Schmitz
  I suspect kino declares BE audio data to be LE in the DV export (or indeed
  any) pipe. No idea what's the cause of the XV and mpeg2enc endianness
  problems though.

 The audio problems seem to be caused (at least) by big-endian length
 fields in an otherwise little-endian WAV file. I'm not too familiar with
 the various video encodings. I'll have another close look on it over the
 week-end, but might have to pass on the problem to upstream for a fix.

I can confirm the XV problem is the same old problem that a patch had
been posted for in http://jira.schirmacher.de/jira-kino/browse/KINO-76.
I've added some #ifdef __BIG_ENDIAN__ around that, the following patch
should finally fix the display issue:

--- src/frame.cc.org2005-02-14 16:59:13.798585200 +0100
+++ src/frame.cc2005-02-14 17:14:01.196680184 +0100
@@ -1052,7 +1052,11 @@

for ( int x = 0; x  width; x += 2 )
{
+#if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN
+   *reinterpret_castuint32_t*( dest ) = Cr[ 0 ] 
+ ( Y[ 0 ]  8 ) + ( Cb[ 1 ]  16 ) + ( Y[ 0 ]  24 );
+#else
*reinterpret_castuint32_t*( dest ) = Y[ 0 ] + 
( Cb[ 0 ]  8 ) + ( Y[ 1 ]  16 ) + ( Cr[ 0 ]  24 );
+#endif

dest += 4;
Y += 2;
@@ -1071,8 +1075,13 @@

for ( int x = 0; x  width; x += 4 )
{
+#if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN
+   *reinterpret_castuint32_t*( dest ) = Cr[ 0 ] 
+ ( Y[ 0 ]  8 ) + ( Cb[ 1 ]  16 ) + ( Y[ 0 ]  24 );
+   *reinterpret_castuint32_t*( dest + 4 ) = Cr[ 
2 ] + ( Y[ 0 ]  8 ) + ( Cb[ 3 ]  16 ) + ( Y[ 0 ]  24 );
+#else
*reinterpret_castuint32_t*( dest ) = Y[ 0 ] + 
( Cb[ 0 ]  8 ) + ( Y[ 1 ]  16 ) + ( Cr[ 0 ]  24 );
*reinterpret_castuint32_t*( dest + 4 ) = Y[ 2 
] + ( Cb[ 0 ]  8 ) + ( Y[ 3 ]  16 ) + ( Cr[ 0 ]  24 );
+#endif

dest += 8;
Y += 4;

Waiting for your audio export fix now :-)

Michael



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#289182: kino endianness issues on powerpc

2005-01-30 Thread Paul Brossier
Hi,

I have a debian powerpc available and am ready to help.

The thread you were mentionning is at:
http://sourceforge.net/mailarchive/message.php?msg_id=1699887

I will post my advances to the debian bts. Let me know if you have any
more patches.

cheers, piem


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#289182: kino endianness issues on powerpc

2005-01-27 Thread Daniel Kobras
On Wed, Jan 26, 2005 at 09:59:08PM -0800, Steve Langasek wrote:
 You're right that this bug is not a policy violation; this is a grave bug,
 which is the severity for bugs that render a package unusable or mostly
 so.  We should not be releasing unusable binaries for any architecture;
 either the binaries for all big-endian architectures will need to be
 removed, or the bug fixed, for kino to be included in sarge.

I disagree. One of several display methods is broken. So is one of
several export methods. That does not sound unusable to me. (kino indeed
is mostly unusable on anything but x86 because libdv is dog slow on
these archs, but that's another matter.)

Regards,

Daniel.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#289182: kino endianness issues on powerpc

2005-01-27 Thread Steve Langasek
On Thu, Jan 27, 2005 at 10:58:09AM +0100, Daniel Kobras wrote:
 On Wed, Jan 26, 2005 at 09:59:08PM -0800, Steve Langasek wrote:
  You're right that this bug is not a policy violation; this is a grave bug,
  which is the severity for bugs that render a package unusable or mostly
  so.  We should not be releasing unusable binaries for any architecture;
  either the binaries for all big-endian architectures will need to be
  removed, or the bug fixed, for kino to be included in sarge.

 I disagree. One of several display methods is broken. So is one of
 several export methods. That does not sound unusable to me. (kino indeed
 is mostly unusable on anything but x86 because libdv is dog slow on
 these archs, but that's another matter.)

If it really only affects one of several export methods and one of several
display methods, then I agree with you that it isn't grave.  The submitter's
mail wasn't all that clear that other methods do work, only that certain
methods that he tried did not.  If you know for certain that the main
functionality of kino is available on powerpc, then feel free to downgrade
this bug.

-- 
Steve Langasek
postmodern programmer


signature.asc
Description: Digital signature


Bug#289182: kino endianness issues on powerpc

2005-01-26 Thread Steve Langasek
severity 289182 grave
thanks

Hi Daniel,

You're right that this bug is not a policy violation; this is a grave bug,
which is the severity for bugs that render a package unusable or mostly
so.  We should not be releasing unusable binaries for any architecture;
either the binaries for all big-endian architectures will need to be
removed, or the bug fixed, for kino to be included in sarge.

Thanks,
-- 
Steve Langasek
postmodern programmer


signature.asc
Description: Digital signature


Bug#289182: kino endianness issues on powerpc

2005-01-20 Thread Daniel Kobras
On Fri, Jan 07, 2005 at 06:37:52PM +0100, Michael Schmitz wrote:
 Severity: serious

Can you please comment on why you think these bugs make kino unsuitable
for release; specifically, which section of policy is violated? I'm not
denying that the bugs you reported are nasty and should be fixed, but
unless you convince me otherwise, the severity looks inappropriate to
me.

 kino appears to have multiple issues with data endianness on powerpc.
 
 Symptoms:
 
 Video display: fine when using GDK, reverse video (or rather: magenta on
 cyan) when using XV for display in the edit and trim menus. Audio in
 edit/trim mode is fine BTW (see audio problems below).

This sounds a lot like an old Xv bug that first came up in 2002. Can you
please supply me with the output of xvinfo? Which system are you testing
this on, and what's your graphics adapter? Is DRI turned on, and does it
make a difference if you turn it off? For reference, the original
discussion should be available from here:
http://www.geocrawler.com/mail/thread.php3?subject=%5Blibdv-dev%5D+Re%3A+Should+dv1394+work+on+PPC%3Flist=3147

 I suspect kino declares BE audio data to be LE in the DV export (or indeed
 any) pipe. No idea what's the cause of the XV and mpeg2enc endianness
 problems though.

The audio problems seem to be caused (at least) by big-endian length
fields in an otherwise little-endian WAV file. I'm not too familiar with
the various video encodings. I'll have another close look on it over the
week-end, but might have to pass on the problem to upstream for a fix.

Thanks,

Daniel.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]