Home | History | Annotate | Download | only in common
      1 /*
      2  *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
      3  *
      4  *  Use of this source code is governed by a BSD-style license
      5  *  that can be found in the LICENSE file in the root of the source
      6  *  tree. An additional intellectual property rights grant can be found
      7  *  in the file PATENTS.  All contributing project authors may
      8  *  be found in the AUTHORS file in the root of the source tree.
      9  */
     10 
     11 
     12 #ifndef __INC_VP8D_H
     13 #define __INC_VP8D_H
     14 
     15 
     16 /* Create/destroy static data structures. */
     17 #ifdef __cplusplus
     18 extern "C"
     19 {
     20 #endif
     21 #include "type_aliases.h"
     22 #include "vpx_scale/yv12config.h"
     23 #include "ppflags.h"
     24 #include "vpx_ports/mem.h"
     25 
     26     typedef void   *VP8D_PTR;
     27     typedef struct
     28     {
     29         int     Width;
     30         int     Height;
     31         int     Version;
     32         int     postprocess;
     33         int     max_threads;
     34     } VP8D_CONFIG;
     35     typedef enum
     36     {
     37         VP8_LAST_FLAG = 1,
     38         VP8_GOLD_FLAG = 2,
     39         VP8_ALT_FLAG = 4
     40     } VP8_REFFRAME;
     41 
     42     typedef enum
     43     {
     44         VP8D_OK = 0
     45     } VP8D_SETTING;
     46 
     47     void vp8dx_initialize(void);
     48 
     49     void vp8dx_set_setting(VP8D_PTR comp, VP8D_SETTING oxst, int x);
     50 
     51     int vp8dx_get_setting(VP8D_PTR comp, VP8D_SETTING oxst);
     52 
     53     int vp8dx_receive_compressed_data(VP8D_PTR comp, unsigned long size, const unsigned char *dest, INT64 time_stamp);
     54     int vp8dx_get_raw_frame(VP8D_PTR comp, YV12_BUFFER_CONFIG *sd, INT64 *time_stamp, INT64 *time_end_stamp, vp8_ppflags_t *flags);
     55 
     56     int vp8dx_get_reference(VP8D_PTR comp, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd);
     57     int vp8dx_set_reference(VP8D_PTR comp, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd);
     58 
     59     VP8D_PTR vp8dx_create_decompressor(VP8D_CONFIG *oxcf);
     60 
     61     void vp8dx_remove_decompressor(VP8D_PTR comp);
     62 
     63 #ifdef __cplusplus
     64 }
     65 #endif
     66 
     67 
     68 #endif
     69