Camera settings and effects shortcuts

By providing shortcuts to camera device effects and user interface elements, users can easily apply augmented reality effects to camera device feeds, solving the problem of difficulty in quickly applying camera device settings and AR effects in existing technologies and improving the user experience.

CN119096535BActive Publication Date: 2025-11-28SNAP INC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202380036381.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2022-10-04
Filing Date
2023-04-06
Publication Date
2025-11-28
Estimated Expiration
2043-04-06

AI Technical Summary

Technical Problem

In existing social networking applications, it is difficult for users to quickly and easily apply camera setups and augmented reality effects to live camera feeds and retain these effects when sharing videos or photos.

Method used

A method and interface are provided that allows users to apply augmented reality effects to camera feeds by selecting camera effect shortcuts and display the video or images on the device display, including the recognition and application of effect shortcuts, and supports user interface elements for easy operation.

Benefits of technology

Users can quickly copy and apply camera setups and AR effects used in the videos they watch, simplifying the video capture process and improving the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119096535B_ABST
    Figure CN119096535B_ABST
Patent Text Reader

Abstract

A method for providing custom visual settings on a device including a display and at least one camera is disclosed. The method includes displaying a video on the display of the device, the video including data specifying camera settings and visual effects to apply during capture of the video, displaying a camera effects shortcut, receiving a user selection of the camera effects shortcut, and based on receiving the user selection of the camera effects shortcut, displaying a video feed from the at least one camera on the display with the visual effects and camera settings specified by the data.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Related Application Data

[0002] This application claims priority to U.S. Patent Application Serial No. 17 / 937,980, filed October 4, 2022, which claims priority to U.S. Provisional Patent Application Serial No. 63 / 334,873, filed April 26, 2022, all of which are incorporated herein by reference in their entireties. BACKGROUND

[0003] Social networking applications provide tools for sharing user content such as photos or videos. In some instances, photos or videos can be supplemented with effects that are generated through augmented reality or other effects that are shown on a display of a mobile device for preview on a live camera feed. A user can be able to select and manipulate effects to be applied to a live camera feed and, when satisfied, capture an image or record a video that includes the effects. The captured video or photo can then be shared on a social networking platform. BRIEF DESCRIPTION OF DRAWINGS

[0004] In the drawings, which are not necessarily drawn to scale, like numerals can describe similar components in different views. To easily identify the discussion of any particular element or act, the most significant digit or digits in any

[0005] Figure 1 is a diagrammatic representation of a networking environment in which the present disclosure can be deployed according to some examples.

[0006] Figure 2 is a diagrammatic representation of a messaging system having both client-side functionality and server-side functionality according to some examples.

[0007] Figure 3 shows a mobile device user interface according to some examples.

[0008] Figure 4 shows a mobile device user interface according to some examples.

[0009] Figure 5A and Figure 5B shows a mobile device user interface according to some examples.

[0010] Figure 6A and Figure 6B shows a mobile device user interface according to some examples.

[0011] Figure 7A mobile device user interface is shown in accordance with some examples.

[0012] Figure 8 A mobile device user interface is shown in accordance with some examples.

[0013] Figure 9 is a flow diagram showing camera and effect shortcut operations in accordance with some examples.

[0014] Figure 10 A series of screens representing a mobile device user interface is shown in accordance with some examples.

[0015] Figure 11 A mobile device user interface is shown in accordance with some examples.

[0016] Figure 12 A mobile device user interface is shown in accordance with some examples.

[0017] Figure 13 A series of screens representing a mobile device user interface is shown in accordance with some examples.

[0018] Figure 14 is a flow diagram showing camera and effect shortcut operations in accordance with some examples.

[0019] Figure 15 A mobile device user interface is shown in accordance with some examples.

[0020] Figure 16 is a block diagram illustrating a software architecture, wherein an example can be implemented.

[0021] Figure 17 is a diagrammatic representation of a machine in the form of a computer system within which a set of instructions can be executed causing the machine to perform any one or more of the methodologies discussed herein, according to some examples. DETAILED DESCRIPTION

[0022] Systems and methods for providing a quick method and interface through which a user of a messaging or social media application on a portable device can apply camera settings and effects (e.g., augmented reality (AR) effects) to a camera feed on their device are disclosed.

[0023] As referred to herein, the term“augmented reality experience” includes or refers to various image processing operations corresponding to image modification, filtering, media overlays, transformations, and the like. In some examples, these image processing operations provide an interactive experience of a real-world environment in which objects, surfaces, backgrounds, lighting, and the like in the real world are augmented with computer-generated sensory information. Augmented reality experiences can also include associated audio, such as soundtracks or effect sounds. In this case, an“AR effect” includes a collection of data, parameters, and other assets required to apply a selected augmented reality experience to an image or video feed. In some examples, augmented reality effects are provided by Snap Inc. under the registered trademark LENSES.

[0024] Messaging or social media applications are increasingly used to browse and view content created by other users of the application. In some examples, short videos captured, generated, or modified by users of the application can be presented in a public collection of such videos, which can then be viewed, liked, saved, and forwarded by users of the messaging or social media application. In one example, such a collection of videos is provided by Snap Inc. in the Snapchat application under the trademark SPOTLIGHT.

[0025] Users can post videos into the public collection, or can forward videos to others for viewing on the messaging application. Any particular video can be captured with a particular camera setting and one or more AR effects. The transmitted video includes identification of the camera setting and associated effects as metadata. By providing a shortcut for viewers of the video, users can apply the corresponding camera setting and AR effects to a video feed generated by a camera in their device. This allows users to replicate the effects and settings used in creating the viewed video for use in capturing their own videos.

[0026] While the examples described herein refer to videos posted into a public collection for viewing, it will be appreciated that the methods described herein can be used for images, user stories, or any other type of content created and posted or shared, and including a particular camera setting or AR effect.

[0027] In some examples, a method is provided for providing an augmented effect on a device including a display and at least one camera, the method being performed by one or more processors, the method comprising: displaying a video on the display of the device, the video including data specifying a camera setting and an augmented effect to apply to the video; displaying a camera effect shortcut; receiving a user selection of the camera effect shortcut; and based on receiving the user selection of the camera effect shortcut, displaying on the display a video feed from the at least one camera with the augmented effect and the camera setting specified by the data applied to the video feed.

[0028] The method can further include displaying an effect indicator with the video, the effect indicator identifying a name and a creator of the augmented effect. The method can further include receiving a selection of the effect indicator; displaying information about the augmented effect; and displaying an action invocation user interface element for a user to apply the augmented effect to the video feed. Selection of the action invocation user interface element can result in the augmented effect being applied to the video feed but not the camera setting.

[0029] The method can further include displaying a context indicator with the video, the context indicator identifying an audio track played with the video; receiving a user selection of the context indicator; and based on receiving the user selection of the context indicator, displaying additional information about the audio track. A confirmation user interface item can be displayed prior to displaying the video feed from the at least one camera with the augmented effect and the camera setting; and the method can further include receiving a selection of the confirmation user interface item; and based on receiving the selection of the confirmation user interface item, displaying the video feed from the at least one camera with the augmented effect and the camera setting. In some examples, displayed with the video is a context indicator identifying an audio track played with the video.

