[FFmpeg-cvslog] avformat/wtvenc: advise user when H264 startcode is not present

Peter Ross git at videolan.org
Sun Mar 30 17:19:10 CEST 2014


ffmpeg | branch: master | Peter Ross <pross at xvid.org> | Sun Mar 30 12:42:05 2014 +1100| [92d657b5f1a40f7443abf8cdc99cdb96acb32bb3] | committer: Michael Niedermayer

avformat/wtvenc: advise user when H264 startcode is not present

Fixes ticket #3473.

Signed-off-by: Peter Ross <pross at xvid.org>
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=92d657b5f1a40f7443abf8cdc99cdb96acb32bb3
---

 libavformat/Makefile |    2 +-
 libavformat/wtvenc.c |    8 +++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/libavformat/Makefile b/libavformat/Makefile
index 0aa7cfd..ae61813 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 a1286ae..f051c66 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 */



More information about the ffmpeg-cvslog mailing list