X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Fnuv.c;h=bf596109e8b90ddde30f5ef41626a847b36f8d6a;hb=491653ed90e12feefada217a59af9cd69cc7ca31;hp=055a6dce60cb9e814b874bbdbedbc4cc10c38820;hpb=ae628ec1fd7f54c102bf9e667a3edd404b9b9128;p=ffmpeg diff --git a/libavformat/nuv.c b/libavformat/nuv.c index 055a6dce60c..bf596109e8b 100644 --- a/libavformat/nuv.c +++ b/libavformat/nuv.c @@ -2,20 +2,20 @@ * NuppelVideo demuxer. * Copyright (c) 2006 Reimar Doeffinger * - * This file is part of FFmpeg. + * This file is part of Libav. * - * FFmpeg is free software; you can redistribute it and/or + * Libav is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * - * FFmpeg is distributed in the hope that it will be useful, + * Libav is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software + * License along with Libav; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ @@ -60,62 +60,62 @@ static int get_codec_data(AVIOContext *pb, AVStream *vst, nuv_frametype frametype; if (!vst && !myth) return 1; // no codec data needed - while (!url_feof(pb)) { + while (!pb->eof_reached) { int size, subtype; - frametype = get_byte(pb); + frametype = avio_r8(pb); switch (frametype) { case NUV_EXTRADATA: - subtype = get_byte(pb); - url_fskip(pb, 6); - size = PKTSIZE(get_le32(pb)); + subtype = avio_r8(pb); + avio_skip(pb, 6); + size = PKTSIZE(avio_rl32(pb)); if (vst && subtype == 'R') { vst->codec->extradata_size = size; vst->codec->extradata = av_malloc(size); - get_buffer(pb, vst->codec->extradata, size); + avio_read(pb, vst->codec->extradata, size); size = 0; if (!myth) return 1; } break; case NUV_MYTHEXT: - url_fskip(pb, 7); - size = PKTSIZE(get_le32(pb)); + avio_skip(pb, 7); + size = PKTSIZE(avio_rl32(pb)); if (size != 128 * 4) break; - get_le32(pb); // version + avio_rl32(pb); // version if (vst) { - vst->codec->codec_tag = get_le32(pb); + vst->codec->codec_tag = avio_rl32(pb); vst->codec->codec_id = ff_codec_get_id(ff_codec_bmp_tags, vst->codec->codec_tag); if (vst->codec->codec_tag == MKTAG('R', 'J', 'P', 'G')) vst->codec->codec_id = CODEC_ID_NUV; } else - url_fskip(pb, 4); + avio_skip(pb, 4); if (ast) { - ast->codec->codec_tag = get_le32(pb); - ast->codec->sample_rate = get_le32(pb); - ast->codec->bits_per_coded_sample = get_le32(pb); - ast->codec->channels = get_le32(pb); + ast->codec->codec_tag = avio_rl32(pb); + ast->codec->sample_rate = avio_rl32(pb); + ast->codec->bits_per_coded_sample = avio_rl32(pb); + ast->codec->channels = avio_rl32(pb); ast->codec->codec_id = ff_wav_codec_get_id(ast->codec->codec_tag, ast->codec->bits_per_coded_sample); ast->need_parsing = AVSTREAM_PARSE_FULL; } else - url_fskip(pb, 4 * 4); + avio_skip(pb, 4 * 4); size -= 6 * 4; - url_fskip(pb, size); + avio_skip(pb, size); return 1; case NUV_SEEKP: size = 11; break; default: - url_fskip(pb, 7); - size = PKTSIZE(get_le32(pb)); + avio_skip(pb, 7); + size = PKTSIZE(avio_rl32(pb)); break; } - url_fskip(pb, size); + avio_skip(pb, size); } return 0; } @@ -128,27 +128,27 @@ static int nuv_header(AVFormatContext *s, AVFormatParameters *ap) { int is_mythtv, width, height, v_packs, a_packs; int stream_nr = 0; AVStream *vst = NULL, *ast = NULL; - get_buffer(pb, id_string, 12); + avio_read(pb, id_string, 12); is_mythtv = !memcmp(id_string, "MythTVVideo", 12); - url_fskip(pb, 5); // version string - url_fskip(pb, 3); // padding - width = get_le32(pb); - height = get_le32(pb); - get_le32(pb); // unused, "desiredwidth" - get_le32(pb); // unused, "desiredheight" - get_byte(pb); // 'P' == progressive, 'I' == interlaced - url_fskip(pb, 3); // padding - aspect = av_int2dbl(get_le64(pb)); + avio_skip(pb, 5); // version string + avio_skip(pb, 3); // padding + width = avio_rl32(pb); + height = avio_rl32(pb); + avio_rl32(pb); // unused, "desiredwidth" + avio_rl32(pb); // unused, "desiredheight" + avio_r8(pb); // 'P' == progressive, 'I' == interlaced + avio_skip(pb, 3); // padding + aspect = av_int2dbl(avio_rl64(pb)); if (aspect > 0.9999 && aspect < 1.0001) aspect = 4.0 / 3.0; - fps = av_int2dbl(get_le64(pb)); + fps = av_int2dbl(avio_rl64(pb)); // number of packets per stream type, -1 means unknown, e.g. streaming - v_packs = get_le32(pb); - a_packs = get_le32(pb); - get_le32(pb); // text + v_packs = avio_rl32(pb); + a_packs = avio_rl32(pb); + avio_rl32(pb); // text - get_le32(pb); // keyframe distance (?) + avio_rl32(pb); // keyframe distance (?) if (v_packs) { ctx->v_id = stream_nr++; @@ -195,10 +195,10 @@ static int nuv_packet(AVFormatContext *s, AVPacket *pkt) { uint8_t hdr[HDRSIZE]; nuv_frametype frametype; int ret, size; - while (!url_feof(pb)) { + while (!pb->eof_reached) { int copyhdrsize = ctx->rtjpg_video ? HDRSIZE : 0; - uint64_t pos = url_ftell(pb); - ret = get_buffer(pb, hdr, HDRSIZE); + uint64_t pos = avio_tell(pb); + ret = avio_read(pb, hdr, HDRSIZE); if (ret < HDRSIZE) return ret < 0 ? ret : AVERROR(EIO); frametype = hdr[0]; @@ -206,13 +206,13 @@ static int nuv_packet(AVFormatContext *s, AVPacket *pkt) { switch (frametype) { case NUV_EXTRADATA: if (!ctx->rtjpg_video) { - url_fskip(pb, size); + avio_skip(pb, size); break; } case NUV_VIDEO: if (ctx->v_id < 0) { av_log(s, AV_LOG_ERROR, "Video packet in file without video stream!\n"); - url_fskip(pb, size); + avio_skip(pb, size); break; } ret = av_new_packet(pkt, copyhdrsize + size); @@ -225,7 +225,7 @@ static int nuv_packet(AVFormatContext *s, AVPacket *pkt) { pkt->pts = AV_RL32(&hdr[4]); pkt->stream_index = ctx->v_id; memcpy(pkt->data, hdr, copyhdrsize); - ret = get_buffer(pb, pkt->data + copyhdrsize, size); + ret = avio_read(pb, pkt->data + copyhdrsize, size); if (ret < 0) { av_free_packet(pkt); return ret; @@ -236,7 +236,7 @@ static int nuv_packet(AVFormatContext *s, AVPacket *pkt) { case NUV_AUDIO: if (ctx->a_id < 0) { av_log(s, AV_LOG_ERROR, "Audio packet in file without audio stream!\n"); - url_fskip(pb, size); + avio_skip(pb, size); break; } ret = av_get_packet(pb, pkt, size); @@ -250,7 +250,7 @@ static int nuv_packet(AVFormatContext *s, AVPacket *pkt) { // contains no data, size value is invalid break; default: - url_fskip(pb, size); + avio_skip(pb, size); break; } }