[0030] In some examples provided, a computing device includes at least one camera, a display, and one or more processors. The computing device further includes a memory storing instructions that, when executed by the one or more processors, configure the device to perform operations for providing an augmented effect in accordance with any of the above-described method steps, including but not limited to: displaying a video on the display of the device, the video including data specifying a camera setting and an augmented effect to apply to the video; displaying a camera effect shortcut; receiving a user selection of the camera effect shortcut; and based on receiving the user selection of the camera effect shortcut, displaying on the display a video feed from the at least one camera with the augmented effect and the camera setting specified by the data applied to the video feed.

[0031] In one aspect, a non-transitory computer-readable storage medium includes instructions that, when executed by a computer, cause the computer to perform operations for providing an augmented effect on a device including a display and at least one camera, the operations in accordance with any of the above-described method steps, including but not limited to: displaying, on the display of the device, a video feed, the video feed captured by the at least one camera; displaying a camera effect shortcut, the camera effect shortcut associated with a set of augmented reality effects and camera settings; receiving a user selection of the camera effect shortcut, and based on receiving the user selection of the camera effect shortcut, displaying, on the display, a modified video feed from the at least one camera in which the set of augmented reality effects and camera settings associated with the camera effect shortcut have been applied.

[0032] Other technical features can be readily apparent to one skilled in the art from the following figures, descriptions, and claims.

[0033] Figure 1 is a block diagram illustrating an example of a messaging system 100 for exchanging data (e.g., messages, media, and associated content) over a network. The messaging system 100 includes multiple instances of user devices 102, each of which hosts several applications, including a messaging client 104 and other applications 106. Each messaging client 104 is communicatively coupled to other instances of the messaging client 104 (e.g., hosted on respective other client devices 102), a messaging server system 108, and a third-party server 110 via networks 112 (e.g., the Internet). The messaging client 104 can also communicate with local host applications 106 using an application programming interface (API).

[0034] The messaging client 104 is able to communicate and exchange data with other messaging clients 104 and the messaging server system 108 via the networks 112. The data exchanged among messaging clients 104, and between a messaging client 104 and the messaging server system 108 includes functionality (e.g., commands for activating functionality) as well as payload data (e.g., textual, audio, video or other multimedia data).

[0035] The messaging server system 108 provides server-side functionality via the network 112 to particular messaging clients 104. While certain functions of the messaging system 100 are described herein as being performed by messaging clients 104 or by the messaging server system 108, the location of certain functionality either within the messaging client 104 or the messaging server system 108 can be a design choice. For example, it can be technically preferable to initially deploy certain technology and / or functionality within the messaging server system 108 but to later migrate this technology and / or functionality to the messaging client 104 where the user device 102 has more adequate processing capacity.

[0036] The messaging server system 108 supports various services and operations that are provided to the messaging client 104. Such operations include transmitting data to, receiving data from, and processing data generated by the messaging client 104. This data can include message content, client device information, geolocation information, media

[0037] Turning now specifically to the messaging server system 108, an Application Program Interface (API) server 116 is coupled to, and provides a programmatic interface to, the application server 114. The application server 114 is communicatively coupled to a database server 120, which facilitates access to the database 126 in which is stored data associated with messages processed by the application server 114. Similarly, a web server 128 is coupled to the application server 114, and provides web-based interfaces to the application server 114. To this end, the web server 128 processes incoming network requests using HTTP and several other related protocols to serve clients 104, such as clients on desktop, mobile, and other web-based clients.

[0038] An application program interface (API) server 116 receives and sends message data (e.g., commands and message payloads) between the user devices 102 and the application servers 114. Specifically, the application program interface (API) server 116 provides a set of interfaces (e.g., routines and protocols) that can be called or queried by the messaging client 104 to activate functionality of the application servers 114. The application program interface (API) server 116 exposes various functions supported by the application servers 114, including: account registration; login functionality; sending messages from a particular messaging client 104 to another messaging client 104 via the application servers 114; sending media files (e.g., images or videos) from a messaging client 104 to the messaging server 118 and for possible access by another messaging client 104; setting media data collections (e.g., stories); retrieving a list of friends of a user of a user device 102; retrieving such collections; retrieving messages and content; adding and deleting entities (e.g., friends) to an entity graph (e.g., social graph); locating friends within a social graph; and opening application events (e.g., related to the messaging client 104).

[0039] The application servers 114 host a number of server applications and subsystems, including for example, a messaging server 118, an image processing server 122, and a social network server 124. The messaging server 118 implements a number of message processing technologies and functions, particularly with respect to aggregation and other processing of content (e.g., textual and multimedia content) included in messages received from multiple instances of the messaging client 104. Textual and media content from multiple sources can be aggregated into collections of content (e.g., referred to as stories or galleries). These collections are then made available to the messaging client 104. Other processor and memory intensive data processing can also be performed by the messaging server 118, on the server side, in view of hardware requirements for other processor and memory intensive data processing.

[0040] The application servers 114 also include an image processing server 122 that is dedicated to performing various image processing operations, typically with respect to images or videos within the payloads of messages sent from the messaging server 114 or received at the messaging server 118.

[0041] The social networking server 124 supports various social networking functions and services and makes these functions and services available to the messaging server 118. To this end, the social networking server 124 maintains and accesses an entity graph within the database 126. Examples of functions and services supported by the social networking server 124 include identifying other users in the messaging system 100 that have a relationship with a particular user or that the particular user is "following," as well as identifying interests and other entities of a particular user.

[0042] Figure 2 is a block diagram illustrating additional details regarding the messaging system 100, according to some examples. In particular, the messaging system 100 is shown to include the messaging client 104 and the application server 114. The messaging system 100 includes several subsystems that are supported on the client-side by the messaging client 104 and on the server-side by the application server 114. These subsystems include, for example, a user interface 202, a collection management system 204, an augmentation system 208, a map system 210, and a game system 212.

[0043] The user interface 202 is responsible for providing output to and receiving input from a user of the messaging client 104 on the user device 102. As is known in the art, the user interface provides user-manipulable display output on a display of the user device 102 (see further user output components 1726 in Figure 17 and described below). In one example, the user interface includes a chat interface by which a user can send and receive messages and associated content to and from one or more remote users. The user interface 202 also allows a user to manipulate live or captured media, for example, by providing augmented reality effects on captured photos or videos, or on a live video feed from a camera of the user device.

[0044] The collection management system 204 is responsible for managing collections or sets of media (e.g., collections of text, images, video, and audio data). Collections of content (e.g., messages, including images, video, text, and audio) can be organized into "event galleries" or "event stories." Such collections can be made available for a specified period of time (e.g., the duration of an event to which the content relates). For example, content related to a concert can be made available as a "story" for the duration of the concert. The collection management system 204 can also be responsible for publishing to the user interface of the messaging client 104 an icon that provides a notification that a particular collection exists.

