From: <fla...@gm...> - 2007-07-02 12:56:15
|
# HG changeset patch # User Diego 'Flameeyes' Pettenò <fla...@gm...> # Date 1183380998 -7200 # Node ID 0002ca94372e07f07132b8be92e11a771a767ca5 # Parent b175e186c0d0f1c19b712a081998b17fb16e2e44 # Parent d122535ddd65a137e7a919c1835bbcadf6744433 Merge with 1.1. diff -r 0002ca94372e07f07132b8be92e11a771a767ca5 -r b175e186c0d0f1c19b712a081998b17fb16e2e44 src/demuxers/demux_matroska.c --- a/src/demuxers/demux_matroska.c Mon Jul 02 14:56:38 2007 +0200 +++ b/src/demuxers/demux_matroska.c Sun Jun 17 21:01:32 2007 +0200 @@ -610,8 +610,7 @@ static void init_codec_real(demux_matros track->fifo->put (track->fifo, buf); } - -static void init_codec_vorbis(demux_matroska_t *this, matroska_track_t *track) { +static void init_codec_xiph(demux_matroska_t *this, matroska_track_t *track) { buf_element_t *buf; uint8_t nb_lace; int frame[3]; @@ -1373,6 +1372,10 @@ static int parse_track_entry(demux_matro init_codec = init_codec_real; } else if (!strcmp(track->codec_id, MATROSKA_CODEC_ID_V_MJPEG)) { + } else if (!strcmp(track->codec_id, MATROSKA_CODEC_ID_V_THEORA)) { + lprintf("MATROSKA_CODEC_ID_V_THEORA\n"); + track->buf_type = BUF_VIDEO_THEORA_RAW; + init_codec = init_codec_xiph; } else if ((!strcmp(track->codec_id, MATROSKA_CODEC_ID_A_MPEG1_L1)) || (!strcmp(track->codec_id, MATROSKA_CODEC_ID_A_MPEG1_L2)) || (!strcmp(track->codec_id, MATROSKA_CODEC_ID_A_MPEG1_L3))) { @@ -1397,7 +1400,7 @@ static int parse_track_entry(demux_matro lprintf("MATROSKA_CODEC_ID_A_VORBIS\n"); track->buf_type = BUF_AUDIO_VORBIS; - init_codec = init_codec_vorbis; + init_codec = init_codec_xiph; } else if (!strcmp(track->codec_id, MATROSKA_CODEC_ID_A_ACM)) { xine_waveformatex *wfh; @@ -1853,6 +1856,7 @@ static int parse_block (demux_matroska_t gap = flags & 1; lacing = (flags >> 1) & 0x3; + fprintf(stderr, "lacing: %x\n", lacing); if (!find_track_by_id(this, (int)track_num, &track)) { xprintf(this->stream->xine, XINE_VERBOSITY_LOG, diff -r 0002ca94372e07f07132b8be92e11a771a767ca5 -r b175e186c0d0f1c19b712a081998b17fb16e2e44 src/demuxers/matroska.h --- a/src/demuxers/matroska.h Mon Jul 02 14:56:38 2007 +0200 +++ b/src/demuxers/matroska.h Sun Jun 17 21:01:32 2007 +0200 @@ -264,6 +264,7 @@ struct matroska_track_s { #define MATROSKA_CODEC_ID_V_REAL_RV30 "V_REAL/RV30" #define MATROSKA_CODEC_ID_V_REAL_RV40 "V_REAL/RV40" #define MATROSKA_CODEC_ID_V_MJPEG "V_MJPEG" +#define MATROSKA_CODEC_ID_V_THEORA "V_THEORA" #define MATROSKA_CODEC_ID_A_MPEG1_L1 "A_MPEG/L1" #define MATROSKA_CODEC_ID_A_MPEG1_L2 "A_MPEG/L2" diff -r 0002ca94372e07f07132b8be92e11a771a767ca5 -r b175e186c0d0f1c19b712a081998b17fb16e2e44 src/libffmpeg/ff_video_decoder.c --- a/src/libffmpeg/ff_video_decoder.c Mon Jul 02 14:56:38 2007 +0200 +++ b/src/libffmpeg/ff_video_decoder.c Sun Jun 17 21:01:32 2007 +0200 @@ -309,6 +309,7 @@ static const ff_codec_t ff_video_lookup[ {BUF_VIDEO_KMVC, CODEC_ID_KMVC, "Karl Morton's Video Codec (ffmpeg)"}, {BUF_VIDEO_FLASHSV, CODEC_ID_FLASHSV, "Flash Screen Video (ffmpeg)"}, {BUF_VIDEO_CAVS, CODEC_ID_CAVS, "Chinese AVS (ffmpeg)"}, + {BUF_VIDEO_THEORA_RAW, CODEC_ID_THEORA, "Theora (ffmpeg)"}, }; @@ -1745,7 +1746,7 @@ static uint32_t supported_video_types[] #if defined(HAVE_FFMPEG) || CONFIG_CAVS_DECODER BUF_VIDEO_CAVS, #endif - + BUF_VIDEO_THEORA_RAW, 0 }; diff -r 0002ca94372e07f07132b8be92e11a771a767ca5 -r b175e186c0d0f1c19b712a081998b17fb16e2e44 src/xine-engine/buffer.h --- a/src/xine-engine/buffer.h Mon Jul 02 14:56:38 2007 +0200 +++ b/src/xine-engine/buffer.h Sun Jun 17 21:01:32 2007 +0200 @@ -198,6 +198,7 @@ extern "C" { #define BUF_VIDEO_FLASHSV 0x02610000 #define BUF_VIDEO_CAVS 0x02620000 #define BUF_VIDEO_VP6F 0x02630000 +#define BUF_VIDEO_THEORA_RAW 0x02640000 /*@}*/ /** |