1 /*
2   * main_pipe_manager.cpp -main pipe manager
3   *
4   *  Copyright (c) 2016 Intel Corporation
5   *
6   * Licensed under the Apache License, Version 2.0 (the "License");
7   * you may not use this file except in compliance with the License.
8   * You may obtain a copy of the License at
9   *
10   *      http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   *
18   * Author: Yinhang Liu <yinhangx.liu@intel.com>
19   */
20 
21 #include "main_pipe_manager.h"
22 
23 using namespace XCam;
24 
25 namespace GstXCam {
26 
27 void
post_buffer(const SmartPtr<VideoBuffer> & buf)28 MainPipeManager::post_buffer (const SmartPtr<VideoBuffer> &buf)
29 {
30     XCAM_ASSERT (buf.ptr ());
31     _ready_buffers.push (buf);
32 }
33 
34 SmartPtr<VideoBuffer>
dequeue_buffer(const int32_t timeout)35 MainPipeManager::dequeue_buffer (const int32_t timeout)
36 {
37     SmartPtr<VideoBuffer> ret;
38     ret = _ready_buffers.pop (timeout);
39     return ret;
40 }
41 
42 void
pause_dequeue()43 MainPipeManager::pause_dequeue ()
44 {
45     return _ready_buffers.pause_pop ();
46 }
47 
48 void
resume_dequeue()49 MainPipeManager::resume_dequeue ()
50 {
51     return _ready_buffers.resume_pop ();
52 }
53 
54 };
55