[FFmpeg-cvslog] Revert "h264: skip start code search if the size of the nal unit is known"

Janne Grunau git at videolan.org
Tue Dec 20 04:18:10 CET 2011


ffmpeg | branch: master | Janne Grunau <janne-libav at jannau.net> | Mon Dec 19 03:00:36 2011 +0100| [358ea75e9ed7d86c58f6e7faf175faac68e140e9] | committer: Janne Grunau

Revert "h264: skip start code search if the size of the nal unit is known"

This reverts commit 87eebb3454ff0cd6af6ebf9e1d31bdfd1c3b601b.

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

 libavcodec/h264.c        |   11 ++---------
 libavcodec/h264.h        |    5 +----
 libavcodec/h264_parser.c |    2 +-
 3 files changed, 4 insertions(+), 14 deletions(-)

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 5d4ce90..77acd71 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -137,10 +137,7 @@ int ff_h264_check_intra_pred_mode(H264Context *h, int mode){
     return mode;
 }
 
-const uint8_t *ff_h264_decode_nal(H264Context *h, const uint8_t *src,
-                                  int *dst_length, int *consumed, int length,
-                                  int nalsize_known)
-{
+const uint8_t *ff_h264_decode_nal(H264Context *h, const uint8_t *src, int *dst_length, int *consumed, int length){
     int i, si, di;
     uint8_t *dst;
     int bufidx;
@@ -151,9 +148,6 @@ const uint8_t *ff_h264_decode_nal(H264Context *h, const uint8_t *src,
 
     src++; length--;
 
-    if (nalsize_known) {
-        i = length;
-    } else
 #if HAVE_FAST_UNALIGNED
 # if HAVE_FAST_64BIT
 #   define RS 7
@@ -3795,8 +3789,7 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size){
 
         hx = h->thread_context[context_count];
 
-        ptr= ff_h264_decode_nal(hx, buf + buf_index, &dst_length, &consumed,
-                                next_avc - buf_index, !!nalsize);
+        ptr= ff_h264_decode_nal(hx, buf + buf_index, &dst_length, &consumed, next_avc - buf_index);
         if (ptr==NULL || dst_length < 0){
             return -1;
         }
diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index 24da4f5..5025538 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -610,12 +610,9 @@ int ff_h264_decode_picture_parameter_set(H264Context *h, int bit_length);
  * @param consumed is the number of bytes used as input
  * @param length is the length of the array
  * @param dst_length is the number of decoded bytes FIXME here or a decode rbsp tailing?
- * @param nalsize_known skip start code search if the size of the nalu is known
  * @return decoded bytes, might be src+1 if no escapes
  */
-const uint8_t *ff_h264_decode_nal(H264Context *h, const uint8_t *src,
-                                  int *dst_length, int *consumed, int length,
-                                  int nalsize_known);
+const uint8_t *ff_h264_decode_nal(H264Context *h, const uint8_t *src, int *dst_length, int *consumed, int length);
 
 /**
  * Free any data that may have been allocated in the H264 context like SPS, PPS etc.
diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c
index 1967efa..826c17a 100644
--- a/libavcodec/h264_parser.c
+++ b/libavcodec/h264_parser.c
@@ -144,7 +144,7 @@ static inline int parse_nal_units(AVCodecParserContext *s,
                 src_length = 20;
             break;
         }
-        ptr= ff_h264_decode_nal(h, buf, &dst_length, &consumed, src_length, 0);
+        ptr= ff_h264_decode_nal(h, buf, &dst_length, &consumed, src_length);
         if (ptr==NULL || dst_length < 0)
             break;
 



More information about the ffmpeg-cvslog mailing list