Hi Harish,

Similar to your use case:

My display size ( i mean display panel size) is 800x480.

I tried to play 176x144 mp4 stream.

And i kept android layoutwidth=352 and android layoutheight= 288 in
movieview.xml

In my case the result is that the surface now set to 352X288 at the
center, i am still getting 176X144 display on the left corner of this
surface and no resize from 176x144 to 352x288.

Observations in my environment is that,

Originally when,
android layoutwidth=fill parent and android layoutheight= fill parent

the surface is equivalent to display panel width and display panel height.

This means in 800X480 case,

android layoutwidth=800 and android layoutheight= 480.

So, it looks like if we try to play input streams like 400X240 or 200X120
whose aspect ratio is same as 800X480, there is no resize. Otherwise if you
try to play input streams like 320X240, 176X144, 560X368 whose aspect ratios
are not same as 800X480, these are getting resized to nearest size of
800X480 maintaining the aspect ratio.

Similar observations, i am getting if i change the
android layoutwidth=352 and android layoutheight= 288.

Now the surface is 352X288, i played 176X144 no resize and when i played
320X240, 560X368, 640X480 input streams  all these are resized and displayed
as 352X288.

Any idea where exactly this resize video postprocessing algorithm is
implemented.

Definitely it takes the above parameters video width , video height, display
width and display height from application and does resizing,

More specifically, any idea where inside surface flinger this resize
processing is being done??

Regards,
Sreedhar

On Fri, Jun 5, 2009 at 10:22 PM, Harishkumar V <[email protected]>wrote:

