gallium: add INTERP_* opcodes to support interpolateAt*
[mesa.git] / src / gallium / include / pipe / p_video_codec.h
index 17f680476489526ca20f06aa68b9ccca93e58282..196d00bc546bac6e082231a41a09d8f5036c22fd 100644 (file)
@@ -18,7 +18,7 @@
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -48,6 +48,7 @@ struct pipe_video_codec
    struct pipe_context *context;
 
    enum pipe_video_profile profile;
+   unsigned level;
    enum pipe_video_entrypoint entrypoint;
    enum pipe_video_chroma_format chroma_format;
    unsigned width;
@@ -86,6 +87,14 @@ struct pipe_video_codec
                             const void * const *buffers,
                             const unsigned *sizes);
 
+   /**
+    * encode to a bitstream
+    */
+   void (*encode_bitstream)(struct pipe_video_codec *codec,
+                            struct pipe_video_buffer *source,
+                            struct pipe_resource *destination,
+                            void **feedback);
+
    /**
     * end decoding of the current frame
     */
@@ -98,6 +107,11 @@ struct pipe_video_codec
     * should be called before a video_buffer is acessed by the state tracker again
     */
    void (*flush)(struct pipe_video_codec *codec);
+
+   /**
+    * get encoder feedback
+    */
+   void (*get_feedback)(struct pipe_video_codec *codec, void *feedback, unsigned *size);
 };
 
 /**