| @@ -450,40 +450,40 @@ fail: · 449 unmodified lines |
| 450 | return err; | 450 | return err; |
| 451 | } | 451 | } |
| 452 | | 452 | |
| 453 | static int get_private_data(struct Track *track, AVCodecContext *codec) | 453 | static int get_private_data(struct Track *track, AVCodecParameters *codecpar) |
| 454 | { | 454 | { |
| 455 | track->codec_private_size = codec->extradata_size; | 455 | track->codec_private_size = codecpar->extradata_size; |
| 456 | track->codec_private = av_mallocz(codec->extradata_size); | 456 | track->codec_private = av_mallocz(codecpar->extradata_size); |
| 457 | if (!track->codec_private) | 457 | if (!track->codec_private) |
| 458 | return AVERROR(ENOMEM); | 458 | return AVERROR(ENOMEM); |
| 459 | memcpy(track->codec_private, codec->extradata, codec->extradata_size); | 459 | memcpy(track->codec_private, codecpar->extradata, codecpar->extradata_size); |
| 460 | return 0; | 460 | return 0; |
| 461 | } | 461 | } |
| 462 | | 462 | |
| 463 | static int get_video_private_data(struct Track *track, AVCodecContext *codec) | 463 | static int get_video_private_data(struct Track *track, AVCodecParameters *codecpar) |
| 464 | { | 464 | { |
| 465 | AVIOContext *io = NULL; | 465 | AVIOContext *io = NULL; |
| 466 | uint16_t sps_size, pps_size; | 466 | uint16_t sps_size, pps_size; |
| 467 | int err; | 467 | int err; |
| 468 | | 468 | |
| 469 | if (codec->codec_id == AV_CODEC_ID_VC1) | 469 | if (codecpar->codec_id == AV_CODEC_ID_VC1) |
| 470 | return get_private_data(track, codec); | 470 | return get_private_data(track, codecpar); |
| 471 | | 471 | |
| 472 | if ((err = avio_open_dyn_buf(&io)) < 0) | 472 | if ((err = avio_open_dyn_buf(&io)) < 0) |
| 473 | goto fail; | 473 | goto fail; |
| 474 | err = AVERROR(EINVAL); | 474 | err = AVERROR(EINVAL); |
| 475 | if (codec->extradata_size < 11 || codec->extradata[0] != 1) | 475 | if (codecpar->extradata_size < 11 || codecpar->extradata[0] != 1) |
| 476 | goto fail; | 476 | goto fail; |
| 477 | sps_size = AV_RB16(&codec->extradata[6]); | 477 | sps_size = AV_RB16(&codecpar->extradata[6]); |
| 478 | if (11 + sps_size > codec->extradata_size) | 478 | if (11 + sps_size > codecpar->extradata_size) |
| 479 | goto fail; | 479 | goto fail; |
| 480 | avio_wb32(io, 0x00000001); | 480 | avio_wb32(io, 0x00000001); |
| 481 | avio_write(io, &codec->extradata[8], sps_size); | 481 | avio_write(io, &codecpar->extradata[8], sps_size); |
| 482 | pps_size = AV_RB16(&codec->extradata[9 + sps_size]); | 482 | pps_size = AV_RB16(&codecpar->extradata[9 + sps_size]); |
| 483 | if (11 + sps_size + pps_size > codec->extradata_size) | 483 | if (11 + sps_size + pps_size > codecpar->extradata_size) |
| 484 | goto fail; | 484 | goto fail; |
| 485 | avio_wb32(io, 0x00000001); | 485 | avio_wb32(io, 0x00000001); |
| 486 | avio_write(io, &codec->extradata[11 + sps_size], pps_size); | 486 | avio_write(io, &codecpar->extradata[11 + sps_size], pps_size); |
| 487 | err = 0; | 487 | err = 0; |
| 488 | | 488 | |
| 489 | fail: | 489 | fail: |
| @@ -523,7 +523,7 @@ static int handle_file(struct Tracks *tracks, const char *file, int split, · 33 unmodified lines |
| 523 | struct Track **temp; | 523 | struct Track **temp; |
| 524 | AVStream *st = ctx->streams[i]; | 524 | AVStream *st = ctx->streams[i]; |
| 525 | | 525 | |
| 526 | if (st->codec->bit_rate == 0) { | 526 | if (st->codecpar->bit_rate == 0) { |
| 527 | fprintf(stderr, "Skipping track %d in %s as it has zero bitrate\n", | 527 | fprintf(stderr, "Skipping track %d in %s as it has zero bitrate\n", |
| 528 | st->id, file); | 528 | st->id, file); |
| 529 | continue; | 529 | continue; |
| @@ -548,12 +548,12 @@ static int handle_file(struct Tracks *tracks, const char *file, int split, · 18 unmodified lines |
| 548 | if ((ptr = strrchr(file, '/'))) | 548 | if ((ptr = strrchr(file, '/'))) |
| 549 | track->name = ptr + 1; | 549 | track->name = ptr + 1; |
| 550 | | 550 | |
| 551 | track->bitrate = st->codec->bit_rate; | 551 | track->bitrate = st->codecpar->bit_rate; |
| 552 | track->track_id = st->id; | 552 | track->track_id = st->id; |
| 553 | track->timescale = st->time_base.den; | 553 | track->timescale = st->time_base.den; |
| 554 | track->duration = st->duration; | 554 | track->duration = st->duration; |
| 555 | track->is_audio = st->codec->codec_type == AVMEDIA_TYPE_AUDIO; | 555 | track->is_audio = st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO; |
| 556 | track->is_video = st->codec->codec_type == AVMEDIA_TYPE_VIDEO; | 556 | track->is_video = st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO; |
| 557 | | 557 | |
| 558 | if (!track->is_audio && !track->is_video) { | 558 | if (!track->is_audio && !track->is_video) { |
| 559 | fprintf(stderr, | 559 | fprintf(stderr, |
| @@ -571,30 +571,30 @@ static int handle_file(struct Tracks *tracks, const char *file, int split, · 11 unmodified lines |
| 571 | if (tracks->audio_track < 0) | 571 | if (tracks->audio_track < 0) |
| 572 | tracks->audio_track = tracks->nb_tracks; | 572 | tracks->audio_track = tracks->nb_tracks; |
| 573 | tracks->nb_audio_tracks++; | 573 | tracks->nb_audio_tracks++; |
| 574 | track->channels = st->codec->channels; | 574 | track->channels = st->codecpar->channels; |
| 575 | track->sample_rate = st->codec->sample_rate; | 575 | track->sample_rate = st->codecpar->sample_rate; |
| 576 | if (st->codec->codec_id == AV_CODEC_ID_AAC) { | 576 | if (st->codecpar->codec_id == AV_CODEC_ID_AAC) { |
| 577 | track->fourcc = "AACL"; | 577 | track->fourcc = "AACL"; |
| 578 | track->tag = 255; | 578 | track->tag = 255; |
| 579 | track->blocksize = 4; | 579 | track->blocksize = 4; |
| 580 | } else if (st->codec->codec_id == AV_CODEC_ID_WMAPRO) { | 580 | } else if (st->codecpar->codec_id == AV_CODEC_ID_WMAPRO) { |
| 581 | track->fourcc = "WMAP"; | 581 | track->fourcc = "WMAP"; |
| 582 | track->tag = st->codec->codec_tag; | 582 | track->tag = st->codecpar->codec_tag; |
| 583 | track->blocksize = st->codec->block_align; | 583 | track->blocksize = st->codecpar->block_align; |
| 584 | } | 584 | } |
| 585 | get_private_data(track, st->codec); | 585 | get_private_data(track, st->codecpar); |
| 586 | } | 586 | } |
| 587 | if (track->is_video) { | 587 | if (track->is_video) { |
| 588 | if (tracks->video_track < 0) | 588 | if (tracks->video_track < 0) |
| 589 | tracks->video_track = tracks->nb_tracks; | 589 | tracks->video_track = tracks->nb_tracks; |
| 590 | tracks->nb_video_tracks++; | 590 | tracks->nb_video_tracks++; |
| 591 | track->width = st->codec->width; | 591 | track->width = st->codecpar->width; |
| 592 | track->height = st->codec->height; | 592 | track->height = st->codecpar->height; |
| 593 | if (st->codec->codec_id == AV_CODEC_ID_H264) | 593 | if (st->codecpar->codec_id == AV_CODEC_ID_H264) |
| 594 | track->fourcc = "H264"; | 594 | track->fourcc = "H264"; |
| 595 | else if (st->codec->codec_id == AV_CODEC_ID_VC1) | 595 | else if (st->codecpar->codec_id == AV_CODEC_ID_VC1) |
| 596 | track->fourcc = "WVC1"; | 596 | track->fourcc = "WVC1"; |
| 597 | get_video_private_data(track, st->codec); | 597 | get_video_private_data(track, st->codecpar); |
| 598 | } | 598 | } |
| 599 | | 599 | |
| 600 | tracks->nb_tracks++; | 600 | tracks->nb_tracks++; |