Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
+enum {
+ MPEG2_MODE_I = 0,
+ MPEG2_MODE_IP,
+ MPEG2_MODE_IPB,
+};
+
#define CHECK_VASTATUS(va_status, func) \
if (va_status != VA_STATUS_SUCCESS) { \
fprintf(stderr, "%s:%s (%d) failed, exit\n", __func__, func, __LINE__); \
#define CHECK_VASTATUS(va_status, func) \
if (va_status != VA_STATUS_SUCCESS) { \
fprintf(stderr, "%s:%s (%d) failed, exit\n", __func__, func, __LINE__); \
ctx->fps = 30;
ctx->qp = 8;
ctx->rate_control_mode = VA_RC_CQP;
ctx->fps = 30;
ctx->qp = 8;
ctx->rate_control_mode = VA_RC_CQP;
+ ctx->mode = MPEG2_MODE_IP;
case 'm':
tmp = atoi(optarg);
case 'm':
tmp = atoi(optarg);
- if (tmp < 0 || tmp > 2)
+ if (tmp < MPEG2_MODE_I || tmp > MPEG2_MODE_IPB)
fprintf(stderr, "Waning: MODE must be 0, 1, or 2\n");
else
ctx->mode = tmp;
fprintf(stderr, "Waning: MODE must be 0, 1, or 2\n");
else
ctx->mode = tmp;
ctx->codedbuf_i_size = ctx->frame_size;
ctx->codedbuf_pb_size = 0;
ctx->codedbuf_i_size = ctx->frame_size;
ctx->codedbuf_pb_size = 0;
+ if (ctx->mode == MPEG2_MODE_I)
ctx->intra_period = 1;
else
ctx->intra_period = 16;
ctx->intra_period = 1;
else
ctx->intra_period = 16;
int display_order = 0, coded_order = 0;
for (display_order = 0; display_order < ctx->num_pictures;) {
int display_order = 0, coded_order = 0;
for (display_order = 0; display_order < ctx->num_pictures;) {
+ if (ctx->mode == MPEG2_MODE_I) {
encode_picture(ctx,
coded_order,
display_order,
encode_picture(ctx,
coded_order,
display_order,
display_order + 1);
display_order++;
coded_order++;
display_order + 1);
display_order++;
coded_order++;
- } else if (ctx->mode == 1) {
+ } else if (ctx->mode == MPEG2_MODE_IP) {
assert(0);
if ((display_order % ctx->intra_period) == 0) {
encode_picture(ctx,
assert(0);
if ((display_order % ctx->intra_period) == 0) {
encode_picture(ctx,