[0045] Additionally, the collection management system 204 also includes a curation interface 206 that enables collection managers to manage and curate particular content collections. For example, the curation interface 206 enables event organizers to curate collections of content related to a particular event (e.g., delete inappropriate content or redundant messages). Additionally, the collection management system 204 employs machine vision (or image recognition technology) and content rules to automatically curate content collections. In certain examples, users can be paid compensation for including user-generated content into a collection. In such cases, the collection management system 204 operates to automatically pay such users for use of their content.

[0046] The augmentation system 208 provides various functionality that enables users to augment (e.g., annotate or otherwise modify or edit) media content associated with a message. For example, the augmentation system 208 provides functionality related to generating and publishing media overlays for messages processed by the messaging system 100. The augmentation system 208 operatively provides media overlays or augmentations (e.g., image filters) to the messaging client 104 based on the geographic positioning of the user device 102. In another example, the augmentation system 208 operatively provides media overlays to the messaging client 104 based on other information such as social network information of a user of the user device 102. The media overlays can include audio and visual content and visual effects. Examples of audio and visual content include pictures, text, logos, animations, and sound effects. Examples of visual effects include color overlays. The audio and visual content or visual effects can be applied to a media content item (e.g., a photo) at the user device 102. For example, the media overlays can include text or images that can be overlaid on top of a photo taken by the user device 102. In another example, the media overlays include a location identification (e.g., Venice Beach) overlay, a name of a live event or a merchant name (e.g., Beachside Café) overlay. In another example, the augmentation system 208 uses the geographic positioning of the user device 102 to identify a media overlay that includes a name of a merchant at the geographic location of the user device 102. The media overlay can include other indicia associated with the merchant. The media overlays can be stored in the database 120 and accessed through the database server 120.

[0047] The map system 210 provides various geolocation functionality and supports the presentation of map-based media content and messages by the messaging client 104. For example, the map system 210 enables the display of user icons or avatars on a map to indicate the current or past locations of a user's "friends" and media content (e.g., collections of messages including photos and videos) generated by such friends in the context of the map. For example, on a map interface of the messaging client 104, a message posted by a user from a particular geographic location to the messaging system 100 can be displayed to a particular user's "friends" within the context of that particular location on the map. A user can also share his or her location and status information with other users of the messaging system 100 via the messaging client 104 (e.g., using an appropriate status avatar), where the location and status information is similarly displayed to selected users within the context of the map interface of the messaging client 104.

[0048] The game system 212 provides various game functionality in the context of the messaging client 104. The messaging client 104 provides a game interface that provides a list of available games that can be launched by a user within the context of the messaging client 104 and played with other users of the messaging system 100. The messaging system 100 also enables a particular user to invite other users to participate in playing a particular game by issuing invitations from the messaging client 104 to the other users. The messaging client 104 also supports both voice messaging and text messaging (e.g., chat) within the context of playing games, provides leaderboards for games, and also supports the provision of in-game rewards (e.g., game coins and items).

[0049] Figure 3 A mobile device user interface 300 is shown in accordance with some examples. The user interface 300 is presented on a touchscreen of a mobile device (e.g., the user device 102). In some examples, the user interface 300 shows the presentation of a short video of a man 302 performing a hula hoop, which is playing for viewing by a user of the user device 102. As indicated by the SPOTLIGHT banner 304, the video is part of a collection of publicly available videos that can be viewed and accessed. Shown with the video are a title 306, a username 308 of the user that posted the video, and user interface options such as a like or favorite button 310, a share button 312, and an overflow indicator icon 314 indicating that additional user interface options related to the video are available.

[0050] The user interface 300 also includes one or more context indicators 316 that provide additional contextual information for the video. In this example, the context indicators 316 relate to the audio track of the video and state the name of the audio track and the artist or composer. Selecting the context indicators 316 transitions to a display such asFigure 7 In Figure 7 Additional information and interface options are provided in

[0051] In Figure 3 Also shown in

[0052] If the user of the user device 102 likes the overall experience provided by these camera settings and AR effects, they can select the camera effects shortcut button 318 to use these camera settings and AR effects in their own video or image capture. Upon receiving a selection of the camera effects shortcut button 318 by the user device 102 and messaging client 104, the user interface 300 transitions to Figure 4 the user interface 400.

[0053] Figure 4 A mobile device user interface 400 is shown in accordance with some examples. The user interface 400 is displayed after selection of the camera effects shortcut button 318 in Figure 3 The user interface 400. In the user interface 400, the user device 102 has changed from a mode where a short video is being watched to a mode where the user of the user device 102 can capture their own video or image. What is presented on the touchscreen of the user device 102 is a live video feed from one of the cameras on the client device. As shown, a person 402 is depicted in the live video feed. This can be the user captured by the front-facing camera of the user device 102, for example, or can be someone in the field of view of the rear-facing camera of the user device 102.

[0054] The user interface 400 includes a banner 404 with text 406 indicating that the camera settings and AR effects from Figure 3The system includes a "camera device shortcut" corresponding to the camera device settings and AR effects, and the associated camera device settings and AR effects are being applied to the live video feed displayed from the relevant camera device on user device 102. It also includes a trash icon 408, selecting which will close banner 404, remove any applied AR effects, and restore the camera device to its previous settings. A close icon 410 will close banner 404, but will leave the AR effects and camera device settings corresponding to the camera device shortcut in place.

[0055] In cases where multiple AR effects are applied to the original video, the AR effects applied to the video feed are applied (or "stacked") in the same order as the underlying content. In some cases, the order in which AR effects are applied to images or videos may produce slightly different final results. Additional buttons or icons may be provided in the user interface 400, which, when selected, display a list of applied AR effects in the order they were applied. The list or stack can then be reordered, individual AR effects can be removed, or additional AR effects can be added.

[0056] Users can select the capture icon 412 at any time to capture videos or images with or without a camera setup in the appropriate location and AR effects (as the case may be).

[0057] Figure 5A and Figure 5B The image shows a mobile device user interface based on some examples. Figure 3 The user interface is the same as 300. Figure 5A User interface 500a and Figure 5B The user interface 500b includes a short video, which is part of a collection of publicly available videos that can be viewed and accessed, as indicated by the SPOTLIGHT banner 304. In both cases, a single context indicator 502 is provided, but in... Figure 5A In the middle, the camera device effect shortcut button 318 is expanded and includes both the camera device icon 320 and the CTA text 322; while Figure 5B In the middle, the camera device effect shortcut button 318 is collapsed and only the camera device icon 320 is included.

[0058] Figure 6A and Figure 6B The image shows a mobile device user interface based on some examples. Figure 3 The user interface is the same as 300. Figure 6A User interface 600a and Figure 6BThe user interface 600b includes a short video that is part of a collection of publicly available videos that can be viewed and accessed as indicated by the SPOTLIGHT banner 304.

[0059] Figure 6A And Figure 6B The use of multiple context indicators is shown, including a first context indicator 502 that relates to the audio track of the video and that states the name of the audio track and the artist or composer, and a second context indicator that includes an effect indicator 602 that relates to an AR effect that was applied to the video when the video was captured. In particular, the effect indicator 602 includes the name of the AR effect (“Lens”) and the name of its creator (“Jim”) as well as an AR effect icon 604 that can be a characteristic of the particular AR effect or the AR effect creator. In this regard, the creator of the AR effect can not actually be the original author of the particular effect or effects, but can have selected the particular AR effect or combination of AR effects from an AR effect library for use with the video. As used herein, the term creator is understood to mean both the original author of the effect, and someone who selected one or more AR effects for use with the displayed video.

