Dear visitor, welcome to VDR Portal. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.
Quoted
Original von MartenR
Wir müßten uns im Prinzip den Strom den der vdr beim zurückspulen ausgibt mal im Hexeditor anschauen, dann könnte wir wahrscheinlich sehen, was falsch läuft. Ich bin nur leider von vdr räumlich isoliert.
Falls wir jemand sowas zur Verfügung stellen kann werde ich mir das anschauen.
Marten


|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#include <stdio.h>
#define INFOFILE "/tmp/data.log"
char *StrToHexStr(char *str)
{
char *newstr = new char[(strlen(str)*2)+1];
char *cpold = str;
char *cpnew = newstr;
while('\0' != *cpold) {
sprintf(cpnew, "%02X", (char)(*cpold++));
cpnew+=2;
}
*(cpnew) = '\0';
return(newstr);
}
void writeInfo(const char *Data )
{
FILE *infofile=fopen(INFOFILE ,"a+");
if (!infofile){
esyslog("can not write %s", INFOFILE);
return;
}
fputs(StrToHexStr((char *)Data),infofile);
fclose(infofile);
}
|
|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include "log.h"
// --- cFrame ----------------------------------------------------------------
cFrame::cFrame(const uchar *Data, int Count, eFrameType Type, int Index, uint32_t Pts)
{
count = abs(Count);
type = Type;
index = Index;
pts = Pts;
if (Count < 0){
data = (uchar *)Data;
writeInfo((const char*)data);} <---
else {
data = MALLOC(uchar, count);
if (data){
memcpy(data, Data, count);
writeInfo((const char*)data);} <---
else
esyslog("ERROR: can't allocate frame buffer (count=%d)", count);
}
next = NULL;
}
|
ist nur nen beispiel von einer laufenden aufnahme) :|
|
Source code |
1 |
47577A1F6E657747577A186E657747577A196E657747577A186E657747577A1E6E657747577A1E6E657747577A1C6E657747577A1B6E657747577A136E657747577A196E657747577A1F6E657747577A1D6E657747577A146E657747577A196E657747577A166E657747406E657747577A126E657747577A176E657747577A1B6E657747577A1B6E657747577A1C6E657747577A1F6E657747577A196E657747577A1C6E657747577A1F6E657747577A1E6E657747577A116E657747577A146E657747577A1E6E657747577A1A6E657747577A196E657747406E657747577A176E657747577A1D6E6 |
This post has been edited 3 times, last edit by "bexbier" (Sep 24th 2010, 3:33pm)
Quoted
Originally posted by Torsten73
Ich weiß nicht obs weiterhilft, aber im aktuellen xinelib Zweig mit Durchflieger Patchen und startstream Patch habe ich beim rückwärtsspulen von 720p/1080i keine Probleme.
Nur beim Vorwärtsspulen wird es extrem pixelig und man kann optisch ein vor/zurückspringen der Frames/Bilder sehen. D.h. es werden immer wieder alte Frames/Bilder angezeigt. Die Spulgeschwindigkeit scheint aber zu passen. Es ist aber schwer zu erkennen, aufgrund der massiven Pixel/Kästchen.
|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
--- remux.c 2010/06/05 13:32:15 2.47
+++ remux.c 2010/10/31 11:04:14
@@ -863,10 +863,8 @@
frameDuration = 3600; // PAL, 25 fps, timing with jitter
else if (Delta % 3003 == 0)
frameDuration = 3003; // NTSC, 29.97 fps
- else if (abs(Delta - 1800) <= 1) {
- frameDuration = 3600; // PAL, 25 fps
- framesPerPayloadUnit = -2;
- }
+ else if (abs(Delta - 1800) <= 1)
+ frameDuration = 1800; // PAL, 50 fps
else if (Delta == 1501) {
frameDuration = 3003; // NTSC, 29.97 fps
framesPerPayloadUnit = -2;
|
This post has been edited 1 times, last edit by "kls" (Oct 31st 2010, 12:27pm)
|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/* * remux.c: A streaming MPEG2 remultiplexer * * See the main source file 'vdr.c' for copyright information and * how to reach the author. * * The parts of this code that implement cTS2PES have been taken from * the Linux DVB driver's 'tuxplayer' example and were rewritten to suit * VDR's needs. * * The cRepacker family's code was originally written by Reinhard Nissl <rnissl@gmx.de>, * and adapted to the VDR coding style by Klaus.Schmidinger@cadsoft.de. * * $Id: remux.c 2.0 2007/11/25 13:56:03 kls Exp $ */ |
This post has been edited 3 times, last edit by "Ichijoe" (Oct 31st 2010, 2:43pm)
Quoted
Originally posted by Ichijoe
Zu welchen VDR-1.7.xx gehört diese "remux.c"
Quoted
Originally posted by wbreu
Hallo Klaus,
danke für den Patch gegen remux.c, sieht soweit alles i.O. aus, keine Verpixellungen mehr.
Ich hatte noch alte ZDF-Aufnahmen und ARD-Aufnahmen, wenn man da den index löscht und neu generieren lässt, dann wird jetzt die doppelte Aufnahmezeit angezeigt.
Kann das auch mit dem Patch zu tun haben?
Quoted
Original von kls
Quoted
Originally posted by wbreu
Hallo Klaus,
danke für den Patch gegen remux.c, sieht soweit alles i.O. aus, keine Verpixellungen mehr.
Ich hatte noch alte ZDF-Aufnahmen und ARD-Aufnahmen, wenn man da den index löscht und neu generieren lässt, dann wird jetzt die doppelte Aufnahmezeit angezeigt.
Kann das auch mit dem Patch zu tun haben?
In der 'info' Datei steht die Framerate auch drin, da müsstest du die Zeile
F 25
durch
F 50
ersetzen.
Klaus
Quoted
Original von kls
In der 'info' Datei steht die Framerate auch drin, da müsstest du die Zeile
F 25
durch
F 50
ersetzen.
Klaus

This post has been edited 1 times, last edit by "C-3PO" (Oct 31st 2010, 6:47pm)
Quoted
Original von C-3PO
Quoted
Original von kls
In der 'info' Datei steht die Framerate auch drin, da müsstest du die Zeile
F 25
durch
F 50
ersetzen.
Klaus
Heist das nun, dass man das bei allen Aufnahmen in der "info" ersetzten muss?
Quoted
Die Problemkanäle senden ja in 720p/50, also mit 50 Vollbildern pro Sekunde, und nicht, wie ich irrtümlich angenommen hatte, mit 25. Nach Anwendung von folgendem Patch läuft bei mir der schnelle Vor- und Rücklauf bei solchen Kanälen ohne jede Artefakte.