summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAustin Yuan <shengquan.yuan@gmail.com>2010-03-24 10:43:53 +0800
committerAustin Yuan <shengquan.yuan@gmail.com>2010-03-24 10:43:53 +0800
commit92e17d62fd6a9249906e284a28926010dc2c1639 (patch)
treed49e829d721dfe95bd71e446fc7ff93db6c2ccaf /test
parent5405c6ed5838af9294a17acc2140bffb2d282beb (diff)
parent11f69c8407d2d1ee68d9ca12f650a62a3b0bef64 (diff)
Merge branch 'master' of git+ssh://AustinYuan@git.freedesktop.org/git/libva into sync-fdo-master20100324_5.3.0.0000
Diffstat (limited to 'test')
-rw-r--r--test/Makefile.am6
-rw-r--r--test/basic/Makefile.am4
-rw-r--r--test/basic/test.c4
-rw-r--r--test/basic/test_common.c4
-rw-r--r--test/decode/Makefile.am4
-rw-r--r--test/decode/mpeg2vldemo.c4
-rw-r--r--test/encode/Makefile.am4
-rw-r--r--test/encode/h264encode.c40
-rw-r--r--test/putsurface/Makefile.am6
-rw-r--r--test/putsurface/putsurface.c6
-rw-r--r--test/vainfo.c4
11 files changed, 46 insertions, 40 deletions
diff --git a/test/Makefile.am b/test/Makefile.am
index 5734226..d7e1b1f 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -23,11 +23,11 @@
bin_PROGRAMS = vainfo
-AM_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/test/basic -I$(top_srcdir)/src/x11 -DIN_LIBVA
+AM_CFLAGS = -I$(top_srcdir)/va -I$(top_srcdir)/test/basic -I$(top_srcdir)/src/x11
-vainfo_LDADD = $(top_srcdir)/src/$(libvabackendlib)
-vainfo_DEPENDENCIES = $(top_srcdir)/src/$(libvabackendlib)
+vainfo_LDADD = $(top_srcdir)/va/$(libvabackendlib)
+vainfo_DEPENDENCIES = $(top_srcdir)/va/$(libvabackendlib)
vainfo_SOURCES = vainfo.c
SUBDIRS = basic decode encode putsurface
diff --git a/test/basic/Makefile.am b/test/basic/Makefile.am
index 24de161..49a54a0 100644
--- a/test/basic/Makefile.am
+++ b/test/basic/Makefile.am
@@ -23,9 +23,9 @@
bin_PROGRAMS = test_01 test_02 test_03 test_04 test_05 test_06 \
test_07 test_08 test_09 test_10 test_11
-AM_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 -DIN_LIBVA
+AM_CFLAGS = -I$(top_srcdir)/va -I$(top_srcdir)/src/x11
-TEST_LIBS = $(top_srcdir)/src/$(libvabackendlib)
+TEST_LIBS = $(top_srcdir)/va/$(libvabackendlib)
test_01_LDADD = $(TEST_LIBS)
test_01_SOURCES = test_01.c
diff --git a/test/basic/test.c b/test/basic/test.c
index 2e98b12..a03a8b2 100644
--- a/test/basic/test.c
+++ b/test/basic/test.c
@@ -22,11 +22,7 @@
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-#ifdef IN_LIBVA
-#include <va_x11.h>
-#else
#include <va/va_x11.h>
-#endif
#include "assert.h"
#include <stdarg.h>
diff --git a/test/basic/test_common.c b/test/basic/test_common.c
index 91774da..8287d1e 100644
--- a/test/basic/test_common.c
+++ b/test/basic/test_common.c
@@ -22,11 +22,7 @@
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-#ifdef IN_LIBVA
-#include <va_x11.h>
-#else
#include <va/va_x11.h>
-#endif
#include "assert.h"
#include <stdarg.h>
diff --git a/test/decode/Makefile.am b/test/decode/Makefile.am
index 9283671..b100421 100644
--- a/test/decode/Makefile.am
+++ b/test/decode/Makefile.am
@@ -22,9 +22,9 @@
bin_PROGRAMS = mpeg2vldemo
-AM_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 -DIN_LIBVA
+AM_CFLAGS = -I$(top_srcdir)/va -I$(top_srcdir)/src/x11
-TEST_LIBS = $(top_srcdir)/src/$(libvabackendlib)
+TEST_LIBS = $(top_srcdir)/va/$(libvabackendlib)
mpeg2vldemo_LDADD = $(TEST_LIBS)
mpeg2vldemo_SOURCES = mpeg2vldemo.c
diff --git a/test/decode/mpeg2vldemo.c b/test/decode/mpeg2vldemo.c
index d62f1c2..7057675 100644
--- a/test/decode/mpeg2vldemo.c
+++ b/test/decode/mpeg2vldemo.c
@@ -47,8 +47,8 @@
#include <assert.h>
-#include "va.h"
-#include "va_x11.h"
+#include <va/va.h>
+#include <va/va_x11.h>
#define CHECK_VASTATUS(va_status,func) \
if (va_status != VA_STATUS_SUCCESS) { \
diff --git a/test/encode/Makefile.am b/test/encode/Makefile.am
index 6d2d5a9..5866666 100644
--- a/test/encode/Makefile.am
+++ b/test/encode/Makefile.am
@@ -22,9 +22,9 @@
bin_PROGRAMS = h264encode
-AM_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 -DIN_LIBVA
+AM_CFLAGS = -I$(top_srcdir)/va -I$(top_srcdir)/src/x11
-TEST_LIBS = $(top_srcdir)/src/$(libvabackendlib)
+TEST_LIBS = $(top_srcdir)/va/$(libvabackendlib)
h264encode_LDADD = $(TEST_LIBS)
h264encode_SOURCES = h264encode.c
diff --git a/test/encode/h264encode.c b/test/encode/h264encode.c
index 46f1ff6..bb0cce9 100644
--- a/test/encode/h264encode.c
+++ b/test/encode/h264encode.c
@@ -26,7 +26,7 @@
* it is a real program to show how VAAPI encoding work,
* It does H264 element stream level encoding on auto-generated YUV data
*
- * gcc -o h264encode h264encode -lva -lva-x11 -I/usr/include/va
+ * gcc -o h264encode h264encode -lva -lva-x11
* ./h264encode -w <width> -h <height> -n <frame_num>
*
*/
@@ -44,9 +44,8 @@
#include <assert.h>
-#include "va.h"
-#include "va_x11.h"
-
+#include <va/va.h>
+#include <va/va_x11.h>
#define CHECK_VASTATUS(va_status,func) \
if (va_status != VA_STATUS_SUCCESS) { \
@@ -212,10 +211,11 @@ static int do_h264_encoding(void)
VAEncPictureParameterBufferH264 pic_h264;
VAEncSliceParameterBuffer slice_h264;
VAStatus va_status;
- VABufferID coded_buf, seq_param_buf, pic_param_buf, slice_param_buf;
+ VABufferID seq_param_buf, pic_param_buf, slice_param_buf;
int codedbuf_size;
VASurfaceStatus surface_status;
int src_surface, dst_surface, ref_surface;
+ int codedbuf_idx = 0;
int frame_skipped = 0;
int i;
@@ -229,12 +229,24 @@ static int do_h264_encoding(void)
codedbuf_size = (frame_width * frame_height * 400) / (16*16);
+ for (i = 0; i < CODEDBUF_NUM; i++) {
+ /* create coded buffer once for all
+ * other VA buffers which won't be used again after vaRenderPicture.
+ * so APP can always vaCreateBuffer for every frame
+ * but coded buffer need to be mapped and accessed after vaRenderPicture/vaEndPicture
+ * so VA won't maintain the coded buffer
+ */
+ va_status = vaCreateBuffer(va_dpy,context_id,VAEncCodedBufferType,
+ codedbuf_size, 1, NULL, &coded_buf[i]);
+ CHECK_VASTATUS(va_status,"vaBeginPicture");
+ }
+
src_surface = 0;
/* the last two frames are reference/reconstructed frame */
dst_surface = SURFACE_NUM - 1;
ref_surface = SURFACE_NUM - 2;
- for (i=0; i < frame_count; i++) {
+ for (i = 0; i < frame_count; i++) {
va_status = vaBeginPicture(va_dpy, context_id, surface_id[src_surface]);
CHECK_VASTATUS(va_status,"vaBeginPicture");
@@ -249,7 +261,7 @@ static int do_h264_encoding(void)
seq_h264.frame_rate = frame_rate;
seq_h264.initial_qp = initial_qp;
seq_h264.min_qp = minimal_qp;
- seq_h264.basic_unit_size = 6;
+ seq_h264.basic_unit_size = 0;
seq_h264.intra_period = intra_count;
va_status = vaCreateBuffer(va_dpy, context_id,
@@ -261,12 +273,10 @@ static int do_h264_encoding(void)
CHECK_VASTATUS(va_status,"vaRenderPicture");;
}
- va_status = vaCreateBuffer(va_dpy,context_id,VAEncCodedBufferType,
- codedbuf_size, 1, NULL, &coded_buf);
pic_h264.reference_picture = surface_id[ref_surface];
pic_h264.reconstructed_picture= surface_id[dst_surface];
- pic_h264.coded_buf = coded_buf;
+ pic_h264.coded_buf = coded_buf[codedbuf_idx];
pic_h264.picture_width = frame_width;
pic_h264.picture_height = frame_height;
pic_h264.last_picture = (i==frame_count);
@@ -300,7 +310,7 @@ static int do_h264_encoding(void)
va_status = vaQuerySurfaceStatus(va_dpy, surface_id[src_surface],&surface_status);
frame_skipped = (surface_status & VASurfaceSkipped);
- save_coded_buf(coded_buf, i, frame_skipped);
+ save_coded_buf(coded_buf[codedbuf_idx], i, frame_skipped);
/* should display reconstructed frame, but just diplay source frame */
if (frame_display) {
@@ -316,6 +326,11 @@ static int do_h264_encoding(void)
if (src_surface == (SURFACE_NUM - 2))
src_surface = 0;
+ /* use next codedbuf */
+ codedbuf_idx++;
+ if (codedbuf_idx == (CODEDBUF_NUM - 1))
+ codedbuf_idx = 0;
+
/* if a frame is skipped, current frame still use last reference frame */
if (frame_skipped == 0) {
/* swap ref/dst */
@@ -375,7 +390,8 @@ int main(int argc,char **argv)
case '?':
printf("./h264encode <options>\n");
printf(" -w -h: resolution\n");
- printf(" -n frame number\n");
+ printf(" -n frame number\n");
+ printf(" -d display the source frame\n");
printf(" -p P frame count between two I frames\n");
printf(" -f frame rate\n");
printf(" -r bit rate\n");
diff --git a/test/putsurface/Makefile.am b/test/putsurface/Makefile.am
index 3e5c864..51edb25 100644
--- a/test/putsurface/Makefile.am
+++ b/test/putsurface/Makefile.am
@@ -22,13 +22,15 @@
bin_PROGRAMS = putsurface
-AM_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 -DIN_LIBVA
+AM_CFLAGS = -I$(top_srcdir)/va -I$(top_srcdir)/src/x11
-TEST_LIBS = $(top_srcdir)/src/$(libvabackendlib)
+TEST_LIBS = $(top_srcdir)/va/$(libvabackendlib) -lpthread
putsurface_LDADD = $(TEST_LIBS)
putsurface_SOURCES = putsurface.c
+EXTRA_DIST = loadsurface.h
+
valgrind: $(bin_PROGRAMS)
for a in $(bin_PROGRAMS); do \
diff --git a/test/putsurface/putsurface.c b/test/putsurface/putsurface.c
index 335368a..0de786c 100644
--- a/test/putsurface/putsurface.c
+++ b/test/putsurface/putsurface.c
@@ -23,7 +23,7 @@
*/
-/* gcc -o putsurface putsurface.c -lva -lva-x11 -I/usr/include/va */
+/* gcc -o putsurface putsurface.c -lva -lva-x11 */
#include <stdio.h>
#include <string.h>
@@ -39,8 +39,8 @@
#include <sys/stat.h>
#include <fcntl.h>
-#include "va.h"
-#include "va_x11.h"
+#include <va/va.h>
+#include <va/va_x11.h>
#include <assert.h>
diff --git a/test/vainfo.c b/test/vainfo.c
index 79ee055..33d6ea4 100644
--- a/test/vainfo.c
+++ b/test/vainfo.c
@@ -22,11 +22,7 @@
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-#ifdef IN_LIBVA
-#include <va_x11.h>
-#else
#include <va/va_x11.h>
-#endif
#include <stdarg.h>
#include <stdio.h>