Changes between Version 3 and Version 5 of Ticket #1360


Ignore:
Timestamp:
Oct 5, 2011 1:56:00 AM (11 years ago)
Author:
bennylp
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1360

    • Property Status changed from assigned to closed
    • Property Resolution changed from to fixed
  • Ticket #1360 – Description

    v3 v5  
    44 - Mobile devices can be rotated (the rotation angle can be detected), which may lead to wrong video orientation in rendering/playback. 
    55 
    6 == Objective == 
    7  - The purpose is to render video in natural orientation (head/sky upside) or the preferred orientation of the capturer. 
     6=== Objective === 
     7 - The purpose is to allow video rendering in natural orientation (head/sky upside) or the preferred orientation of the capturer. 
    88 
    9 == Fact == 
     9=== Notes === 
    1010 - Common video codecs works in predefined allowed sizes/orientation, e.g: CIF, QCIF. 
    11  - On iOS, capturing video to a file will store the video data in camera native orientation, i.e: wide-oriented, the capture orientation info (the device/camera orientation when the capture/record process is done) is stored in video metadata, so in playing back the file, the stored capture orientation info (may be combined with current device orientation info) is used to calculate rotation angle to get natural orientation in video rendering/playback. 
     11 - On iOS, capturing video to a file will store the video data in camera's native orientation, i.e: wide-oriented, the capture orientation info (the device/camera orientation when the capture/record process is done) is stored in video metadata, so in playing back the file, the stored capture orientation info (may be combined with current device orientation info) is used to calculate rotation angle to get natural orientation in video rendering/playback. 
    1212 
    13 == Idea == 
     13=== Ideas === 
    1414 - The orientation info is readable and read-only in capture. 
    1515 - The renderer will apply the orientation info provided by the capturer. 
    1616 - The orientation info is a rotation angle to be applied to a picture/video so it can be displayed naturally (or as the capturer preference). 
    1717 
    18 == Issue == 
    19  - SDP/SIP doesn't seem to support this orientation thing. No way for sender to tell receiver about the video orientation info. Putting 'a=orient:x' in SDP is not really useful as it just receiver preference/capability, while in practice, the receiver can render any orientations and the capturer cannot really send portrait (codecs limitation, etc). 
     18=== Issues === 
     19 - SDP/SIP only offers limited support for orientation, and there is no way for sender to tell receiver about the video orientation of the capture device. The 'a=orient:x' in SDP is not really useful as this is receiver preference/capability, while in practice, the receiver can render any orientations and the capturer cannot really send portrait (codecs limitation, etc). 
     20 
     21== Specification == 
     22 
     23Based on the background above, the following API will be implemented by this ticket: 
     24 - Add ''orientation'' capability to video device with the following specification: 
     25   - it is ''read-only'' for capture devices, and 
     26   - it is ''write-only'' for renderer devices 
     27 - Add {{{pjsua_vid_win_rotate(win, angle)}}} API. The ''angle'' is a rotation angle to be applied to a picture/video so it can be displayed naturally (or as the capturer preference). 
     28