summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2004-02-08 22:52:35 +0000
committerMichael Niedermayer <michaelni@gmx.at>2004-02-08 22:52:35 +0000
commit99683a307776a7638ccce236a4ce5aa3e914e77d (patch)
tree0660e22b28db65af16a2f4679f0e7c64c5e67c3a
parentf02ab8148c622d5547ef81d1e0c1a357d05134bc (diff)
downloadffmpeg-99683a307776a7638ccce236a4ce5aa3e914e77d.tar.gz
2 byte shorter userdata for mpeg4
in the past it was startcode,string,00,7F,startcode now it is startcode,string,stratcode both are mpeg4 compliant, as according to the standard the userdata lasts until the next 00 00 01 (startcode prefix) but some very primitive decoders which simply skip until the first 00 byte and then expect the next valid startcode might fail with the old variant, just a theory though (didnt test if quicktime can decode it now) Originally committed as revision 2767 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/common.c5
-rw-r--r--libavcodec/common.h4
-rw-r--r--libavcodec/h263.c3
-rw-r--r--libavcodec/mjpeg.c4
4 files changed, 8 insertions, 8 deletions
diff --git a/libavcodec/common.c b/libavcodec/common.c
index cf52d98cca..c3bfcfe648 100644
--- a/libavcodec/common.c
+++ b/libavcodec/common.c
@@ -104,13 +104,14 @@ void flush_put_bits(PutBitContext *s)
#ifdef CONFIG_ENCODERS
-void put_string(PutBitContext * pbc, char *s)
+void put_string(PutBitContext * pbc, char *s, int put_zero)
{
while(*s){
put_bits(pbc, 8, *s);
s++;
}
- put_bits(pbc, 8, 0);
+ if(put_zero)
+ put_bits(pbc, 8, 0);
}
/* bit input functions */
diff --git a/libavcodec/common.h b/libavcodec/common.h
index 2167ebc2b2..729ba4615b 100644
--- a/libavcodec/common.h
+++ b/libavcodec/common.h
@@ -291,7 +291,7 @@ void init_put_bits(PutBitContext *s, uint8_t *buffer, int buffer_size);
int put_bits_count(PutBitContext *s);
void align_put_bits(PutBitContext *s);
void flush_put_bits(PutBitContext *s);
-void put_string(PutBitContext * pbc, char *s);
+void put_string(PutBitContext * pbc, char *s, int put_zero);
/* bit input */
@@ -1142,7 +1142,7 @@ uint64_t tstart= rdtsc();\
#define STOP_TIMER(id) \
tend= rdtsc();\
-if(tcount<2 || tend - tstart < 4*tsum/tcount){\
+if(tcount<2 || tend - tstart < 8*tsum/tcount){\
tsum+= tend - tstart;\
tcount++;\
}else\
diff --git a/libavcodec/h263.c b/libavcodec/h263.c
index f1575fef94..6b9e559c1e 100644
--- a/libavcodec/h263.c
+++ b/libavcodec/h263.c
@@ -2326,8 +2326,7 @@ static void mpeg4_encode_vol_header(MpegEncContext * s, int vo_number, int vol_n
if(!(s->flags & CODEC_FLAG_BITEXACT)){
put_bits(&s->pb, 16, 0);
put_bits(&s->pb, 16, 0x1B2); /* user_data */
- put_string(&s->pb, LIBAVCODEC_IDENT);
- ff_mpeg4_stuffing(&s->pb);
+ put_string(&s->pb, LIBAVCODEC_IDENT, 0);
}
}
diff --git a/libavcodec/mjpeg.c b/libavcodec/mjpeg.c
index ca64fb2b13..7aed3e28ac 100644
--- a/libavcodec/mjpeg.c
+++ b/libavcodec/mjpeg.c
@@ -378,7 +378,7 @@ static void jpeg_put_comments(MpegEncContext *s)
/* JFIF header */
put_marker(p, APP0);
put_bits(p, 16, 16);
- put_string(p, "JFIF"); /* this puts the trailing zero-byte too */
+ put_string(p, "JFIF", 1); /* this puts the trailing zero-byte too */
put_bits(p, 16, 0x0201); /* v 1.02 */
put_bits(p, 8, 0); /* units type: 0 - aspect ratio */
put_bits(p, 16, s->avctx->sample_aspect_ratio.num);
@@ -393,7 +393,7 @@ static void jpeg_put_comments(MpegEncContext *s)
flush_put_bits(p);
ptr = pbBufPtr(p);
put_bits(p, 16, 0); /* patched later */
- put_string(p, LIBAVCODEC_IDENT);
+ put_string(p, LIBAVCODEC_IDENT, 1);
size = strlen(LIBAVCODEC_IDENT)+3;
ptr[0] = size >> 8;
ptr[1] = size;