diff options
author | Peter Ross <pross@xvid.org> | 2014-03-30 12:42:05 +1100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-03-30 16:36:47 +0200 |
commit | 92d657b5f1a40f7443abf8cdc99cdb96acb32bb3 (patch) | |
tree | dac6ad80e878e00c73fd5f436c44602c70281cf5 | |
parent | e61973db6c0111f39f945337aba6174f1ee5e6ba (diff) | |
download | ffmpeg-92d657b5f1a40f7443abf8cdc99cdb96acb32bb3.tar.gz |
avformat/wtvenc: advise user when H264 startcode is not present
Fixes ticket #3473.
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/Makefile | 2 | ||||
-rw-r--r-- | libavformat/wtvenc.c | 8 |
2 files changed, 8 insertions, 2 deletions
diff --git a/libavformat/Makefile b/libavformat/Makefile index 0aa7cfd074..ae6181321c 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -418,7 +418,7 @@ OBJS-$(CONFIG_WSAUD_DEMUXER) += westwood_aud.o OBJS-$(CONFIG_WSVQA_DEMUXER) += westwood_vqa.o OBJS-$(CONFIG_WTV_DEMUXER) += wtvdec.o wtv_common.o asfdec.o asf.o asfcrypt.o \ avlanguage.o mpegts.o isom.o -OBJS-$(CONFIG_WTV_MUXER) += wtvenc.o wtv_common.o +OBJS-$(CONFIG_WTV_MUXER) += wtvenc.o wtv_common.o mpegtsenc.o OBJS-$(CONFIG_WV_DEMUXER) += wvdec.o wv.o apetag.o img2.o OBJS-$(CONFIG_WV_MUXER) += wvenc.o wv.o apetag.o img2.o OBJS-$(CONFIG_XA_DEMUXER) += xa.o diff --git a/libavformat/wtvenc.c b/libavformat/wtvenc.c index a1286ae494..f051c660ba 100644 --- a/libavformat/wtvenc.c +++ b/libavformat/wtvenc.c @@ -30,6 +30,7 @@ #include "avformat.h" #include "avio_internal.h" #include "internal.h" +#include "mpegts.h" #include "wtv.h" #define WTV_BIGSECTOR_SIZE (1 << WTV_BIGSECTOR_BITS) @@ -460,10 +461,15 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt) { AVIOContext *pb = s->pb; WtvContext *wctx = s->priv_data; + AVStream *st = s->streams[pkt->stream_index]; - if (s->streams[pkt->stream_index]->codec->codec_id == AV_CODEC_ID_MJPEG && !wctx->thumbnail.size) { + if (st->codec->codec_id == AV_CODEC_ID_MJPEG && !wctx->thumbnail.size) { av_copy_packet(&wctx->thumbnail, pkt); return 0; + } else if (st->codec->codec_id == AV_CODEC_ID_H264) { + int ret = ff_check_h264_startcode(s, st, pkt); + if (ret < 0) + return ret; } /* emit sync chunk and 'timeline.table.0.entries.Event' record every 50 frames */ |