[0060] As before, in Figure 6A the camera effects shortcut button 318 is expanded and includes both a camera icon and CTA text, while in Figure 6B the camera effects shortcut button 318 is collapsed and includes only the camera icon.

[0061] User selection of the effect indicator 602 will cause the user interface to transition to Figure 7 the user interface 700.

[0062] Figure 7 The mobile device user interface 700 is shown in accordance with some examples. The user interface 700 is displayed after the user device 102 and messaging client 104 receive user input selecting the effect indicator 602 in Figure 6A or Figure 6B .

[0063] The user interface 700 provides more information and options related to the AR effect identified by the effect indicator 602. The user interface 700 includes the AR effect icon 604, text 702 identifying the name of the AR effect and the name of the creator of the AR effect, and a favorites icon 704 that the user of the user device 102 can select to include the AR effect in a collection of their favorite AR effects. A CTA button 706 is also provided, inviting the user to try the particular AR effect. Selecting the CTA button 706 (with any confirmation steps as follows) will apply the corresponding AR effect to the video feed from one of the cameras in the user device 102, but not the camera settings associated with the camera shortcut button 318 included in the video. User selection of the CTA button 706 will transition to Figure 8 the user interface 800.

[0064] Figure 7 Also shown in FIG. 8 is a grid 708 of thumbnails of publicly available videos that can be selected for viewing the video identified by the corresponding thumbnail. The publicly available videos can be related in some way to the creator of the AR effect, or can be based on popularity or sponsorship of the publicly available videos, based on the preferences or viewing history of the user of the user device 102, etc.

[0065] Figure 8 A mobile device user interface 800 is shown, in accordance with some examples. The user interface 800 is displayed upon receiving a selection of the CTA button 706 in FIG. 7 by a user. Figure 7

[0066] Alternatively, upon selection of the CTA button 706, the effect corresponding to the effect indicator 602 can be immediately applied to the video feed, in which case the banner 802 would include the effect text indicating that the effect has been applied, as well as an option to remove the effect.

[0067] Figure 9 A flowchart 900 is shown, illustrating camera and effect shortcut operation, in accordance with some examples. Figure 9 ​The operations shown in the middle will typically be performed on the user device 102 in the form of an application (e.g., the messaging client 104). Various implementations are of course possible in which some of the operations occur in the application server 114, or in which one application calls another application or calls an SDK for the functionality required.

[0068] The flowchart 900 begins in operation 902 with displaying a video. This can be a short video provided as part of a collection of short videos, but can also be any previously captured video. The video is accompanied by metadata that specifies the camera settings applied during capture or creation of the video, as well as any AR or other visual or audio effects.

[0069] In operation 904, a camera effects shortcut button or banner is displayed that corresponds to the camera settings applied during capture or creation of the video, as well as any AR or other visual or audio effects. In operation 906, when a user selection of the camera effects shortcut button is received, in operation 908, a camera feed is displayed on the client device in which the AR or other visual or audio effects from the video and the camera settings are applied on the camera feed.

[0070] In operation 910, if a user capture input is received, in operation 912, a video or image is captured by the user device 102 and the messaging client 104 with the camera effects and AR effects applied. If a close user input is received, in operation 914, the messaging client 104 returns to another user interface screen, which can be, for example, the display of the original video in operation 902, or a video or image capture screen that displays a video feed without the camera settings and AR effects applied.

[0071] Figure 10 A series of screens representing a mobile device user interface 1000 is shown in accordance with some examples. The screens of the user interface 1000 are presented on a touchscreen of a mobile device (e.g., the user device 102). In some examples, the user interface 1000 shows presentation of a first camera user interface 1002, a camera options interface 1004, and a second camera user interface 1006.

[0072] The camera user interface 1002 shows a video feed of the person 1008 captured by one of the cameras of the user device 102 on the display of the user device 102. Also included are several user interface elements 1010 that provide various functionality, such as capturing video or still images, toggling between front and rear cameras, selecting AR effects, etc., upon receiving user input. Also shown are application user interface elements 1012, which can relate to other UI functionality not directly related to the camera.

[0073] Included among the user interface elements 1010 is a camera options icon 1014. When the user selects the camera options icon 1014, the camera user interface 1002 transitions to a camera options interface 1004 in which a menu 1016 of items related to camera functionality and modes is provided for the user to select from, and desired items can be added to the user interface elements 1010 in the camera user interface 1002 by selecting the "add" user interface element 1020 next to the desired item in the menu 1016. In some examples, these can include setting a timer, recording in slow motion, adding a background song, adding a grid for alignment, or creating a sequence (or "timeline") of recordings.

[0074] Selecting an item from the menu 1016 in the camera options interface 1004 or the user interface elements 1010 in the camera user interface 1002 will transition to a camera user interface 1006 in which the selected option is applied or additional options are presented. Shown in the camera user interface 1006 is a pop-up window 1018 that provides additional options after the "set timer" option is selected in the camera user interface 1002 or the camera options interface 1004.

[0075] Figure 11 A mobile device user interface 1100 according to some examples is shown. The user interface 1100 is presented on a touchscreen of a mobile device (e.g., the user device 102). In some examples, the user interface 1100 is displayed after receiving user input selecting the camera options icon 1014 in the camera user interface 1002. Figure 10

[0076] ​As can be seen, the user interface 1100 also includes a menu 1102 or user selection relating to camera functions and modes that can be added to the camera user interface 1002. In this case, however, the menu includes a display of one or more selectable camera shortcuts 1104 corresponding to a set of camera settings and AR effects that can be applied to the video feed displayed in the user interface 1100, as discussed above. As Figure 12 The selection of the camera shortcut 1104 will transition to a user interface screen in which the camera shortcut has been applied, as shown in

[0077] As discussed below with respect to Figure 13 and Figure 14 in some examples, the scanning of the video feed is used by the messaging application to select the camera shortcut 1104 for display in the user interface 1100.

[0078] Figure 12 A mobile device user interface 1200 is shown in accordance with some examples. The user interface 1200 is rendered on a touchscreen of a mobile device (e.g., the user device 102). In some examples, the user interface 1200 shows the rendering of the user interface 1200 shown after the selection of the “Help Your Pet Go Viral” camera shortcut 1104 in Figure 11

[0079] Figure 12 Shown in the user interface 1200 is a video feed of a dog 1202 captured by one of the cameras on the user device 102. The video feed is augmented by the application of AR effects (visual and audio) and any associated camera settings (e.g., the meteor visual AR effect 1214 associated with the “Help Your Pet Go Viral” camera shortcut 1104). Also included in the user interface 1200 is a banner 1204 that includes an AR effect icon 1206 corresponding to the camera shortcut 1104, text 1212 indicating that the camera shortcut has been applied and the title of the camera shortcut, and status text 1208 confirming that the camera shortcut has been enabled. The user of the client device can then initiate the capture of an image or video with the applied camera shortcut 1104 by selecting a capture icon 1216. In some examples, a short press will capture an image while a long press will capture a video. A back icon 1210 is also provided, the selection of which by the user will return to a previous user interface, such as the camera user interface 1002 or the user interface 1100.

