package xgb /* This file was generated by xvmc.xml on May 7 2012 9:17:58pm EDT. This file is automatically generated. Edit at your peril! */ // Imports are not necessary for XGB because everything is // in one package. They are still listed here for reference. // import "xv" // XvmcInit must be called before using the XVideo-MotionCompensation extension. func (c *Conn) XvmcInit() error { reply, err := c.QueryExtension(25, "XVideo-MotionCompensation").Reply() switch { case err != nil: return err case !reply.Present: return errorf("No extension named XVideo-MotionCompensation could be found on on the server.") } c.extLock.Lock() c.extensions["XVideo-MotionCompensation"] = reply.MajorOpcode for evNum, fun := range newExtEventFuncs["XVideo-MotionCompensation"] { newEventFuncs[int(reply.FirstEvent)+evNum] = fun } for errNum, fun := range newExtErrorFuncs["XVideo-MotionCompensation"] { newErrorFuncs[int(reply.FirstError)+errNum] = fun } c.extLock.Unlock() return nil } func init() { newExtEventFuncs["XVideo-MotionCompensation"] = make(map[int]newEventFun) newExtErrorFuncs["XVideo-MotionCompensation"] = make(map[int]newErrorFun) } // Skipping definition for base type 'Int32' // Skipping definition for base type 'Void' // Skipping definition for base type 'Byte' // Skipping definition for base type 'Int8' // Skipping definition for base type 'Card16' // Skipping definition for base type 'Char' // Skipping definition for base type 'Card32' // Skipping definition for base type 'Double' // Skipping definition for base type 'Bool' // Skipping definition for base type 'Float' // Skipping definition for base type 'Id' // Skipping definition for base type 'Card8' // Skipping definition for base type 'Int16' // Skipping resource definition of 'Context' // Skipping resource definition of 'Surface' // Skipping resource definition of 'Subpicture' // 'XvmcSurfaceInfo' struct definition // Size: 24 type XvmcSurfaceInfo struct { Id Id ChromaFormat uint16 Pad0 uint16 MaxWidth uint16 MaxHeight uint16 SubpictureMaxWidth uint16 SubpictureMaxHeight uint16 McType uint32 Flags uint32 } // Struct read XvmcSurfaceInfo func ReadXvmcSurfaceInfo(buf []byte, v *XvmcSurfaceInfo) int { b := 0 v.Id = Id(Get32(buf[b:])) b += 4 v.ChromaFormat = Get16(buf[b:]) b += 2 v.Pad0 = Get16(buf[b:]) b += 2 v.MaxWidth = Get16(buf[b:]) b += 2 v.MaxHeight = Get16(buf[b:]) b += 2 v.SubpictureMaxWidth = Get16(buf[b:]) b += 2 v.SubpictureMaxHeight = Get16(buf[b:]) b += 2 v.McType = Get32(buf[b:]) b += 4 v.Flags = Get32(buf[b:]) b += 4 return b } // Struct list read XvmcSurfaceInfo func ReadXvmcSurfaceInfoList(buf []byte, dest []XvmcSurfaceInfo) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = XvmcSurfaceInfo{} b += ReadXvmcSurfaceInfo(buf[b:], &dest[i]) } return pad(b) } // Struct write XvmcSurfaceInfo func (v XvmcSurfaceInfo) Bytes() []byte { buf := make([]byte, 24) b := 0 Put32(buf[b:], uint32(v.Id)) b += 4 Put16(buf[b:], v.ChromaFormat) b += 2 Put16(buf[b:], v.Pad0) b += 2 Put16(buf[b:], v.MaxWidth) b += 2 Put16(buf[b:], v.MaxHeight) b += 2 Put16(buf[b:], v.SubpictureMaxWidth) b += 2 Put16(buf[b:], v.SubpictureMaxHeight) b += 2 Put32(buf[b:], v.McType) b += 4 Put32(buf[b:], v.Flags) b += 4 return buf } // Write struct list XvmcSurfaceInfo func XvmcSurfaceInfoListBytes(buf []byte, list []XvmcSurfaceInfo) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // Request XvmcQueryVersion // size: 4 type XvmcQueryVersionCookie struct { *cookie } func (c *Conn) XvmcQueryVersion() XvmcQueryVersionCookie { cookie := c.newCookie(true, true) c.newRequest(c.xvmcQueryVersionRequest(), cookie) return XvmcQueryVersionCookie{cookie} } func (c *Conn) XvmcQueryVersionUnchecked() XvmcQueryVersionCookie { cookie := c.newCookie(false, true) c.newRequest(c.xvmcQueryVersionRequest(), cookie) return XvmcQueryVersionCookie{cookie} } // Request reply for XvmcQueryVersion // size: 16 type XvmcQueryVersionReply struct { Sequence uint16 Length uint32 // padding: 1 bytes Major uint32 Minor uint32 } // Waits and reads reply data from request XvmcQueryVersion func (cook XvmcQueryVersionCookie) Reply() (*XvmcQueryVersionReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xvmcQueryVersionReply(buf), nil } // Read reply into structure from buffer for XvmcQueryVersion func xvmcQueryVersionReply(buf []byte) *XvmcQueryVersionReply { v := new(XvmcQueryVersionReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.Major = Get32(buf[b:]) b += 4 v.Minor = Get32(buf[b:]) b += 4 return v } func (cook XvmcQueryVersionCookie) Check() error { return cook.check() } // Write request to wire for XvmcQueryVersion func (c *Conn) xvmcQueryVersionRequest() []byte { size := 4 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] b += 1 buf[b] = 0 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 return buf } // Request XvmcListSurfaceTypes // size: 8 type XvmcListSurfaceTypesCookie struct { *cookie } func (c *Conn) XvmcListSurfaceTypes(PortId Id) XvmcListSurfaceTypesCookie { cookie := c.newCookie(true, true) c.newRequest(c.xvmcListSurfaceTypesRequest(PortId), cookie) return XvmcListSurfaceTypesCookie{cookie} } func (c *Conn) XvmcListSurfaceTypesUnchecked(PortId Id) XvmcListSurfaceTypesCookie { cookie := c.newCookie(false, true) c.newRequest(c.xvmcListSurfaceTypesRequest(PortId), cookie) return XvmcListSurfaceTypesCookie{cookie} } // Request reply for XvmcListSurfaceTypes // size: (32 + pad((int(Num) * 24))) type XvmcListSurfaceTypesReply struct { Sequence uint16 Length uint32 // padding: 1 bytes Num uint32 // padding: 20 bytes Surfaces []XvmcSurfaceInfo // size: pad((int(Num) * 24)) } // Waits and reads reply data from request XvmcListSurfaceTypes func (cook XvmcListSurfaceTypesCookie) Reply() (*XvmcListSurfaceTypesReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xvmcListSurfaceTypesReply(buf), nil } // Read reply into structure from buffer for XvmcListSurfaceTypes func xvmcListSurfaceTypesReply(buf []byte) *XvmcListSurfaceTypesReply { v := new(XvmcListSurfaceTypesReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.Num = Get32(buf[b:]) b += 4 b += 20 // padding v.Surfaces = make([]XvmcSurfaceInfo, v.Num) b += ReadXvmcSurfaceInfoList(buf[b:], v.Surfaces) return v } func (cook XvmcListSurfaceTypesCookie) Check() error { return cook.check() } // Write request to wire for XvmcListSurfaceTypes func (c *Conn) xvmcListSurfaceTypesRequest(PortId Id) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] b += 1 buf[b] = 1 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(PortId)) b += 4 return buf } // Request XvmcCreateContext // size: 24 type XvmcCreateContextCookie struct { *cookie } func (c *Conn) XvmcCreateContext(ContextId Id, PortId Id, SurfaceId Id, Width uint16, Height uint16, Flags uint32) XvmcCreateContextCookie { cookie := c.newCookie(true, true) c.newRequest(c.xvmcCreateContextRequest(ContextId, PortId, SurfaceId, Width, Height, Flags), cookie) return XvmcCreateContextCookie{cookie} } func (c *Conn) XvmcCreateContextUnchecked(ContextId Id, PortId Id, SurfaceId Id, Width uint16, Height uint16, Flags uint32) XvmcCreateContextCookie { cookie := c.newCookie(false, true) c.newRequest(c.xvmcCreateContextRequest(ContextId, PortId, SurfaceId, Width, Height, Flags), cookie) return XvmcCreateContextCookie{cookie} } // Request reply for XvmcCreateContext // size: (36 + pad((int(Length) * 4))) type XvmcCreateContextReply struct { Sequence uint16 Length uint32 // padding: 1 bytes WidthActual uint16 HeightActual uint16 FlagsReturn uint32 // padding: 20 bytes PrivData []uint32 // size: pad((int(Length) * 4)) } // Waits and reads reply data from request XvmcCreateContext func (cook XvmcCreateContextCookie) Reply() (*XvmcCreateContextReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xvmcCreateContextReply(buf), nil } // Read reply into structure from buffer for XvmcCreateContext func xvmcCreateContextReply(buf []byte) *XvmcCreateContextReply { v := new(XvmcCreateContextReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.WidthActual = Get16(buf[b:]) b += 2 v.HeightActual = Get16(buf[b:]) b += 2 v.FlagsReturn = Get32(buf[b:]) b += 4 b += 20 // padding v.PrivData = make([]uint32, v.Length) for i := 0; i < int(v.Length); i++ { v.PrivData[i] = Get32(buf[b:]) b += 4 } b = pad(b) return v } func (cook XvmcCreateContextCookie) Check() error { return cook.check() } // Write request to wire for XvmcCreateContext func (c *Conn) xvmcCreateContextRequest(ContextId Id, PortId Id, SurfaceId Id, Width uint16, Height uint16, Flags uint32) []byte { size := 24 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] b += 1 buf[b] = 2 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(ContextId)) b += 4 Put32(buf[b:], uint32(PortId)) b += 4 Put32(buf[b:], uint32(SurfaceId)) b += 4 Put16(buf[b:], Width) b += 2 Put16(buf[b:], Height) b += 2 Put32(buf[b:], Flags) b += 4 return buf } // Request XvmcDestroyContext // size: 8 type XvmcDestroyContextCookie struct { *cookie } // Write request to wire for XvmcDestroyContext func (c *Conn) XvmcDestroyContext(ContextId Id) XvmcDestroyContextCookie { cookie := c.newCookie(false, false) c.newRequest(c.xvmcDestroyContextRequest(ContextId), cookie) return XvmcDestroyContextCookie{cookie} } func (c *Conn) XvmcDestroyContextChecked(ContextId Id) XvmcDestroyContextCookie { cookie := c.newCookie(true, false) c.newRequest(c.xvmcDestroyContextRequest(ContextId), cookie) return XvmcDestroyContextCookie{cookie} } func (cook XvmcDestroyContextCookie) Check() error { return cook.check() } // Write request to wire for XvmcDestroyContext func (c *Conn) xvmcDestroyContextRequest(ContextId Id) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] b += 1 buf[b] = 3 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(ContextId)) b += 4 return buf } // Request XvmcCreateSurface // size: 12 type XvmcCreateSurfaceCookie struct { *cookie } func (c *Conn) XvmcCreateSurface(SurfaceId Id, ContextId Id) XvmcCreateSurfaceCookie { cookie := c.newCookie(true, true) c.newRequest(c.xvmcCreateSurfaceRequest(SurfaceId, ContextId), cookie) return XvmcCreateSurfaceCookie{cookie} } func (c *Conn) XvmcCreateSurfaceUnchecked(SurfaceId Id, ContextId Id) XvmcCreateSurfaceCookie { cookie := c.newCookie(false, true) c.newRequest(c.xvmcCreateSurfaceRequest(SurfaceId, ContextId), cookie) return XvmcCreateSurfaceCookie{cookie} } // Request reply for XvmcCreateSurface // size: (32 + pad((int(Length) * 4))) type XvmcCreateSurfaceReply struct { Sequence uint16 Length uint32 // padding: 1 bytes // padding: 24 bytes PrivData []uint32 // size: pad((int(Length) * 4)) } // Waits and reads reply data from request XvmcCreateSurface func (cook XvmcCreateSurfaceCookie) Reply() (*XvmcCreateSurfaceReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xvmcCreateSurfaceReply(buf), nil } // Read reply into structure from buffer for XvmcCreateSurface func xvmcCreateSurfaceReply(buf []byte) *XvmcCreateSurfaceReply { v := new(XvmcCreateSurfaceReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 b += 24 // padding v.PrivData = make([]uint32, v.Length) for i := 0; i < int(v.Length); i++ { v.PrivData[i] = Get32(buf[b:]) b += 4 } b = pad(b) return v } func (cook XvmcCreateSurfaceCookie) Check() error { return cook.check() } // Write request to wire for XvmcCreateSurface func (c *Conn) xvmcCreateSurfaceRequest(SurfaceId Id, ContextId Id) []byte { size := 12 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] b += 1 buf[b] = 4 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(SurfaceId)) b += 4 Put32(buf[b:], uint32(ContextId)) b += 4 return buf } // Request XvmcDestroySurface // size: 8 type XvmcDestroySurfaceCookie struct { *cookie } // Write request to wire for XvmcDestroySurface func (c *Conn) XvmcDestroySurface(SurfaceId Id) XvmcDestroySurfaceCookie { cookie := c.newCookie(false, false) c.newRequest(c.xvmcDestroySurfaceRequest(SurfaceId), cookie) return XvmcDestroySurfaceCookie{cookie} } func (c *Conn) XvmcDestroySurfaceChecked(SurfaceId Id) XvmcDestroySurfaceCookie { cookie := c.newCookie(true, false) c.newRequest(c.xvmcDestroySurfaceRequest(SurfaceId), cookie) return XvmcDestroySurfaceCookie{cookie} } func (cook XvmcDestroySurfaceCookie) Check() error { return cook.check() } // Write request to wire for XvmcDestroySurface func (c *Conn) xvmcDestroySurfaceRequest(SurfaceId Id) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] b += 1 buf[b] = 5 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(SurfaceId)) b += 4 return buf } // Request XvmcCreateSubpicture // size: 20 type XvmcCreateSubpictureCookie struct { *cookie } func (c *Conn) XvmcCreateSubpicture(SubpictureId Id, Context Id, XvimageId uint32, Width uint16, Height uint16) XvmcCreateSubpictureCookie { cookie := c.newCookie(true, true) c.newRequest(c.xvmcCreateSubpictureRequest(SubpictureId, Context, XvimageId, Width, Height), cookie) return XvmcCreateSubpictureCookie{cookie} } func (c *Conn) XvmcCreateSubpictureUnchecked(SubpictureId Id, Context Id, XvimageId uint32, Width uint16, Height uint16) XvmcCreateSubpictureCookie { cookie := c.newCookie(false, true) c.newRequest(c.xvmcCreateSubpictureRequest(SubpictureId, Context, XvimageId, Width, Height), cookie) return XvmcCreateSubpictureCookie{cookie} } // Request reply for XvmcCreateSubpicture // size: (32 + pad((int(Length) * 4))) type XvmcCreateSubpictureReply struct { Sequence uint16 Length uint32 // padding: 1 bytes WidthActual uint16 HeightActual uint16 NumPaletteEntries uint16 EntryBytes uint16 ComponentOrder []byte // size: 4 // padding: 12 bytes PrivData []uint32 // size: pad((int(Length) * 4)) } // Waits and reads reply data from request XvmcCreateSubpicture func (cook XvmcCreateSubpictureCookie) Reply() (*XvmcCreateSubpictureReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xvmcCreateSubpictureReply(buf), nil } // Read reply into structure from buffer for XvmcCreateSubpicture func xvmcCreateSubpictureReply(buf []byte) *XvmcCreateSubpictureReply { v := new(XvmcCreateSubpictureReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.WidthActual = Get16(buf[b:]) b += 2 v.HeightActual = Get16(buf[b:]) b += 2 v.NumPaletteEntries = Get16(buf[b:]) b += 2 v.EntryBytes = Get16(buf[b:]) b += 2 v.ComponentOrder = make([]byte, 4) copy(v.ComponentOrder[:4], buf[b:]) b += pad(int(4)) b += 12 // padding v.PrivData = make([]uint32, v.Length) for i := 0; i < int(v.Length); i++ { v.PrivData[i] = Get32(buf[b:]) b += 4 } b = pad(b) return v } func (cook XvmcCreateSubpictureCookie) Check() error { return cook.check() } // Write request to wire for XvmcCreateSubpicture func (c *Conn) xvmcCreateSubpictureRequest(SubpictureId Id, Context Id, XvimageId uint32, Width uint16, Height uint16) []byte { size := 20 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] b += 1 buf[b] = 6 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(SubpictureId)) b += 4 Put32(buf[b:], uint32(Context)) b += 4 Put32(buf[b:], XvimageId) b += 4 Put16(buf[b:], Width) b += 2 Put16(buf[b:], Height) b += 2 return buf } // Request XvmcDestroySubpicture // size: 8 type XvmcDestroySubpictureCookie struct { *cookie } // Write request to wire for XvmcDestroySubpicture func (c *Conn) XvmcDestroySubpicture(SubpictureId Id) XvmcDestroySubpictureCookie { cookie := c.newCookie(false, false) c.newRequest(c.xvmcDestroySubpictureRequest(SubpictureId), cookie) return XvmcDestroySubpictureCookie{cookie} } func (c *Conn) XvmcDestroySubpictureChecked(SubpictureId Id) XvmcDestroySubpictureCookie { cookie := c.newCookie(true, false) c.newRequest(c.xvmcDestroySubpictureRequest(SubpictureId), cookie) return XvmcDestroySubpictureCookie{cookie} } func (cook XvmcDestroySubpictureCookie) Check() error { return cook.check() } // Write request to wire for XvmcDestroySubpicture func (c *Conn) xvmcDestroySubpictureRequest(SubpictureId Id) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] b += 1 buf[b] = 7 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(SubpictureId)) b += 4 return buf } // Request XvmcListSubpictureTypes // size: 12 type XvmcListSubpictureTypesCookie struct { *cookie } func (c *Conn) XvmcListSubpictureTypes(PortId Id, SurfaceId Id) XvmcListSubpictureTypesCookie { cookie := c.newCookie(true, true) c.newRequest(c.xvmcListSubpictureTypesRequest(PortId, SurfaceId), cookie) return XvmcListSubpictureTypesCookie{cookie} } func (c *Conn) XvmcListSubpictureTypesUnchecked(PortId Id, SurfaceId Id) XvmcListSubpictureTypesCookie { cookie := c.newCookie(false, true) c.newRequest(c.xvmcListSubpictureTypesRequest(PortId, SurfaceId), cookie) return XvmcListSubpictureTypesCookie{cookie} } // Request reply for XvmcListSubpictureTypes // size: (32 + XvImageFormatInfoListSize(Types)) type XvmcListSubpictureTypesReply struct { Sequence uint16 Length uint32 // padding: 1 bytes Num uint32 // padding: 20 bytes Types []XvImageFormatInfo // size: XvImageFormatInfoListSize(Types) } // Waits and reads reply data from request XvmcListSubpictureTypes func (cook XvmcListSubpictureTypesCookie) Reply() (*XvmcListSubpictureTypesReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xvmcListSubpictureTypesReply(buf), nil } // Read reply into structure from buffer for XvmcListSubpictureTypes func xvmcListSubpictureTypesReply(buf []byte) *XvmcListSubpictureTypesReply { v := new(XvmcListSubpictureTypesReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.Num = Get32(buf[b:]) b += 4 b += 20 // padding v.Types = make([]XvImageFormatInfo, v.Num) b += ReadXvImageFormatInfoList(buf[b:], v.Types) return v } func (cook XvmcListSubpictureTypesCookie) Check() error { return cook.check() } // Write request to wire for XvmcListSubpictureTypes func (c *Conn) xvmcListSubpictureTypesRequest(PortId Id, SurfaceId Id) []byte { size := 12 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] b += 1 buf[b] = 8 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(PortId)) b += 4 Put32(buf[b:], uint32(SurfaceId)) b += 4 return buf }