diff options
author | Austin Yuan <shengquan.yuan@gmail.com> | 2010-03-24 10:43:53 +0800 |
---|---|---|
committer | Austin Yuan <shengquan.yuan@gmail.com> | 2010-03-24 10:43:53 +0800 |
commit | 92e17d62fd6a9249906e284a28926010dc2c1639 (patch) | |
tree | d49e829d721dfe95bd71e446fc7ff93db6c2ccaf /test | |
parent | 5405c6ed5838af9294a17acc2140bffb2d282beb (diff) | |
parent | 11f69c8407d2d1ee68d9ca12f650a62a3b0bef64 (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.am | 6 | ||||
-rw-r--r-- | test/basic/Makefile.am | 4 | ||||
-rw-r--r-- | test/basic/test.c | 4 | ||||
-rw-r--r-- | test/basic/test_common.c | 4 | ||||
-rw-r--r-- | test/decode/Makefile.am | 4 | ||||
-rw-r--r-- | test/decode/mpeg2vldemo.c | 4 | ||||
-rw-r--r-- | test/encode/Makefile.am | 4 | ||||
-rw-r--r-- | test/encode/h264encode.c | 40 | ||||
-rw-r--r-- | test/putsurface/Makefile.am | 6 | ||||
-rw-r--r-- | test/putsurface/putsurface.c | 6 | ||||
-rw-r--r-- | test/vainfo.c | 4 |
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> |