lavf: data muxer and demuxer.
Allow to use tools designed to work with demuxers, muxers and packets (for example ffmpeg itself) to process raw byte streams (like aviocat).
This commit is contained in:
parent
3319679d0a
commit
276fcbde6c
@ -103,6 +103,8 @@ OBJS-$(CONFIG_CDG_DEMUXER) += cdg.o
|
||||
OBJS-$(CONFIG_CDXL_DEMUXER) += cdxl.o
|
||||
OBJS-$(CONFIG_CONCAT_DEMUXER) += concatdec.o
|
||||
OBJS-$(CONFIG_CRC_MUXER) += crcenc.o
|
||||
OBJS-$(CONFIG_DATA_DEMUXER) += rawdec.o
|
||||
OBJS-$(CONFIG_DATA_MUXER) += rawdec.o
|
||||
OBJS-$(CONFIG_DAUD_DEMUXER) += daud.o
|
||||
OBJS-$(CONFIG_DAUD_MUXER) += daud.o
|
||||
OBJS-$(CONFIG_DFA_DEMUXER) += dfa.o
|
||||
|
@ -100,6 +100,7 @@ void av_register_all(void)
|
||||
REGISTER_DEMUXER (CDXL, cdxl);
|
||||
REGISTER_DEMUXER (CONCAT, concat);
|
||||
REGISTER_MUXER (CRC, crc);
|
||||
REGISTER_MUXDEMUX(DATA, data);
|
||||
REGISTER_MUXDEMUX(DAUD, daud);
|
||||
REGISTER_DEMUXER (DFA, dfa);
|
||||
REGISTER_MUXDEMUX(DIRAC, dirac);
|
||||
|
@ -90,6 +90,17 @@ fail:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int ff_raw_data_read_header(AVFormatContext *s)
|
||||
{
|
||||
AVStream *st = avformat_new_stream(s, NULL);
|
||||
if (!st)
|
||||
return AVERROR(ENOMEM);
|
||||
st->codec->codec_type = AVMEDIA_TYPE_DATA;
|
||||
st->codec->codec_id = s->iformat->raw_codec_id;
|
||||
st->start_time = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Note: Do not forget to add new entries to the Makefile as well. */
|
||||
|
||||
#define OFFSET(x) offsetof(FFRawVideoDemuxerContext, x)
|
||||
@ -99,6 +110,16 @@ const AVOption ff_rawvideo_options[] = {
|
||||
{ NULL },
|
||||
};
|
||||
|
||||
#if CONFIG_DATA_DEMUXER
|
||||
AVInputFormat ff_data_demuxer = {
|
||||
.name = "data",
|
||||
.long_name = NULL_IF_CONFIG_SMALL("raw data"),
|
||||
.read_header = ff_raw_data_read_header,
|
||||
.read_packet = ff_raw_read_partial_packet,
|
||||
.raw_codec_id = AV_CODEC_ID_NONE,
|
||||
};
|
||||
#endif
|
||||
|
||||
#if CONFIG_LATM_DEMUXER
|
||||
AVInputFormat ff_latm_demuxer = {
|
||||
.name = "latm",
|
||||
|
@ -68,6 +68,15 @@ AVOutputFormat ff_cavsvideo_muxer = {
|
||||
};
|
||||
#endif
|
||||
|
||||
#if CONFIG_DATA_MUXER
|
||||
AVOutputFormat ff_data_muxer = {
|
||||
.name = "data",
|
||||
.long_name = NULL_IF_CONFIG_SMALL("raw data"),
|
||||
.write_packet = ff_raw_write_packet,
|
||||
.flags = AVFMT_NOTIMESTAMPS,
|
||||
};
|
||||
#endif
|
||||
|
||||
#if CONFIG_DIRAC_MUXER
|
||||
AVOutputFormat ff_dirac_muxer = {
|
||||
.name = "dirac",
|
||||
|
@ -30,7 +30,7 @@
|
||||
#include "libavutil/avutil.h"
|
||||
|
||||
#define LIBAVFORMAT_VERSION_MAJOR 55
|
||||
#define LIBAVFORMAT_VERSION_MINOR 3
|
||||
#define LIBAVFORMAT_VERSION_MINOR 4
|
||||
#define LIBAVFORMAT_VERSION_MICRO 100
|
||||
|
||||
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
||||
|
Loading…
x
Reference in New Issue
Block a user