Browse Source

libavcodec/h264_parser: Increase parse_history, fix huge resolutions

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n2.4
Michael Niedermayer 11 years ago
parent
commit
0782fb6bcb
2 changed files with 3 additions and 3 deletions
  1. +1
    -1
      libavcodec/h264.h
  2. +2
    -2
      libavcodec/h264_parser.c

+ 1
- 1
libavcodec/h264.h View File

@@ -749,7 +749,7 @@ typedef struct H264Context {

int16_t slice_row[MAX_SLICES]; ///< to detect when MAX_SLICES is too low

uint8_t parse_history[4];
uint8_t parse_history[6];
int parse_history_count;
int parse_last_mb;
uint8_t *edge_emu_buffer;


+ 2
- 2
libavcodec/h264_parser.c View File

@@ -92,7 +92,7 @@ static int h264_find_frame_end(H264Context *h, const uint8_t *buf,
state = 7;
} else {
h->parse_history[h->parse_history_count++]= buf[i];
if (h->parse_history_count>3) {
if (h->parse_history_count>5) {
unsigned int mb, last_mb= h->parse_last_mb;
GetBitContext gb;

@@ -120,7 +120,7 @@ found:
pc->frame_start_found = 0;
if (h->is_avc)
return next_avc;
return i - (state & 5) - 3 * (state > 7);
return i - (state & 5) - 5 * (state > 7);
}

static int scan_mmco_reset(AVCodecParserContext *s)


Loading…
Cancel
Save