Changeset 1246
- Timestamp:
- 01/09/10 17:56:39 (8 months ago)
- Location:
- trunk
- Files:
-
- 12 modified
-
CPFPerianPrefPaneController.m (modified) (1 diff)
-
ColorConversions.c (modified) (2 diffs)
-
FFissionCodec/FFissionDecoder.cpp (modified) (1 diff)
-
FFusionCodec.c (modified) (1 diff)
-
MatroskaCodecIDs.cpp (modified) (1 diff)
-
MatroskaImportPrivate.cpp (modified) (3 diffs)
-
Subtitles/SubATSUIRenderer.m (modified) (9 diffs)
-
Subtitles/SubRenderer.h (modified) (1 diff)
-
TextSubCodec.c (modified) (1 diff)
-
bitstream_info.c (modified) (1 diff)
-
codecList.m4 (modified) (1 diff)
-
ff_private.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/CPFPerianPrefPaneController.m
r1147 r1246 852 852 NSString *status = [notification object]; 853 853 854 //FIXME localize these854 //FIXME: localize these 855 855 if ([status isEqualToString:@"Starting"]) { 856 856 [textField_updateStatus setStringValue:@"Checking..."]; -
trunk/ColorConversions.c
r1069 r1246 40 40 41 41 //Handles the last row for Y420 videos with an odd number of luma rows 42 //FIXME odd number of luma columns is not handled and they will be lost42 //FIXME: odd number of luma columns is not handled and they will be lost 43 43 static void Y420toY422_lastrow(UInt8 *o, UInt8 *yc, UInt8 *uc, UInt8 *vc, unsigned halfWidth) 44 44 { … … 514 514 return k16BE555PixelFormat; 515 515 case PIX_FMT_BGR24: 516 return k24RGBPixelFormat; // XXXtry k24BGRPixelFormat516 return k24RGBPixelFormat; //FIXME: try k24BGRPixelFormat 517 517 case PIX_FMT_RGB24: 518 518 return k24RGBPixelFormat; 519 case PIX_FMT_RGB32: // XXXnot a specific pixel format, need LE & BE like 16-bit519 case PIX_FMT_RGB32: // FIXME: not a specific pixel format, need LE & BE like 16-bit 520 520 return k32ARGBPixelFormat; 521 521 case PIX_FMT_YUV410P: -
trunk/FFissionCodec/FFissionDecoder.cpp
r1236 r1246 68 68 //CA tends to not set the magic cookie immediately, but we need it to open most codecs 69 69 //so check this to not open the codec until it's possible 70 //FIXME or we could just open the codec and ignore errors?71 70 static bool CodecRequiresExtradata(OSType formatID) 72 71 { -
trunk/FFusionCodec.c
r1244 r1246 618 618 619 619 // official Apple/QT/ISO/etc fourccs are likely to have PTS vs DTS defined 620 // FIXME what this actually checks is whether the file has a 'ctts' atom, can we do that directly?620 // FIXME: what this actually checks is whether the file has a 'ctts' atom, can we do that directly? 621 621 if(componentType == kMPEG4VisualCodecType || componentType == kH264CodecType || 622 622 componentType == kMPEG1VisualCodecType || componentType == kMPEG2VisualCodecType) -
trunk/MatroskaCodecIDs.cpp
r1162 r1246 504 504 505 505 // vosLen > 2 means SBR; some of those must be rewritten to avoid QT bugs(?) 506 // FIXME remove when QT works with them506 // FIXME: remove when QT works with them 507 507 if (audio && (!vosBuf || vosLen > 2)) { 508 508 RecreateAACVOS(tr_entry, aacBuf, &vosLen); -
trunk/MatroskaImportPrivate.cpp
r1243 r1246 373 373 // ensure that at least one track of each media type is enabled, if none were originally 374 374 // this picks the first track, which may not be the best, but the situation is quite rare anyway 375 // FIXME properly choose tracks based on forced/default/language flags, and consider turning auto-alternates back on375 // FIXME: properly choose tracks based on forced/default/language flags, and consider turning auto-alternates back on 376 376 if (!videoEnabled && firstVideoTrack) 377 377 SetTrackEnabled(firstVideoTrack, 1); … … 547 547 asbd.mFramesPerPacket = 1152; 548 548 549 // FIXME mChannelLayoutTag == 0 is valid549 // FIXME: mChannelLayoutTag == 0 is valid 550 550 // but we don't use channel position lists (yet) so it's safe for now 551 551 if (acl.mChannelLayoutTag == 0) acl = GetDefaultChannelLayout(&asbd); … … 634 634 } else if ((*imgDesc)->cType == kSubFormatUTF8 || (*imgDesc)->cType == kSubFormatSSA || (*imgDesc)->cType == kSubFormatASS) { 635 635 if ((*imgDesc)->cType == kSubFormatASS) (*imgDesc)->cType = kSubFormatSSA; // no real reason to treat them differently 636 UInt32 emptyDataRefExtension[2]; // XXXthe various uses of this bit of code should be unified636 UInt32 emptyDataRefExtension[2]; // FIXME: the various uses of this bit of code should be unified 637 637 mkvTrack.subDataRefHandler = NewHandleClear(sizeof(Handle) + 1); 638 638 emptyDataRefExtension[0] = EndianU32_NtoB(sizeof(UInt32)*2); -
trunk/Subtitles/SubATSUIRenderer.m
r1208 r1246 263 263 } 264 264 265 // XXX:Assumes ATSUFontID = ATSFontRef. This is true.265 // Assumes ATSUFontID = ATSFontRef. This is true. 266 266 static ATSUFontID GetFontIDForSSAName(NSString *name) 267 267 { … … 355 355 356 356 if (!s->platformSizeScale) s->platformSizeScale = GetWinFontSizeScale(fontRef); 357 size = FloatToFixed(s->size * s->platformSizeScale * screenScaleY); //FIXME several other values also change relative to PlayRes but aren't handled357 size = FloatToFixed(s->size * s->platformSizeScale * screenScaleY); //FIXME: several other values also change relative to PlayRes but aren't handled 358 358 359 359 ATSUCreateStyle(&style); … … 440 440 switch (tag) { 441 441 case tag_b: 442 bv(); // XXXfont weight variations442 bv(); // FIXME: font weight variations 443 443 SetATSUStyleFlag(spanEx->style, kATSUQDBoldfaceTag, bval != 0); 444 444 break; … … 555 555 case tag_be: 556 556 bv(); 557 if (!isFirstSpan) div->render_complexity |= renderMultipleParts; // XXXblur edges557 if (!isFirstSpan) div->render_complexity |= renderMultipleParts; //FIXME: blur edges 558 558 spanEx->blurEdges = bval; 559 559 break; … … 565 565 #pragma mark Rendering Helper Functions 566 566 567 // XXXsee comment for GetTypographicRectangleForLayout567 // see comment for GetTypographicRectangleForLayout 568 568 static ATSUTextMeasurement GetLineHeight(ATSUTextLayout layout, UniCharArrayOffset lpos, Boolean includeDescent) 569 569 { … … 584 584 } 585 585 586 // XXXsome broken fonts have very wrong typographic values set, and so this occasionally gives nonsense586 // some broken fonts have very wrong typographic values set, and so this occasionally gives nonsense 587 587 // it should be checked against the real pixel box (see #if 0 below), but for correct fonts it looks much better 588 588 static void GetTypographicRectangleForLayout(ATSUTextLayout layout, UniCharArrayOffset *breaks, ItemCount breakCount, Fixed extraHeight, Fixed *lX, Fixed *lY, Fixed *height, Fixed *width) … … 955 955 //ATS bug(?) with some fonts: 956 956 //drawing \n draws some random other character, so skip them 957 // XXXmaybe don't store newlines in div->text at all957 //FIXME: maybe don't store newlines in div->text at all 958 958 if ([div->text characterAtIndex:thisBreak+lineLen-1] == '\n') { 959 959 lineLen--; … … 1001 1001 1002 1002 //linear search for the next span to draw 1003 // XXX not at all sure how this works or if it's correct1003 //FIXME: make sure this never skips any spans 1004 1004 for (j = 0; j < nspans; j++) { 1005 1005 SubRenderSpan *span = [div->spans objectAtIndex:j]; … … 1370 1370 // Windows and OS X use different TrueType fields to measure text. 1371 1371 // Some Windows fonts have one field set incorrectly(?), so we have to compensate. 1372 // XXXThis function doesn't read from the right fonts; if we're using italic variant, it should get the ATSFontRef for that1373 // XXX^2This should be cached1372 // FIXME: This function doesn't read from the right fonts; if we're using italic variant, it should get the ATSFontRef for that 1373 // This should be cached 1374 1374 static float GetWinFontSizeScale(ATSFontRef font) 1375 1375 { -
trunk/Subtitles/SubRenderer.h
r1038 r1246 37 37 #endif 38 38 39 // XXXthese should be 'id' instead of 'void*' but it makes it easier to use ATSUStyle39 // these should be 'id' instead of 'void*' but it makes it easier to use ATSUStyle 40 40 @interface SubRenderer : NSObject 41 41 -(void)completedHeaderParsing:(SubContext*)sc; -
trunk/TextSubCodec.c
r1202 r1246 222 222 223 223 // we want ARGB because Quartz can use it easily 224 // Todo: add other possible pixel formats Quartz can handle225 224 *formats++ = k32RGBAPixelFormat; 226 225 *formats++ = k32ARGBPixelFormat; -
trunk/bitstream_info.c
r1245 r1246 1030 1030 //QT is bad at high profile 1031 1031 //and x264 B-pyramid (sps.vui.num_reorder_frames > 1) 1032 //FIXME x264 will generate pyramid differently soon (core 78+), and that might work better1033 1032 if(h264parser->profile_idc < 100 && h264parser->num_reorder_frames < 2 && 1034 1033 !CFPreferencesGetAppBooleanValue(CFSTR("DecodeAllProfiles"), PERIAN_PREF_DOMAIN, NULL)) -
trunk/codecList.m4
r1226 r1246 8 8 Codec(kXVIDCodecInfoResID, CODEC_ID_MPEG4, "Xvid", "Decompresses video stored in Xvid format.", 'XVID', 'xvid', 'XviD', 'XVIX', 'BLZ0') 9 9 Codec(kMPEG4CodecInfoResID, CODEC_ID_MPEG4, "MPEG-4", "Decompresses video stored in MPEG-4 format.", 'RMP4', 'SEDG', 'WV1F', 'FMP4', 'SMP4') 10 ResourceOnly(<!// XXX: can we do this without claiming Apple's manufacturer (and thus unregistering their decoder)?!>)10 ResourceOnly(<!// FIXME: can we do this without claiming Apple's manufacturer (and thus unregistering their decoder)?!>) 11 11 ResourceOnly(<!#define kCodecManufacturer 'appl'!>) 12 12 ResourceOnly(<!#define kCodecVersion kFFusionCodecVersion + 0x10!>) -
trunk/ff_private.c
r1242 r1246 126 126 av_reduce(&base->num, &base->den, base->num, base->den, INT_MAX); 127 127 128 if (base->num == 1) return; // XXXis this good enough?128 if (base->num == 1) return; // FIXME: is this good enough? 129 129 130 130 double fTimebase = av_q2d(*base), nearest_ntsc = floor(fTimebase * 1001. + .5) / 1001.; … … 188 188 189 189 // 12 is invalid in mov 190 // XXXit might be better to set this based entirely on pix_fmt190 // FIXME: it might be better to set this based entirely on pix_fmt 191 191 if ((*imgHdl)->depth == 12 || (*imgHdl)->depth == 0) (*imgHdl)->depth = codec->pix_fmt == PIX_FMT_YUVA420P ? 32 : 24; 192 192 … … 228 228 229 229 /* Ask the AudioToolbox about vbr of the codec */ 230 // FIXME this sets vbr even if it was encoded in CBR mode230 // FIXME: this sets vbr even if it was encoded in CBR mode 231 231 // which means our mBytesPerPacket is wrong for CBR mp3 (does not really matter) 232 232 ioSize = sizeof(UInt32); … … 281 281 asbd.mFramesPerPacket = 1; 282 282 else if (asbd.mBytesPerPacket) { 283 /* FIXME .in the MSADPCM codec, we get a wrong mFramesPerPacket entry because283 /* FIXME: in the MSADPCM codec, we get a wrong mFramesPerPacket entry because 284 284 * of the difference in the sample_rate and the time_base denumerator. So we 285 285 * recalculate here the mFramesPerPacket entry */ … … 619 619 620 620 // Create the 'nclc' atom for video tracks. Guessed entirely from image size following ffdshow. 621 // FIXME read H.264 VUI/MPEG2 etc and especially read chroma positioning information.621 // FIXME: read H.264 VUI/MPEG2 etc and especially read chroma positioning information. 622 622 // this needs the parsers working 623 623 // References: http://developer.apple.com/quicktime/icefloe/dispatch019.html … … 690 690 track = NewMovieTrack(theMovie, width, height, kNoVolume); 691 691 692 // XXXSupport for 'old' NUV files, that didn't put the codec_tag in the file.692 // Support for 'old' NUV files, that didn't put the codec_tag in the file. 693 693 if( st->codec->codec_id == CODEC_ID_NUV && st->codec->codec_tag == 0 ) { 694 694 st->codec->codec_tag = MKTAG( 'N', 'U', 'V', '1' );