[0080] Figure 13 ​A series of screens representing a mobile device user interface 1300 is shown in accordance with some examples. The user interface 1300 is presented on a touch screen of a mobile device (e.g., user device 102). In some examples, the user interface 1300 shows the presentation of a first camera user interface 1302, a scan user interface 1304, and a scan results user interface 1306.

[0081] The camera user interface 1302 includes various user interface elements, including a scan icon 1308 that, when selected, will initiate a scan function performed by the messaging client 104 and user device 102 together with the messaging server system 108. The scan function uses known image and object detection techniques to identify subjects or objects in a video feed. The identification of objects or subjects in the video feed can then be used to provide information or options related to the identified subject or object. User selection of the scan icon 1308 transitions the camera user interface 1302 to the scan user interface 1304 in which the scan process is indicated by a banner 1310. The banner 1310 includes a thumbnail of the dog 1202 in the video feed (on which the image scan is being performed), text indicating that the scan is in progress, and a close icon 1312 that can be used to return to the camera user interface 1302.

[0082] When the scan is complete, the scan results user interface 1306 is presented. The scan results 1314 are presented, including related information 1316. In this case, the scan identified the subject as a dog with a match to a Pug of 87%. The application 106 uses the results of the scan and related information associated with the results, such as type, genre, and breed, to search for related camera shortcuts. In this case, the related search terms can be "dog," "pet," and "Pug," which are used to identify and retrieve one or more camera effect shortcuts 1318 that the user can want to apply. In this example, the scan results based search has identified and included the "Make Your Pet Famous" camera shortcut, which, when selected by the user, will transition from the results user interface 1306 to the user interface 1200. Figure 12 of the user interface 1200.

[0083] Based on matching the results of the scan to a category or a particular identifier (associated with the camera shortcut) or other identifying or contextual information header or metadata, the messaging system 100 automatically selects the "Make Your Pet Famous" camera shortcut for inclusion in the scan results 1314. In this case, the scan recognized the subject in the video feed as a dog (a pet), which matches the header or metadata (associated with the camera effect shortcut), and thus the "Make Your Pet Famous" camera effect shortcut 1318 is included in the scan results 1314.

[0084] Figure 14 A flowchart 1400 is shown that illustrates camera and effect shortcut operation according to some examples. Figure 14 The operations shown in FIG. 13 will generally be performed on the user device 102 in the form of an application (e.g., the messaging client 104). Various implementations are of course possible in which some of the operations occur in the application server 114, or in which one application calls another application or calls an SDK to obtain the desired functionality.

[0085] The flowchart 1400 begins in operation 1402 in which a video feed from one of the cameras in the user device 102 is displayed on the client user device 102. Then, in operation 1404, a scan of the video feed is performed by the messaging client 104. This can be done automatically based on the user selecting a camera function on the user device 102 or in the messaging client 104, or in response to receiving a user selection of a scan function in the messaging client 104 in the case that a camera function has been enabled. Then, as discussed above, the scan results of the video feed are used to search for camera effect shortcuts related to the subject or object.

[0086] Then, in operation 1408, one or more camera effect shortcut buttons, banners, or other user interface elements are displayed that correspond to the camera settings and any AR or other visual or audio effects specified in the camera effect shortcuts returned in the search performed in operation 1406. When a user selection of a camera effect shortcut button is received in operation 1410, then in operation 1412, the displayed camera feed is modified using the AR or other visual or audio effects and camera settings specified in or associated with the selected camera effect shortcut.

[0087] In operation 1414, if a user capture input is received, then in operation 1416, a video or image with camera effects and AR effects applied thereto is captured by the user device 102 and messaging client 104. If a close user input is received, then in operation 1418, the messaging client 104 returns to another user interface screen, which can be, for example, the camera user interface 1302 displaying a video feed without camera settings and AR effects applied, or can be the scan results user interface 1306 displaying results of a scan.

[0088] Figure 15 A number of camera shortcut camera effect shortcut user interface elements 1502 are shown corresponding to different camera shortcuts. As can be seen, the user interface elements 1502 each include a title 1504, a CTA button 1506 inviting user input to enable the camera shortcut, a camera shortcut icon 1508 corresponding to the particular camera shortcut, and a LENS icon 1510 corresponding to the particular set of AR effects used with the particular camera shortcut. Additional information is also included, for example, an image icon 1512 indicating that the camera shortcut is intended for bulk image capture, a music icon 1514 indicating that the camera shortcut includes audio, and a video icon 1516 indicating that the camera shortcut is intended for video or video timeline capture.

[0089] Figure 16 is a block diagram 1600 illustrating software architecture 1604, which can be installed on any one or more of the devices described herein. The software architecture 1604 is supported by hardware such as machine 1602 that includes processors 1620, memory 1626 and I / O components 1638. In this example, the software architecture 1604 can be conceptualized as a stack of layers, where each layer provides particular functionality. The software architecture 1604 includes the following layers, such as an operating system 1612, libraries 1610, frameworks 1608, and applications 1606. Operationally, the applications 1606 are invoked to cause data to be captured by the user device 102 and messaging client 104 and to cause messages 1652 to be received in response to API calls 1650 made by the applications 1606 through the software stack.

[0090] The operating system 1612 manages hardware resources and provides common services. The operating system 1612 includes, for example, a kernel 1614, services 1616, and drivers 1622. The kernel 1614 acts as an abstraction layer between the hardware and the other software layers. For example, the kernel 1614 provides memory management, processor management (e.g., scheduling), component management, networking, and security settings, among other functionality. The services 1616 can provide other common services that the other software layers can use. The drivers 1622 are responsible for controlling or interfacing with the underlying hardware. For instance, the drivers 1622 can include display drivers, camera drivers, or low energy drivers, flash memory drivers, serial communication drivers (e.g., USB drivers), drivers for a sensor-based head tracking module, audio drivers, power management drivers, and so forth.

[0091] The libraries 1610 provide a common low-level infrastructure used by the applications 1606. The libraries 1610 can include system libraries 1618 (e.g., C standard library) that provide functions such as memory allocation functions, string manipulation functions, mathematical functions, and the like. In addition, the libraries 1610 can include API libraries 1624, such as media libraries (e.g., libraries to support presentation and manipulation of various media formats such as Moving Picture Experts Group-4 (MPEG4), Advanced Video Coding (H.264 or AVC), Moving Picture Experts Group Layer-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group (JPEG or JPG), or Portable Network Graphics (PNG)), graphics libraries (e.g., an OpenGL framework used to render two dimensional (2D) and three dimensional (3D) graphics on a display), database libraries (e.g., SQLite to provide various relational database functions), web libraries (e.g., WebKit to provide web browsing functionality), and the like. The libraries 1610 can also include a wide variety of other libraries 1628 to provide many other APIs as needed by the applications 1606.

