comparison mpegvideo.c @ 336:c56b45669214 libavcodec

export delay info fixed low_delay & vo_type on mpeg4 header writer & parser
author michaelni
date Mon, 22 Apr 2002 19:04:28 +0000
parents 8aa87f1dfc52
children b743a6bbab25
comparison
equal deleted inserted replaced
335:e7e9d9901523 336:c56b45669214
407 s->fixed_qscale = (avctx->flags & CODEC_FLAG_QSCALE); 407 s->fixed_qscale = (avctx->flags & CODEC_FLAG_QSCALE);
408 408
409 switch(avctx->codec->id) { 409 switch(avctx->codec->id) {
410 case CODEC_ID_MPEG1VIDEO: 410 case CODEC_ID_MPEG1VIDEO:
411 s->out_format = FMT_MPEG1; 411 s->out_format = FMT_MPEG1;
412 avctx->delay=0; //FIXME not sure, should check the spec
412 break; 413 break;
413 case CODEC_ID_MJPEG: 414 case CODEC_ID_MJPEG:
414 s->out_format = FMT_MJPEG; 415 s->out_format = FMT_MJPEG;
415 s->intra_only = 1; /* force intra only for jpeg */ 416 s->intra_only = 1; /* force intra only for jpeg */
416 s->mjpeg_write_tables = 1; /* write all tables */ 417 s->mjpeg_write_tables = 1; /* write all tables */
420 s->mjpeg_hsample[0] = 2; 421 s->mjpeg_hsample[0] = 2;
421 s->mjpeg_hsample[1] = 1; 422 s->mjpeg_hsample[1] = 1;
422 s->mjpeg_hsample[2] = 1; 423 s->mjpeg_hsample[2] = 1;
423 if (mjpeg_init(s) < 0) 424 if (mjpeg_init(s) < 0)
424 return -1; 425 return -1;
426 avctx->delay=0;
425 break; 427 break;
426 case CODEC_ID_H263: 428 case CODEC_ID_H263:
427 if (h263_get_picture_format(s->width, s->height) == 7) { 429 if (h263_get_picture_format(s->width, s->height) == 7) {
428 printf("Input picture size isn't suitable for h263 codec! try h263+\n"); 430 printf("Input picture size isn't suitable for h263 codec! try h263+\n");
429 return -1; 431 return -1;
430 } 432 }
431 s->out_format = FMT_H263; 433 s->out_format = FMT_H263;
434 avctx->delay=0;
432 break; 435 break;
433 case CODEC_ID_H263P: 436 case CODEC_ID_H263P:
434 s->out_format = FMT_H263; 437 s->out_format = FMT_H263;
435 s->rtp_mode = 1; 438 s->rtp_mode = 1;
436 s->rtp_payload_size = 1200; 439 s->rtp_payload_size = 1200;
438 s->unrestricted_mv = 1; 441 s->unrestricted_mv = 1;
439 442
440 /* These are just to be sure */ 443 /* These are just to be sure */
441 s->umvplus = 0; 444 s->umvplus = 0;
442 s->umvplus_dec = 0; 445 s->umvplus_dec = 0;
446 avctx->delay=0;
443 break; 447 break;
444 case CODEC_ID_RV10: 448 case CODEC_ID_RV10:
445 s->out_format = FMT_H263; 449 s->out_format = FMT_H263;
446 s->h263_rv10 = 1; 450 s->h263_rv10 = 1;
451 avctx->delay=0;
447 break; 452 break;
448 case CODEC_ID_MPEG4: 453 case CODEC_ID_MPEG4:
449 s->out_format = FMT_H263; 454 s->out_format = FMT_H263;
450 s->h263_pred = 1; 455 s->h263_pred = 1;
451 s->unrestricted_mv = 1; 456 s->unrestricted_mv = 1;
452 s->has_b_frames= s->max_b_frames ? 1 : 0; 457 s->has_b_frames= s->max_b_frames ? 1 : 0;
458 s->low_delay=0;
459 avctx->delay= s->low_delay ? 0 : (s->max_b_frames + 1);
453 break; 460 break;
454 case CODEC_ID_MSMPEG4V1: 461 case CODEC_ID_MSMPEG4V1:
455 s->out_format = FMT_H263; 462 s->out_format = FMT_H263;
456 s->h263_msmpeg4 = 1; 463 s->h263_msmpeg4 = 1;
457 s->h263_pred = 1; 464 s->h263_pred = 1;
458 s->unrestricted_mv = 1; 465 s->unrestricted_mv = 1;
459 s->msmpeg4_version= 1; 466 s->msmpeg4_version= 1;
467 avctx->delay=0;
460 break; 468 break;
461 case CODEC_ID_MSMPEG4V2: 469 case CODEC_ID_MSMPEG4V2:
462 s->out_format = FMT_H263; 470 s->out_format = FMT_H263;
463 s->h263_msmpeg4 = 1; 471 s->h263_msmpeg4 = 1;
464 s->h263_pred = 1; 472 s->h263_pred = 1;
465 s->unrestricted_mv = 1; 473 s->unrestricted_mv = 1;
466 s->msmpeg4_version= 2; 474 s->msmpeg4_version= 2;
475 avctx->delay=0;
467 break; 476 break;
468 case CODEC_ID_MSMPEG4V3: 477 case CODEC_ID_MSMPEG4V3:
469 s->out_format = FMT_H263; 478 s->out_format = FMT_H263;
470 s->h263_msmpeg4 = 1; 479 s->h263_msmpeg4 = 1;
471 s->h263_pred = 1; 480 s->h263_pred = 1;
472 s->unrestricted_mv = 1; 481 s->unrestricted_mv = 1;
473 s->msmpeg4_version= 3; 482 s->msmpeg4_version= 3;
483 avctx->delay=0;
474 break; 484 break;
475 default: 485 default:
476 return -1; 486 return -1;
477 } 487 }
478 488