summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2023-05-17 11:21:52 -0300
committerJames Almer <jamrial@gmail.com>2023-05-18 17:31:37 -0300
commita2a0a81184df586d7b567d7b60d55d0e86376963 (patch)
tree20046115351bf55fa8348c74485c5900aa12ce2e /libavformat
parent4c695bfa65c92fd2f3b197383408eaa23130c3d9 (diff)
avformat/yuvmpegenc: add support for rawvideo input
The demuxer exports rawvideo, so there's no reason for the muxer to only work with wrapped_avframe. Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/yuv4mpegenc.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libavformat/yuv4mpegenc.c b/libavformat/yuv4mpegenc.c
index 2fa5ee2714..968ba2fa13 100644
--- a/libavformat/yuv4mpegenc.c
+++ b/libavformat/yuv4mpegenc.c
@@ -189,6 +189,11 @@ static int yuv4_write_packet(AVFormatContext *s, AVPacket *pkt)
avio_printf(s->pb, Y4M_FRAME_MAGIC "\n");
+ if (st->codecpar->codec_id == AV_CODEC_ID_RAWVIDEO) {
+ avio_write(pb, pkt->data, pkt->size);
+ return 0;
+ }
+
width = st->codecpar->width;
height = st->codecpar->height;
desc = av_pix_fmt_desc_get(st->codecpar->format);
@@ -218,7 +223,8 @@ static int yuv4_init(AVFormatContext *s)
if (s->nb_streams != 1)
return AVERROR(EIO);
- if (s->streams[0]->codecpar->codec_id != AV_CODEC_ID_WRAPPED_AVFRAME) {
+ if (s->streams[0]->codecpar->codec_id != AV_CODEC_ID_WRAPPED_AVFRAME &&
+ s->streams[0]->codecpar->codec_id != AV_CODEC_ID_RAWVIDEO) {
av_log(s, AV_LOG_ERROR, "ERROR: Codec not supported.\n");
return AVERROR_INVALIDDATA;
}