X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Fflic.c;h=277e12b20ce450469ef407ad0949c463fac52372;hb=9d3ea5cbf57e30bf2717a9ce64e858dad8a02aa6;hp=c23177796307eb037bc90b34a3605c5e09fc357a;hpb=3b3bbdd3e63a3a1eaf69b861f72cf74f1669afe1;p=ffmpeg diff --git a/libavformat/flic.c b/libavformat/flic.c index c2317779630..277e12b20ce 100644 --- a/libavformat/flic.c +++ b/libavformat/flic.c @@ -31,9 +31,10 @@ * special FLIs from the PC games "Magic Carpet" and "X-COM: Terror from the Deep". */ +#include "libavutil/channel_layout.h" #include "libavutil/intreadwrite.h" -#include "libavutil/audioconvert.h" #include "avformat.h" +#include "internal.h" #define FLIC_FILE_MAGIC_1 0xAF11 #define FLIC_FILE_MAGIC_2 0xAF12 @@ -82,8 +83,7 @@ static int flic_probe(AVProbeData *p) return AVPROBE_SCORE_MAX; } -static int flic_read_header(AVFormatContext *s, - AVFormatParameters *ap) +static int flic_read_header(AVFormatContext *s) { FlicDemuxContext *flic = s->priv_data; AVIOContext *pb = s->pb; @@ -110,7 +110,7 @@ static int flic_read_header(AVFormatContext *s, return AVERROR(ENOMEM); flic->video_stream_index = st->index; st->codec->codec_type = AVMEDIA_TYPE_VIDEO; - st->codec->codec_id = CODEC_ID_FLIC; + st->codec->codec_id = AV_CODEC_ID_FLIC; st->codec->codec_tag = 0; /* no fourcc */ st->codec->width = AV_RL16(&header[0x08]); st->codec->height = AV_RL16(&header[0x0A]); @@ -145,7 +145,7 @@ static int flic_read_header(AVFormatContext *s, */ if (AV_RL16(&preamble[4]) == FLIC_TFTD_CHUNK_AUDIO) { /* TFTD videos have an extra 22050 Hz 8-bit mono audio stream */ - ast = av_new_stream(s, 1); + ast = avformat_new_stream(s, NULL); if (!ast) return AVERROR(ENOMEM); @@ -154,7 +154,7 @@ static int flic_read_header(AVFormatContext *s, /* all audio frames are the same size, so use the size of the first chunk for block_align */ ast->codec->block_align = AV_RL32(&preamble[0]); ast->codec->codec_type = AVMEDIA_TYPE_AUDIO; - ast->codec->codec_id = CODEC_ID_PCM_U8; + ast->codec->codec_id = AV_CODEC_ID_PCM_U8; ast->codec->codec_tag = 0; ast->codec->sample_rate = FLIC_TFTD_SAMPLE_RATE; ast->codec->channels = 1; @@ -167,10 +167,10 @@ static int flic_read_header(AVFormatContext *s, /* Since the header information is incorrect we have to figure out the * framerate using block_align and the fact that the audio is 22050 Hz. * We usually have two cases: 2205 -> 10 fps and 1470 -> 15 fps */ - av_set_pts_info(st, 64, ast->codec->block_align, FLIC_TFTD_SAMPLE_RATE); - av_set_pts_info(ast, 64, 1, FLIC_TFTD_SAMPLE_RATE); + avpriv_set_pts_info(st, 64, ast->codec->block_align, FLIC_TFTD_SAMPLE_RATE); + avpriv_set_pts_info(ast, 64, 1, FLIC_TFTD_SAMPLE_RATE); } else if (AV_RL16(&header[0x10]) == FLIC_CHUNK_MAGIC_1) { - av_set_pts_info(st, 64, FLIC_MC_SPEED, 70); + avpriv_set_pts_info(st, 64, FLIC_MC_SPEED, 70); /* rewind the stream since the first chunk is at offset 12 */ avio_seek(pb, 12, SEEK_SET); @@ -182,10 +182,10 @@ static int flic_read_header(AVFormatContext *s, memcpy(st->codec->extradata, header, 12); } else if (magic_number == FLIC_FILE_MAGIC_1) { - av_set_pts_info(st, 64, speed, 70); + avpriv_set_pts_info(st, 64, speed, 70); } else if ((magic_number == FLIC_FILE_MAGIC_2) || (magic_number == FLIC_FILE_MAGIC_3)) { - av_set_pts_info(st, 64, speed, 1000); + avpriv_set_pts_info(st, 64, speed, 1000); } else { av_log(s, AV_LOG_INFO, "Invalid or unsupported magic chunk in file\n"); return AVERROR_INVALIDDATA; @@ -228,7 +228,7 @@ static int flic_read_packet(AVFormatContext *s, ret = avio_read(pb, pkt->data + FLIC_PREAMBLE_SIZE, size - FLIC_PREAMBLE_SIZE); if (ret != size - FLIC_PREAMBLE_SIZE) { - av_free_packet(pkt); + av_packet_unref(pkt); ret = AVERROR(EIO); } packet_read = 1; @@ -246,7 +246,7 @@ static int flic_read_packet(AVFormatContext *s, ret = avio_read(pb, pkt->data, size); if (ret != size) { - av_free_packet(pkt); + av_packet_unref(pkt); ret = AVERROR(EIO); } @@ -262,7 +262,7 @@ static int flic_read_packet(AVFormatContext *s, AVInputFormat ff_flic_demuxer = { .name = "flic", - .long_name = NULL_IF_CONFIG_SMALL("FLI/FLC/FLX animation format"), + .long_name = NULL_IF_CONFIG_SMALL("FLI/FLC/FLX animation"), .priv_data_size = sizeof(FlicDemuxContext), .read_probe = flic_probe, .read_header = flic_read_header,