summaryrefslogtreecommitdiff
path: root/va/va_fool.c
diff options
context:
space:
mode:
authorAustin Yuan <shengquan.yuan@gmail.com>2011-02-08 22:44:43 -0800
committerAustin Yuan <shengquan.yuan@gmail.com>2011-02-08 22:44:43 -0800
commit45987380ec7868529b9db77d646429fe873e605e (patch)
tree1fbebe21b1dde9a1749aa683965bbfff9f743610 /va/va_fool.c
parentabe27fd4b73673f62c37300ec3886921d2ac3e74 (diff)
downloadlibva-45987380ec7868529b9db77d646429fe873e605e.tar.gz
1) cleanup for VA_FOOL
2) initial EGL support 3) libva.spec update for RPM build Signed-off-by: Guoliang Ji <guoliangx.ji@intel.com> Signed-off-by: Jason Hu <jason.hu@intel.com> Signed-off-by: Stephen Ware <stephen.e.ware@intel.com> Signed-off-by: Austin Yuan <shengquan.yuan@gmail.com>
Diffstat (limited to 'va/va_fool.c')
-rw-r--r--va/va_fool.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/va/va_fool.c b/va/va_fool.c
index be2540b..b2d7449 100644
--- a/va/va_fool.c
+++ b/va/va_fool.c
@@ -80,6 +80,7 @@ static struct _fool_context {
FILE *fool_fp_codedclip; /* load a clip from disk for fooling encode*/
char *frame_buf;
+ VACodedBufferSegment *codebuf;
/* all buffers with same type share one malloc-ed memory
* bufferID = (buffer numbers with the same type << 8) || type
@@ -179,13 +180,17 @@ void va_FoolInit(VADisplay dpy)
fool_encode = 0;
if (fool_encode) /* malloc the buffer for fake clip */
+ {
fool_context[fool_index].frame_buf = malloc(MAX_FRAME*SLICE_NUM*NAL_BUF_SIZE*sizeof(char));
+ fool_context[fool_index].codebuf = malloc(sizeof(VACodedBufferSegment));
+ }
if (fool_context[fool_index].frame_buf == NULL)
fool_encode = 0;
if (fool_encode)
va_infoMessage("LIBVA_FOOL_ENCODE is on, dummy encode\n");
+
}
if (fool_encode || fool_decode)
@@ -209,6 +214,9 @@ int va_FoolEnd(VADisplay dpy)
if (fool_context[idx].frame_buf)
free(fool_context[idx].frame_buf);
+ if (fool_context[idx].codebuf)
+ free(fool_context[idx].codebuf);
+
memset(&fool_context[idx], sizeof(struct _fool_context), 0);
return 0;
}
@@ -422,7 +430,7 @@ VAStatus va_FoolMapBuffer (
)
{
VABufferType type;
- unsigned int size;
+ unsigned int size,frame_size = 0;
unsigned int num_elements;
DPY2INDEX(dpy);
@@ -443,9 +451,17 @@ VAStatus va_FoolMapBuffer (
/* expect APP to MapBuffer when get the the coded data */
if (*pbuf && (buf_idx == VAEncCodedBufferType)) { /* it is coded buffer */
/* read from a clip */
- va_FoolGetFrame(fool_context[idx].fool_fp_codedclip,
- fool_context[idx].frame_buf);
- *pbuf = fool_context[idx].frame_buf;
+ frame_size = va_FoolGetFrame(fool_context[idx].fool_fp_codedclip,
+ fool_context[idx].frame_buf);
+
+ memset(fool_context[idx].codebuf,0,sizeof(VACodedBufferSegment));
+ fool_context[idx].codebuf->size = frame_size;
+ fool_context[idx].codebuf->bit_offset = 0;
+ fool_context[idx].codebuf->status = 0;
+ fool_context[idx].codebuf->reserved = 0;
+ fool_context[idx].codebuf->buf = fool_context[idx].frame_buf;
+ fool_context[idx].codebuf->next = NULL;
+ *pbuf = fool_context[idx].codebuf;
}
return 1; /* don't call into driver */
}