[0092] The frameworks 1608 provide a common high-level infrastructure used by the applications 1606. For example, the frameworks 1608 provide various graphical user interface (GUI) functions, high-level resource management, and high-level positioning services. The frameworks 1608 can provide a broad spectrum of other APIs that can be used by the applications 1606, some of which can be specific to a particular operating system or platform.

[0093] ​In an example, the applications 1606 can include a home application 1636, a contacts application 1630, a browser application 1632, a book reader application 1634, a location application 1642, a media application 1644, a messaging application 1646, (e.g., a messaging client 104), a game application 1648, and a broad assortment of other applications such as a third party application 1640. The applications 1606 are programs that execute functions defined in the programs. Various programming languages can be employed to create one or more of the applications 1606, structured in a variety of manners, such as object-oriented programming languages (e.g., Objective-C, Java, or C++) or procedural programming languages (e.g., C or assembly language). In a specific example, the third party application 1640 (e.g., an application developed using the ANDROID TM or IOS TM software development kit (SDK) by an entity other than the vendor of the particular platform) can be mobile software running on a mobile operating system such as IOS TM , ANDROID TM , , WINDOWS Phone, or other mobile operating systems. In this example, the third party application 1640 can invoke the API calls 1650 provided by the operating system 1612 to facilitate functionality described herein.

[0094] Figure 17is a graphical representation of a machine 1700 (e.g., a user device 102) within which instructions 1710 (e.g., software, a program, an application, an applet, an app, or other executable code) for causing the machine 1700 to perform any one or more of the methodologies discussed herein can be executed. For example, the instructions 1710 can cause the machine 1700 to execute any one or more of the methods described herein. The instructions 1710 transform the general, non-programmed machine 1700 into a particular machine 1700 programmed to carry out the described and illustrated functions in the manner described. The machine 1700 can operate as a standalone device or can be coupled (e.g., networked) to other machines. In a networked deployment, the machine 1700 can operate in the capacity of a server machine or a client machine in server-client network environments, or as a peer machine in peer-to-peer (or distributed) network environments. The machine 1700 can comprise, but not be limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular telephone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a web appliance, a network router, a network switch, a network bridge, or any machine capable of executing the instructions 1710, sequentially or otherwise, that specify actions to be taken by machine 1700. Further, while only a single machine 1700 is illustrated, the term “machine” shall also be taken to include a collection of machines 1700 that individually or jointly execute the instructions 1710 to perform any one or more of the methodologies discussed herein. For example, the machine 1700 can include the user device 102 or any of a number of server devices forming part of the messaging server system 108. In some examples, the machine 1700 can also include both client and server systems, where certain operations are performed on a server side and certain operations are performed on a client side.

[0095] The machine 1700 can include processors 1704, memory 1706, and input / output I / O components 1702, which can be configured to communicate with each other via a bus 1740. In an example, the processors 1704 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a radio-frequency integrated circuit (RFIC), another processor, or combinations of any of these processors) can include, for example, a processor 1708 and a processor 1712 that execute instructions 1710. The term “processor” is intended to include multi-core processors that can include two or more independent processors (sometimes referred to as “cores”) that can execute instructions contemporaneously. Although FIG. 17 shows the processor 1704 as having two processors, the machine 1700 can include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors with a single core, multiple processors with multiple cores, or combinations of any of these. The processor 1708 can execute instructions 1710 and can also be one of the processors that ultimately Figure 17 Although illustrated with multiple processors 1704, the machine 1700 can include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors with a single core, multiple processors with multiple cores, or combinations of any of these.

[0096] The memory 1706 includes a main memory 1714, a static memory 1716, and a storage unit 1718 each of which can be accessed via the bus 1740 by the processors 1704. The main memory 1714, static memory 1716, and storage unit 1718 store the instructions 1710 that implement any one or more of the methodologies or functions described herein. The instructions 1710 can also reside completely, or a portion thereof, within the main memory 1714, static memory 1716, machine-readable media 1720 resident within the storage unit 1718, one or more of the processors 1704 (e.g., within a cache memory of a processor), or any suitable combination thereof, during execution thereof by the machine 1700. The machine 1700 can further include a graphics processing unit 1722, a digital signal processor 1724, a keyboard 1726, a mouse 1728, a touchpad 1730, a touchscreen 1732, a scanner 1734, a networking device 1736, a speaker 1738, a microphone 1740, a display 1742, and the like.

[0097] The I / O components 1702 can include a wide variety of components to receive input, provide output, produce output, transmit information, exchange information, capture measurements, and so on. The specific I / O components 1702 that are included in the machine 1700 will depend on the type and Figure 17Many other components not shown in FIG. 17 can also be included. In various examples, the I / O components 1702 can include user output components 1726 and user input components 1728. The user output components 1726 can include visual components (e.g., a display such as a plasma display panel (PDP), a light-emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), acoustic components (e.g., speakers), haptic components (e.g., a vibratory motor, resistance mechanisms), other signal generators, and so forth. The user input components 1728 can include alphanumeric input components (e.g., a keyboard, a touch screen configured to receive alphanumeric input, a photo-optical keyboard, or other alphanumeric input components), point-based input components (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing instruments), tactile input components (e.g., a physical button, a touch screen that provides location and force of touches or touch gestures, or other tactile input components), audio input components (e.g., a microphone), and the like.

[0098] In further examples, the I / O components 1702 can include biometric components 1730, motion components 1732, environmental components 1734, or position components 1736, among a myriad of other components. For example, the biometric components 1730 include components to detect expressions (e.g., hand expressions, facial expressions, vocal expressions, body gestures, or eye tracking), measure biosignals (e.g., blood pressure, heart rate, body temperature, perspiration, or brain waves), identify a person (e.g., voice identification, retinal identification, facial identification, fingerprint identification, or electroencephalogram-based identification), and the like.

[0099] The environmental components 1734 include, for example, one or more cameras (with still and / or video capabilities), illumination sensors (e.g., photometers), temperature sensors (e.g., one or more thermometers that detect ambient temperature), humidity sensors, pressure sensors (e.g., barometers), acoustic sensors (e.g., one or more microphones that detect background noise), proximity sensors (e.g., infrared sensors that detect nearby objects), gas sensors (e.g., gas detection sensors to detect concentrations of hazardous gases for safety or to measure pollutants in ambient air), or other components that can provide indications, measurements, or signals corresponding to a physical environment.

[0100] With respect to cameras, the user device 102 can have a camera system that includes a front-facing camera, e.g., on the front surface of the user device 102, and a rear-facing camera on the back surface of the user device 102. The front-facing camera can be used, e.g., to capture still images and videos of a user of the user device 102 (e.g., “selfies”), which can then be enhanced with the above-described enhancement data (e.g., filters). The rear-facing camera can be used, e.g., to capture still images and videos in a more traditional camera mode, where the images are similarly enhanced using the enhancement data. In addition to the front-facing and rear-facing cameras, the user device 102 can also include a 360° camera for capturing 360° photos and videos.

