Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Side by Side Diff: ppapi/cpp/media_stream_video_track.cc

Issue 107083004: [PPAPI] API definition for video media stream artifacts (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Update Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ppapi/cpp/media_stream_video_track.h"
6
7 #include "ppapi/c/pp_errors.h"
8 #include "ppapi/c/ppb_media_stream_video_track.h"
9 #include "ppapi/cpp/completion_callback.h"
10 #include "ppapi/cpp/module_impl.h"
11 #include "ppapi/cpp/var.h"
12 #include "ppapi/cpp/video_frame.h"
13
14 namespace pp {
15
16 namespace {
17
18 template <> const char* interface_name<PPB_MediaStreamVideoTrack_0_1>() {
19 return PPB_MEDIASTREAMVIDEOTRACK_INTERFACE_0_1;
20 }
21
22 } // namespace
23
24 MediaStreamVideoTrack::MediaStreamVideoTrack() {
25 }
26
27 MediaStreamVideoTrack::MediaStreamVideoTrack(
28 const MediaStreamVideoTrack& other) : Resource(other) {
29 }
30
31 MediaStreamVideoTrack::MediaStreamVideoTrack(const Resource& resource)
yzshen1 2013/12/27 17:40:08 Do we need this method now that we already have th
Peng 2013/12/27 21:21:43 This constructor is used for passing js obj to NaC
32 : Resource(resource) {
33 if (!IsMediaStreamVideoTrack(resource)) {
34 PP_NOTREACHED();
35 }
36 }
37
38 MediaStreamVideoTrack::MediaStreamVideoTrack(PassRef, PP_Resource resource)
39 : Resource(PASS_REF, resource) {
40 }
41
42 MediaStreamVideoTrack::~MediaStreamVideoTrack() {
43 }
44
45 int32_t MediaStreamVideoTrack::Configure(uint32_t frame_buffer_size) {
46 if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
47 return get_interface<PPB_MediaStreamVideoTrack_0_1>()->Configure(
48 pp_resource(), frame_buffer_size);
49 }
50 return PP_ERROR_NOINTERFACE;
51 }
52
53 std::string MediaStreamVideoTrack::GetId() const {
54 if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
55 pp::Var id(PASS_REF, get_interface<PPB_MediaStreamVideoTrack_0_1>()->GetId(
56 pp_resource()));
57 if (id.is_string())
58 return id.AsString();
59 }
60 return std::string();
61 }
62
63 bool MediaStreamVideoTrack::HasEnded() const {
64 if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
65 return PP_ToBool(get_interface<PPB_MediaStreamVideoTrack_0_1>()->HasEnded(
66 pp_resource()));
67 }
68 return true;
69 }
70
71 int32_t MediaStreamVideoTrack::GetFrame(
72 const CompletionCallbackWithOutput<VideoFrame>& cc) {
73 if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
74 return get_interface<PPB_MediaStreamVideoTrack_0_1>()->GetFrame(
75 pp_resource(), cc.output(), cc.pp_completion_callback());
76 }
77 return cc.MayForce(PP_ERROR_NOINTERFACE);
78 }
79
80 int32_t MediaStreamVideoTrack::RecycleFrame(const VideoFrame& frame) {
81 if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
82 return get_interface<PPB_MediaStreamVideoTrack_0_1>()->RecycleFrame(
83 pp_resource(), frame.pp_resource());
84 }
85 return PP_ERROR_NOINTERFACE;
86 }
87
88 void MediaStreamVideoTrack::Close() {
89 if (has_interface<PPB_MediaStreamVideoTrack_0_1>())
90 get_interface<PPB_MediaStreamVideoTrack_0_1>()->Close(pp_resource());
91 }
92
93 bool MediaStreamVideoTrack::IsMediaStreamVideoTrack(const Resource& resource) {
94 if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
95 return get_interface<PPB_MediaStreamVideoTrack_0_1>()->
96 IsMediaStreamVideoTrack(resource.pp_resource());
yzshen1 2013/12/27 17:40:08 wrong indent.
Peng 2013/12/27 21:21:43 Done.
97 }
98 return false;
99 }
100
101 } // namespace pp
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698