summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--debian/dh_xine38
-rw-r--r--debian/dh_xine.116
-rw-r--r--debian/libxine-dev.install2
-rwxr-xr-xdebian/rules3
-rw-r--r--debian/xine.pm9
-rw-r--r--include/xine.h1
-rw-r--r--include/xine/video_out.h2
-rw-r--r--src/demuxers/demux_mpeg_pes.c2
-rw-r--r--src/demuxers/demux_ts.c2
-rw-r--r--src/demuxers/demux_tta.c4
-rw-r--r--src/video_out/video_out_xcbxv.c5
-rw-r--r--src/video_out/video_out_xv.c5
-rw-r--r--src/video_out/video_out_xvmc.c5
-rw-r--r--src/video_out/video_out_xxmc.c7
-rw-r--r--src/xine-engine/video_out.c5
-rw-r--r--src/xine-engine/xine_interface.c2
17 files changed, 96 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 663099f74..9a729c8e3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -76,6 +76,9 @@ xine-lib (1.1.19) 2010-??-??
* Fix V4L2 check.
* Add support for Ogg tag 'DISCNUMBER' and ID3 tag 'TPOS'.
* Add support for EAC3.
+ * Recognise video/mp2t and video/mp2p.
+ * TTA fixes.
+ * Add support for Xv gamma adjustment.
xine-lib (1.1.18.1) 2010-03-06
* Oops. compat.c (for DXR3 support) was omitted.
diff --git a/debian/dh_xine b/debian/dh_xine
index 93657a86c..1ae22bd9b 100644
--- a/debian/dh_xine
+++ b/debian/dh_xine
@@ -11,7 +11,7 @@ use Debian::Debhelper::Dh_Lib;
=head1 SYNOPSIS
-B<dh_xine> [S<I<debhelper options>>]
+B<dh_xine> [S<I<debhelper options>>] [S<I<package name suffixes>>]
=head1 DESCRIPTION
@@ -23,6 +23,19 @@ Each xine-lib front end is required to have one of these two substvars
listed in its Depends line in debian/control. Using package names directly
will, sooner or later, break.
+By listing package name suffixes, you can generate dependencies and
+recommendations (almost) at will. If you don't specify any, then 'x' and
+'console' are used, generating xine-x:Depends and xine-console:Depends.
+
+=head1 EXAMPLES
+
+dh_xine is usually called indirectly in a rules file via the dh command.
+
+ %:
+ dh --with xine $@
+
+It can also be called directly, prior to calling dh_gencontrol.
+
=head1 CONFORMS TO
Debian policy, version 3.8.1
@@ -31,16 +44,27 @@ Debian policy, version 3.8.1
init ();
-my $version;
+no locale;
+
+my @suffix;
+
+foreach my $suffix (@ARGV) {
+ if ($suffix =~ /^[-[:lower:]]*$/) {
+ push @suffix, $suffix;
+ } else {
+ warn "bad package name suffix: $suffix";
+ }
+}
+
+@suffix = ('x', 'console') if $#suffix < 0;
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp = tmpdir ($package);
- delsubstvar($package, 'xine-x:Depends');
- addsubstvar ($package, 'xine-x:Depends', 'libxine2-x');
-
- delsubstvar($package, 'xine-console:Depends');
- addsubstvar ($package, 'xine-console:Depends', 'libxine2-console');
+ foreach my $suffix (@suffix) {
+ delsubstvar($package, "xine-$suffix:Depends");
+ addsubstvar ($package, "xine-$suffix:Depends", "libxine1-$suffix");
+ }
}
=head1 SEE ALSO
diff --git a/debian/dh_xine.1 b/debian/dh_xine.1
index 5116d750a..e420abd7e 100644
--- a/debian/dh_xine.1
+++ b/debian/dh_xine.1
@@ -2,7 +2,7 @@
.SH "NAME"
dh_xine - calculates xine\-lib dependencies
.SH "SYNOPSIS"
-\fBdh_xine\fR [\fIdebhelper\ options\fR]
+\fBdh_xine\fR [\fIdebhelper\ options\fR] [\fIpackage\ name\ suffixes\fR]
.SH "DESCRIPTION"
dh_xine is a debhelper program that is responsible for generating the
${xine\-x:Depends} and ${xine\-console:Depends} substitutions and adding them
@@ -11,6 +11,20 @@ to substvars files.
Each xine-lib front end is required to have one of these two substvars
listed in its Depends line in debian/control. Using package names directly
will, sooner or later, break.
+.PP
+By listing package name suffixes, you can generate dependencies and
+recommendations (almost) at will. If you don't specify any, then 'x' and
+\&'console' are used, generating xine\-x:Depends and xine\-console:Depends.
+.SH "EXAMPLES"
+dh_xine is usually called indirectly in a rules file via the dh command.
+.PP
+.ft CW
+.nf
+\& %:
+\& dh \-\-with xine $@
+.ft R
+.PP
+It can also be called directly, prior to calling dh_gencontrol.
.SH "CONFORMS TO"
Debian policy, version 3.8.1
.SH "SEE ALSO"
diff --git a/debian/libxine-dev.install b/debian/libxine-dev.install
index 6fadf7dc5..10a9d7983 100644
--- a/debian/libxine-dev.install
+++ b/debian/libxine-dev.install
@@ -8,3 +8,5 @@ usr/lib/xine/plugins/*/post/*.la
usr/lib/xine/plugins/*/vidix/*.la
usr/share/aclocal/xine.m4
usr/share/man/man1/xine-config.1
+../dh_xine usr/bin
+../xine.pm usr/share/perl5/Debian/Debhelper/Sequence/xine.pm
diff --git a/debian/rules b/debian/rules
index 0e03b0edd..a604bb1df 100755
--- a/debian/rules
+++ b/debian/rules
@@ -130,8 +130,7 @@ binary-arch: build install
# ugly hack, documentation should never have been in /u/s/d/xine/...
mv debian/tmp/usr/share/doc/xine-lib debian/tmp/usr/share/doc/libxine${major}
# build libxine${major} package by moving files from libxine-dev
- dh_install --autodest --sourcedir=debian/tmp --list-missing
- install -m755 debian/dh_xine debian/libxine-dev/usr/bin
+ dh_install --sourcedir=debian/tmp --list-missing
dh_installman -plibxine-dev debian/dh_xine.1
dh_installdocs
dh_installchangelogs -k ChangeLog
diff --git a/debian/xine.pm b/debian/xine.pm
new file mode 100644
index 000000000..81abf05a6
--- /dev/null
+++ b/debian/xine.pm
@@ -0,0 +1,9 @@
+#!/usr/bin/perl
+
+use warnings;
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+insert_after("dh_shlibdeps", "dh_xine");
+
+1;
diff --git a/include/xine.h b/include/xine.h
index 86220388d..0783cf117 100644
--- a/include/xine.h
+++ b/include/xine.h
@@ -336,6 +336,7 @@ int xine_get_param (xine_stream_t *stream, int param) XINE_PROTECTED;
#define XINE_PARAM_VO_SATURATION 0x01000003 /* 0..65535 */
#define XINE_PARAM_VO_CONTRAST 0x01000004 /* 0..65535 */
#define XINE_PARAM_VO_BRIGHTNESS 0x01000005 /* 0..65535 */
+#define XINE_PARAM_VO_GAMMA 0x0100000c /* 0..65535 */
#define XINE_PARAM_VO_ZOOM_X 0x01000008 /* percent */
#define XINE_PARAM_VO_ZOOM_Y 0x0100000d /* percent */
#define XINE_PARAM_VO_PAN_SCAN 0x01000009 /* bool */
diff --git a/include/xine/video_out.h b/include/xine/video_out.h
index dff1895af..42fcae99f 100644
--- a/include/xine/video_out.h
+++ b/include/xine/video_out.h
@@ -248,6 +248,7 @@ struct xine_video_port_s {
#define VO_PROP_PAN_SCAN 9
#define VO_PROP_TVMODE 10
#define VO_PROP_MAX_NUM_FRAMES 11
+#define VO_PROP_GAMMA 12
#define VO_PROP_ZOOM_Y 13
#define VO_PROP_DISCARD_FRAMES 14 /* not used by drivers */
#define VO_PROP_WINDOW_WIDTH 15 /* read-only */
@@ -307,6 +308,7 @@ struct xine_video_port_s {
#define VO_CAP_CUSTOM_EXTENT_OVERLAY 0x01000000 /* driver can blend custom extent overlay to output extent */
#define VO_CAP_ARGB_LAYER_OVERLAY 0x02000000 /* driver supports true color overlay */
#define VO_CAP_VIDEO_WINDOW_OVERLAY 0x04000000 /* driver can scale video to an area within overlay */
+#define VO_CAP_GAMMA 0x00080000
/*
diff --git a/src/demuxers/demux_mpeg_pes.c b/src/demuxers/demux_mpeg_pes.c
index 3b2489a43..5ad959d51 100644
--- a/src/demuxers/demux_mpeg_pes.c
+++ b/src/demuxers/demux_mpeg_pes.c
@@ -1756,7 +1756,7 @@ static void *init_plugin (xine_t *xine, void *data) {
this->demux_class.open_plugin = open_plugin;
this->demux_class.description = N_("mpeg pes demux plugin");
this->demux_class.identifier = "MPEG_PES";
- this->demux_class.mimetypes = NULL;
+ this->demux_class.mimetypes = "video/mp2p: m2p: MPEG2 program stream;";
this->demux_class.extensions = "pes vdr:/ netvdr:/";
this->demux_class.dispose = default_demux_class_dispose;
diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c
index 8c8250cf4..39b273abf 100644
--- a/src/demuxers/demux_ts.c
+++ b/src/demuxers/demux_ts.c
@@ -2441,7 +2441,7 @@ static void *init_class (xine_t *xine, void *data) {
this->demux_class.open_plugin = open_plugin;
this->demux_class.description = N_("MPEG Transport Stream demuxer");
this->demux_class.identifier = "MPEG_TS";
- this->demux_class.mimetypes = NULL;
+ this->demux_class.mimetypes = "video/mp2t: m2t: MPEG2 transport stream;";
/* accept dvb streams; also handle the special dvbs,dvbt and dvbc
* mrl formats: the content is exactly the same but the input plugin
diff --git a/src/demuxers/demux_tta.c b/src/demuxers/demux_tta.c
index d7c2a65cd..3df30daef 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 = (int64_t)(FRAME_TIME * this->currentframe) * 90000;
+ 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;
@@ -137,7 +137,7 @@ static int demux_tta_send_chunk(demux_plugin_t *this_gen) {
(int) ((double) this->currentframe * 65535 / this->totalframes);
/* Set time */
- buf->extra_info->input_time = (int)(FRAME_TIME * this->currentframe)*1000;
+ buf->extra_info->input_time = (int)(FRAME_TIME * this->currentframe * 1000);
bytes_read = this->input->read(this->input, buf->content, ( bytes_to_read > buf->max_size ) ? buf->max_size : bytes_to_read);
if (bytes_read < 0) {
diff --git a/src/video_out/video_out_xcbxv.c b/src/video_out/video_out_xcbxv.c
index 15b14c791..81a799dca 100644
--- a/src/video_out/video_out_xcbxv.c
+++ b/src/video_out/video_out_xcbxv.c
@@ -1340,6 +1340,11 @@ static vo_driver_t *open_plugin(video_driver_class_t *class_gen, const void *vis
xv_check_capability (this, VO_PROP_CONTRAST, attribute_it.data,
adaptor_it.data->base_id,
NULL, NULL, NULL);
+ } else if(!strcmp(name, "XV_GAMMA")) {
+ this->capabilities |= VO_CAP_GAMMA;
+ xv_check_capability (this, VO_PROP_GAMMA, attribute_it.data,
+ adaptor_it.data->base_id,
+ NULL, NULL, NULL);
} else if(!strcmp(name, "XV_COLORKEY")) {
this->capabilities |= VO_CAP_COLORKEY;
xv_check_capability (this, VO_PROP_COLORKEY, attribute_it.data,
diff --git a/src/video_out/video_out_xv.c b/src/video_out/video_out_xv.c
index bca1b97f7..5c994c351 100644
--- a/src/video_out/video_out_xv.c
+++ b/src/video_out/video_out_xv.c
@@ -1390,6 +1390,11 @@ static vo_driver_t *open_plugin_2 (video_driver_class_t *class_gen, const void *
xv_check_capability (this, VO_PROP_CONTRAST, attr[k],
adaptor_info[adaptor_num].base_id,
NULL, NULL, NULL);
+ } else if(!strcmp(name, "XV_GAMMA")) {
+ this->capabilities |= VO_CAP_GAMMA;
+ xv_check_capability (this, VO_PROP_GAMMA, attr[k],
+ adaptor_info[adaptor_num].base_id,
+ NULL, NULL, NULL);
} else if(!strcmp(name, "XV_COLORKEY")) {
this->capabilities |= VO_CAP_COLORKEY;
xv_check_capability (this, VO_PROP_COLORKEY, attr[k],
diff --git a/src/video_out/video_out_xvmc.c b/src/video_out/video_out_xvmc.c
index 79fea9ce5..7a0535818 100644
--- a/src/video_out/video_out_xvmc.c
+++ b/src/video_out/video_out_xvmc.c
@@ -1424,6 +1424,11 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
xvmc_check_capability (this, VO_PROP_CONTRAST, attr[k],
adaptor_info[adaptor_num].base_id,
NULL, NULL, NULL);
+ } else if(!strcmp(name, "XV_GAMMA")) {
+ this->capabilities |= VO_CAP_GAMMA;
+ xvmc_check_capability (this, VO_PROP_GAMMA, attr[k],
+ adaptor_info[adaptor_num].base_id,
+ NULL, NULL, NULL);
} else if(!strcmp(name, "XV_COLORKEY")) {
this->capabilities |= VO_CAP_COLORKEY;
xvmc_check_capability (this, VO_PROP_COLORKEY, attr[k],
diff --git a/src/video_out/video_out_xxmc.c b/src/video_out/video_out_xxmc.c
index 5f131855f..aa47eb2ae 100644
--- a/src/video_out/video_out_xxmc.c
+++ b/src/video_out/video_out_xxmc.c
@@ -2619,6 +2619,13 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
xxmc_check_capability (this, VO_PROP_CONTRAST, attr[k],
adaptor_info[adaptor_num].base_id,
NULL, NULL, NULL);
+
+ } else if(!strcmp(name, "XV_GAMMA")) {
+ this->capabilities |= VO_CAP_GAMMA;
+ xxmc_check_capability (this, VO_PROP_GAMMA, attr[k],
+ adaptor_info[adaptor_num].base_id,
+ NULL, NULL, NULL);
+
} else if(!strcmp(name, "XV_COLORKEY")) {
this->capabilities |= VO_CAP_COLORKEY;
xxmc_check_capability (this, VO_PROP_COLORKEY, attr[k],
diff --git a/src/xine-engine/video_out.c b/src/xine-engine/video_out.c
index e4af36e3c..4372226ad 100644
--- a/src/xine-engine/video_out.c
+++ b/src/xine-engine/video_out.c
@@ -1471,7 +1471,9 @@ static int vo_get_property (xine_video_port_t *this_gen, int property) {
case XINE_PARAM_VO_HUE:
case XINE_PARAM_VO_SATURATION:
case XINE_PARAM_VO_CONTRAST:
- case XINE_PARAM_VO_BRIGHTNESS: {
+ case XINE_PARAM_VO_BRIGHTNESS:
+ case XINE_PARAM_VO_GAMMA:
+ {
int v, min_v, max_v, range_v;
pthread_mutex_lock( &this->driver_lock );
@@ -1566,6 +1568,7 @@ static int vo_set_property (xine_video_port_t *this_gen, int property, int value
case XINE_PARAM_VO_SATURATION:
case XINE_PARAM_VO_CONTRAST:
case XINE_PARAM_VO_BRIGHTNESS:
+ case XINE_PARAM_VO_GAMMA:
if (!this->grab_only) {
int v, min_v, max_v, range_v;
diff --git a/src/xine-engine/xine_interface.c b/src/xine-engine/xine_interface.c
index 87775c470..ab1bafa1e 100644
--- a/src/xine-engine/xine_interface.c
+++ b/src/xine-engine/xine_interface.c
@@ -471,6 +471,7 @@ void xine_set_param (xine_stream_t *stream, int param, int value) {
case XINE_PARAM_VO_SATURATION:
case XINE_PARAM_VO_CONTRAST:
case XINE_PARAM_VO_BRIGHTNESS:
+ case XINE_PARAM_VO_GAMMA:
case XINE_PARAM_VO_DEINTERLACE:
case XINE_PARAM_VO_ASPECT_RATIO:
case XINE_PARAM_VO_ZOOM_X:
@@ -637,6 +638,7 @@ int xine_get_param (xine_stream_t *stream, int param) {
case XINE_PARAM_VO_SATURATION:
case XINE_PARAM_VO_CONTRAST:
case XINE_PARAM_VO_BRIGHTNESS:
+ case XINE_PARAM_VO_GAMMA:
case XINE_PARAM_VO_DEINTERLACE:
case XINE_PARAM_VO_ASPECT_RATIO:
case XINE_PARAM_VO_ZOOM_X: