Re: [rtcweb] Camera rotation on mobile phones

Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com> Wed, 29 April 2015 21:08 UTC

Return-Path: <sergio.garcia.murillo@gmail.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9A5081A1BED for <rtcweb@ietfa.amsl.com>; Wed, 29 Apr 2015 14:08:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Dd0IoTM2zlt3 for <rtcweb@ietfa.amsl.com>; Wed, 29 Apr 2015 14:08:03 -0700 (PDT)
Received: from mail-wg0-x234.google.com (mail-wg0-x234.google.com [IPv6:2a00:1450:400c:c00::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 544321A1BE3 for <rtcweb@ietf.org>; Wed, 29 Apr 2015 14:08:02 -0700 (PDT)
Received: by wgen6 with SMTP id n6so41855671wge.3 for <rtcweb@ietf.org>; Wed, 29 Apr 2015 14:08:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type; bh=H0sIPFY7+aW53XOA2kC6vElJiNHacAzJktC346NYEUY=; b=RZatOi0GlISF/EVF+yL/9mcpWERA/8jCxsI58DXA2ZYkFu7HvQO9a6YQn7zKarprCL EjKthMn1TSu74xR43/1+s26PUrBN48KPEhlxfG89lpNAJxIg8i5Uatel9hM3zQ212irq EE+SXOQLCHrtZMfHobaXmbxF2g9f3DGiKaa1AzzTIAXa6K6Vh/DLfOQUvJZf4tE/l+FY E3sllPPaBELH+5nDUkOQ8TRvibkmiwaTkCni9uJ4W3nlqXrg7RD0YDCAe6xbEuObd7S7 ZcnrajO/n/PJDYvTSemraDr5jWyqQnlOOpRnrp5pEouv3GBCgVnCPbko4I2+fnP5NePN 6obw==
X-Received: by 10.180.208.84 with SMTP id mc20mr9548435wic.38.1430341681047; Wed, 29 Apr 2015 14:08:01 -0700 (PDT)
Received: from [192.168.0.196] ([95.61.111.78]) by mx.google.com with ESMTPSA id df1sm22801731wib.12.2015.04.29.14.07.57 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 29 Apr 2015 14:08:00 -0700 (PDT)
Message-ID: <55414830.9050804@gmail.com>
Date: Wed, 29 Apr 2015 23:08:00 +0200
From: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0
MIME-Version: 1.0
To: Justin Uberti <juberti@google.com>
References: <52475369.9040107@gmail.com> <553E01D7.6070600@gmail.com> <CAOJ7v-1LB5MaDy2hzWvgWdWqe_8HYZzO44QCb2OZZT0CpEH0fg@mail.gmail.com>
In-Reply-To: <CAOJ7v-1LB5MaDy2hzWvgWdWqe_8HYZzO44QCb2OZZT0CpEH0fg@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------080400040404050202020203"
Archived-At: <http://mailarchive.ietf.org/arch/msg/rtcweb/NVTKSg8qNl2d1Izko1nQtJtKmKE>
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] Camera rotation on mobile phones
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb/>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 29 Apr 2015 21:08:06 -0000

Thanks Justin!

Was not aware of it as I didn't saw any feedback on the mailing list. 
Sometimes is difficult to be up to date with latest changes :)

