diff options
author | Clément Bœsch <u@pkh.me> | 2016-06-19 12:38:28 +0200 |
---|---|---|
committer | Clément Bœsch <u@pkh.me> | 2016-06-19 12:38:28 +0200 |
commit | 34ec084b84817ca0b00544ca8e1029e6073c1e51 (patch) | |
tree | 7adc32b90719b0a4af2c2fcf42f895f1d305f7dd /libavcodec | |
parent | 48ea5433c813835907f053d38673f7112cd9c4a6 (diff) | |
download | ffmpeg-34ec084b84817ca0b00544ca8e1029e6073c1e51.tar.gz |
lavc/h264: move history parsing variable to H264ParseContext
This makes h264_find_frame_end() not depend on H264Context anymore.
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/h264.h | 4 | ||||
-rw-r--r-- | libavcodec/h264_parser.c | 16 |
2 files changed, 9 insertions, 11 deletions
diff --git a/libavcodec/h264.h b/libavcodec/h264.h index 1dd4bc1166..bd4b865fe0 100644 --- a/libavcodec/h264.h +++ b/libavcodec/h264.h @@ -684,10 +684,6 @@ typedef struct H264Context { int cur_bit_depth_luma; int16_t slice_row[MAX_SLICES]; ///< to detect when MAX_SLICES is too low - uint8_t parse_history[6]; - int parse_history_count; - int parse_last_mb; - int enable_er; H264SEIContext sei; diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c index be7e7ab47e..4f28ba74b8 100644 --- a/libavcodec/h264_parser.c +++ b/libavcodec/h264_parser.c @@ -55,13 +55,15 @@ typedef struct H264ParseContext { int is_avc; int nal_length_size; int got_first; + uint8_t parse_history[6]; + int parse_history_count; + int parse_last_mb; } H264ParseContext; static int h264_find_frame_end(H264ParseContext *p, const uint8_t *buf, int buf_size, void *logctx) { - H264Context *h = &p->h; int i, j; uint32_t state; ParseContext *pc = &p->pc; @@ -115,15 +117,15 @@ static int h264_find_frame_end(H264ParseContext *p, const uint8_t *buf, } state = 7; } else { - h->parse_history[h->parse_history_count++]= buf[i]; - if (h->parse_history_count>5) { - unsigned int mb, last_mb= h->parse_last_mb; + p->parse_history[p->parse_history_count++] = buf[i]; + if (p->parse_history_count > 5) { + unsigned int mb, last_mb = p->parse_last_mb; GetBitContext gb; - init_get_bits(&gb, h->parse_history, 8*h->parse_history_count); - h->parse_history_count=0; + init_get_bits(&gb, p->parse_history, 8*p->parse_history_count); + p->parse_history_count = 0; mb= get_ue_golomb_long(&gb); - h->parse_last_mb= mb; + p->parse_last_mb = mb; if (pc->frame_start_found) { if (mb <= last_mb) goto found; |