Archiv verlassen und diese Seite im Standarddesign anzeigen : [enhancement - 081.4] 2003/09/29 updated
dvb.matt
29.08.2003, 22:33
moved to this (http://forum.dvbtechnics.info/viewtopic.php?t=160)..
dvb.matt
02.09.2003, 22:15
moved to this (http://forum.dvbtechnics.info/viewtopic.php?t=160)..
dvb.matt
02.09.2003, 22:21
:arrow: das sollte mal noch a bissl getestet werden...
EDIT: Nachtrag Code 12092003
-------
enhancements:
(a) preview also supports color formats 4:2:2/4:4:4 (high profiles)
(fix: chroma irritations on field encoded macroblocks)
(b) doubleclick onto preview area opens a dialog to save a 24bit bitmap
of last shown picture in original size (auto numbered)
->(a)
@MPVD.java
@inner class Picture
(1)replace method Add_Block()
~line2070
//DM02092003+ changed
public void Add_Block(int comp, int bx, int by, int dct_type[], boolean addflag){
int cc, iincr;
int rfp;
short Block_Ptr[] = block[comp];
/* derive color component index */
cc = cc_table[comp];
if (cc==0){
if (picture_structure==FRAME_PICTURE){ //progressive
if (dct_type[0]>0){
rfp = current_frame[0] + Coded_Picture_Width*(by+((comp&2)>>1)) + bx + ((comp&1)<<3);
iincr = (Coded_Picture_Width<<1) - 8;
}else{
rfp = current_frame[0] + Coded_Picture_Width*(by+((comp&2)<<2)) + bx + ((comp&1)<<3);
iincr = Coded_Picture_Width - 8;
}
}else{
rfp = current_frame[0] + (Coded_Picture_Width<<1)*(by+((comp&2)<<2)) + bx + ((comp&1)<<3);
iincr = (Coded_Picture_Width<<1) - 8;
}
}else{
// chrominance
// scale coordinates
if (chroma_format!=CHROMA444) bx >>= 1;
//if (chroma_format==CHROMA420) by >>= 1; // disabled
if (picture_structure==FRAME_PICTURE){ //progressive
if (dct_type[0]>0 && chroma_format!=CHROMA420){
// field DCT coding
rfp = current_frame[cc] + Chroma_Width*(by+((comp&2)>>1)) + bx + (comp&8);
iincr = (Chroma_Width<<1) - 8;
}else{
// frame DCT coding
rfp = current_frame[cc] + Chroma_Width*(by+((comp&2)<<2)) + bx + (comp&8);
iincr = Chroma_Width - 8;
}
}else{
// field picture
rfp = current_frame[cc] + (Chroma_Width<<1)*(by+((comp&2)<<2)) + bx + (comp&8);
iincr = (Chroma_Width<<1) - 8;
}
}
iincr += 8;
int val,luma,pPos, r,g,b;
if (cc==0){ //lumi
for (int y=0;y<8;y++)
for (int x=0;x<8;x++){
val = Block_Ptr[x+(y*8)]+((picture_coding_type==I_TYPE)? 128:0);
val = val<0 ? 0 : (val>255 ? 255 : val);
pixels[rfp+x+(y*iincr)] += val<<16 | val<<8 | val;
}
}else{ //chroma cc1 = Cb, cc2=Cr
if (chroma_format!=CHROMA444){
rfp<<=1;
iincr<<=1;
}
for (int y=0; y<16; y++){
for (int x=0; x<16; x++){
val = Block_Ptr[(x>>1) + (8*(chroma_format!=CHROMA420?(y>>1):((y&1)==0?((y>>1)&~dct_type[0]):((y>>1)|dct_type[0]))))]; //DM12092003
pPos = rfp+(x>>(chroma_format==CHROMA444?1:0))+((y>>(chroma_format!=CHROMA420?1:0)) *iincr);
luma = pixels[pPos];
if (cc==1){
r = (0xFF&luma>>>16);
g = (int)((double)(0xFF&luma>>>8) -0.34414*val);
b = (int)((double)(0xFF&luma) +1.722*val);
g = g<0 ? 0 : (g>255 ? 255 : g);
b = b<0 ? 0 : (b>255 ? 255 : b);
}else{
r = (int)((double)(0xFF&luma>>>16) +1.402*val);
g = (int)((double)(0xFF&luma>>>8) -0.71414*val);
b = (0xFF&luma);
r = r<0 ? 0 : (r>255 ? 255 : r);
g = g<0 ? 0 : (g>255 ? 255 : g);
}
pixels[pPos] = r<<16|g<<8|b;
if (chroma_format==CHROMA444)
x++;
}
if (chroma_format!=CHROMA420)
y++;
}
}
}
//DM02092003-
--------------------------
->(b)
@MPVD.java
@inner class Picture
(1)add new global variables to this inner class
line ~87
public class Picture extends JPanel implements Runnable {
private JFileChooser chooser; //DM02092003
private int bmpCount=0; //DM02092003
...
(2)add mouse Listener into method Picture
@method Picture(), ~line96
EDIT03092003: on compile/function errors, you probably missing an initialized FileChooser :oops:
public Picture(){
setBackground(Color.black);
setVisible(true);
chooser = new JFileChooser(); //<-EDIT03092003
//DM02092003+
addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() > 1)
saveBMP();
}
});
//DM02092003-
}
(3)add new variable + 2 new methods to inner class Picture
line ~2518
//DM02092003+
private byte bmpHead[] = {
0x42, 0x4D, //'B','M'
0, 0, 0, 0, // real filesize 32bit, little endian (pixels.length*3 + header(0x36))
0, 0, 0, 0,
0x36, 0, 0, 0, //bitmap info size
0x28, 0, 0, 0,
0, 0, 0, 0, //hsize
0, 0, 0, 0, //vsize
1, 0, //nplane
0x18, 0, //bitcount 24b
0, 0, 0, 0, //ncompr
0, 0, 0, 0, //image bytesize
(byte)0x88, 0xB, 0, 0, (byte)0x88, 0xE, 0, 0, //nxpm,nypm
0, 0, 0, 0, 0, 0, 0, 0 //nclrused,nclrimp
};
public void littleEndian(byte[] array, int aPos, int value) {
for (int a=0;a<4;a++)
array[aPos+a] = (byte)(value>>(a*8) &0xFF);
}
public void saveBMP() {
if (pixels.length==0)
return;
//VORSCHLAG 2(a)+ //12092003
if (bmpCount==0){
File dir= new File(X.outfield2.getText());
if(dir.isDirectory() && X.comBox[13].getItemCount()>0)
chooser.setCurrentDirectory(dir);
else if (!X.list2.isSelectionEmpty())
chooser.setCurrentDirectory(new File(X.list2.getSelectedValues()[0].toString()));
}
//VORSCHLAG 2(a)-
String newfile = "X_pic_"+bmpCount+".bmp";
chooser.setSelectedFile(new File(newfile));
chooser.rescanCurrentDirectory();
chooser.setDialogTitle("save picture");
int retval = chooser.showSaveDialog(this);
if(retval == JFileChooser.APPROVE_OPTION) {
File theFile = chooser.getSelectedFile();
if(theFile != null && !theFile.isDirectory()) {
newfile = theFile.getAbsolutePath();
}
} else
return;
byte bmp24[] = new byte[3];
littleEndian(bmpHead,2,(54+pixels.length*3));
littleEndian(bmpHead,18,horizontal_size);
littleEndian(bmpHead,22,vertical_size);
littleEndian(bmpHead,34,(pixels.length*3));
try{
BufferedOutputStream BMPfile = new BufferedOutputStream(new FileOutputStream(newfile),2048000);
BMPfile.write(bmpHead);
for (int a=vertical_size-1; a>=0; a--)
for (int b=0; b<horizontal_size; b++){
for (int c=0; c<3; c++)
bmp24[c] = (byte)(pixels[b+a*horizontal_size]>>(c*8) &0xFF);
BMPfile.write(bmp24);
}
BMPfile.flush();
BMPfile.close();
bmpCount++;
}catch (IOException e){ }
}
//DM02092003-
TheHorse
04.09.2003, 06:49
Vorschlag1: Mach mer noch einen Tooltip hinzu. Viele ausgezeichnete Funktionen entdeckt ein Neueinsteiger nicht, weil sie "verborgen" sind.
Vorschlag2: Vielleicht wollen die User die bmps nicht im OS-Anwenderverzeichnis ("Eigene Dateien" etc.), sondern im Output-Verzeichnis der Collection bzw. im Default-Verzeichnis des Inputfiles.
(Als Java-Primitivling hol ich mir die Pfade aus der GUI :wink: )
public Picture(){
setBackground(Color.black);
setVisible(true);
chooser = new JFileChooser(); //<-EDIT03092003
setToolTipText("doubleclick to save as bmp"); // <- VORSCHLAG 1 Tooltip!
// VORSCHLAG 2+
File dir= new File(X.outfield2.getText());
if(dir.isDirectory() && X.comBox[13].getItemCount()>0)
chooser.setCurrentDirectory(dir);
else
chooser.setCurrentDirectory(new File((String)X.list2.getSelectedValue()));
// VORSCHLAG 2-
//DM02092003+
addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() > 1)
saveBMP();
}
});
//DM02092003-
}
dvb.matt
04.09.2003, 21:05
'ne kleine Änderung (möglicherweise nur für JDKs < 1.4.2 ?)
(a)Vorschlag2 hab ich mal 'umgesetzt', da die div. X GUI-komponenten an der alten Stelle beim Start noch nicht initialisiert waren (NullPointerExc.)
(b)Casten von (String)Object ist nicht zulässig, deshalb Object.toString() (s.o. evtl. versionsabhängig)
public void saveBMP() {
if (pixels.length==0)
return;
//VORSCHLAG 2(a)+
File dir= new File(X.outfield2.getText());
if(dir.isDirectory() && X.comBox[13].getItemCount()>0)
chooser.setCurrentDirectory(dir);
else
chooser.setCurrentDirectory(new File(X.list2.getSelectedValue().toString())); //<- (b)
// VORSCHLAG 2(a)-
...
BTW:
bmp geht doch auf allen OS's, oder?
mfg
TheHorse
04.09.2003, 22:36
a) habe ich eigentlich in method saveBMP() drin. War mein Fehler. An falscher Stelle gepostet! :evil:
b) Casten funktionierte ohne Probleme. Aber --> wohl versionsabhängig oder Zufall. Lieber auf Nummer Sicher.
Nachteil ist noch, dass man in list2 die Selection verändern kann, wenn die Preview schon offen ist. Dann landet man im falschen Dir. Hoffentlich merkt's keiner. :wink: Außerdem gibt's da noch die Multi-Selection :? :?
Daywalker
05.09.2003, 04:56
Ich habe den markierten Teil des Codes ersetzt (gelöscht). Passt das so? Wie gesagt....bin Java Noob....
//DM02092003+ changed
public void Add_Block(int comp, int bx, int by, int dct_type[], boolean addflag){
int cc, iincr;
int rfp;
short Block_Ptr[] = block[comp];
/* derive color component index */
cc = cc_table[comp];
if (cc==0){
if (picture_structure==FRAME_PICTURE){ //progressive
if (dct_type[0]>0){
rfp = current_frame[0] + Coded_Picture_Width*(by+((comp&2)>>1)) + bx + ((comp&1)<<3);
iincr = (Coded_Picture_Width<<1) - 8;
}else{
rfp = current_frame[0] + Coded_Picture_Width*(by+((comp&2)<<2)) + bx + ((comp&1)<<3);
iincr = Coded_Picture_Width - 8;
}
}else{
rfp = current_frame[0] + (Coded_Picture_Width<<1)*(by+((comp&2)<<2)) + bx + ((comp&1)<<3);
iincr = (Coded_Picture_Width<<1) - 8;
}
}else{
// chrominance
// scale coordinates
if (chroma_format!=CHROMA444) bx >>= 1;
//if (chroma_format==CHROMA420) by >>= 1; // disabled
if (picture_structure==FRAME_PICTURE){ //progressive
if (dct_type[0]>0 && chroma_format!=CHROMA420){
// field DCT coding
rfp = current_frame[cc] + Chroma_Width*(by+((comp&2)>>1)) + bx + (comp&8);
iincr = (Chroma_Width<<1) - 8;
}else{
// frame DCT coding
rfp = current_frame[cc] + Chroma_Width*(by+((comp&2)<<2)) + bx + (comp&8);
iincr = Chroma_Width - 8;
}
}else{
// field picture
rfp = current_frame[cc] + (Chroma_Width<<1)*(by+((comp&2)<<2)) + bx + (comp&8);
iincr = (Chroma_Width<<1) - 8;
}
}
iincr += 8;
int val,luma,pPos, r,g,b;
if (cc==0){ //lumi
for (int y=0;y<8;y++)
for (int x=0;x<8;x++){
val = Block_Ptr[x+(y*8)]+((picture_coding_type==I_TYPE)? 128:0);
val = val<0 ? 0 : (val>255 ? 255 : val);
pixels[rfp+x+(y*iincr)] += val<<16 | val<<8 | val;
}
}else{ //chroma cc1 = Cb, cc2=Cr
if (chroma_format!=CHROMA444){
rfp<<=1;
iincr<<=1;
}
for (int y=0; y<16; y++){
for (int x=0; x<16; x++){
val = Block_Ptr[(x>>1) +((y>>1) *8)];
pPos = rfp+(x>>(chroma_format==CHROMA444?1:0))+((y>>(chroma_format!=CHROMA420?1:0)) *iincr);
luma = pixels[pPos];
if (cc==1){
r = (0xFF&luma>>>16);
g = (int)((double)(0xFF&luma>>>8) -0.34414*val);
b = (int)((double)(0xFF&luma) +1.722*val);
g = g<0 ? 0 : (g>255 ? 255 : g);
b = b<0 ? 0 : (b>255 ? 255 : b);
}else{
r = (int)((double)(0xFF&luma>>>16) +1.402*val);
g = (int)((double)(0xFF&luma>>>8) -0.71414*val);
b = (0xFF&luma);
r = r<0 ? 0 : (r>255 ? 255 : r);
g = g<0 ? 0 : (g>255 ? 255 : g);
}
pixels[pPos] = r<<16|g<<8|b;
if (chroma_format==CHROMA444)
x++;
}
if (chroma_format!=CHROMA420)
y++;
}
}
}
//DM02092003-
/** AB HIER GELÖSCHT+
if (addflag){
System.out.println(" a0 "+comp+"/"+bx+"/"+by+"/"+rfp+"/"+iincr);
image.setRGB(bx+(8&comp<<3),by+(8&comp<<2),8,8,pix ,0,8);
}else{
System.out.println(" a1 "+comp+"/"+bx+"/"+by+"/"+rfp+"/"+iincr);
image.setRGB(bx+(8&comp<<3),by+(8&comp<<2),8,8,pix ,0,8);
}
**/
}
/* Perform IEEE 1180 reference (64-bit floating point, separable 8x1
* direct matrix multiply) Inverse Discrete Cosine Transform
*/ AB HIER GELÖSCHT-
public void IDCT_reference(short block[]){
Die ReleaseNotes habe ich auch mal angepasst. Werde mir aber noch die Mühe machen und die Änderungen von TheHorse (autoload dirs) hinzufügen...weil ich's nicht schlecht finde...
[equote:6363033193="Edit Admin"][center:6363033193]Attachment gelöscht und lokal archiviert
Lucike[/center:6363033193]
Attachments-Archiv (http://www.lucike.info/page_archiv_attachments.htm)[/equote:6363033193]
Ich habe den markierten Teil des Codes ersetzt (gelöscht). Passt das so? Wie gesagt....bin Java Noob....
Die ReleaseNotes habe ich auch mal angepasst. Werde mir aber noch die Mühe machen und die Änderungen von TheHorse (autoload dirs) hinzufügen...weil ich's nicht schlecht finde...
Vielen Dank für deine Mithilfe, aber du schießt schon wieder an uns vorbei. Also ich teste noch. :| ;)
Was denkst Du über die Änderung? Wird das evtl. in's Projekt integriert?
wie TheHorse schrieb, ist diese Erweiterung quasi mehr seine 'GUI Bastelei'.
Ohne es abzuwerten, ICH habe dafür keine rechte Verwendung (wegen DnD). :oops:
Was aber nicht heißt, dass es nicht in X eingepflegt werden kann..
Hier ist Lucike derjenige welcher, der das vollbringt.
Drum regte ich an andrer Stelle an, evtl. über sowas abzustimmen, ob oder ob nicht.
Auch um nicht allzuhäufig upzudaten..
IMO würde es ja reichen, alle 2..4 Wochen die gesammelten Erweiterungen/Fixe bis dahin zusammenzufassen.
Ungeduldige können sich ja wie bisher vorher 'bedienen', falls der Code verfügbar ist.
mfg
Also, ich bin der selben Meinung. Wir warten noch. Allerdings muß ich zugeben, daß ich genau wie dvb.matt die Autodir-Geschichte eigentlich nicht gebrauchen kann. Ich bin auch der Ansicht, daß jeder der es braucht oder haben will sich selber einbauen kann. Was sagt "TheHorse" dazu?
@The Horse
solls rein, nun sag schon, los ;)
Ja Daywalker
Nein dvb.matt
Nein Lucike
? TheHorse
.....
jemand anderes noch eine Meinung?
Gruß
Lucike
@dvb.matt
wäre gut, wenn Du/wir für Fixes wirklich ausschließlich einen eigenen Thread benutzt und für Vorschläge zum Test einen anderen. Ich sehe gerade, ich habe in diesem Thread ein Fix übersehen. :shock:
http://forum.dvbtechnics.info/viewtopic.php?p=334#334
Gruß
Lucike
TheHorse
05.09.2003, 09:26
@lucike
Ja, wir sollten experimentelle Diskussionen von den endgültigen Fixes trennen. Das ist auch meine Meinung. Die Arbeit hast halt dann du mit der Board-Verwaltung.
@daywalker
Es sollten bitte nicht mehrere Code-Versionen von X öffentlich im Umlauf ein! Ich stelle meine bescheidenen Vorschläge nur zur Diskussion und will evtl. dazu anregen, dass sich User selber mit dem Code ein bisschen beschäftigen. Sonst wird X wieder zum bloßen Saug-und Anwend-Prog. Man kann dabei ja nur lernen (wenngleich ich das nicht ganz im Sinne des X-Agreement mache, denn von mpeg und ts hab ich immer noch null Ahnung).
Wenn meine Schnapsideen dem Handling nutzen und mehrere der Meinung sind, man könne die Vorschläge ausbauen (und vor allem meine Bugs und wenig eleganten "Code-Workarounds" kommentieren), finde ich trotzdem, dass matt die letzte Entscheidungsinstanz bleiben sollte.
Es sollten bitte nicht mehrere Code-Versionen von X öffentlich im Umlauf ein! Ich stelle meine bescheidenen Vorschläge nur zur Diskussion und will evtl. dazu anregen, dass sich User selber mit dem Code ein bisschen beschäftigen. Sonst wird X wieder zum bloßen Saug-und Anwend-Prog. Man kann dabei ja nur lernen (wenngleich ich das nicht ganz im Sinne des X-Agreement mache, denn von mpeg und ts hab ich immer noch null Ahnung).
Wenn meine Schnapsideen dem Handling nutzen und mehrere der Meinung sind, man könne die Vorschläge ausbauen (und vor allem meine Bugs und wenig eleganten "Code-Workarounds" kommentieren), finde ich trotzdem, dass matt die letzte Entscheidungsinstanz bleiben sollte.
Dem kann ich nur zustimmen. Wobei ich aber einen Elementary Stream bis ins kleinste Element zerlegen könnte, aber von Java keinen blaßen Schimmer habe. Na ja, noch nicht, den das Project X ist zum einen eine perfekte Übungsbaustelle und zum anderen kann X auch noch (in meinem Fall) sinnvoll einsetzt werden, da X keine trockene Anwendung ist.
Gruß
Lucike
Daywalker
05.09.2003, 16:03
Vielen Dank für deine Mithilfe, aber du schießt schon wieder an uns vorbei. Also ich teste noch.
Mmmh, ich trau mich schon gar nix mehr sagen... :shock:
Die ReleaseNotes sind nur für meine spezielle Version von X (siehe weiter unten).
Ja, wir sollten experimentelle Diskussionen von den endgültigen Fixes trennen. Das ist auch meine Meinung.
...das sollte mal noch a bissl getestet werden... habe ich zwar gelesen aber ich dachte das wäre ein offizieller Code-Bestandteil von X. Das wäre dann wirklich nicht schlecht Fixes und Vorschläge zu trennen.
@daywalker
Es sollten bitte nicht mehrere Code-Versionen von X öffentlich im Umlauf ein!
KEINE PANIK! Ich habe nirgendwo eine von mir veränderte X Version gepostet oder hochgeladen. Die ReleaseNotes habe ich nur mitgepostet damit man sehen kann was ich alles eingebaut habe bzw. damit andere evtl. Teile daraus in die ReleaseNotes ihrer eigenen Versionen übernehmen können... 8)
Ich stelle meine bescheidenen Vorschläge nur zur Diskussion und will evtl. dazu anregen, dass sich User selber mit dem Code ein bisschen beschäftigen.
Das finde ich natürlich klasse und es ist auch nicht schlecht wenn sich noch andere mit dem Code beschäftigen können.
Sonst wird X wieder zum bloßen Saug-und Anwend-Prog.
Hm, das wird sich meiner Meinung nach leider nicht vermeiden lassen. Die grosse Masse wird saugen und anwenden (siehe Source Thread). Es werden sich wohl zu wenige mit Java beschäftigen bzw. auskennen. Ich würde ja gerne auch ein wenig im X-Code rumbasteln wenn ich a) Java, b) programmieren und c) mich mit MPEG auskennen würde. Aber ich kann da nix daher "programmiere" ich ja auch in VisualBasic :D :D
Ich develope nebenbei für WinSTB einen Konfigurator und habe da noch nie direkt von einem User gehört "..da an der Stelle ist ein Bug.." oder "..könntest Du das noch einbauen..". Sowas bekomme ich eigentlich nur von den anderen Devs die sich mit WinSTB befassen. Da geht's mir eigentlich wie dvb.matt.
Wenn meine Schnapsideen dem Handling nutzen
So würde ich das nicht bezeichnen... :)
Deine MOD der autoload dirs gefällt mir desshalb so gut weil ich dann eben nicht noch einen Explorer zusätzlich irgendwo auf den Bildschirm quetschen muss... Zudem dauert das oft bis sich das entsprechende Verzeichnis im Explorer öffnet (wegen der darin enthaltenen Datenmenge).
...finde ich trotzdem, dass matt die letzte Entscheidungsinstanz bleiben sollte.
Stimme dem zu.
So, jetzt aber end offtopic. Meine obige Frage wurde aber immer noch nicht beantwortet. Kann bei diesem "Test" der Code Teil mit gelöscht werden oder muss das erhalten bleiben?[/b]
dvb.matt
05.09.2003, 18:55
Nachteil ist ...
jaja, die kleinen Gemeinheiten.. ;)
u.U. hat man auch kein File markiert; kann man ja noch überlegen.
die doppelte Fileverwaltung main<->files verkompliziert das zusätzlich..
(könnte man irgendwie mal zusammenfassen)
für Fixes wirklich ausschließlich einen eigenen Thread
ja, Fehler vom Amt.. :oops:
viell. schiebst'n ab dem Beitrag in einen neuen Thread ?
die Erweiterungen sind im Grunde das Ergebnis meiner Experimente mit HDTV Daten.
perfekte Übungsbaustelle und ... keine trockene Anwendung.
auf den Punkt gebracht.
Meine obige Frage wurde aber immer noch nicht beantwortet
/**
Anmerkungen eingefaßt wie diese hier kann man löschen, muß man aber nicht.
**/
offizieller Code-Bestandteil
IMO dann, wenns hier oben im Update-Thread steht.
letzte Entscheidungsinstanz
na ich weiß nich..
die Meinungen über Zweckmäßigkeit gehen ja doch auseinander.
mfg
TheHorse
05.09.2003, 19:48
@daywalker
Dass wir uns da richtig verstehen. Ich zähle dich durchaus zu den Aktiven, die durch Tests, Ideen und Beobachtungen positiv zur Ausgestaltung des Projekts beitragen. Das muss sich ja nicht unbedingt auf Code-Ebene abspielen.
Ich hoffe, du verstehst meinen Beitrag
Es sollten bitte nicht mehrere Code-Versionen...als Diskussionsbeitrag und nicht irgendwie als Kritik.
Daywalker
06.09.2003, 18:21
@daywalker
Dass wir uns da richtig verstehen. Ich zähle dich durchaus zu den Aktiven, die durch Tests, Ideen und Beobachtungen positiv zur Ausgestaltung des Projekts beitragen. Das muss sich ja nicht unbedingt auf Code-Ebene abspielen.
Ich hoffe, du verstehst meinen Beitrag
Es sollten bitte nicht mehrere Code-Versionen...als Diskussionsbeitrag und nicht irgendwie als Kritik.
Thanks! :D
Ich sehe den Beitrag nicht als Kritik an.
Ich werde auch wieder fleissig X testen sobald ich meine Festplatten wieder unter Kontrolle habe....*gggg*
dvb.matt
07.09.2003, 11:15
ich komm noch ma aufs Thema zurück, ja? :)
weil ich die Pfadvorgabe ansich nützlich find', aber sich beim bewußten Verstellen des Pfads (den ich dann nich mehr ändern möchte) dieser fürs folgende wieder resetted wird, schlage ich noch die Abfrage des Counters (je X session) vor.
if (bmpCount==0){
//VORSCHLAG 2(a)+
File dir= new File(X.outfield2.getText());
if(dir.isDirectory() && X.comBox[13].getItemCount()>0)
chooser.setCurrentDirectory(dir);
else
chooser.setCurrentDirectory(new File(X.list2.getSelectedValue().toString())); //<- (b)
// VORSCHLAG 2(a)-
}
@Lucike
viell. könnteste des hier ab dem 3.Beitrag (http://forum.dvbtechnics.info/viewtopic.php?p=335#335) in einen extra Thread schieben.. (wegens Erweiterung und so)
mfg
TheHorse
07.09.2003, 12:18
dann nich mehr ändern möchteDas ist verständlich.
dieser fürs folgende wieder resetted wirdFiel mir gar nicht auf. Ich hab immer nur ein Bild gemacht. :evil:
Irgendwie wollten wir ja Experimente und den Tratsch darüber von den eingeflossenen Änderungen trennen. Irgendwann müss mer damit anfangen. Ich weiß aber auch nicht so recht, wie. Auf alle Fälle irgendwie geschlossene Threads, wo nur matt Fixes und Änderungen reinschreiben kann. Getratscht wird dann anderswo.
dvb.matt
07.09.2003, 17:28
Auf alle Fälle irgendwie geschlossene Threads, wo nur matt Fixes und Änderungen reinschreiben
äh, das setzt ja voraus, dass matt's Fixe und Änderungen endgültig sind.
Beitrag/Fix 2 hier oben war z.B. ein "Schnellschuß", der günstigerweise in 'erster Instanz' nicht gleich 'offiziell' wurde. :wink:
Experimente und den Tratsch darüber von den eingeflossenen Änderungen trennen
also besser für jede Idee bzw. Bug 'nen eigenen Thread mit Tratsch darüber :)
dvb.matt
12.09.2003, 18:24
Ich hab ergänzenderweise hier (http://forum.dvbtechnics.info/viewtopic.php?p=335#335) nochmal kleine Codeänderungen reingetragen.
des hier (http://forum.dvbtechnics.info/viewtopic.php?p=347#347) zählt auch noch...
dvb.matt
29.09.2003, 18:24
[1] ac3.bin updated for ZDF
BTW:
wie es aussieht, finden bei dem DD-Strom (vorerst) keine mono/stereo Wechsel statt (die bei MPEG angepasst werden müssten, mittels X ja kein Problem)
bei der 'relativ geringen' Bitrate von 256kbps kann man durchaus überlegen, diesen fortan als 'main Audio' zu benützen.
Syncprobleme á la Sat1 scheints (noch) nicht zu geben..
[equote:fa251de193="Edit Admin"][center:fa251de193]Attachment gelöscht und lokal archiviert
Lucike[/center:fa251de193]
Attachments-Archiv (http://www.lucike.info/page_archiv_attachments.htm)[/equote:fa251de193]
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.