From d5742359d34d39de5bc59fa8da04805ae3318d92 Mon Sep 17 00:00:00 2001 From: Manuel Reimer Date: Sat, 28 Jan 2023 11:12:40 +0100 Subject: [PATCH] Version 1.7.5 --- HISTORY | 14 +++- Makefile | 122 +++++++++++---------------- mplayer/.directory | 10 --- po/.directory | 6 -- po/ca_ES.po | 8 +- po/cs_CZ.po | 8 +- po/da_DK.po | 8 +- po/de_DE.po | 4 +- po/el_GR.po | 8 +- po/es_ES.po | 8 +- po/et_EE.po | 8 +- po/fi_FI.po | 8 +- po/fr_FR.po | 8 +- po/hr_HR.po | 8 +- po/hu_HU.po | 8 +- po/i18n-template.c | 20 ----- po/i18n.h | 20 ----- po/it_IT.po | 4 +- po/nl_NL.po | 8 +- po/nn_NO.po | 8 +- po/pl_PL.po | 8 +- po/pt_PT.po | 8 +- po/ro_RO.po | 8 +- po/ru_RU.po | 8 +- po/sl_SI.po | 8 +- po/sv_SE.po | 8 +- po/tr_TR.po | 8 +- po2i18n.pl | 201 --------------------------------------------- pvr350.c | 14 +--- pvr350device.c | 80 +++++------------- pvr350device.h | 9 +- pvr350osd.c | 43 +--------- pvr350osd.h | 11 +-- pvr350tools.c | 22 ----- pvr350tools.h | 1 - 35 files changed, 153 insertions(+), 580 deletions(-) delete mode 100644 mplayer/.directory delete mode 100644 po/.directory delete mode 100644 po/i18n-template.c delete mode 100644 po/i18n.h mode change 100755 => 100644 po/it_IT.po delete mode 100755 po2i18n.pl diff --git a/HISTORY b/HISTORY index 17c6510..f0db179 100644 --- a/HISTORY +++ b/HISTORY @@ -153,4 +153,16 @@ first release of "new" plugin (see README) ----- - fix logging of VideoAspect and PixelAspect: must be %f instead of %d - adapt cPvr350Osd::CanHandleAreas for vdr-1.7.17 -- remove videodev.h (obsolet in 2.6.38 and never needed) \ No newline at end of file +- remove videodev.h (obsolet in 2.6.38 and never needed) + +1.7.4 +----- +- default is now to always recode mp2 audio, as there are too many problems with streams like ZDF + +1.7.5 +----- +- remove support for vdr < version 2.0 +- support vdr-2.1.3 +- remove support for ancient ivtv driver versions +- adapt Makefile to vdr's new Makefile system +- fix segfaults on exit when framebuffer device is missing \ No newline at end of file diff --git a/Makefile b/Makefile index a7d64d9..a7ca63d 100644 --- a/Makefile +++ b/Makefile @@ -1,142 +1,116 @@ # # Makefile for a Video Disk Recorder plugin # -# -- based on pvrinput v20071028, Winfried Koehler -- - -#SET_VIDEO_WINDOW=1 +# $Id # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. # By default the main source file also carries this name. -# IMPORTANT: the presence of this macro is important for the Make.config -# file. So it must be defined, even if it is not used here! -# + PLUGIN = pvr350 ### The version number of this plugin (taken from the main source file): -VERSION = $(shell grep 'static const char \*VERSION *=' pvr350.c | awk '{ print $$6 }' | sed -e 's/[";]//g') +VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') -LIBS = -ltwolame -la52 -lm -lmpg123 +### The directory environment: -### The C++ compiler and options: +# Use package data if installed...otherwise assume we're under the VDR source directory: +PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." pkg-config --variable=$(1) vdr)) +LIBDIR = $(call PKGCFG,libdir) +LOCDIR = $(call PKGCFG,locdir) +PLGCFG = $(call PKGCFG,plgcfg) +# +TMPDIR ?= /tmp -CXX ?= g++ -CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual +### The compiler options: -### The directory environment: +export CFLAGS = $(call PKGCFG,cflags) +export CXXFLAGS = $(call PKGCFG,cxxflags) +export LDADD = -lm -la52 $(shell pkg-config --libs twolame libmpg123) -DVBDIR = ../../../../DVB -VDRDIR = ../../.. -LIBDIR = ../../lib -TMPDIR = /tmp +### The version number of VDR's plugin API: -### Test whether VDR has locale support -VDRLOCALE = $(shell grep 'I18N_DEFAULT_LOCALE' $(VDRDIR)/i18n.h) +APIVERSION = $(call PKGCFG,apiversion) ### Allow user defined options to overwrite defaults: --include $(VDRDIR)/Make.config - -### The version number of VDR's plugin API (taken from VDR's "config.h"): - -APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) +-include $(PLGCFG) ### The name of the distribution archive: ARCHIVE = $(PLUGIN)-$(VERSION) PACKAGE = vdr-$(ARCHIVE) -### Includes and Defines (add further entries here): +### The name of the shared object file: + +SOFILE = libvdr-$(PLUGIN).so -INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include +### Includes and Defines (add further entries here): -DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE +INCLUDES += -ifdef SET_VIDEO_WINDOW - DEFINES += -DSET_VIDEO_WINDOW -endif +DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' ### The object files (add further files here): OBJS = $(PLUGIN).o $(PLUGIN)device.o $(PLUGIN)osd.o $(PLUGIN)audio.o $(PLUGIN)tools.o $(PLUGIN)setup.o $(PLUGIN)menu.o + ### The main target: -all: i18n libvdr-$(PLUGIN).so +all: $(SOFILE) ### Implicit rules: %.o: %.c - $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< + $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $< ### Dependencies: MAKEDEP = $(CXX) -MM -MG DEPFILE = .dependencies $(DEPFILE): Makefile - @$(MAKEDEP) $(DEFINES) $(INCLUDES) $(subst i18n.c,,$(OBJS:%.o=%.c)) > $@ + @$(MAKEDEP) $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@ -include $(DEPFILE) ### Internationalization (I18N): PODIR = po -LOCALEDIR = $(VDRDIR)/locale I18Npo = $(wildcard $(PODIR)/*.po) I18Nmo = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file)))) -I18Ndirs = $(notdir $(foreach file, $(I18Npo), $(basename $(file)))) +I18Nmsgs = $(addprefix $(DESTDIR)$(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) I18Npot = $(PODIR)/$(PLUGIN).pot -I18Nvdrmo = vdr-$(PLUGIN).mo -ifeq ($(strip $(APIVERSION)),1.5.7) - I18Nvdrmo = $(PLUGIN).mo -endif - -ifneq ($(strip $(VDRLOCALE)),) -### do gettext based i18n stuff %.mo: %.po msgfmt -c -o $@ $< -$(I18Npot): $(subst i18n.c,,$(wildcard *.c)) - xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='' -o $@ $(subst i18n.c,,$(wildcard *.c)) - -$(I18Npo): $(I18Npot) - msgmerge -U --no-wrap --no-location --backup=none -q $@ $< - -i18n: $(I18Nmo) - @mkdir -p $(LOCALEDIR) - for i in $(I18Ndirs); do\ - mkdir -p $(LOCALEDIR)/$$i/LC_MESSAGES;\ - cp $(PODIR)/$$i.mo $(LOCALEDIR)/$$i/LC_MESSAGES/$(I18Nvdrmo);\ - done +$(I18Npot): $(wildcard *.c) + xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='' -o $@ `ls $^` -i18n.c: ### nothing to do +%.po: $(I18Npot) + msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $< + @touch $@ -else ### do i18n.c based i18n stuff +$(I18Nmsgs): $(DESTDIR)$(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo + install -D -m644 $< $@ -OBJS += i18n.o +.PHONY: i18n +i18n: $(I18Nmo) $(I18Npot) -i18n: $(@cp $(PODIR)/i18n.h i18n.h) - @### nothing to do +install-i18n: $(I18Nmsgs) -i18n.h: i18n.c - -### i18n compatibility generator: - -i18n.c: $(PODIR)/i18n-template.c po2i18n.pl $(I18Npo) - ./po2i18n.pl < $(PODIR)/i18n-template.c > i18n.c - @cp $(PODIR)/i18n.h i18n.h - -endif +### Targets: +$(SOFILE): $(OBJS) + $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) $(LDADD) -o $@ -### Targets: +install-lib: $(SOFILE) + install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION) -libvdr-$(PLUGIN).so: $(OBJS) - $(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@ $(LIBS) - @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) +install: install-lib install-i18n -dist: clean +dist: $(I18Npo) clean @-rm -rf $(TMPDIR)/$(ARCHIVE) @mkdir $(TMPDIR)/$(ARCHIVE) @cp -a * $(TMPDIR)/$(ARCHIVE) @@ -145,5 +119,5 @@ dist: clean @echo Distribution package created as $(PACKAGE).tgz clean: - @-rm -f $(OBJS) $(DEPFILE) i18n.c i18n.h *.so *.tgz core* *~ - @-rm -f $(PODIR)/*.mo $(PODIR)/*.pot $(PODIR)/*~ + @-rm -f $(PODIR)/*.mo $(PODIR)/*.pot + @-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ diff --git a/mplayer/.directory b/mplayer/.directory deleted file mode 100644 index 52cfb8e..0000000 --- a/mplayer/.directory +++ /dev/null @@ -1,10 +0,0 @@ -[Dolphin] -AdditionalInfo=43 -ShowPreview=false -SortOrder=1 -Sorting=2 -Timestamp=2010,1,31,19,0,17 -ViewMode=1 - -[Settings] -ShowDotFiles=true diff --git a/po/.directory b/po/.directory deleted file mode 100644 index 7f6e0dd..0000000 --- a/po/.directory +++ /dev/null @@ -1,6 +0,0 @@ -[Dolphin] -AdditionalInfo=43 -ShowPreview=false -Sorting=1 -Timestamp=2010,3,28,10,14,0 -ViewMode=1 diff --git a/po/ca_ES.po b/po/ca_ES.po index 11b30bd..5d5c5fd 100644 --- a/po/ca_ES.po +++ b/po/ca_ES.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/cs_CZ.po b/po/cs_CZ.po index 11b30bd..5d5c5fd 100644 --- a/po/cs_CZ.po +++ b/po/cs_CZ.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/da_DK.po b/po/da_DK.po index 11b30bd..5d5c5fd 100644 --- a/po/da_DK.po +++ b/po/da_DK.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/de_DE.po b/po/de_DE.po index e383f4c..b36493a 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -8,10 +8,11 @@ msgid "" msgstr "" "Project-Id-Version: de_DE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2010-03-28 10:18+0200\n" "Last-Translator: Martin Dauskardt \n" "Language-Team: Deutsch \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -42,6 +43,5 @@ msgstr "Schwarzes Video für nur-Audio-Streams" msgid "Setup.pvr350$Recode MP2" msgstr "Recode MP2 Audio" - #~ msgid "Setup.pvr350$Recode RDS radio" #~ msgstr "Recode RDS radio" diff --git a/po/el_GR.po b/po/el_GR.po index 11b30bd..5d5c5fd 100644 --- a/po/el_GR.po +++ b/po/el_GR.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/es_ES.po b/po/es_ES.po index 11b30bd..5d5c5fd 100644 --- a/po/es_ES.po +++ b/po/es_ES.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/et_EE.po b/po/et_EE.po index 11b30bd..5d5c5fd 100644 --- a/po/et_EE.po +++ b/po/et_EE.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/fi_FI.po b/po/fi_FI.po index 11b30bd..5d5c5fd 100644 --- a/po/fi_FI.po +++ b/po/fi_FI.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/fr_FR.po b/po/fr_FR.po index 11b30bd..5d5c5fd 100644 --- a/po/fr_FR.po +++ b/po/fr_FR.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/hr_HR.po b/po/hr_HR.po index 11b30bd..5d5c5fd 100644 --- a/po/hr_HR.po +++ b/po/hr_HR.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/hu_HU.po b/po/hu_HU.po index 11b30bd..5d5c5fd 100644 --- a/po/hu_HU.po +++ b/po/hu_HU.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/i18n-template.c b/po/i18n-template.c deleted file mode 100644 index 3545736..0000000 --- a/po/i18n-template.c +++ /dev/null @@ -1,20 +0,0 @@ -/* - * pvr350: A plugin for the Video Disk Recorder - * Copyright (C) 2008 Martin Dauskardt - * Licence GPL - * - * See the README file for copyright information and how to reach the author. - * - * - * $Id$ - */ - -#include "i18n.h" - -#if VDRVERSNUM < 10507 -const tI18nPhrase pvr350_Phrases[] = { -// START I18N -// END I18N - { NULL } - }; -#endif diff --git a/po/i18n.h b/po/i18n.h deleted file mode 100644 index fdac8c5..0000000 --- a/po/i18n.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * pvr350: A plugin for the Video Disk Recorder - * Copyright (C) 2008 Martin Dauskardt - * Licence GPL - * - * See the README file for copyright information and how to reach the author. - * - * $Id$ - */ - -#ifndef __PVR350_I18N_H -#define __PVR350_I18N_H - -#include - -#if VDRVERSNUM < 10507 -extern const tI18nPhrase pvr350_Phrases[]; -#endif - -#endif //__PVR350_I18N_H diff --git a/po/it_IT.po b/po/it_IT.po old mode 100755 new mode 100644 index 670b1ba..0e8585c --- a/po/it_IT.po +++ b/po/it_IT.po @@ -8,10 +8,11 @@ msgid "" msgstr "" "Project-Id-Version: it_IT\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2012-06-01 13:33+0200\n" "Last-Translator: Martin Dauskardt \n" "Language-Team: Deutsch \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -45,6 +46,5 @@ msgstr "Schermo scuro per flussi solo audio" msgid "Setup.pvr350$Recode MP2" msgstr "Ricodifica MP2 audio" - #~ msgid "Setup.pvr350$Recode RDS radio" #~ msgstr "Ricodifica radio RDS" diff --git a/po/nl_NL.po b/po/nl_NL.po index 11b30bd..5d5c5fd 100644 --- a/po/nl_NL.po +++ b/po/nl_NL.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/nn_NO.po b/po/nn_NO.po index 11b30bd..5d5c5fd 100644 --- a/po/nn_NO.po +++ b/po/nn_NO.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/pl_PL.po b/po/pl_PL.po index 11b30bd..5d5c5fd 100644 --- a/po/pl_PL.po +++ b/po/pl_PL.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/pt_PT.po b/po/pt_PT.po index 11b30bd..5d5c5fd 100644 --- a/po/pt_PT.po +++ b/po/pt_PT.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/ro_RO.po b/po/ro_RO.po index 11b30bd..5d5c5fd 100644 --- a/po/ro_RO.po +++ b/po/ro_RO.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/ru_RU.po b/po/ru_RU.po index 11b30bd..5d5c5fd 100644 --- a/po/ru_RU.po +++ b/po/ru_RU.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/sl_SI.po b/po/sl_SI.po index 11b30bd..5d5c5fd 100644 --- a/po/sl_SI.po +++ b/po/sl_SI.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/sv_SE.po b/po/sv_SE.po index 11b30bd..5d5c5fd 100644 --- a/po/sv_SE.po +++ b/po/sv_SE.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po/tr_TR.po b/po/tr_TR.po index 11b30bd..5d5c5fd 100644 --- a/po/tr_TR.po +++ b/po/tr_TR.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: pvr350 plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-28 10:03+0200\n" +"POT-Creation-Date: 2014-02-28 18:10+0100\n" "PO-Revision-Date: 2007-10-17 21:44 MESZ\n" "Last-Translator: Winfried Koehler \n" "Language-Team: see README\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,8 +37,5 @@ msgstr "" msgid "Setup.pvr350$Black video for audio-only streams" msgstr "" -msgid "Setup.pvr350$Recode MP2 audio-only streams" -msgstr "" - -msgid "Setup.pvr350$Recode joint-stereo" +msgid "Setup.pvr350$Recode MP2" msgstr "" diff --git a/po2i18n.pl b/po2i18n.pl deleted file mode 100755 index f828022..0000000 --- a/po2i18n.pl +++ /dev/null @@ -1,201 +0,0 @@ -#!/usr/bin/perl -# -# po2i18n - Convert plugin po files in into i18n.c-format -# -# -# this is the README from the po218n source packet: -############################################################################### -# -# po2i18n - Converter for po files -# Written by: Udo Richter -# Project's homepage: http://www.udo-richter.de/vdr/scripts.html#po2i18n -# http://www.udo-richter.de/vdr/scripts.en.html#po2i18n -# License: GPL, see file COPYING from original source Packet -# -# -# About -#-------------------------------------------------------------------------- -#po2i18n is a perl script that generates an i18n.c file compatible to the i18n -#system of VDR 1.2.0 - VDR 1.5.6, based on the .po files of VDR 1.5.7. This -#allows plugins to transit to the translation system of VDR 1.5.7 while -#maintaining compatibility to earlier versions. The script can be used manually -#or automatically as part of the Makefile. -# -# -#Use -#-------------------------------------------------------------------------- -#po2i18n.pl is a filter and can be used manually like this: -# -# ./po2i18n.pl < i18n-template.c > i18n.c -# -#The filter reads all relevant ./po/*.po files and writes the i18n strings -#into the template file. Strings will be added between the following two lines: -# -# // START I18N -# // END I18N -# -#See also the sample i18n.h and i18n-template.c file. Note that the phrases data -#structure is encapsulated in #if VDRVERSNUM < 10507, so the i18n strings won't -#be in the plugin file after 1.5.7. The call to RegisterI18n() of your plugin -#should also be encapsulated like this. -# -#po2i18n can also generate the i18n.c file on the fly while compiling. The -#changes to the Makefile are demonstrated by the included Makefile.diff sample. -#With these changes, the i18n.c file will be generated on VDR up to 1.5.6, and -#the whole gettext conversion is skipped. From 1.5.7 on, the i18n-template.c -#file will be simply copied as a dummy, and the new locale system will run. -# -#As a drawback, the automatic .dependencies for i18n.c won't work. -# -############################################################################### -# - -use strict; -use warnings; - -my @LANGS = ( - "en_US", - "de_DE", - "sl_SI", - "it_IT", - "nl_NL", - "pt_PT", - "fr_FR", - "nn_NO", - "fi_FI", - "pl_PL", - "es_ES", - "el_GR", - "sv_SE", - "ro_RO", - "hu_HU", - "ca_ES", - "ru_RU", - "hr_HR", - "et_EE", - "da_DK", - "cs_CZ", - "tr_TR" - ); - -my %VERS = ( - "en_US" => 10200, - "de_DE" => 10200, - "sl_SI" => 10200, - "it_IT" => 10200, - "nl_NL" => 10200, - "pt_PT" => 10200, - "fr_FR" => 10200, - "nn_NO" => 10200, - "fi_FI" => 10200, - "pl_PL" => 10200, - "es_ES" => 10200, - "el_GR" => 10200, - "sv_SE" => 10200, - "ro_RO" => 10200, - "hu_HU" => 10200, - "ca_ES" => 10200, - "ru_RU" => 10302, - "hr_HR" => 10307, - "et_EE" => 10313, - "da_DK" => 10316, - "cs_CZ" => 10342, - "tr_TR" => 10502 - ); - - -my %strings; - -foreach my $lang (@LANGS) { $strings{$lang} = { }; } - - -sub LoadLanguage(*) { - my ($lang) = @_; - - if (!open FILE, "<", "po/$lang.po") { - return 0; - } - - my $msgid = ""; - my $msgstr = ""; - my $last = 0; # 0=init, 1=msgid was last, 2=msgstr was last - - while () { - chomp; - my $line = $_; - - if ($line =~ /^msgid "(.*)"$/) { - if ($last eq 2) { - $strings{$lang}->{$msgid} = $msgstr; - $strings{"en_US"}->{$msgid} = $msgid; - } - $msgid = $1; - $last = 1; - } elsif ($line =~ /^msgstr "(.*)"/) { - $msgstr = $1; - $last = 2; - } elsif ($line =~ /^"(.*)"/) { - if ($last eq 1) { - $msgid = $msgid . $1; - } elsif ($last eq 2) { - $msgstr = $msgstr . $1; - } - } - } - if ($last eq 2) { - $strings{$lang}->{$msgid} = $msgstr; - $strings{"en_US"}->{$msgid} = $msgid; - } - - close FILE; -} - - - -foreach my $lang (@LANGS) { - LoadLanguage($lang); -} - -my @msgids = sort keys %{$strings{"en_US"}}; - - -my $silent = 0; - -while (<>) { - my $line = $_; - - if ($line =~ /^\/\/ START I18N/) { - print "// START I18N - automatically generated by po2i18n.pl\n"; - for my $msgid (@msgids) { - next if $msgid eq ""; - - my $head = " { "; - my $endif = ""; - my $versnum = 10200; - - for my $lang (@LANGS) { - if ($VERS{$lang} ne $versnum) { - $versnum = $VERS{$lang}; - print $endif; - print "#if VDRVERSNUM >= $versnum\n"; - $endif = "#endif\n"; - } - my $msgstr = $strings{$lang}->{$msgid}; - $msgstr = "" if !defined $msgstr; - - print "$head\"$msgstr\",\n"; - $head = " "; - } - print $endif; - print " },\n"; - } - $silent = 1; - } - - if (!$silent) { print $line; } - - if ($line =~ /^\/\/ END I18N/) { - print "// END I18N - automatically generated by po2i18n.pl\n"; - $silent = 0; - } -} diff --git a/pvr350.c b/pvr350.c index 7ab3777..80e697d 100644 --- a/pvr350.c +++ b/pvr350.c @@ -10,16 +10,9 @@ #include "pvr350device.h" #include "pvr350menu.h" #include "pvr350.h" -#if VDRVERSNUM < 10507 -#include "po/i18n.h" -#endif //VDRVERSNUM < 10507 - -static const char *VERSION = "1.7.4"; -#if VDRVERSNUM < 10507 -static const char *DESCRIPTION = "PVR350 as output device"; -#else + +static const char *VERSION = "1.7.5"; static const char *DESCRIPTION = trNOOP("PVR350 as output device"); -#endif cPluginPvr350::cPluginPvr350(void) @@ -62,9 +55,6 @@ bool cPluginPvr350::ProcessArgs(int argc, char *argv[]) bool cPluginPvr350::Initialize(void) { // Initialize any background activities the plugin shall perform. -#if VDRVERSNUM < 10507 - RegisterI18n(pvr350_Phrases); -#endif //VDRVERSNUM < 10507 pvr350device = new cPvr350Device(); return true; } diff --git a/pvr350device.c b/pvr350device.c index 6368e79..7968096 100644 --- a/pvr350device.c +++ b/pvr350device.c @@ -1,5 +1,5 @@ /* - * pvr350device.c: + * pvr350device.c: * * See the README file for copyright information and how to reach the author. * @@ -26,7 +26,6 @@ #include #include #include -#include #include #include "pvr350device.h" @@ -140,18 +139,6 @@ cPvr350Device::cPvr350Device(void) return; } OpenFramebuffer(); - // Get kernel version number - struct utsname buf; - int maj, min, micro, patch; - if (uname(&buf) < 0) { - log(pvrERROR, "pvr350: Getting kernel version failed !"); - // Must set KernelVersion for further use - KernelVersion = KERNEL_VERSION(2, 6, 0); - } else { - sscanf(buf.release, "%d.%d.%d.%d", &maj, &min, µ, &patch); - log(pvrDEBUG1, "cPvr350Device::Kernelversion=%d.%d.%d.%d", maj, min, micro, patch); - KernelVersion = KERNEL_VERSION(maj, min, micro); - } m_AC3toMP2Init = false; m_AC3DecodeStatePtr = (AC3DecodeState_t *)&m_AC3DecodeState; @@ -188,7 +175,7 @@ void cPvr350Device::OpenFramebuffer() } if (fbfd == -1) { log(pvrERROR, "pvr350: Cannot find framebuffer"); - exit(1); + _exit(1); } Format16_9 = true; @@ -215,18 +202,17 @@ void cPvr350Device::OpenFramebuffer() if ((ret = ioctl(fd_out, VIDIOC_S_FBUF, &fbuf)) < 0) { log(pvrERROR, "pvr350: VIDIOC_S_FBUF error=%d:%s", errno, strerror(errno)); } - + fmt.fmt.win.global_alpha = 0; if ((ret = ioctl(fd_out, VIDIOC_S_FMT, &fmt)) < 0) { log(pvrERROR, "pvr350: VIDIOC_S_FMT error=%d:%s", errno, strerror(errno)); } - + struct fb_fix_screeninfo ivtvfb_fix; memset(&ivtvfb_fix, 0, sizeof(ivtvfb_fix)); if (ioctl(fbfd, FBIOGET_FSCREENINFO, &ivtvfb_fix) < 0) { log(pvrERROR, "pvr350: FBIOGET_FSCREENINFO error"); - return; } else { // Take snapshot of current mode ioctl(fbfd, FBIOGET_VSCREENINFO, &ivtvfb_var_old); @@ -241,7 +227,6 @@ void cPvr350Device::OpenFramebuffer() ivtvfb_var.yres = ivtvfb_var.yres_virtual = 480; if (ioctl(fbfd, FBIOPUT_VSCREENINFO, &ivtvfb_var) < 0) { log(pvrERROR, "pvr350: FBIOPUT_VSCREENINFO error"); - return; } } osdbufsize = ivtvfb_fix.smem_len; @@ -252,22 +237,11 @@ void cPvr350Device::OpenFramebuffer() osdbuf_aligned = (unsigned char *)((intptr_t)osdbuffer + (PAGE_SIZE - 1)); osdbuf_aligned = (unsigned char *)((intptr_t)osdbuf_aligned & PAGE_MASK); memset(osdbuf_aligned, 0x00, osdbufsize); - if (GetIvtvVersion(0,0) >= KERNEL_VERSION(1, 4, 0)) { - lseek (fbfd, 0, SEEK_SET); - if (write (fbfd, osdbuf_aligned, ivtvfb_var.xres * ivtvfb_var.yres * (ivtvfb_var.bits_per_pixel / 8)) < 0) { - log(pvrERROR, "pvr350: OSD write failed error=%d:%s", errno, strerror(errno)); - } - } else { - struct ivtvfb_dma_frame prep; - memset(&prep, 0, sizeof(prep)); - prep.source = osdbuf_aligned; - prep.dest_offset = 0; - prep.count = ivtvfb_var.xres * ivtvfb_var.yres * (ivtvfb_var.bits_per_pixel / 8); - memset(osdbuf_aligned, 0x00, osdbufsize); - if (ioctl(fbfd, IVTVFB_IOC_DMA_FRAME, &prep) < 0) { - log(pvrERROR, "pvr350: IVTVFB_IOC_DMA_FRAME error=%d:%s", errno, strerror(errno)); - } + lseek (fbfd, 0, SEEK_SET); + if (write (fbfd, osdbuf_aligned, ivtvfb_var.xres * ivtvfb_var.yres * (ivtvfb_var.bits_per_pixel / 8)) < 0) { + log(pvrERROR, "pvr350: OSD write failed error=%d:%s", errno, strerror(errno)); } + spuDecoder = NULL; ResetVideoSize(); } @@ -300,13 +274,11 @@ void cPvr350Device::MakePrimaryDevice(bool On) { log(pvrINFO, "cPvr350Device::MakePrimaryDevice(%s)", On ? "true" : "false"); if (On) { - if (HasDecoder()) { + if (HasDecoder() && fbfd) { new cPvr350OsdProvider(fbfd, osdbuffer); } } -#if VDRVERSNUM >= 10711 cDevice::MakePrimaryDevice(On); -#endif } bool cPvr350Device::HasDecoder(void) const @@ -381,7 +353,7 @@ bool cPvr350Device::SetPlayMode(ePlayMode PlayMode) speed == -1000: reverse play at normal speed -1000 < speed < -1: slow reverse speed < -1000: fast reverse. - + other description: 0 or 1000 specifies normal speed, @@ -391,7 +363,11 @@ bool cPvr350Device::SetPlayMode(ePlayMode PlayMode) <-1: reverse playback at (-speed/1000) of the normal speed. */ +#if APIVERSNUM >= 20103 +void cPvr350Device::TrickSpeed(int Speed, bool forward) +#else void cPvr350Device::TrickSpeed(int Speed) +#endif { log(pvrDEBUG1, "cPvr350Device::TrickSpeed() - Set speed %d", Speed); @@ -433,7 +409,6 @@ void cPvr350Device::SetVideoFormat(bool VideoFormat16_9) Format16_9 = VideoFormat16_9; } -#if APIVERSNUM >= 10708 void cPvr350Device::GetVideoSize(int &Width, int &Height, double &VideoAspect) { if (fd_out >= 0) { @@ -470,7 +445,6 @@ void cPvr350Device::GetOsdSize(int &Width, int &Height, double &PixelAspect) log(pvrDEBUG1, "cPvr350Device::GetOsdSize: Width=%d, Height=%d, PixelAspect=%f", Width, Height, PixelAspect); } -#endif void cPvr350Device::DecoderStop(int blank) { @@ -483,7 +457,7 @@ void cPvr350Device::DecoderStop(int blank) cmd.flags = VIDEO_CMD_STOP_IMMEDIATELY; } if (IOCTL(fd_out, VIDEO_COMMAND, &cmd) < 0) { - log(pvrERROR, "pvr350: VIDEO_CMD_STOP %s error=%d:%s", + log(pvrERROR, "pvr350: VIDEO_CMD_STOP %s error=%d:%s", blank ? "(blank)" : "", errno, strerror(errno)); } } @@ -497,7 +471,7 @@ void cPvr350Device::DecoderPlay(int speed) cmd.play.speed = speed; } if (IOCTL(fd_out, VIDEO_COMMAND, &cmd) < 0) { - log(pvrERROR, "pvr350: VIDEO_CMD_START (speed=%d) error=%d:%s", + log(pvrERROR, "pvr350: VIDEO_CMD_START (speed=%d) error=%d:%s", speed, errno, strerror(errno)); } } @@ -533,18 +507,6 @@ void cPvr350Device::Play(void) log(pvrDEBUG1, "cPvr350Device::(Resume) Playback"); DecoderPlay(1000); //normal speed //we cannot use VIDEO_CMD_CONTINUE: Leaving slow speed (trickmode) must reset to normal speed - - if ((KernelVersion <= KERNEL_VERSION(2,6,22)) && - (GetIvtvVersion(0,0) == KERNEL_VERSION(1, 0, 0))) { - /* A bugfix for pause/resume (http://linuxtv.org/hg/v4l-dvb/rev/5541b65b4b19) didn`t make it into 2.6.22 - Let`s check if we have a 2.6.22 with original ivtv (1.0.0). If ivtv driver version is higher than 1.0.0, - we already have an updated driver from v4l-dvb hg. In this case the following workaround is not necessary. - We can not only check the ivtv driver version, because in Kernel 2.6.23 the ivtv driver version - (although it includes the fix) has also version number 1.0.0 - */ - log(pvrDEBUG1, "cPvr350Device::(Continue) Playback"); - DecoderPaused(0); - } } void cPvr350Device::Freeze(void) @@ -567,7 +529,7 @@ void cPvr350Device::SetAudioChannelDevice(int AudioChannel) AudioChannel == 0?"stereo": AudioChannel == 1?"mono left":"mono right"); // 0=stereo, 1=left, 2=right, -1=no information available. - + if (ioctl(fd_out, AUDIO_CHANNEL_SELECT, AudioChannel) < 0) { log(pvrERROR, "pvr350: SetAudioChannelDevice (audio_stereo_mode) error=%d:%s", errno, strerror(errno)); } @@ -600,11 +562,9 @@ int cPvr350Device::PlayAudio(const uchar *Data, int Length, uchar Id) } #ifdef DEBUG - #if VDRVERSNUM > 10700 if (Pvr350Setup.LogLevel > 2) { PesDump(__FUNCTION__, Data, Length); } - #endif #endif /* look if at the beginning there is the pes packet start indicator */ @@ -728,7 +688,7 @@ int cPvr350Device::PlayAudio(const uchar *Data, int Length, uchar Id) else { log(pvrDEBUG1, "cPvr350Device::PlayAudio(): some streams may play not properly without recoding"); DecEncMP2Audio = false; - } + } } if (DecEncMP2Audio) { if (!m_MP2RecodeInit) { @@ -1080,7 +1040,7 @@ int64_t cPvr350Device::GetSTC(void) if (ioctl(fd_out, VIDEO_GET_PTS, &pts) < 0) { log(pvrERROR, "pvr350: GetSTC error=%d:%s", errno, strerror(errno)); return -1; - } + } log(pvrDEBUG2, "cPvr350Device::GetSTC(): PTS=%lld", pts); return pts; } @@ -1241,7 +1201,7 @@ void cPvr350Device::ProcessAC3Audio(uint8_t *PESPacket, int PayloadOffset, int L log(pvrERROR, "pvr350: ProcessAC3Audio written=%d error=%d:%s", len, errno, strerror(errno)); } - } + } return; } diff --git a/pvr350device.h b/pvr350device.h index b84d638..a31adcf 100644 --- a/pvr350device.h +++ b/pvr350device.h @@ -58,7 +58,6 @@ class cPvr350Device: public cDevice { bool newStream; eStreamtype streamtype; - uint32_t KernelVersion; uint8_t m_PCMBuffer[PCM_BUFFER_SIZE]; uint8_t m_MP2PESBuffer[MP2_PES_BUFFER_SIZE]; uint8_t *m_PESHeader; @@ -86,7 +85,11 @@ class cPvr350Device: public cDevice { virtual bool CanReplay(void) const; virtual bool SetPlayMode(ePlayMode PlayMode); - virtual void TrickSpeed(int Speed); +#if APIVERSNUM >= 20103 + virtual void TrickSpeed(int, bool); +#else + virtual void TrickSpeed(int); +#endif virtual void Clear(void); virtual void Play(void); virtual void Freeze(void); @@ -98,10 +101,8 @@ class cPvr350Device: public cDevice { virtual int PlayAudio(const uchar *Data, int Length, uchar Id); virtual void SetVideoFormat(bool VideoFormat16_9); virtual void SetVolumeDevice(int Volume); -#if APIVERSNUM >= 10708 virtual void GetVideoSize(int &Width, int &Height, double &VideoAspect); virtual void GetOsdSize(int &Width, int &Height, double &PixelAspect); -#endif virtual bool Poll(cPoller &Poller, int TimeoutMs = 0); virtual cSpuDecoder *GetSpuDecoder(void); virtual int64_t GetSTC(void); diff --git a/pvr350osd.c b/pvr350osd.c index bd6e7de..6fba9a6 100644 --- a/pvr350osd.c +++ b/pvr350osd.c @@ -21,13 +21,8 @@ #include "pvr350tools.h" #include "pvr350device.h" -#if VDRVERSNUM < 10509 -cPvr350Osd::cPvr350Osd(int Left, int Top, int fbfd, unsigned char *osdbuf) - :cOsd(Left, Top) -#else cPvr350Osd::cPvr350Osd(int Left, int Top, uint Level, int fbfd, unsigned char *osdbuf) :cOsd(Left, Top, Level) -#endif { fd = fbfd; osd = osdbuf; @@ -36,36 +31,15 @@ cPvr350Osd::cPvr350Osd(int Left, int Top, uint Level, int fbfd, unsigned char *o void cPvr350Osd::Copy_OSD_buffer_to_card(void) { - if (GetIvtvVersion(0,0) >= KERNEL_VERSION(1, 4, 0)) { - lseek (fd, 0, SEEK_SET); - if (write (fd, osd, 720 * 576 * 4) < 0) { - log(pvrERROR, "pvr350: OSD write failed error=%d:%s", errno, strerror(errno)); - } - } else { - struct ivtvfb_dma_frame prep; - memset(&prep, 0, sizeof(prep)); - prep.source = osd; - prep.dest_offset = 0; - prep.count = 720 * 576 * 4; - if (ioctl(fd, IVTVFB_IOC_DMA_FRAME, &prep) < 0) { - log(pvrERROR, "pvr350: OSD DMA failed error=%d:%s", errno, strerror(errno)); - } + lseek (fd, 0, SEEK_SET); + if (write (fd, osd, 720 * 576 * 4) < 0) { + log(pvrERROR, "pvr350: OSD write failed error=%d:%s", errno, strerror(errno)); } } cPvr350Osd::~cPvr350Osd() { -#if VDRVERSNUM < 10509 - if (shown) { - cBitmap *Bitmap; - for ( int i = 0; ( Bitmap = GetBitmap(i)) != NULL; i++ ) { - Hide(Bitmap); - } - Copy_OSD_buffer_to_card(); - } -#else SetActive(false); -#endif #ifdef SET_VIDEO_WINDOW if ( vidWin.bpp != 0 ) { ResetVideoSize(); @@ -73,7 +47,6 @@ cPvr350Osd::~cPvr350Osd() #endif } -#if VDRVERSNUM >= 10509 void cPvr350Osd::SetActive(bool On) { if (On != Active()) { @@ -100,7 +73,6 @@ void cPvr350Osd::SetActive(bool On) } } } -#endif eOsdError cPvr350Osd::CanHandleAreas(const tArea *Areas, int NumAreas) { @@ -131,10 +103,8 @@ eOsdError cPvr350Osd::SetAreas(const tArea *Areas, int NumAreas) void cPvr350Osd::Flush(void) { -#if VDRVERSNUM >= 10509 if (!Active()) return; -#endif cBitmap *Bitmap; for ( int i = 0; ( Bitmap = GetBitmap(i)) != NULL; i++ ) { int x1 = 0, y1 = 0, x2 = 0, y2 = 0; @@ -185,14 +155,7 @@ cPvr350OsdProvider::cPvr350OsdProvider(int fd, unsigned char *buf) osdfd = fd; } -#if VDRVERSNUM < 10509 -cOsd *cPvr350OsdProvider::CreateOsd(int Left, int Top) -{ - return new cPvr350Osd(Left, Top, osdfd, osdBuf); -} -#else cOsd *cPvr350OsdProvider::CreateOsd(int Left, int Top, uint Level) { return new cPvr350Osd(Left, Top, Level, osdfd, osdBuf); } -#endif diff --git a/pvr350osd.h b/pvr350osd.h index e039f68..09a8cd4 100644 --- a/pvr350osd.h +++ b/pvr350osd.h @@ -16,16 +16,11 @@ class cPvr350Osd : public cOsd { int fd; unsigned char *osd; bool shown; -#if VDRVERSNUM >= 10509 protected: virtual void SetActive(bool On); -#endif + public: -#if VDRVERSNUM < 10509 - cPvr350Osd(int Left, int Top, int fbfd, unsigned char *osdbuf); -#else cPvr350Osd(int Left, int Top, uint Level, int fbfd, unsigned char *osdbuf); -#endif ~cPvr350Osd(); eOsdError CanHandleAreas(const tArea *Areas, int NumAreas); eOsdError SetAreas(const tArea *Areas, int NumAreas); @@ -42,11 +37,7 @@ class cPvr350OsdProvider : public cOsdProvider { int osdfd; public: cPvr350OsdProvider(int fd, unsigned char *buf); -#if VDRVERSNUM < 10509 - virtual cOsd *CreateOsd(int Left, int Top); -#else virtual cOsd *CreateOsd(int Left, int Top, uint Level); -#endif }; diff --git a/pvr350tools.c b/pvr350tools.c index 131be72..611e96d 100644 --- a/pvr350tools.c +++ b/pvr350tools.c @@ -11,33 +11,11 @@ #include #include #include -#include -#include #include "pvr350tools.h" #include "pvr350device.h" #include "pvr350setup.h" -struct v4l2_capability vcap; - -int GetIvtvVersion(int init, int fd) -{ - if (init) { - /*only execute if init is not zero, see cPvr350Device::Open()*/ - memset(&vcap, 0, sizeof(vcap)); - if (fd <= 0) { - log(pvrERROR, "pvr350: GetIvtvVersion: no valid file handle, file is not open"); - return -1; /*no valid file handle, file is not open*/ - } - if (ioctl(fd, VIDIOC_QUERYCAP, &vcap) != 0) { - log(pvrERROR, "pvr350: GetIvtvVersion: query V4L2 capabilities failed."); - return -1; - } else { - log(pvrINFO, "pvr350: IVTV version=0x%06x found", vcap.version);} - } //end init   - return vcap.version; -} - void log(int level, const char * fmt, ...) { char tmpstr[BUFSIZ]; diff --git a/pvr350tools.h b/pvr350tools.h index 7c06609..1657c89 100644 --- a/pvr350tools.h +++ b/pvr350tools.h @@ -14,7 +14,6 @@ enum eLogLevel { pvrUNUSED, pvrERROR, pvrINFO, pvrDEBUG1, pvrDEBUG2 }; extern void SetVideoSize(int x, int y, int w, int d); extern void ResetVideoSize(); -int GetIvtvVersion(int init, int fd); void log(int level, const char * fmt, ...); #endif