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

Peter Ross pross at xvid.org
Sun Mar 30 03:42:05 CEST 2014


Fixes ticket #3473.

Signed-off-by: Peter Ross <pross at xvid.org>
---
 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 */
-- 
1.8.3.2

-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140330/17340438/attachment.asc>


More information about the ffmpeg-devel mailing list