[0101] In addition, the camera system of the user device 102 can include dual rear-facing cameras (e.g., a main camera and a depth-sensing camera), or even triple, quad, or penta- rear-facing camera configurations on the front and back sides of the user device 102. These multi-camera systems can include, e.g., a wide-angle camera, an ultra-wide-angle camera, a telephoto camera, a macro camera, and a depth sensor.

[0102] The position components 1736 include location sensor components (e.g., GPS receiver components), altitude sensor components (e.g., altimeters or barometers that detect atmospheric pressure from which altitude can be derived), orientation sensor components (e.g., magnetometers), and the like.

[0103] Communication can be implemented using a wide variety of technologies. The I / O components (e.g., low energy), components, and other communication components to provide communication via other modalities. The devices 1724 can be another machine or any of a wide assortment of peripheral devices (e.g., a peripheral device coupled via a USB).

[0104] Moreover, the communication components 1738 can detect identifiers or include components operable to detect identifiers. For example, the communication components 1738 can include radio frequency identification (RFID) tag reader components, NFC smart tag detection components, optical reader components (e.g., an optical sensor to detect one-dimensional bar codes such as Universal Product Code (UPC) bar codes, multi-dimensional bar codes such as Quick Response (QR) codes, Aztec codes, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar codes, and other optical codes), or acoustic detection components (e.g., microphones to identify tagged audio signals). In addition, a variety of information can be derived via the communication components 1738, such as location via Internet Protocol (IP) geolocation, location via Wi-Fi® signal triangulation, location via cellular signal triangulation, location via detecting NFC beacon signals that can indicate a particular location, and so forth.

[0105] The various memories (e.g., main memory 1714, static memory 1716, and memory of processor 1704) and storage unit 1718 can store one or more sets of instructions and data structures (e.g., software) embodying or used by any one or more of the methodologies or functions described herein. These instructions (e.g., instructions 1710), when executed by processor 1704, cause various operations to implement the disclosed examples.

[0106] The instructions 1710 can be transmitted or received using a transmission medium via the network 1722 and using any one of a number of well-known transfer protocols (e.g., hypertext transfer protocol (HTTP)). Similarly, the instructions 1710 can be transmitted or received using a transmission medium via the coupling (e.g., peer-to-peer coupling) to the devices 1724.

[0107] Glossary

[0108] “Carrier signal” refers to any intangible medium that is capable of storing, encoding, or carrying the instructions for execution by a machine and includes digital or analog communications signals. The instructions can be transmitted or received using a transmission medium via a network.

[0109] A“client device” refers to any machine that interfaces with a communications network to access resources from one or more server systems or other client devices. A client device can be, but is not limited to, a mobile phone, a desktop computer, a laptop computer, a portable digital assistant (PDA), a smart phone, a tablet computer, an ultrabook, a netbook, a laptop computer, a multi-processor system, a microprocessor-based or programmable consumer electronic, a game console, a set-top box, or any other communication device that a user can use to access a network.

[0110] A“communication network” refers to one or more portions of a network that can be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WW AN), a metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, a network, other type of network, or combination of two or more such networks. For example, a network or a portion of a network can include a wireless or cellular network, and a coupling can be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile Communications (GSM) connection, or other type of cellular or wireless coupling. In this example, the coupling can enable any of a variety of types of data transfer technology, such as Single Carrier Radio Transmission Technology (lxRTT), Evolution-Data Optimized (EVDO) technology, General Packet Radio Service (GPRS) technology, Enhanced Data rates for GSM Evolution (EDGE) technology, third Generation Partnership Project (3GPP) including 3G, fourth generation wireless (4G) networks, Universal Mobile Telecommunications System (UMTS), High Speed Packet Access (HSPA), Worldwide Interoperability for Microwave Access (WiMAX), Long Term Evolution (LTE) standard, others defined by various standards setting organizations, other long range protocols, or other data transfer technology.

[0111] A“component” refers to a device, physical entity, or logic having boundaries defined by function or subroutine calls, branches, API, or other technologies that provide encapsulation of a certain portion of a process or control flow. A component can be combined with other components to perform a machine process while maintaining its integrity. A component can be a packaged functional hardware unit designed for use with other components and can be a part of a program or piece of a program that, for example, performs a specific function. Components can constitute either software components (e.g., code embodied on a machine-readable medium) or hardware components. A“hardware component” is a tangible unit capable of performing certain operations and can be configured or arranged in a certain physical manner. In various examples, one or more computer systems (e.g., a standalone computer system, a client computer system, or a server computer system) or one or more hardware components of a computer system (e.g., a processor or a group of processors) can be configured by software (e.g., an application or application portion) as a hardware component that operates to perform certain operations as described herein. A hardware component can also be implemented mechanically, electronically, or any suitable combination thereof. For example, a hardware component can include dedicated circuitry or logic that is permanently configured to perform certain operations. A hardware component can be a special-purpose processor, such as a field-programmable gate array (FPGA) or an application-specific integrated circuit (ASIC). A hardware component can also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. For example, a hardware component can include software executed by a general-purpose processor or other programmable processor. Once configured by such software, hardware components become specific machines (or specific components of a machine) uniquely tailored to perform the configured functions and are no longer general-purpose processors. It will be appreciated that theWhere multiple hardware components are present, communication can be implemented through signal transmission between or among two or more of the hardware components (e.g., through appropriate circuits and buses). Where multiple hardware components are configured or instantiated at different times, communication between such hardware components can for example be implemented through storage of information in memory structures that are accessible by multiple hardware components, and retrieval of that information by the multiple hardware components at different times. For example, one hardware component can perform an operation and store the output of that operation in a memory device communicatively coupled to the one hardware component. Another hardware component can then access the memory device at a subsequent time to retrieve the stored output and process it. Hardware components can also initiate communication with input or output devices, and can operate on resources (e.g., collections of information). The various operations of example methods described herein can be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors can constitute processor-implemented components that operate to perform one or more operations or functions described herein. As used herein, “processor- implemented component” refers to a hardware component implemented using one or more processors. Similarly, the methods described herein can be at least partially processor-implemented, with a particular processor or processors being an example of hardware. For example, at least some of the operations of a method can be performed by one or more processors 1704 or processor-implemented components. Moreover, a processor or processors can additionally operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations can be performed by a group of computers (as examples of machines including processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an API). The performance of certain of the operations can be distributed among the processors, not only residing within a single machine, but deployed across a number of machines. In some examples, the processors or processor-implemented components can be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other examples, the processors or processor-implemented components can be distributed across a number of geographic locations.

[0112] “Computer-readable storage medium” refers to both machine-storage media and transmission media. Thus, the terms “machine-readable medium,” “computer-readable medium,” and “device-readable medium” mean the same thing and can be used interchangeably in this disclosure.

[0113] A "ephemeral message" refers to a message that is accessible for a time-limited duration. An ephemeral message can be text, image, video, etc. The access time for an ephemeral message can be set by the message sender. Alternatively, the access time can be a default setting or a setting specified by the recipient. Regardless of the setting technique, the message is transient.

[0114] "Machine-storage medium" refers to a single or multiple storage devices and media (e.g., centralized or distributed databases, and associated caches and servers) that store executable instructions, routines, and data. Thus, the term should be construed to cover solid-state memories, as well as optical and magnetic media, including memory internal or external to processors. Specific examples of machine-storage media, computer-storage media, and device-storage media include non-volatile memory, including by way of example semiconductor memory devices, for example, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), FPGA, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms "machine-storage medium," "device-storage medium," "computer-storage medium," and "device-storage medium" mean the same thing and can be used interchangeably in this disclosure. The terms "machine-storage medium," "computer-storage medium," and "device-storage medium" explicitly exclude carrier waves, modulated data signals, and other such media, at least some of which are covered under the term "signal medium."

[0115] "Non-transitory computer-readable storage medium" refers to a tangible medium that is capable of storing, encoding, or carrying the instructions for execution by a machine.

[0116] "Signal medium" refers to any intangible medium that is capable of storing, encoding, or carrying the instructions for execution by a machine and includes digital or analog communications signals or other intangible media to facilitate communication of software or data. The term "signal medium" shall be taken to include any form of a modulated data signal, carrier wave, and so on. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. The terms "transmission medium" and "signal medium" mean the same thing and can be used interchangeably in this disclosure.

Claims

1. A method executed by one or more processors for providing an enhancement effect on a device including a display and at least one camera device, the method comprising: The previously captured video is displayed on the device's display, the previously captured video including metadata specifying the camera device settings used when capturing the previously captured video and specifying enhancement effects applied to the previously captured video; A shortcut to the camera device effects is displayed along with the previously captured video; An effect indicator is displayed along with the previously captured video; Based on the user selection of the camera device effect shortcut received, a video feed from the at least one camera device is displayed on the display, the video feed having enhancement effects and camera device settings specified by the metadata applied to the video feed; as well as Based on the received user selection of the effect indicator, an action invocation user interface element is provided. The selection of the action invocation user interface element displays a video feed from the at least one camera device, the video feed having enhancement effects specified by the metadata applied to the video feed but without applying camera device settings specified by the metadata.

2. The method according to claim 1, wherein, The effect indicator identifies the name and creator of the enhancement effect.

3. The method according to claim 2, further comprising: Receive the selection of the effect indicator; Display information about the enhancement effect; as well as The action call user interface element is displayed so that the user can apply the enhancement effect to the video feed.

4. The method according to claim 1, further comprising: A context indicator is displayed along with the previously captured video, the context indicator identifying the audio track played along with the previously captured video; Receive user selection for the context indicator; as well as Based on the user's selection of the context indicator received, additional information related to the audio track is displayed.

5. The method according to claim 1, further comprising: A confirmation user interface item is displayed before the video feed from the at least one camera device, which has the enhancement effect and camera device settings, is displayed; Receive a selection of the confirmation user interface item; as well as Based on the received selection of the confirmed user interface item, the video feed from the at least one camera device, with the enhancement effect and camera device settings, is displayed.

6. The method according to claim 2, further comprising: A context indicator is displayed along with the previously captured video, which identifies the audio track played along with the previously captured video.

7. A computing device, comprising: At least one camera device; monitor; One or more processors; as well as A memory storing instructions that, when executed by the one or more processors, configure the device to perform operations to provide enhanced effects, the operations including: The previously captured video is displayed on the device's display, the previously captured video including metadata specifying the camera device settings used when capturing the previously captured video and specifying enhancement effects applied to the previously captured video; A shortcut to the camera device effects is displayed along with the previously captured video; An effect indicator is displayed along with the previously captured video; Based on a user selection of a shortcut for the camera device effects received, a video feed from the at least one camera device is displayed on the monitor, the video feed having enhancement effects and camera device settings specified by the metadata applied to the video feed; and Based on the received user selection of the effect indicator, an action invocation user interface element is provided. The selection of the action invocation user interface element displays a video feed from the at least one camera device, the video feed having enhancement effects specified by the metadata applied to the video feed but without applying camera device settings specified by the metadata.

8. The computing device according to claim 7, wherein, The effect indicator identifies the name and creator of the enhancement effect.

9. The computing device according to claim 8, wherein, The operation also includes: Receive the selection of the effect indicator; Display information about the enhancement effect; and The action call user interface element is displayed so that the user can apply the enhancement effect to the video feed.

10. The computing device according to claim 7, wherein, The operation also includes: A context indicator is displayed along with the previously captured video, the context indicator identifying the audio track played along with the previously captured video; Receive user selection for the context indicator; and Based on the user's selection of the context indicator received, additional information related to the audio track is displayed.

11. The computing device according to claim 7, wherein, The operation also includes: A confirmation user interface item is displayed before the video feed from the at least one camera device, which has the enhancement effect and camera device settings, is displayed; Receive selection of the confirmation user interface item; and Based on the received selection of the confirmed user interface item, the video feed from the at least one camera device, with the enhancement effect and camera device settings, is displayed.

12. The computing device according to claim 8, wherein, The operation also includes: A context indicator is displayed along with the previously captured video, which identifies the audio track played along with the previously captured video.

13. A non-transitory computer-readable storage medium comprising instructions, when executed by a computer, to cause the computer to perform operations for providing enhancement effects on a device including a display and at least one camera device, the operations comprising: The previously captured video is displayed on the device's display, the previously captured video including metadata specifying the camera device settings used when capturing the previously captured video and specifying enhancement effects applied to the previously captured video; Along with the display of the previously captured video, camera device effect shortcuts are displayed, which are associated with the enhancement effects and camera device settings; An effect indicator, associated with the enhancement effect, is displayed along with the previously captured video. Based on the user selection received for the camera device effect shortcut, a modified video feed from the at least one camera device is displayed on the display, in which enhancement effects and camera device settings associated with the camera device effect shortcut have been applied; as well as Based on the received user selection of the effect indicator, an action invocation user interface element is provided. The selection of the action invocation user interface element displays a video feed from the at least one camera device, the video feed having enhancement effects specified by the metadata applied to the video feed but without applying camera device settings specified by the metadata.

14. The computer-readable storage medium according to claim 13, wherein, The effect indicator identifies the name and creator of the enhancement effect.

15. The computer-readable storage medium according to claim 14, wherein, The operation also includes: Receive the selection of the effect indicator; Display information about the enhancement effect; and The action call user interface element is displayed so that the user can apply the enhancement effect to the video feed.

16. The computer-readable storage medium according to claim 13, wherein, The operation also includes: A context indicator is displayed along with the previously captured video, the context indicator identifying the audio track played along with the previously captured video; Receive user selection for the context indicator; and Based on the user's selection of the context indicator received, additional information related to the audio track is displayed.

17. The computer-readable storage medium according to claim 13, wherein, The operation also includes: A confirmation user interface item is displayed before the video feed from the at least one camera device, which has the enhancement effect and camera device settings, is displayed; Receive selection of the confirmation user interface item; and Based on the received selection of the confirmed user interface item, the video feed from the at least one camera device, with the enhancement effect and camera device settings, is displayed.

Citation Information

Patent Citations

  • Displaying augmented reality content in messaging application

    US20210304505A1