diff options
author | Clément Bœsch <clement@stupeflix.com> | 2016-06-23 12:14:45 +0200 |
---|---|---|
committer | Clément Bœsch <clement@stupeflix.com> | 2016-06-23 12:14:45 +0200 |
commit | 84b39d3e144e94c1483fe1028a4525e81a759b9b (patch) | |
tree | 836015cd6d0d4ce83a75539e40f156760868e0f0 | |
parent | c3b0af74562a48f17b9876229eefd0fd45fae1b7 (diff) | |
parent | b8de14bcdf876c7e236a6dd2ad35342ff4b42cf8 (diff) | |
download | ffmpeg-84b39d3e144e94c1483fe1028a4525e81a759b9b.tar.gz |
Merge commit 'b8de14bcdf876c7e236a6dd2ad35342ff4b42cf8'
* commit 'b8de14bcdf876c7e236a6dd2ad35342ff4b42cf8':
tools: Port to codec parameters API
Merged-by: Clément Bœsch <clement@stupeflix.com>
-rw-r--r-- | tools/ismindex.c | 60 | ||||
-rw-r--r-- | tools/sidxindex.c | 33 |
2 files changed, 47 insertions, 46 deletions
diff --git a/tools/ismindex.c b/tools/ismindex.c index dfef118653..5917d42f44 100644 --- a/tools/ismindex.c +++ b/tools/ismindex.c @@ -453,41 +453,41 @@ fail: return err; } -static int get_private_data(struct Track *track, AVCodecContext *codec) +static int get_private_data(struct Track *track, AVCodecParameters *codecpar) { track->codec_private_size = 0; - track->codec_private = av_mallocz(codec->extradata_size); + track->codec_private = av_mallocz(codecpar->extradata_size); if (!track->codec_private) return AVERROR(ENOMEM); - track->codec_private_size = codec->extradata_size; - memcpy(track->codec_private, codec->extradata, codec->extradata_size); + track->codec_private_size = codecpar->extradata_size; + memcpy(track->codec_private, codecpar->extradata, codecpar->extradata_size); return 0; } -static int get_video_private_data(struct Track *track, AVCodecContext *codec) +static int get_video_private_data(struct Track *track, AVCodecParameters *codecpar) { AVIOContext *io = NULL; uint16_t sps_size, pps_size; int err; - if (codec->codec_id == AV_CODEC_ID_VC1) - return get_private_data(track, codec); + if (codecpar->codec_id == AV_CODEC_ID_VC1) + return get_private_data(track, codecpar); if ((err = avio_open_dyn_buf(&io)) < 0) goto fail; err = AVERROR(EINVAL); - if (codec->extradata_size < 11 || codec->extradata[0] != 1) + if (codecpar->extradata_size < 11 || codecpar->extradata[0] != 1) goto fail; - sps_size = AV_RB16(&codec->extradata[6]); - if (11 + sps_size > codec->extradata_size) + sps_size = AV_RB16(&codecpar->extradata[6]); + if (11 + sps_size > codecpar->extradata_size) goto fail; avio_wb32(io, 0x00000001); - avio_write(io, &codec->extradata[8], sps_size); - pps_size = AV_RB16(&codec->extradata[9 + sps_size]); - if (11 + sps_size + pps_size > codec->extradata_size) + avio_write(io, &codecpar->extradata[8], sps_size); + pps_size = AV_RB16(&codecpar->extradata[9 + sps_size]); + if (11 + sps_size + pps_size > codecpar->extradata_size) goto fail; avio_wb32(io, 0x00000001); - avio_write(io, &codec->extradata[11 + sps_size], pps_size); + avio_write(io, &codecpar->extradata[11 + sps_size], pps_size); err = 0; fail: @@ -527,7 +527,7 @@ static int handle_file(struct Tracks *tracks, const char *file, int split, struct Track **temp; AVStream *st = ctx->streams[i]; - if (st->codec->bit_rate == 0) { + if (st->codecpar->bit_rate == 0) { fprintf(stderr, "Skipping track %d in %s as it has zero bitrate\n", st->id, file); continue; @@ -553,12 +553,12 @@ static int handle_file(struct Tracks *tracks, const char *file, int split, if ((ptr = strrchr(file, '/'))) track->name = ptr + 1; - track->bitrate = st->codec->bit_rate; + track->bitrate = st->codecpar->bit_rate; track->track_id = st->id; track->timescale = st->time_base.den; track->duration = st->duration; - track->is_audio = st->codec->codec_type == AVMEDIA_TYPE_AUDIO; - track->is_video = st->codec->codec_type == AVMEDIA_TYPE_VIDEO; + track->is_audio = st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO; + track->is_video = st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO; if (!track->is_audio && !track->is_video) { fprintf(stderr, @@ -576,30 +576,30 @@ static int handle_file(struct Tracks *tracks, const char *file, int split, if (tracks->audio_track < 0) tracks->audio_track = tracks->nb_tracks; tracks->nb_audio_tracks++; - track->channels = st->codec->channels; - track->sample_rate = st->codec->sample_rate; - if (st->codec->codec_id == AV_CODEC_ID_AAC) { + track->channels = st->codecpar->channels; + track->sample_rate = st->codecpar->sample_rate; + if (st->codecpar->codec_id == AV_CODEC_ID_AAC) { track->fourcc = "AACL"; track->tag = 255; track->blocksize = 4; - } else if (st->codec->codec_id == AV_CODEC_ID_WMAPRO) { + } else if (st->codecpar->codec_id == AV_CODEC_ID_WMAPRO) { track->fourcc = "WMAP"; - track->tag = st->codec->codec_tag; - track->blocksize = st->codec->block_align; + track->tag = st->codecpar->codec_tag; + track->blocksize = st->codecpar->block_align; } - get_private_data(track, st->codec); + get_private_data(track, st->codecpar); } if (track->is_video) { if (tracks->video_track < 0) tracks->video_track = tracks->nb_tracks; tracks->nb_video_tracks++; - track->width = st->codec->width; - track->height = st->codec->height; - if (st->codec->codec_id == AV_CODEC_ID_H264) + track->width = st->codecpar->width; + track->height = st->codecpar->height; + if (st->codecpar->codec_id == AV_CODEC_ID_H264) track->fourcc = "H264"; - else if (st->codec->codec_id == AV_CODEC_ID_VC1) + else if (st->codecpar->codec_id == AV_CODEC_ID_VC1) track->fourcc = "WVC1"; - get_video_private_data(track, st->codec); + get_video_private_data(track, st->codecpar); } tracks->nb_tracks++; diff --git a/tools/sidxindex.c b/tools/sidxindex.c index 504c59588c..be284610d5 100644 --- a/tools/sidxindex.c +++ b/tools/sidxindex.c @@ -52,22 +52,23 @@ struct Tracks { int multiple_tracks_per_file; }; -static void set_codec_str(AVCodecContext *codec, char *str, int size) +static void set_codec_str(AVCodecParameters *codecpar, char *str, int size) { - switch (codec->codec_id) { + switch (codecpar->codec_id) { case AV_CODEC_ID_H264: snprintf(str, size, "avc1"); - if (codec->extradata_size >= 4 && codec->extradata[0] == 1) { + if (codecpar->extradata_size >= 4 && codecpar->extradata[0] == 1) { av_strlcatf(str, size, ".%02x%02x%02x", - codec->extradata[1], codec->extradata[2], codec->extradata[3]); + codecpar->extradata[1], codecpar->extradata[2], + codecpar->extradata[3]); } break; case AV_CODEC_ID_AAC: snprintf(str, size, "mp4a.40"); // 0x40 is the mp4 object type for AAC - if (codec->extradata_size >= 2) { - int aot = codec->extradata[0] >> 3; + if (codecpar->extradata_size >= 2) { + int aot = codecpar->extradata[0] >> 3; if (aot == 31) - aot = ((AV_RB16(codec->extradata) >> 5) & 0x3f) + 32; + aot = ((AV_RB16(codecpar->extradata) >> 5) & 0x3f) + 32; av_strlcatf(str, size, ".%d", aot); } break; @@ -145,7 +146,7 @@ static int handle_file(struct Tracks *tracks, const char *file) struct Track **temp; AVStream *st = ctx->streams[i]; - if (st->codec->bit_rate == 0) { + if (st->codecpar->bit_rate == 0) { fprintf(stderr, "Skipping track %d in %s as it has zero bitrate\n", st->id, file); continue; @@ -170,12 +171,12 @@ static int handle_file(struct Tracks *tracks, const char *file) if ((ptr = strrchr(file, '/'))) track->name = ptr + 1; - track->bitrate = st->codec->bit_rate; + track->bitrate = st->codecpar->bit_rate; track->track_id = st->id; track->timescale = st->time_base.den; track->duration = st->duration; - track->is_audio = st->codec->codec_type == AVMEDIA_TYPE_AUDIO; - track->is_video = st->codec->codec_type == AVMEDIA_TYPE_VIDEO; + track->is_audio = st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO; + track->is_video = st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO; if (!track->is_audio && !track->is_video) { fprintf(stderr, @@ -190,14 +191,14 @@ static int handle_file(struct Tracks *tracks, const char *file) track->timescale, AV_ROUND_UP)); if (track->is_audio) { - track->channels = st->codec->channels; - track->sample_rate = st->codec->sample_rate; + track->channels = st->codecpar->channels; + track->sample_rate = st->codecpar->sample_rate; } if (track->is_video) { - track->width = st->codec->width; - track->height = st->codec->height; + track->width = st->codecpar->width; + track->height = st->codecpar->height; } - set_codec_str(st->codec, track->codec_str, sizeof(track->codec_str)); + set_codec_str(st->codecpar, track->codec_str, sizeof(track->codec_str)); tracks->nb_tracks++; } |