Best regards
Sergio
On 29/04/2015 21:31, Justin Uberti wrote:
> CVO is part of the rtcweb-video requirements.
>
> On Mon, Apr 27, 2015 at 2:31 AM, Sergio Garcia Murillo 
> <sergio.garcia.murillo@gmail.com 
> <mailto:sergio.garcia.murillo@gmail.com>> wrote:
>
>     Hi all,
>
>
>     I have just seen that Chrome 43 has added CVO as per my suggestion
>     in the message below
>
>      *
>
>         Issue 4145
>         <https://code.google.com/p/webrtc/issues/detail?id=4145>Added
>         support for CVO (Coordination of video rotation) header
>         extension in webrtc. When both sides support CVO, device
>         rotation will not cause a new key-frame.
>
>     https://code.google.com/p/webrtc/issues/detail?id=4145
>
>
>     I have always thought that it would be a nice addition to the
>     WebRTC requirements,  especially in terms of mobile performance
>     and user experience (at least in theory). Would it be possible if
>     anyone from the Chrome team could share some feedback about it's
>     usage in the real life?
>
>     Best regards
>     Sergio
>
>
>     On 29/09/2013 0:08, Sergio Garcia Murillo wrote:
>>     Hi all,
>>
>>     Currently, in order to keep image property displayed on the 
>>     receiver side if the sender rotates the phone (and the camera),
>>     it is needed that the sender rotates the image from WxH to HxW so
>>     it is sent in upward position over the wire. Also, if the
>>     receiver is a mobile phone and has it rotated, it will have to
>>     rotate it again to match the current phone orientation.
>>
>>     How about using Coordination of Video Orientation as in 3GPP TS
>>     26.114 (http://www.3gpp.org/ftp/Specs/html-info/26114.htm)?
>>
>>     Coordination of Video Orientation consists in signalling of the
>>     current orientation of the image captured on the sender side to
>>     the receiver for appropriate rendering and displaying. When CVO
>>     is succesfully negotiated it shall be signalled by the MTSI
>>     client. The signalling of the CVO uses RTP Header Extensions as
>>     specified in IETF RFC 5285 [95]. The one-byte form of the header
>>     shall be used. CVO information for a 2 bit granularity of
>>     Rotation (corresponding to urn:3gpp:video-orientation) is carried
>>     as a byte formatted as follows:
>>
>>     Bit#76543210(LSB)
>>     Definition0000CFR1R0
>>
>>     With the following definitions:
>>
>>     C = Camera: indicates the direction of the camera used for this
>>     video stream. It can be used by the MTSI client in receiver to
>>     e.g. display the received video differently depending on the
>>     source camera.
>>
>>         0: Front-facing camera, facing the user. If camera direction
>>     is unknown by the sending MTSI client in the terminal then this
>>     is the default value used.
>>
>>     1: Back-facing camera, facing away from the user.
>>
>>     F = Flip: indicates a horizontal (left-right flip) mirror
>>     operation on the video as sent on the link.
>>
>>     0: No flip operation. If the sending MTSI client in terminal does
>>     not know if a horizontal mirror operation is necessary, then this
>>     is the default value used.
>>
>>     1: Horizontal flip operation
>>
>>     R1, R0 = Rotation: indicates the rotation of the video as
>>     transmitted on the link. The receiver should rotate the video to
>>     compensate that rotation. E.g. a 90° Counter Clockwise rotation
>>     should be compensated by the receiver with a 90° Clockwise
>>     rotation prior to displaying.
>>
>>     Table 7.2: Rotation signalling for 2 bit granularity
>>
>>     R1
>>
>>     	
>>
>>     R0
>>
>>     	
>>
>>     Rotation of the video as sent on the link
>>
>>     	
>>
>>     Rotation on the receiver before display
>>
>>     0
>>
>>     	
>>
>>     0
>>
>>     	
>>
>>     0° rotation
>>
>>     	
>>
>>     None
>>
>>     0
>>
>>     	
>>
>>     1
>>
>>     	
>>
>>     90° Counter Clockwise (CCW) rotation or 270° Clockwise (CW) rotation
>>
>>     	
>>
>>     90° CW rotation
>>
>>     1
>>
>>     	
>>
>>     0
>>
>>     	
>>
>>     180° CCW rotation or 180° CW rotation
>>
>>     	
>>
>>     180° CW rotation
>>
>>     1
>>
>>     	
>>
>>     1
>>
>>     	
>>
>>     270° CCW rotation or 90° CW rotation
>>
>>     	
>>
>>     90° CCW rotation
>>
>>     CVO information for a higher granularity of Rotation
>>     (corresponding to urn:3GPP:video-orientation:6) is carried as a
>>     byteformatted as follows:**
>>
>>     Bit#76543210(LSB)
>>     DefinitionR5R4R3R2CFR1R0
>>
>>     where Cand Fare as defined above and the bits R5,R4,R3,R2,R1,R0
>>     represent the Rotation, which indicates the rotation of the video
>>     as transmitted on the link. Table 7.3 describes the rotation to
>>     be applied by the receiver based on the rotation bits.
>>
>>     Table 7.3: Rotation signalling for 6 bit granularity
>>
>>     R1
>>
>>     	
>>
>>     R0
>>
>>     	
>>
>>     R5
>>
>>     	
>>
>>     R4
>>
>>     	
>>
>>     R3
>>
>>     	
>>
>>     R2
>>
>>     	
>>
>>     Rotation of the video as sent on the link
>>
>>     	
>>
>>     Rotation on the receiver before display
>>
>>     0
>>
>>     	
>>
>>     0
>>
>>     	
>>
>>     0
>>
>>     	
>>
>>     0
>>
>>     	
>>
>>     0
>>
>>     	
>>
>>     0
>>
>>     	
>>
>>     0° rotation
>>
>>     	
>>
>>     None
>>
>>     0
>>
>>     	
>>
>>     0
>>
>>     	
>>
>>     0
>>
>>     	
>>
>>     0
>>
>>     	
>>
>>     0
>>
>>     	
>>
>>     1
>>
>>     	
>>
>>     (360/64)° Counter Clockwise (CCW) rotation
>>
>>     	
>>
>>     (360/64)° CW rotation
>>
>>     0
>>
>>     	
>>
>>     0
>>
>>     	
>>
>>     0
>>
>>     	
>>
>>     0
>>
>>     	
>>
>>     1
>>
>>     	
>>
>>     0
>>
>>     	
>>
>>     (2*360/64)° CCW rotation
>>
>>     	
>>
>>     (2*360/64)° CW rotation
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     	
>>
>>     *.*
>>
>>     1
>>
>>     	
>>
>>     1
>>
>>     	
>>
>>     1
>>
>>     	
>>
>>     1
>>
>>     	
>>
>>     1
>>
>>     	
>>
>>     0
>>
>>     	
>>
>>     (62*360/64)° CCW rotation
>>
>>     	
>>
>>     (2*360/64)° CCW rotation
>>
>>     1
>>
>>     	
>>
>>     1
>>
>>     	
>>
>>     1
>>
>>     	
>>
>>     1
>>
>>     	
>>
>>     1
>>
>>     	
>>
>>     1
>>
>>     	
>>
>>     (63*360/64)° CCW rotation
>>
>>     	
>>
>>     (360/64)° CCW rotation
>>
>>     Best regards
>>     Sergio
>>
>
>
>     _______________________________________________
>     rtcweb mailing list
>     rtcweb@ietf.org <mailto:rtcweb@ietf.org>
>     https://www.ietf.org/mailman/listinfo/rtcweb
>
>