diff options
Diffstat (limited to 'xine/BluRay/patches/xine-lib-1.1.16.3-ffmpeg-vc1-extradata.diff')
-rw-r--r-- | xine/BluRay/patches/xine-lib-1.1.16.3-ffmpeg-vc1-extradata.diff | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/xine/BluRay/patches/xine-lib-1.1.16.3-ffmpeg-vc1-extradata.diff b/xine/BluRay/patches/xine-lib-1.1.16.3-ffmpeg-vc1-extradata.diff deleted file mode 100644 index c37c7e28..00000000 --- a/xine/BluRay/patches/xine-lib-1.1.16.3-ffmpeg-vc1-extradata.diff +++ /dev/null @@ -1,62 +0,0 @@ ---- src/combined/ffmpeg/ff_video_decoder.c 2009-04-16 14:24:20.000000000 +0300 -+++ src/combined/ffmpeg/ff_video_decoder.c 2009-09-24 15:21:25.000000000 +0300 -@@ -1165,6 +1181,49 @@ - } - } - -+static int ff_vc1_find_header(ff_video_decoder_t *this, buf_element_t *buf) -+{ -+ uint8_t *p = buf->content; -+ -+ if (!p[0] && !p[1] && p[2] == 1 && p[3] == 0x0f) { -+ int i; -+ -+ this->context->extradata = calloc(1, buf->size); -+ this->context->extradata_size = 0; -+ -+ for (i = 0; i < buf->size && i < 128; i++) { -+ if (!p[i] && !p[i+1] && p[i+2]) { -+ lprintf("00 00 01 %02x at %d\n", p[i+3], i); -+ if (p[i+3] != 0x0e && p[i+3] != 0x0f) -+ break; -+ } -+ this->context->extradata[i] = p[i]; -+ this->context->extradata_size++; -+ } -+ -+ lprintf("ff_video_decoder: found VC1 sequence header\n"); -+ return 1; -+ } -+ -+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, -+ "ffmpeg_video_dec: VC1 extradata missing !\n"); -+ return 0; -+} -+ -+static int ff_check_extradata(ff_video_decoder_t *this, unsigned int codec_type, buf_element_t *buf) -+{ -+ if (this->context && this->context->extradata) -+ return 1; -+ -+ switch (codec_type) { -+ case BUF_VIDEO_VC1: -+ return ff_vc1_find_header(this, buf); -+ default:; -+ } -+ -+ return 1; -+} -+ - #endif /* AVCODEC_HAS_REORDERED_OPAQUE */ - static void ff_handle_buffer (ff_video_decoder_t *this, buf_element_t *buf) { - uint8_t *chunk_buf = this->buf; -@@ -1176,6 +1235,9 @@ - if (this->decoder_init_mode) { - int codec_type = buf->type & 0xFFFF0000; - -+ if (!ff_check_extradata(this, codec_type, buf)) -+ return; -+ - /* init ffmpeg decoder */ - init_video_codec(this, codec_type); - init_postprocess(this); |