aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Barbato <lu_zero@gentoo.org>2015-10-09 16:22:42 +0200
committerLuca Barbato <lu_zero@gentoo.org>2015-10-10 14:50:42 +0200
commitd00a8fd417ad20cecbc7ca17b25f352655148fb1 (patch)
tree37e2278f0931769c3d01ed13e65700691f9b0de8
parent00332e0a064dad866812de9162b009cbaba6f5df (diff)
downloadffmpeg-d00a8fd417ad20cecbc7ca17b25f352655148fb1.tar.gz
yuv4mpeg: Use the wrapped avframe pseudo-encoder
-rw-r--r--libavformat/yuv4mpegenc.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/libavformat/yuv4mpegenc.c b/libavformat/yuv4mpegenc.c
index 2caa364908..ef1e775341 100644
--- a/libavformat/yuv4mpegenc.c
+++ b/libavformat/yuv4mpegenc.c
@@ -88,7 +88,7 @@ static int yuv4_write_packet(AVFormatContext *s, AVPacket *pkt)
{
AVStream *st = s->streams[pkt->stream_index];
AVIOContext *pb = s->pb;
- AVPicture *picture;
+ AVFrame *frame;
int* first_pkt = s->priv_data;
int width, height, h_chroma_shift, v_chroma_shift;
int i;
@@ -96,7 +96,7 @@ static int yuv4_write_packet(AVFormatContext *s, AVPacket *pkt)
char buf1[20];
uint8_t *ptr, *ptr1, *ptr2;
- picture = (AVPicture *)pkt->data;
+ frame = (AVFrame *)pkt->data;
/* for the first packet we have to output the header as well */
if (*first_pkt) {
@@ -118,10 +118,10 @@ static int yuv4_write_packet(AVFormatContext *s, AVPacket *pkt)
width = st->codec->width;
height = st->codec->height;
- ptr = picture->data[0];
+ ptr = frame->data[0];
for (i = 0; i < height; i++) {
avio_write(pb, ptr, width);
- ptr += picture->linesize[0];
+ ptr += frame->linesize[0];
}
if (st->codec->pix_fmt != AV_PIX_FMT_GRAY8) {
@@ -132,15 +132,15 @@ static int yuv4_write_packet(AVFormatContext *s, AVPacket *pkt)
width = -(-width >> h_chroma_shift);
height = -(-height >> v_chroma_shift);
- ptr1 = picture->data[1];
- ptr2 = picture->data[2];
+ ptr1 = frame->data[1];
+ ptr2 = frame->data[2];
for (i = 0; i < height; i++) { /* Cb */
avio_write(pb, ptr1, width);
- ptr1 += picture->linesize[1];
+ ptr1 += frame->linesize[1];
}
for (i = 0; i < height; i++) { /* Cr */
avio_write(pb, ptr2, width);
- ptr2 += picture->linesize[2];
+ ptr2 += frame->linesize[2];
}
}
return 0;
@@ -153,8 +153,8 @@ static int yuv4_write_header(AVFormatContext *s)
if (s->nb_streams != 1)
return AVERROR(EIO);
- if (s->streams[0]->codec->codec_id != AV_CODEC_ID_RAWVIDEO) {
- av_log(s, AV_LOG_ERROR, "ERROR: Only rawvideo supported.\n");
+ if (s->streams[0]->codec->codec_id != AV_CODEC_ID_WRAPPED_AVFRAME) {
+ av_log(s, AV_LOG_ERROR, "ERROR: Codec not supported.\n");
return AVERROR_INVALIDDATA;
}
@@ -182,8 +182,7 @@ AVOutputFormat ff_yuv4mpegpipe_muxer = {
.extensions = "y4m",
.priv_data_size = sizeof(int),
.audio_codec = AV_CODEC_ID_NONE,
- .video_codec = AV_CODEC_ID_RAWVIDEO,
+ .video_codec = AV_CODEC_ID_WRAPPED_AVFRAME,
.write_header = yuv4_write_header,
.write_packet = yuv4_write_packet,
- .flags = AVFMT_RAWPICTURE,
};