X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Fmxg.c;h=396dbdeaf6974504a3cd59c7d1eea2253178df9a;hb=34ed5c2e4d9b7fe5c9b3aae2da5599fabb95c02e;hp=5caa68a667d1df325b108368bdef8e58e73ba3f9;hpb=2912e87a6c9264d556734e2bf94a99c64cf9b102;p=ffmpeg diff --git a/libavformat/mxg.c b/libavformat/mxg.c index 5caa68a667d..396dbdeaf69 100644 --- a/libavformat/mxg.c +++ b/libavformat/mxg.c @@ -19,13 +19,14 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "libavutil/channel_layout.h" +#include "libavutil/internal.h" #include "libavutil/intreadwrite.h" #include "libavcodec/mjpeg.h" #include "avformat.h" +#include "internal.h" #include "avio.h" -#define VIDEO_STREAM_INDEX 0 -#define AUDIO_STREAM_INDEX 1 #define DEFAULT_PACKET_SIZE 1024 #define OVERREAD_SIZE 3 @@ -38,29 +39,30 @@ typedef struct MXGContext { unsigned int cache_size; } MXGContext; -static int mxg_read_header(AVFormatContext *s, AVFormatParameters *ap) +static int mxg_read_header(AVFormatContext *s) { AVStream *video_st, *audio_st; MXGContext *mxg = s->priv_data; /* video parameters will be extracted from the compressed bitstream */ - video_st = av_new_stream(s, VIDEO_STREAM_INDEX); + video_st = avformat_new_stream(s, NULL); if (!video_st) return AVERROR(ENOMEM); video_st->codec->codec_type = AVMEDIA_TYPE_VIDEO; - video_st->codec->codec_id = CODEC_ID_MXPEG; - av_set_pts_info(video_st, 64, 1, 1000000); + video_st->codec->codec_id = AV_CODEC_ID_MXPEG; + avpriv_set_pts_info(video_st, 64, 1, 1000000); - audio_st = av_new_stream(s, AUDIO_STREAM_INDEX); + audio_st = avformat_new_stream(s, NULL); if (!audio_st) return AVERROR(ENOMEM); audio_st->codec->codec_type = AVMEDIA_TYPE_AUDIO; - audio_st->codec->codec_id = CODEC_ID_PCM_ALAW; + audio_st->codec->codec_id = AV_CODEC_ID_PCM_ALAW; audio_st->codec->channels = 1; + audio_st->codec->channel_layout = AV_CH_LAYOUT_MONO; audio_st->codec->sample_rate = 8000; audio_st->codec->bits_per_coded_sample = 8; audio_st->codec->block_align = 1; - av_set_pts_info(audio_st, 64, 1, 1000000); + avpriv_set_pts_info(audio_st, 64, 1, 1000000); mxg->soi_ptr = mxg->buffer_ptr = mxg->buffer = 0; mxg->buffer_size = 0; @@ -108,7 +110,7 @@ static int mxg_update_cache(AVFormatContext *s, unsigned int cache_size) if (mxg->soi_ptr) soi_pos = mxg->soi_ptr - mxg->buffer; mxg->buffer = av_fast_realloc(mxg->buffer, &mxg->buffer_size, current_pos + cache_size + - FF_INPUT_BUFFER_PADDING_SIZE); + AV_INPUT_BUFFER_PADDING_SIZE); if (!mxg->buffer) return AVERROR(ENOMEM); mxg->buffer_ptr = mxg->buffer + current_pos; @@ -166,8 +168,8 @@ static int mxg_read_packet(AVFormatContext *s, AVPacket *pkt) } pkt->pts = pkt->dts = mxg->dts; - pkt->stream_index = VIDEO_STREAM_INDEX; - pkt->destruct = NULL; + pkt->stream_index = 0; + pkt->buf = NULL; pkt->size = mxg->buffer_ptr - mxg->soi_ptr; pkt->data = mxg->soi_ptr; @@ -204,8 +206,8 @@ static int mxg_read_packet(AVFormatContext *s, AVPacket *pkt) if (marker == APP13 && size >= 16) { /* audio data */ /* time (GMT) of first sample in usec since 1970, little-endian */ pkt->pts = pkt->dts = AV_RL64(startmarker_ptr + 8); - pkt->stream_index = AUDIO_STREAM_INDEX; - pkt->destruct = NULL; + pkt->stream_index = 1; + pkt->buf = NULL; pkt->size = size - 14; pkt->data = startmarker_ptr + 16; @@ -241,11 +243,11 @@ static int mxg_close(struct AVFormatContext *s) } AVInputFormat ff_mxg_demuxer = { - .name = "mxg", - .long_name = NULL_IF_CONFIG_SMALL("MxPEG clip file format"), + .name = "mxg", + .long_name = NULL_IF_CONFIG_SMALL("MxPEG clip"), .priv_data_size = sizeof(MXGContext), - .read_header = mxg_read_header, - .read_packet = mxg_read_packet, - .read_close = mxg_close, - .extensions = "mxg" + .read_header = mxg_read_header, + .read_packet = mxg_read_packet, + .read_close = mxg_close, + .extensions = "mxg", };