> Hi,
>
> It should,
>
> how it works -> the calculation is like this,
>
> for example, in ur case
>
> display width (dw) - 640
> display height (dh) - 480
> video width (vw) - 320
> video height (vh) - 240
>
> these are done in onmeasure function in videoview widget
>
> case 1:
>
> vw*dh > vh*dw
> then,
> dh=(vh*dw)/vw;
> dw= no change
>
> case 2:
>
> vw*dh < vh*dw
> then,
> dw=(dh*vw)/vh;
> dh= no change
>
> case 3:
>
> if the above both cases not satisfied,
> (ie) vw*dh = vh*dw
> then dw and dh kept the same.
>
> finally, the video will be played at dw x dh.
>
> It works for me, my display size is 640x430.
>
> for testing, i kept android layoutwidth=352 and android layoutheight= 288
> in movieview.xml
>
> when i play a 3gp video file (176x144) from browser through streaming, it
> plays at 352x288.
>
>
> Thanks and Regards,
> HarishKumar.V
>
>
>   On Fri, Jun 5, 2009 at 9:00 PM, sreedhar b <[email protected]>wrote:
>
>> Hi Harish,
>>
>> I think the video view widget am using is by default available inside
>> android.
>> It uses the Camera.apk internally having the movie view.
>>
>> And thanks for the inputs on my query.
>>
>> As said in my previous mail, for a VGA(640X480) display panel the resize
>> is not happening for the cases 2 and 3 mentioned.
>>
>> Specifically,
>>  2.          QVGA(320X240)              QVGA(320X240)=> (No resize)
>>
>> 3.          160x120                         160x120            => (No
>> resize)
>>
>> Otherwise for other i/p stream resolutions the resize is happening.
>>
>>
>> So, as per your suggestion, if i use the following code. Please correct if
>> the notation for width and height fixed values is like "640px" and "480px"?
>>
>> Will this change does resize to full screen(VGA) of cases 2 and 3 as well?
>>
>> I suppose this change will affect the camera.apk alone.
>>
>>  <VideoView
>>      android:id="@+id/surface_view"
>>         android:layout_width="640px"             -> can be replaced to any
>> desried width
>>         android:layout_height="480px"            -> can be replaced to any
>> desired height
>>         android:layout_centerInParent="true"
>>     />
>>
>> Regards,
>> Sreedhar
>>
>>   On Fri, Jun 5, 2009 at 11:47 AM, Harishkumar V <[email protected]
>> > wrote:
>>
>>> Hi,
>>>
>>> in movieview.xml,
>>>
>>> <VideoView
>>>      android:id="@+id/surface_view"
>>>         android:layout_width="fill_parent"             -> can be replaced
>>> to any desried width
>>>         android:layout_height="fill_parent"            -> can be replaced
>>> to any desired height
>>>         android:layout_centerInParent="true"
>>>     />
>>>
>>> Thanks and Regards,
>>> HarishKumar.V
>>>
>>>   On Fri, Jun 5, 2009 at 9:50 AM, Harishkumar V <[email protected]
>>> > wrote:
>>>
>>>> Hi,
>>>>
>>>> u can check movieview.xml, where andorid:layout_width and
>>>> android:layout_height plays the trick.
>>>>
>>>> Thanks and Regards,
>>>> HarishKumar.V
>>>>
>>>>   On Thu, Jun 4, 2009 at 9:05 PM, Harishkumar V <
>>>> [email protected]> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> This is achieved using OnMeasure() in VideoView.java.
>>>>>
>>>>> Also, can u share me how to get the videoplayer in android, presently i
>>>>> am using apidemos to play the video.
>>>>>
>>>>> Thanks and Regards,
>>>>> HarishKumar.V
>>>>>
>>>>>
>>>>> On Thu, Jun 4, 2009 at 8:38 PM, sreedhar b <[email protected]>wrote:
>>>>>
>>>>>> Hi Dave,
>>>>>>
>>>>>> I am currently having my android setup for two display panels of
>>>>>> resolution VGA, WVGA
>>>>>>
>>>>>> My observations for video playback using video player :
>>>>>>
>>>>>> In case of VGA display panel:
>>>>>>
>>>>>> S.no.     Input stream resoution    O/P display resolution
>>>>>>
>>>>>> 1.          VGA(640X480)
>>>>>> VGA(640X480)
>>>>>>
>>>>>> 2.          QVGA(320X240)              QVGA(320X240)=> (No resize)
>>>>>>
>>>>>> 3.          160x120                         160x120            => (No
>>>>>> resize)
>>>>>>
>>>>>> 4.          400X240                          Near to VGA     =>
>>>>>> (resize and maintaining the aspect ratio same as i/p)
>>>>>>
>>>>>> 5.          176X144                          Near to VGA     =>
>>>>>> (resize and maintaining the aspect ratio same as i/p)
>>>>>>
>>>>>> If we see above table, i observe for all the input stream resolutions
>>>>>> having the same aspect ratio as display panel resolution (in this case 
>>>>>> VGA),
>>>>>> there is no resize happening.
>>>>>>
>>>>>> But for other cases, where the i/p stream resolution aspect ratio is
>>>>>> not same as display panel resolution(in this case VGA). We observe that
>>>>>> there is a resize and the aspect ratio is maintained as similar to the 
>>>>>> i/p
>>>>>> stream resolution.
>>>>>>
>>>>>> Similar observations i am having for the WVGA display panel.
>>>>>>
>>>>>> Please let me know if this is a known behaviour.
>>>>>>
>>>>>> Why the resize is happening in cases 4 and 5 and why the resize is not
>>>>>> happening in cases 2 and 3?
>>>>>>
>>>>>> How the resize to full screen(definitely maintaining aspect ratio as
>>>>>> i/p) in case of 2 and 3 can also be acheived ??
>>>>>>
>>>>>> Regards,
>>>>>> Sreedhar
>>>>>>
>>>>>> On Thu, May 7, 2009 at 9:50 PM, Dave Sparks 
>>>>>> <[email protected]>wrote:
>>>>>>
>>>>>>>
>>>>>>> I don't think SurfaceFlinger has anything to do with the problem. You
>>>>>>> can check this by looking at the window size requested by VideoView
>>>>>>> after the video size is determined. If the requested view size is not
>>>>>>> full screen, the problem is probably a layout issue.
>>>>>>>
>>>>>>> On May 7, 5:46 am, sreedhar b <[email protected]> wrote:
>>>>>>> > Hi Dave,
>>>>>>> >
>>>>>>> > I have two setups:
>>>>>>> >
>>>>>>> > 1. In this hardware setup, my touch screen driver is working.
>>>>>>> > And the specific configurations are:
>>>>>>> >
>>>>>>> > @PATH  ../packages\apps\Music\res
>>>>>>> > drawable-finger
>>>>>>> > drawable-land-finger
>>>>>>> > layout-finger
>>>>>>> > layout-land-finger
>>>>>>> > values-finger
>>>>>>> >
>>>>>>> > This case, when the video playback is done using video player (or
>>>>>>> video view
>>>>>>> > widget).
>>>>>>> > Irrespective of the input stream resolution(QCIF, QVGA,VGA ) the
>>>>>>> output
>>>>>>> > display
>>>>>>> > is VGA(may be resized by surface flinger) as you said
>>>>>>> automatically.
>>>>>>> > Can you please give me the function and file inside the surface
>>>>>>> flinger
>>>>>>> > where this rescaling is done?.
>>>>>>> >
>>>>>>> > 2.In this hardware setup, my touch screen driver is not working.
>>>>>>> And the
>>>>>>> > specific configurations are:
>>>>>>> >
>>>>>>> >  @PATH ../packages\apps\Music\res
>>>>>>> >  drawable-notouch
>>>>>>> > drawable-land-notouch
>>>>>>> > layout-notouch
>>>>>>> > layout-land-notouch
>>>>>>> > values-notouch
>>>>>>> >
>>>>>>> >  This case, when the video playback is done using video player (or
>>>>>>> video
>>>>>>> > view widget).
>>>>>>> > Irrespective of the input stream resolution(QCIF, QVGA,VGA ) the
>>>>>>> output
>>>>>>> > display
>>>>>>> > resolution is same as input..
>>>>>>> >
>>>>>>> > Please let me know how the configurations mentioned above are
>>>>>>> giving
>>>>>>> > different behaviour in 1 and 2.
>>>>>>> >
>>>>>>> > I wanted to do the rescaling of QVGA to VGA by using configuartions
>>>>>>> and
>>>>>>> > setup mentioned in 2. How this can be done ? Please suggest some
>>>>>>> ideas.
>>>>>>> >
>>>>>>> > Regards,
>>>>>>> > Sreedhar
>>>>>>> >
>>>>>>>  > On Fri, May 1, 2009 at 5:58 AM, Dave Sparks <
>>>>>>> [email protected]> wrote:
>>>>>>> >
>>>>>>> > > This capability is already built into the framework. You just
>>>>>>> scale
>>>>>>> > > the SurfaceView to the desired size. You probably want to adjust
>>>>>>> the
>>>>>>> > > height and width to maintain the aspect ratio of the original
>>>>>>> > > material. The rescaling is handled in SurfaceFlinger by the
>>>>>>> blitter
>>>>>>> > > engine. In fact, if you use the VideoView widget, it will do this
>>>>>>> for
>>>>>>> > > you automatically.
>>>>>>> >
>>>>>>> > > On Apr 30, 3:09 am, sreedhar b <[email protected]> wrote:
>>>>>>> > > > Hi,
>>>>>>> >
>>>>>>> > > > I am doing the video playback in Media player which is making
>>>>>>> use of
>>>>>>> > >  soft
>>>>>>> > > > PV video decoder giving YUV 420 planar output.
>>>>>>> > > > Currently if the input stream is of QVGA resolution, the
>>>>>>> display is QVGA
>>>>>>> > > on
>>>>>>> > > > my VGA LCD display panel.
>>>>>>> >
>>>>>>> > > > If the input stream is of VGA resolution, the display is VGA.
>>>>>>> >
>>>>>>> > > > I wanted to play QVGA i/p stream as VGA (definitely including
>>>>>>> resize).
>>>>>>> > > > How this can be done inside Android?
>>>>>>> >
>>>>>>> > > > Similarly i want to display QVGA(320x240) i/p stream decoded
>>>>>>> and rendered
>>>>>>> > > to
>>>>>>> > > > display as 240X340(definitely including rotation).
>>>>>>> >
>>>>>>> > > > If somebody has tried these, please let me know how these can
>>>>>>> be
>>>>>>> > > implemented
>>>>>>> > > > for video playback inside Android.
>>>>>>> > > > This is mainly for resize and rotate.
>>>>>>> >
>>>>>>> > > > Regards,
>>>>>>> > > > Sreedhar
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>
>>>>
>>>
>>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting
-~----------~----~----~----~------~----~------~--~---

Reply via email to