diff options
author | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2010-03-24 21:02:08 +0000 |
---|---|---|
committer | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2010-03-24 21:02:08 +0000 |
commit | 1e26328be7611a7acdd5f9ecbcac32cba5cfab57 (patch) | |
tree | 74fb64a947e066d05874954404414997f5ae7641 | |
parent | bf90f534f29892ded8f92f088bd9c78486d5833e (diff) | |
parent | 74853b910cfd296eb0fea43394a3819e803c46b9 (diff) | |
download | xine-lib-1e26328be7611a7acdd5f9ecbcac32cba5cfab57.tar.gz xine-lib-1e26328be7611a7acdd5f9ecbcac32cba5cfab57.tar.bz2 |
Merge from 1.1.
--HG--
rename : doc/hackersguide/internals.sgml => doc/hackersguide/internals.docbook
rename : doc/hackersguide/library.sgml => doc/hackersguide/library.docbook
rename : include/xine.h.in => include/xine.h
rename : src/xine-engine/buffer.h => include/xine/buffer.h
rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | doc/hackersguide/library.docbook | 2 | ||||
-rw-r--r-- | include/xine.h | 2 | ||||
-rw-r--r-- | include/xine/buffer.h | 1 | ||||
-rw-r--r-- | m4/summary.m4 | 1 | ||||
-rw-r--r-- | misc/Makefile.am | 1 | ||||
-rw-r--r-- | misc/logo/xine_logo.png | bin | 0 -> 46172 bytes | |||
-rw-r--r-- | misc/logo/xine_logo_text.svg | 72 | ||||
-rw-r--r-- | misc/xine_logo.mpv | bin | 28921 -> 0 bytes | |||
-rw-r--r-- | misc/xine_logo.png | bin | 44337 -> 0 bytes | |||
-rw-r--r-- | src/combined/ffmpeg/ff_audio_decoder.c | 1 | ||||
-rw-r--r-- | src/combined/ffmpeg/xine_audio.list | 1 | ||||
-rw-r--r-- | src/combined/xine_ogg_demuxer.c | 1 | ||||
-rw-r--r-- | src/demuxers/demux_matroska.c | 5 | ||||
-rw-r--r-- | src/demuxers/demux_tta.c | 13 | ||||
-rw-r--r-- | src/demuxers/id3.c | 8 | ||||
-rw-r--r-- | src/demuxers/matroska.h | 1 | ||||
-rw-r--r-- | src/xine-engine/buffer_types.c | 7 |
18 files changed, 113 insertions, 5 deletions
@@ -74,6 +74,8 @@ xine-lib (1.1.19) 2010-??-?? * Handle odd widths properly (for ffmpeg-decoded video). * Make buildable with current (external) libdvdnav & libdvdread. * Fix V4L2 check. + * Add support for Ogg tag 'DISCNUMBER' and ID3 tag 'TPOS'. + * Add support for EAC3. xine-lib (1.1.18.1) 2010-03-06 * Oops. compat.c (for DXR3 support) was omitted. diff --git a/doc/hackersguide/library.docbook b/doc/hackersguide/library.docbook index 01412e362..51c82e9f3 100644 --- a/doc/hackersguide/library.docbook +++ b/doc/hackersguide/library.docbook @@ -69,7 +69,7 @@ */ /* - * compile-command: "gcc -Wall -O2 `pkg-config --cflags --libs libxine` -L/usr/X11R6/lib -lX11 -lm -o xinimin xinimin.c" + * compile-command: "gcc -Wall -O2 `pkg-config --cflags --libs libxine x11` -lm -o xinimin xinimin.c" */ #include <stdio.h> diff --git a/include/xine.h b/include/xine.h index 29c9d6429..86220388d 100644 --- a/include/xine.h +++ b/include/xine.h @@ -963,6 +963,8 @@ const char *xine_get_meta_info (xine_stream_t *stream, int info) XINE_PROTECTE #define XINE_META_INFO_PART 23 #define XINE_META_INFO_PARTNUMBER 24 #define XINE_META_INFO_LOCATION 25 +/* post-1.1.18.1 */ +#define XINE_META_INFO_DISCNUMBER 26 /********************************************************************* diff --git a/include/xine/buffer.h b/include/xine/buffer.h index 1a51da6c3..35c793439 100644 --- a/include/xine/buffer.h +++ b/include/xine/buffer.h @@ -266,6 +266,7 @@ extern "C" { #define BUF_AUDIO_MP3ADU 0x033E0000 #define BUF_AUDIO_AMR_NB 0x033F0000 #define BUF_AUDIO_AMR_WB 0x03400000 +#define BUF_AUDIO_EAC3 0x03410000 /*@}*/ /** diff --git a/m4/summary.m4 b/m4/summary.m4 index c5b9a4132..79f476a39 100644 --- a/m4/summary.m4 +++ b/m4/summary.m4 @@ -61,6 +61,7 @@ AC_DEFUN([XINE_LIB_SUMMARY], [ echo " - ac3 (*INTERNAL* library)" fi fi + echo " - E-AC-3" test x"$enable_asf" != x"no" && echo " - asf" test x"$enable_nosefart" != xno && echo " - Nosefart (NSF)" test x"$enable_mng" != x"no" && echo " - mng" diff --git a/misc/Makefile.am b/misc/Makefile.am index f5f5b2ef9..308ac6533 100644 --- a/misc/Makefile.am +++ b/misc/Makefile.am @@ -8,6 +8,7 @@ EXTRA_DIST = build_rpms.sh \ xine-lib.spec.in \ xine-lib.spec \ libxine.pc.in \ + logo/xine_logo_text.svg \ libdvdcss-1.2.6-network.patch \ Makefile.plugins.in \ Makefile.common \ diff --git a/misc/logo/xine_logo.png b/misc/logo/xine_logo.png Binary files differnew file mode 100644 index 000000000..0604f1873 --- /dev/null +++ b/misc/logo/xine_logo.png diff --git a/misc/logo/xine_logo_text.svg b/misc/logo/xine_logo_text.svg new file mode 100644 index 000000000..ad3f8e3b6 --- /dev/null +++ b/misc/logo/xine_logo_text.svg @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="768" + height="576" + id="svg2" + version="1.1" + inkscape:version="0.47 r22583" + sodipodi:docname="xine_logo_text.svg"> + <defs + id="defs4"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + id="perspective10" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1" + inkscape:cx="396.54604" + inkscape:cy="282.08051" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1270" + inkscape:window-height="999" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-476.36218)"> + <g + style="font-size:144px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Gunship;-inkscape-font-specification:Gunship" + id="text2816"> + <path + id="path2827" + style="" + d="m 530.94075,753.92218 93.888,0 0,19.584 -93.888,0 0,13.824 100.656,0 0,23.04 -111.312,0 c -6.72003,0 -12.43202,-2.352 -17.136,-7.056 -4.70401,-4.70399 -7.05601,-10.41598 -7.056,-17.136 l 0,-43.632 c -1e-5,-6.71993 2.35199,-12.43192 7.056,-17.136 4.70398,-4.70391 10.41597,-7.05591 17.136,-7.056 l 110.88,0 0,22.896 -100.224,0 0,12.672 m -84.5235,56.448 0,-69.12 -65.664,0 0,69.12 -34.704,0 0,-92.016 111.312,0 c 6.62387,9e-5 12.28787,2.35209 16.992,7.056 4.79986,4.80008 7.19985,10.51207 7.2,17.136 l 0,67.824 -35.136,0 m -114.71175,0 -36,0 0,-92.016 36,0 0,92.016 m -97.38225,-49.104 45.36,-42.912 -43.344,0 -27.36,27.216 -27.36,-27.216 -43.344,0 45.36,42.912 -47.232,49.104 45.216,0 27.36,-29.664 27.36,29.664 45.36,0 -47.376,-49.104" /> + </g> + </g> +</svg> diff --git a/misc/xine_logo.mpv b/misc/xine_logo.mpv Binary files differdeleted file mode 100644 index dba01c40f..000000000 --- a/misc/xine_logo.mpv +++ /dev/null diff --git a/misc/xine_logo.png b/misc/xine_logo.png Binary files differdeleted file mode 100644 index 7e555ae3d..000000000 --- a/misc/xine_logo.png +++ /dev/null diff --git a/src/combined/ffmpeg/ff_audio_decoder.c b/src/combined/ffmpeg/ff_audio_decoder.c index b6b5a2075..534a97afb 100644 --- a/src/combined/ffmpeg/ff_audio_decoder.c +++ b/src/combined/ffmpeg/ff_audio_decoder.c @@ -284,6 +284,7 @@ static void ff_audio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) if (!this->output_open) { if (!this->audio_bits || !this->audio_sample_rate || !this->audio_channels) { + decode_buffer_size = AVCODEC_MAX_AUDIO_FRAME_SIZE; avcodec_decode_audio2 (this->context, (int16_t *)this->decode_buffer, &decode_buffer_size, diff --git a/src/combined/ffmpeg/xine_audio.list b/src/combined/ffmpeg/xine_audio.list index b4a7455ea..796917dfe 100644 --- a/src/combined/ffmpeg/xine_audio.list +++ b/src/combined/ffmpeg/xine_audio.list @@ -40,6 +40,7 @@ FLVADPCM ADPCM_SWF Flash ADPCM WAVPACK WAVPACK WavPack AMR_NB AMR_NB AMR narrow band AMR_WB AMR_WB AMR wide band +EAC3 EAC3 E-AC-3 # disabled codecs (ref. configure.ac) ! AAC diff --git a/src/combined/xine_ogg_demuxer.c b/src/combined/xine_ogg_demuxer.c index 6aa89c142..fa6fd10eb 100644 --- a/src/combined/xine_ogg_demuxer.c +++ b/src/combined/xine_ogg_demuxer.c @@ -429,6 +429,7 @@ static const struct ogg_meta { OGG_META (ARTIST, 0), OGG_META (PUBLISHER, 0), OGG_META (COPYRIGHT, 0), + OGG_META (DISCNUMBER, 0), OGG_META (LICENSE, 0), OGG_META (TITLE, 0), OGG_META_L (TRACKNUMBER, 0, TRACK_NUMBER), diff --git a/src/demuxers/demux_matroska.c b/src/demuxers/demux_matroska.c index eddbf67b1..032917ad9 100644 --- a/src/demuxers/demux_matroska.c +++ b/src/demuxers/demux_matroska.c @@ -1352,6 +1352,11 @@ static int parse_track_entry(demux_matroska_t *this, matroska_track_t *track) { track->buf_type = BUF_AUDIO_A52; init_codec = init_codec_audio; + } else if (!strcmp(track->codec_id, MATROSKA_CODEC_ID_A_EAC3)) { + lprintf("MATROSKA_CODEC_ID_A_EAC3\n"); + track->buf_type = BUF_AUDIO_EAC3; + init_codec = init_codec_audio; + } else if (!strcmp(track->codec_id, MATROSKA_CODEC_ID_A_DTS)) { lprintf("MATROSKA_CODEC_ID_A_DTS\n"); track->buf_type = BUF_AUDIO_DTS; diff --git a/src/demuxers/demux_tta.c b/src/demuxers/demux_tta.c index ada6cab30..d7c2a65cd 100644 --- a/src/demuxers/demux_tta.c +++ b/src/demuxers/demux_tta.c @@ -128,7 +128,7 @@ static int demux_tta_send_chunk(demux_plugin_t *this_gen) { /* Get a buffer */ buf = this->audio_fifo->buffer_pool_alloc(this->audio_fifo); buf->type = BUF_AUDIO_TTA; - buf->pts = 0; + buf->pts = (int64_t)(FRAME_TIME * this->currentframe) * 90000; buf->extra_info->total_time = (int)(le2me_32(this->header.tta.data_length) * 1000.0 / le2me_32(this->header.tta.samplerate)); /* milliseconds */ buf->decoder_flags = 0; @@ -230,6 +230,7 @@ static int demux_tta_seek (demux_plugin_t *this_gen, demux_tta_t *this = (demux_tta_t *) this_gen; uint32_t start_frame; uint32_t frame_index; + int64_t pts; off_t start_off = this->datastart; /* if thread is not running, initialize demuxer */ @@ -243,10 +244,14 @@ static int demux_tta_seek (demux_plugin_t *this_gen, } else { /* Get the starting frame */ - if( start_pos ) + if( start_pos ) { + pts = start_pos * le2me_32(this->header.tta.data_length) * 1000.0 / le2me_32(this->header.tta.samplerate) * 90 / 65535; start_frame = start_pos * this->totalframes / 65535; - else + + } else { + pts = start_time * 90; start_frame = (uint32_t)((double)start_time/ 1000.0 / FRAME_TIME); + } /* Now we find the offset */ for( frame_index = 0; frame_index < start_frame; frame_index++ ) @@ -257,7 +262,7 @@ static int demux_tta_seek (demux_plugin_t *this_gen, _x_demux_flush_engine(this->stream); this->input->seek(this->input, start_off, SEEK_SET); this->currentframe = start_frame; - _x_demux_control_newpts(this->stream, (int)(FRAME_TIME * start_frame) * 90000, BUF_FLAG_SEEK); + _x_demux_control_newpts(this->stream, pts, BUF_FLAG_SEEK); this->status = DEMUX_OK; } diff --git a/src/demuxers/id3.c b/src/demuxers/id3.c index cdd585884..ea28f5666 100644 --- a/src/demuxers/id3.c +++ b/src/demuxers/id3.c @@ -511,6 +511,10 @@ static int id3v23_interp_frame(input_plugin_t *input, _x_meta_info_set(stream, XINE_META_INFO_TRACK_NUMBER, buf + 1); break; + case BE_FOURCC('T', 'P', 'O', 'S'): + _x_meta_info_set(stream, XINE_META_INFO_DISCNUMBER, buf + 1); + break; + default: lprintf("unhandled frame\n"); } @@ -761,6 +765,10 @@ static int id3v24_interp_frame(input_plugin_t *input, _x_meta_info_set(stream, XINE_META_INFO_TRACK_NUMBER, buf + 1); break; + case BE_FOURCC('T', 'P', 'O', 'S'): + _x_meta_info_set(stream, XINE_META_INFO_DISCNUMBER, buf + 1); + break; + default: lprintf("unhandled frame\n"); } diff --git a/src/demuxers/matroska.h b/src/demuxers/matroska.h index 040400e0c..6109ad278 100644 --- a/src/demuxers/matroska.h +++ b/src/demuxers/matroska.h @@ -320,6 +320,7 @@ struct matroska_track_s { #define MATROSKA_CODEC_ID_A_PCM_INT_LE "A_PCM/INT/LIT" #define MATROSKA_CODEC_ID_A_PCM_FLOAT "A_PCM/FLOAT/IEEE" #define MATROSKA_CODEC_ID_A_AC3 "A_AC3" +#define MATROSKA_CODEC_ID_A_EAC3 "A_EAC3" #define MATROSKA_CODEC_ID_A_DTS "A_DTS" #define MATROSKA_CODEC_ID_A_VORBIS "A_VORBIS" #define MATROSKA_CODEC_ID_A_ACM "A_MS/ACM" diff --git a/src/xine-engine/buffer_types.c b/src/xine-engine/buffer_types.c index 413bfb9f0..2f362fa21 100644 --- a/src/xine-engine/buffer_types.c +++ b/src/xine-engine/buffer_types.c @@ -1178,6 +1178,13 @@ static const audio_db_t audio_db[] = { BUF_AUDIO_TTA, "True Audio Lossless" }, +{ + { + 0 + }, + BUF_AUDIO_EAC3, + "E-AC-3" +}, { { 0 }, 0, "last entry" } }; |