You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(80) |
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(2) |
2008 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Mgr. J. C. <er...@ti...> - 2015-04-25 13:47:16
|
Dear core developers, Do You know, why I get The following error from VirtualDub when I have chosen ffdshow Video Codec as a video compression? When I want to save .avi file? I get The following error. VirtualDub Error dialog Unable to initialize video compression. Check that the video codec is compatible with the output video frame size and that the settings are correct, or try a different one. Original .avi video have been compressed by using JPEG internal codec. I can listen it inside VirtualDUb, picture on The screen is also good. But how to save .avi by using ffdshow compression? Thank You very much for Yours help. With kindness regards. Janusz Chmiel --- Tato zpráva byla zkontrolována na viry programem Avast Antivirus. http://www.avast.com |
From: Mgr. J. C. <er...@ti...> - 2015-04-24 21:49:38
|
Dear core developers, My name is Janusz Chmiel, I Am 35 years old visually impaired man with no sight from Czech Republic. Yours encoders are perfect, a specially thanks to build in filters, which enable me to modify sound in real time. But I have one big plea to You. When I Am running C:\Windows\System32\rundll32.exe "C:\Program Files\ffdshow\ffdshow.ax",configureAudio The dialog box appear. On The output Tree view item, there is AN check box enable direct output to The file. Would somebody of You describe Me The aim of this feature? Does this feature enable Me that i would get raw audio data so when I will make some settings and when I will modify sound in real time, I can get raw audio data which could I i for example import to Audacity? Because when I change decibels ranges inside equalizer tree view menu item, special audio capturing driver soundtab streaming audio recorder did not saved audio data with settings caused by changing Decibels, so only other equalisation settings were applied on The resulting sound file capturedby The Soundtab streaming audio kernel driver. Do You think, that I have at least a little chance to save sound modified by Yours perfect equalizer? Or will I have to record by using analogue procedure so I will lose The quality of The recording? Yours tool is perfect, because whole GUI is 100 % MSAA compatible. And Yours program is very stable, does not cause crashes. Any professional advice will help Me. Thank You very much for Yours help. With kindness regards. Janusz Chmiel --- Tato zpráva byla zkontrolována na viry programem Avast Antivirus. http://www.avast.com |
From: Paul K. <pa...@ar...> - 2008-01-03 20:16:01
|
I've started a thread on this on the Bugs forum: http://ffdshow-tryout.sourceforge.net/phpBB2/viewtopic.php?t=604 Just an update, even with this fix I eventually still locked up. It seems like there is a race condition -- when TffdshowDecAudioInputPin::Receive is called the filter is not yet stopped, but by the time IFilterGraph::EnumFilters is called in searchFilterInterface it is already stopped. I tried modifying TffdshowDecAudio::deliverDecodedSample to check m_dirtyStop flag and return S_FALSE if it's set -- that seems to be just as good as my first fix attempt, but that doesn't fix the race condition (wherever it may be). It seems to me either the pin should lock the filter when it's receiving data, or the filter should lock the pin when it's stopping. Paul Paul Koshevoy wrote: > Hi, > > I've been experiencing random hangs in searchFilterInterface function in > dsutil.cpp, line 199. When I stop the filtergraph ffdshow gets stuck on > the graph->EnumFilters call which never returns. It looks like a > deadlock to me. Anyway, I found a simple fix -- in > TffdshowDecAudioInputPin.cpp, line 87 (first line of > TffdshowDecAudioInputPin::Receive) change > > if (this!=filter->inpin) > return S_FALSE; > > to be > > if (this!=filter->inpin || filter->IsStopped()) > return S_FALSE; > > > It seems to be an upstream filter (mainconcept mpeg demuxer) is sending > data to ffdshow even though ffdshow is stopped. ffdshow tries to pass > the decoded data downstream and get stuck in filtergraph EnumFilters > call. I am not sure whether the fix I found is correct, but at least it > doesn't hang my application any more. Also, there may be other places in > ffdshow (that I don't know about) that may need a similar fix. > > I hope this is helpful and you will merge it into the trunk. > > Thank you, > Paul. > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > ffdshow-tryout-svnArchives mailing list > ffd...@li... > https://lists.sourceforge.net/lists/listinfo/ffdshow-tryout-svnarchives > |
From: Paul K. <pa...@ar...> - 2008-01-03 17:33:28
|
Hi, I've been experiencing random hangs in searchFilterInterface function in dsutil.cpp, line 199. When I stop the filtergraph ffdshow gets stuck on the graph->EnumFilters call which never returns. It looks like a deadlock to me. Anyway, I found a simple fix -- in TffdshowDecAudioInputPin.cpp, line 87 (first line of TffdshowDecAudioInputPin::Receive) change if (this!=filter->inpin) return S_FALSE; to be if (this!=filter->inpin || filter->IsStopped()) return S_FALSE; It seems to be an upstream filter (mainconcept mpeg demuxer) is sending data to ffdshow even though ffdshow is stopped. ffdshow tries to pass the decoded data downstream and get stuck in filtergraph EnumFilters call. I am not sure whether the fix I found is correct, but at least it doesn't hang my application any more. Also, there may be other places in ffdshow (that I don't know about) that may need a similar fix. I hope this is helpful and you will merge it into the trunk. Thank you, Paul. |
From: Paul K. <pa...@ar...> - 2007-12-20 01:11:04
|
Hi, I've had ffdshow crash on me during a call to IGraphBuilder::Connect(IPin * src, IPin * dst). I rebuilt ffdshow with Debug symbols from SVN -- the crash is on line 331 of dsutil.cpp. The reason is that bih parameter BITMAPINFOHEADER::biSize is 0, which causes elen to be negative, which caused memcpy to try to copy almost 4GB. I changed the elen calculation as follows and the crash went away: unsigned int elen = bih.biSize ? bih.biSize - sizeof(BITMAPINFOHEADER) : 0; I hope you can merge this fix into the trunk. Paul. |
From: Paul K. <pa...@so...> - 2007-12-20 01:08:09
|
Hi, I've had ffdshow crash on me during a call to IGraphBuilder::Connect(IPin * src, IPin * dst). I rebuilt ffdshow with Debug symbols from SVN -- the crash is on line 331 of dsutil.cpp. The reason is that bih parameter BITMAPINFOHEADER::biSize is 0, which causes elen to be negative, which caused memcpy to try to copy almost 4GB. I changed the elen calculation as follows and the crash went away: unsigned int elen = bih.biSize ? bih.biSize - sizeof(BITMAPINFOHEADER) : 0; I hope you can merge this fix into the trunk. Paul. |
From: <h_y...@us...> - 2006-09-30 05:39:50
|
Revision: 295 http://svn.sourceforge.net/ffdshow-tryout/?rev=295&view=rev Author: h_yamagata Date: 2006-09-29 20:20:35 -0700 (Fri, 29 Sep 2006) Log Message: ----------- Reverted svq3.c 3) SVQ3 crashes when used in combination with Quick Time Movie Parser. Milan said "HACK: 3ivx splitter doesn't provide any extradata". Modified Paths: -------------- src/ffmpeg/libavcodec/svq3.c Modified: src/ffmpeg/libavcodec/svq3.c =================================================================== --- src/ffmpeg/libavcodec/svq3.c 2006-09-29 15:31:51 UTC (rev 294) +++ src/ffmpeg/libavcodec/svq3.c 2006-09-30 03:20:35 UTC (rev 295) @@ -26,10 +26,10 @@ * the calling app must make the SVQ3 ImageDescription atom available * via the AVCodecContext's extradata[_size] field: * - * AVCodecContext.extradata = pointer to ImageDescription, first characters + * AVCodecContext.extradata = pointer to ImageDescription, first characters * are expected to be 'S', 'V', 'Q', and '3', NOT the 4-byte atom length - * AVCodecContext.extradata_size = size of ImageDescription atom memory - * buffer (which will be the same as the ImageDescription atom size field + * AVCodecContext.extradata_size = size of ImageDescription atom memory + * buffer (which will be the same as the ImageDescription atom size field * from the QT file, minus 4 bytes since the length is missing) * * You will know you have these parameters passed correctly when the decoder @@ -37,24 +37,24 @@ * ftp://ftp.mplayerhq.hu/MPlayer/samples/V-codecs/SVQ3/Vertical400kbit.sorenson3.mov * */ - + /** * @file svq3.c * svq3 decoder. */ -#define FULLPEL_MODE 1 -#define HALFPEL_MODE 2 +#define FULLPEL_MODE 1 +#define HALFPEL_MODE 2 #define THIRDPEL_MODE 3 #define PREDICT_MODE 4 - + /* dual scan (from some older h264 draft) o-->o-->o o | /| o o o / o | / | |/ | o o o o - / + / o-->o-->o-->o */ static const uint8_t svq3_scan[16]={ @@ -179,8 +179,8 @@ } static void pred4x4_down_left_svq3_c(uint8_t *src, uint8_t *topright, int stride){ - LOAD_TOP_EDGE - LOAD_LEFT_EDGE + LOAD_TOP_EDGE + LOAD_LEFT_EDGE const __attribute__((unused)) int unu0= t0; const __attribute__((unused)) int unu1= l0; @@ -207,7 +207,7 @@ } static inline int svq3_decode_block (GetBitContext *gb, DCTELEM *block, - int index, const int type) { + int index, const int type) { static const uint8_t *const scan_patterns[4] = { luma_dc_zigzag_scan, zigzag_scan, svq3_scan, chroma_dc_scan }; @@ -220,37 +220,37 @@ for (; (vlc = svq3_get_ue_golomb (gb)) != 0; index++) { if (vlc == INVALID_VLC) - return -1; + return -1; sign = (vlc & 0x1) - 1; vlc = (vlc + 1) >> 1; if (type == 3) { - if (vlc < 3) { - run = 0; - level = vlc; - } else if (vlc < 4) { - run = 1; - level = 1; - } else { - run = (vlc & 0x3); - level = ((vlc + 9) >> 2) - run; - } + if (vlc < 3) { + run = 0; + level = vlc; + } else if (vlc < 4) { + run = 1; + level = 1; + } else { + run = (vlc & 0x3); + level = ((vlc + 9) >> 2) - run; + } } else { - if (vlc < 16) { - run = svq3_dct_tables[intra][vlc].run; - level = svq3_dct_tables[intra][vlc].level; - } else if (intra) { - run = (vlc & 0x7); - level = (vlc >> 3) + ((run == 0) ? 8 : ((run < 2) ? 2 : ((run < 5) ? 0 : -1))); - } else { - run = (vlc & 0xF); - level = (vlc >> 4) + ((run == 0) ? 4 : ((run < 3) ? 2 : ((run < 10) ? 1 : 0))); - } + if (vlc < 16) { + run = svq3_dct_tables[intra][vlc].run; + level = svq3_dct_tables[intra][vlc].level; + } else if (intra) { + run = (vlc & 0x7); + level = (vlc >> 3) + ((run == 0) ? 8 : ((run < 2) ? 2 : ((run < 5) ? 0 : -1))); + } else { + run = (vlc & 0xF); + level = (vlc >> 4) + ((run == 0) ? 4 : ((run < 3) ? 2 : ((run < 10) ? 1 : 0))); + } } if ((index += run) >= limit) - return -1; + return -1; block[scan[index]] = (level ^ sign) - sign; } @@ -264,9 +264,9 @@ } static inline void svq3_mc_dir_part (MpegEncContext *s, - int x, int y, int width, int height, - int mx, int my, int dxy, - int thirdpel, int dir, int avg) { + int x, int y, int width, int height, + int mx, int my, int dxy, + int thirdpel, int dir, int avg) { const Picture *pic = (dir == 0) ? &s->last_picture : &s->next_picture; uint8_t *src, *dest; @@ -275,7 +275,7 @@ mx += x; my += y; - + if (mx < 0 || mx >= (s->h_edge_pos - width - 1) || my < 0 || my >= (s->v_edge_pos - height - 1)) { @@ -293,7 +293,7 @@ if (emu) { ff_emulated_edge_mc (s->edge_emu_buffer, src, s->linesize, (width + 1), (height + 1), - mx, my, s->h_edge_pos, s->v_edge_pos); + mx, my, s->h_edge_pos, s->v_edge_pos); src = s->edge_emu_buffer; } if(thirdpel) @@ -302,8 +302,8 @@ (avg ? s->dsp.avg_pixels_tab : s->dsp.put_pixels_tab)[blocksize][dxy](dest, src, s->linesize, height); if (!(s->flags & CODEC_FLAG_GRAY)) { - mx = (mx + (mx < (int) x)) >> 1; - my = (my + (my < (int) y)) >> 1; + mx = (mx + (mx < (int) x)) >> 1; + my = (my + (my < (int) y)) >> 1; width = (width >> 1); height = (height >> 1); blocksize++; @@ -314,8 +314,8 @@ if (emu) { ff_emulated_edge_mc (s->edge_emu_buffer, src, s->uvlinesize, (width + 1), (height + 1), - mx, my, (s->h_edge_pos >> 1), (s->v_edge_pos >> 1)); - src = s->edge_emu_buffer; + mx, my, (s->h_edge_pos >> 1), (s->v_edge_pos >> 1)); + src = s->edge_emu_buffer; } if(thirdpel) (avg ? s->dsp.avg_tpel_pixels_tab : s->dsp.put_tpel_pixels_tab)[dxy](dest, src, s->uvlinesize, width, height); @@ -344,18 +344,18 @@ k = ((j>>2)&1) + ((i>>1)&2) + ((j>>1)&4) + (i&8); if (mode != PREDICT_MODE) { - pred_motion (h, k, (part_width >> 2), dir, 1, &mx, &my); + pred_motion (h, k, (part_width >> 2), dir, 1, &mx, &my); } else { - mx = s->next_picture.motion_val[0][b_xy][0]<<1; - my = s->next_picture.motion_val[0][b_xy][1]<<1; + mx = s->next_picture.motion_val[0][b_xy][0]<<1; + my = s->next_picture.motion_val[0][b_xy][1]<<1; - if (dir == 0) { - mx = ((mx * h->frame_num_offset) / h->prev_frame_num_offset + 1)>>1; - my = ((my * h->frame_num_offset) / h->prev_frame_num_offset + 1)>>1; - } else { - mx = ((mx * (h->frame_num_offset - h->prev_frame_num_offset)) / h->prev_frame_num_offset + 1)>>1; - my = ((my * (h->frame_num_offset - h->prev_frame_num_offset)) / h->prev_frame_num_offset + 1)>>1; - } + if (dir == 0) { + mx = ((mx * h->frame_num_offset) / h->prev_frame_num_offset + 1)>>1; + my = ((my * h->frame_num_offset) / h->prev_frame_num_offset + 1)>>1; + } else { + mx = ((mx * (h->frame_num_offset - h->prev_frame_num_offset)) / h->prev_frame_num_offset + 1)>>1; + my = ((my * (h->frame_num_offset - h->prev_frame_num_offset)) / h->prev_frame_num_offset + 1)>>1; + } } /* clip motion vector prediction to frame border */ @@ -364,63 +364,63 @@ /* get (optional) motion vector differential */ if (mode == PREDICT_MODE) { - dx = dy = 0; + dx = dy = 0; } else { - dy = svq3_get_se_golomb (&s->gb); - dx = svq3_get_se_golomb (&s->gb); + dy = svq3_get_se_golomb (&s->gb); + dx = svq3_get_se_golomb (&s->gb); - if (dx == INVALID_VLC || dy == INVALID_VLC) { + if (dx == INVALID_VLC || dy == INVALID_VLC) { av_log(h->s.avctx, AV_LOG_ERROR, "invalid MV vlc\n"); - return -1; - } + return -1; + } } /* compute motion vector */ if (mode == THIRDPEL_MODE) { - int fx, fy; - mx = ((mx + 1)>>1) + dx; - my = ((my + 1)>>1) + dy; - fx= ((unsigned)(mx + 0x3000))/3 - 0x1000; - fy= ((unsigned)(my + 0x3000))/3 - 0x1000; - dxy= (mx - 3*fx) + 4*(my - 3*fy); + int fx, fy; + mx = ((mx + 1)>>1) + dx; + my = ((my + 1)>>1) + dy; + fx= ((unsigned)(mx + 0x3000))/3 - 0x1000; + fy= ((unsigned)(my + 0x3000))/3 - 0x1000; + dxy= (mx - 3*fx) + 4*(my - 3*fy); - svq3_mc_dir_part (s, x, y, part_width, part_height, fx, fy, dxy, 1, dir, avg); - mx += mx; - my += my; + svq3_mc_dir_part (s, x, y, part_width, part_height, fx, fy, dxy, 1, dir, avg); + mx += mx; + my += my; } else if (mode == HALFPEL_MODE || mode == PREDICT_MODE) { - mx = ((unsigned)(mx + 1 + 0x3000))/3 + dx - 0x1000; - my = ((unsigned)(my + 1 + 0x3000))/3 + dy - 0x1000; - dxy= (mx&1) + 2*(my&1); + mx = ((unsigned)(mx + 1 + 0x3000))/3 + dx - 0x1000; + my = ((unsigned)(my + 1 + 0x3000))/3 + dy - 0x1000; + dxy= (mx&1) + 2*(my&1); - svq3_mc_dir_part (s, x, y, part_width, part_height, mx>>1, my>>1, dxy, 0, dir, avg); - mx *= 3; - my *= 3; + svq3_mc_dir_part (s, x, y, part_width, part_height, mx>>1, my>>1, dxy, 0, dir, avg); + mx *= 3; + my *= 3; } else { - mx = ((unsigned)(mx + 3 + 0x6000))/6 + dx - 0x1000; - my = ((unsigned)(my + 3 + 0x6000))/6 + dy - 0x1000; + mx = ((unsigned)(mx + 3 + 0x6000))/6 + dx - 0x1000; + my = ((unsigned)(my + 3 + 0x6000))/6 + dy - 0x1000; - svq3_mc_dir_part (s, x, y, part_width, part_height, mx, my, 0, 0, dir, avg); - mx *= 6; - my *= 6; + svq3_mc_dir_part (s, x, y, part_width, part_height, mx, my, 0, 0, dir, avg); + mx *= 6; + my *= 6; } /* update mv_cache */ if (mode != PREDICT_MODE) { - int32_t mv = pack16to32(mx,my); + int32_t mv = pack16to32(mx,my); - if (part_height == 8 && i < 8) { - *(int32_t *) h->mv_cache[dir][scan8[k] + 1*8] = mv; + if (part_height == 8 && i < 8) { + *(int32_t *) h->mv_cache[dir][scan8[k] + 1*8] = mv; - if (part_width == 8 && j < 8) { - *(int32_t *) h->mv_cache[dir][scan8[k] + 1 + 1*8] = mv; - } - } - if (part_width == 8 && j < 8) { - *(int32_t *) h->mv_cache[dir][scan8[k] + 1] = mv; - } - if (part_width == 4 || part_height == 4) { - *(int32_t *) h->mv_cache[dir][scan8[k]] = mv; - } + if (part_width == 8 && j < 8) { + *(int32_t *) h->mv_cache[dir][scan8[k] + 1 + 1*8] = mv; + } + } + if (part_width == 8 && j < 8) { + *(int32_t *) h->mv_cache[dir][scan8[k] + 1] = mv; + } + if (part_width == 4 || part_height == 4) { + *(int32_t *) h->mv_cache[dir][scan8[k]] = mv; + } } /* write back motion vectors */ @@ -440,19 +440,19 @@ const int mb_xy = s->mb_x + s->mb_y*s->mb_stride; const int b_xy = 4*s->mb_x + 4*s->mb_y*h->b_stride; - h->top_samples_available = (s->mb_y == 0) ? 0x33FF : 0xFFFF; - h->left_samples_available = (s->mb_x == 0) ? 0x5F5F : 0xFFFF; - h->topright_samples_available = 0xFFFF; + h->top_samples_available = (s->mb_y == 0) ? 0x33FF : 0xFFFF; + h->left_samples_available = (s->mb_x == 0) ? 0x5F5F : 0xFFFF; + h->topright_samples_available = 0xFFFF; - if (mb_type == 0) { /* SKIP */ + if (mb_type == 0) { /* SKIP */ if (s->pict_type == P_TYPE || s->next_picture.mb_type[mb_xy] == -1) { svq3_mc_dir_part (s, 16*s->mb_x, 16*s->mb_y, 16, 16, 0, 0, 0, 0, 0, 0); if (s->pict_type == B_TYPE) { - svq3_mc_dir_part (s, 16*s->mb_x, 16*s->mb_y, 16, 16, 0, 0, 0, 0, 1, 1); + svq3_mc_dir_part (s, 16*s->mb_x, 16*s->mb_y, 16, 16, 0, 0, 0, 0, 1, 1); } - mb_type = MB_TYPE_SKIP; + mb_type = MB_TYPE_SKIP; } else { mb_type= FFMIN(s->next_picture.mb_type[mb_xy], 6); if(svq3_mc_dir (h, mb_type, PREDICT_MODE, 0, 0) < 0) @@ -462,7 +462,7 @@ mb_type = MB_TYPE_16x16; } - } else if (mb_type < 8) { /* INTER */ + } else if (mb_type < 8) { /* INTER */ if (h->thirdpel_flag && h->halfpel_flag == !get_bits (&s->gb, 1)) { mode = THIRDPEL_MODE; } else if (h->halfpel_flag && h->thirdpel_flag == !get_bits (&s->gb, 1)) { @@ -480,117 +480,117 @@ N??11111 N */ - + for (m=0; m < 2; m++) { if (s->mb_x > 0 && h->intra4x4_pred_mode[mb_xy - 1][0] != -1) { - for (i=0; i < 4; i++) { - *(uint32_t *) h->mv_cache[m][scan8[0] - 1 + i*8] = *(uint32_t *) s->current_picture.motion_val[m][b_xy - 1 + i*h->b_stride]; - } - } else { - for (i=0; i < 4; i++) { - *(uint32_t *) h->mv_cache[m][scan8[0] - 1 + i*8] = 0; - } + for (i=0; i < 4; i++) { + *(uint32_t *) h->mv_cache[m][scan8[0] - 1 + i*8] = *(uint32_t *) s->current_picture.motion_val[m][b_xy - 1 + i*h->b_stride]; } - if (s->mb_y > 0) { - memcpy (h->mv_cache[m][scan8[0] - 1*8], s->current_picture.motion_val[m][b_xy - h->b_stride], 4*2*sizeof(int16_t)); - memset (&h->ref_cache[m][scan8[0] - 1*8], (h->intra4x4_pred_mode[mb_xy - s->mb_stride][4] == -1) ? PART_NOT_AVAILABLE : 1, 4); + } else { + for (i=0; i < 4; i++) { + *(uint32_t *) h->mv_cache[m][scan8[0] - 1 + i*8] = 0; + } + } + if (s->mb_y > 0) { + memcpy (h->mv_cache[m][scan8[0] - 1*8], s->current_picture.motion_val[m][b_xy - h->b_stride], 4*2*sizeof(int16_t)); + memset (&h->ref_cache[m][scan8[0] - 1*8], (h->intra4x4_pred_mode[mb_xy - s->mb_stride][4] == -1) ? PART_NOT_AVAILABLE : 1, 4); - if (s->mb_x < (s->mb_width - 1)) { - *(uint32_t *) h->mv_cache[m][scan8[0] + 4 - 1*8] = *(uint32_t *) s->current_picture.motion_val[m][b_xy - h->b_stride + 4]; - h->ref_cache[m][scan8[0] + 4 - 1*8] = - (h->intra4x4_pred_mode[mb_xy - s->mb_stride + 1][0] == -1 || - h->intra4x4_pred_mode[mb_xy - s->mb_stride][4] == -1) ? PART_NOT_AVAILABLE : 1; - }else - h->ref_cache[m][scan8[0] + 4 - 1*8] = PART_NOT_AVAILABLE; - if (s->mb_x > 0) { - *(uint32_t *) h->mv_cache[m][scan8[0] - 1 - 1*8] = *(uint32_t *) s->current_picture.motion_val[m][b_xy - h->b_stride - 1]; - h->ref_cache[m][scan8[0] - 1 - 1*8] = (h->intra4x4_pred_mode[mb_xy - s->mb_stride - 1][3] == -1) ? PART_NOT_AVAILABLE : 1; - }else - h->ref_cache[m][scan8[0] - 1 - 1*8] = PART_NOT_AVAILABLE; + if (s->mb_x < (s->mb_width - 1)) { + *(uint32_t *) h->mv_cache[m][scan8[0] + 4 - 1*8] = *(uint32_t *) s->current_picture.motion_val[m][b_xy - h->b_stride + 4]; + h->ref_cache[m][scan8[0] + 4 - 1*8] = + (h->intra4x4_pred_mode[mb_xy - s->mb_stride + 1][0] == -1 || + h->intra4x4_pred_mode[mb_xy - s->mb_stride][4] == -1) ? PART_NOT_AVAILABLE : 1; }else - memset (&h->ref_cache[m][scan8[0] - 1*8 - 1], PART_NOT_AVAILABLE, 8); + h->ref_cache[m][scan8[0] + 4 - 1*8] = PART_NOT_AVAILABLE; + if (s->mb_x > 0) { + *(uint32_t *) h->mv_cache[m][scan8[0] - 1 - 1*8] = *(uint32_t *) s->current_picture.motion_val[m][b_xy - h->b_stride - 1]; + h->ref_cache[m][scan8[0] - 1 - 1*8] = (h->intra4x4_pred_mode[mb_xy - s->mb_stride - 1][3] == -1) ? PART_NOT_AVAILABLE : 1; + }else + h->ref_cache[m][scan8[0] - 1 - 1*8] = PART_NOT_AVAILABLE; + }else + memset (&h->ref_cache[m][scan8[0] - 1*8 - 1], PART_NOT_AVAILABLE, 8); if (s->pict_type != B_TYPE) - break; - } + break; + } /* decode motion vector(s) and form prediction(s) */ if (s->pict_type == P_TYPE) { if(svq3_mc_dir (h, (mb_type - 1), mode, 0, 0) < 0) return -1; - } else { /* B_TYPE */ + } else { /* B_TYPE */ if (mb_type != 2) { - if(svq3_mc_dir (h, 0, mode, 0, 0) < 0) + if(svq3_mc_dir (h, 0, mode, 0, 0) < 0) return -1; - } else { - for (i=0; i < 4; i++) { - memset (s->current_picture.motion_val[0][b_xy + i*h->b_stride], 0, 4*2*sizeof(int16_t)); - } - } + } else { + for (i=0; i < 4; i++) { + memset (s->current_picture.motion_val[0][b_xy + i*h->b_stride], 0, 4*2*sizeof(int16_t)); + } + } if (mb_type != 1) { - if(svq3_mc_dir (h, 0, mode, 1, (mb_type == 3)) < 0) + if(svq3_mc_dir (h, 0, mode, 1, (mb_type == 3)) < 0) return -1; } else { - for (i=0; i < 4; i++) { - memset (s->current_picture.motion_val[1][b_xy + i*h->b_stride], 0, 4*2*sizeof(int16_t)); - } + for (i=0; i < 4; i++) { + memset (s->current_picture.motion_val[1][b_xy + i*h->b_stride], 0, 4*2*sizeof(int16_t)); } } + } mb_type = MB_TYPE_16x16; - } else if (mb_type == 8 || mb_type == 33) { /* INTRA4x4 */ + } else if (mb_type == 8 || mb_type == 33) { /* INTRA4x4 */ memset (h->intra4x4_pred_mode_cache, -1, 8*5*sizeof(int8_t)); if (mb_type == 8) { - if (s->mb_x > 0) { - for (i=0; i < 4; i++) { - h->intra4x4_pred_mode_cache[scan8[0] - 1 + i*8] = h->intra4x4_pred_mode[mb_xy - 1][i]; - } - if (h->intra4x4_pred_mode_cache[scan8[0] - 1] == -1) { - h->left_samples_available = 0x5F5F; - } + if (s->mb_x > 0) { + for (i=0; i < 4; i++) { + h->intra4x4_pred_mode_cache[scan8[0] - 1 + i*8] = h->intra4x4_pred_mode[mb_xy - 1][i]; } - if (s->mb_y > 0) { - h->intra4x4_pred_mode_cache[4+8*0] = h->intra4x4_pred_mode[mb_xy - s->mb_stride][4]; - h->intra4x4_pred_mode_cache[5+8*0] = h->intra4x4_pred_mode[mb_xy - s->mb_stride][5]; - h->intra4x4_pred_mode_cache[6+8*0] = h->intra4x4_pred_mode[mb_xy - s->mb_stride][6]; - h->intra4x4_pred_mode_cache[7+8*0] = h->intra4x4_pred_mode[mb_xy - s->mb_stride][3]; + if (h->intra4x4_pred_mode_cache[scan8[0] - 1] == -1) { + h->left_samples_available = 0x5F5F; + } + } + if (s->mb_y > 0) { + h->intra4x4_pred_mode_cache[4+8*0] = h->intra4x4_pred_mode[mb_xy - s->mb_stride][4]; + h->intra4x4_pred_mode_cache[5+8*0] = h->intra4x4_pred_mode[mb_xy - s->mb_stride][5]; + h->intra4x4_pred_mode_cache[6+8*0] = h->intra4x4_pred_mode[mb_xy - s->mb_stride][6]; + h->intra4x4_pred_mode_cache[7+8*0] = h->intra4x4_pred_mode[mb_xy - s->mb_stride][3]; - if (h->intra4x4_pred_mode_cache[4+8*0] == -1) { - h->top_samples_available = 0x33FF; - } - } + if (h->intra4x4_pred_mode_cache[4+8*0] == -1) { + h->top_samples_available = 0x33FF; + } + } - /* decode prediction codes for luma blocks */ - for (i=0; i < 16; i+=2) { - vlc = svq3_get_ue_golomb (&s->gb); + /* decode prediction codes for luma blocks */ + for (i=0; i < 16; i+=2) { + vlc = svq3_get_ue_golomb (&s->gb); - if (vlc >= 25){ + if (vlc >= 25){ av_log(h->s.avctx, AV_LOG_ERROR, "luma prediction:%d\n", vlc); - return -1; + return -1; } - left = &h->intra4x4_pred_mode_cache[scan8[i] - 1]; - top = &h->intra4x4_pred_mode_cache[scan8[i] - 8]; + left = &h->intra4x4_pred_mode_cache[scan8[i] - 1]; + top = &h->intra4x4_pred_mode_cache[scan8[i] - 8]; - left[1] = svq3_pred_1[top[0] + 1][left[0] + 1][svq3_pred_0[vlc][0]]; - left[2] = svq3_pred_1[top[1] + 1][left[1] + 1][svq3_pred_0[vlc][1]]; + left[1] = svq3_pred_1[top[0] + 1][left[0] + 1][svq3_pred_0[vlc][0]]; + left[2] = svq3_pred_1[top[1] + 1][left[1] + 1][svq3_pred_0[vlc][1]]; - if (left[1] == -1 || left[2] == -1){ + if (left[1] == -1 || left[2] == -1){ av_log(h->s.avctx, AV_LOG_ERROR, "weird prediction\n"); - return -1; - } + return -1; + } } - } else { /* mb_type == 33, DC_128_PRED block type */ + } else { /* mb_type == 33, DC_128_PRED block type */ for (i=0; i < 4; i++) { - memset (&h->intra4x4_pred_mode_cache[scan8[0] + 8*i], DC_PRED, 4); + memset (&h->intra4x4_pred_mode_cache[scan8[0] + 8*i], DC_PRED, 4); } } write_back_intra_pred_mode (h); if (mb_type == 8) { - check_intra4x4_pred_mode (h); + check_intra4x4_pred_mode (h); h->top_samples_available = (s->mb_y == 0) ? 0x33FF : 0xFFFF; h->left_samples_available = (s->mb_x == 0) ? 0x5F5F : 0xFFFF; @@ -604,7 +604,7 @@ } mb_type = MB_TYPE_INTRA4x4; - } else { /* INTRA16x16 */ + } else { /* INTRA16x16 */ dir = i_mb_type_info[mb_type - 8].pred_mode; dir = (dir >> 1) ^ 3*(dir & 1) ^ 1; @@ -623,7 +623,7 @@ } if (s->pict_type == B_TYPE) { for (i=0; i < 4; i++) { - memset (s->current_picture.motion_val[1][b_xy + i*h->b_stride], 0, 4*2*sizeof(int16_t)); + memset (s->current_picture.motion_val[1][b_xy + i*h->b_stride], 0, 4*2*sizeof(int16_t)); } } } @@ -649,14 +649,14 @@ if (s->qscale > 31){ av_log(h->s.avctx, AV_LOG_ERROR, "qscale:%d\n", s->qscale); return -1; - } } + } if (IS_INTRA16x16(mb_type)) { if (svq3_decode_block (&s->gb, h->mb, 0, 0)){ av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding intra luma dc\n"); return -1; - } } + } if (cbp) { const int index = IS_INTRA16x16(mb_type) ? 1 : 0; @@ -664,38 +664,38 @@ for (i=0; i < 4; i++) { if ((cbp & (1 << i))) { - for (j=0; j < 4; j++) { - k = index ? ((j&1) + 2*(i&1) + 2*(j&2) + 4*(i&2)) : (4*i + j); - h->non_zero_count_cache[ scan8[k] ] = 1; + for (j=0; j < 4; j++) { + k = index ? ((j&1) + 2*(i&1) + 2*(j&2) + 4*(i&2)) : (4*i + j); + h->non_zero_count_cache[ scan8[k] ] = 1; - if (svq3_decode_block (&s->gb, &h->mb[16*k], index, type)){ + if (svq3_decode_block (&s->gb, &h->mb[16*k], index, type)){ av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding block\n"); - return -1; - } - } + return -1; + } } } + } if ((cbp & 0x30)) { for (i=0; i < 2; ++i) { - if (svq3_decode_block (&s->gb, &h->mb[16*(16 + 4*i)], 0, 3)){ + if (svq3_decode_block (&s->gb, &h->mb[16*(16 + 4*i)], 0, 3)){ av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding chroma dc block\n"); - return -1; - } + return -1; } + } if ((cbp & 0x20)) { - for (i=0; i < 8; i++) { - h->non_zero_count_cache[ scan8[16+i] ] = 1; + for (i=0; i < 8; i++) { + h->non_zero_count_cache[ scan8[16+i] ] = 1; - if (svq3_decode_block (&s->gb, &h->mb[16*(16 + i)], 1, 1)){ + if (svq3_decode_block (&s->gb, &h->mb[16*(16 + i)], 1, 1)){ av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding chroma ac block\n"); - return -1; - } - } + return -1; + } } } } + } s->current_picture.mb_type[mb_xy] = mb_type; @@ -786,8 +786,8 @@ } static int svq3_decode_frame (AVCodecContext *avctx, - void *data, int *data_size, - uint8_t *buf, int buf_size) { + void *data, int *data_size, + uint8_t *buf, int buf_size) { MpegEncContext *const s = avctx->priv_data; H264Context *const h = avctx->priv_data; int m, mb_type; @@ -797,7 +797,7 @@ s->flags = avctx->flags; s->flags2 = avctx->flags2; s->unrestricted_mv = 1; - + if (!s->context_initialized) { s->width = avctx->width; s->height = avctx->height; @@ -814,7 +814,7 @@ h->b_stride = 4*s->mb_width; alloc_tables (h); - + /* prowl for the "SEQH" marker in the extradata */ extradata = (unsigned char *)avctx->extradata; for (m = 0; m < avctx->extradata_size; m++) { @@ -824,7 +824,14 @@ } /* if a match was found, parse the extra data */ - if (!memcmp (extradata, "SEQH", 4)) { + if (!extradata){ //HACK: 3ivx splitter doesn't provide any extradata + h->halfpel_flag = 1; + h->thirdpel_flag = 0; + s->low_delay = 1; + h->unknown_svq3_flag =0; + avctx->has_b_frames = !s->low_delay; + } + else if (!memcmp (extradata, "SEQH", 4)) { GetBitContext gb; @@ -833,8 +840,8 @@ /* 'frame size code' and optional 'width, height' */ if (get_bits (&gb, 3) == 7) { - get_bits (&gb, 12); - get_bits (&gb, 12); + get_bits (&gb, 12); + get_bits (&gb, 12); } h->halfpel_flag = get_bits1 (&gb); @@ -852,7 +859,7 @@ get_bits1 (&gb); while (get_bits1 (&gb)) { - get_bits (&gb, 8); + get_bits (&gb, 8); } h->unknown_svq3_flag = get_bits1 (&gb); @@ -878,9 +885,9 @@ s->pict_type = h->slice_type; s->picture_number = h->slice_num; - + if(avctx->debug&FF_DEBUG_PICT_INFO){ - av_log(h->s.avctx, AV_LOG_DEBUG, "%c hpel:%d, tpel:%d aqp:%d qp:%d\n", + av_log(h->s.avctx, AV_LOG_DEBUG, "%c hpel:%d, tpel:%d aqp:%d qp:%d\n", av_get_pict_type_char(s->pict_type), h->halfpel_flag, h->thirdpel_flag, s->adaptive_quant, s->qscale ); @@ -932,48 +939,48 @@ for(m=0; m<2; m++){ int i; - for(i=0; i<4; i++){ - int j; - for(j=-1; j<4; j++) - h->ref_cache[m][scan8[0] + 8*i + j]= 1; + for(i=0; i<4; i++){ + int j; + for(j=-1; j<4; j++) + h->ref_cache[m][scan8[0] + 8*i + j]= 1; h->ref_cache[m][scan8[0] + 8*i + j]= PART_NOT_AVAILABLE; } } - + for (s->mb_y=0; s->mb_y < s->mb_height; s->mb_y++) { for (s->mb_x=0; s->mb_x < s->mb_width; s->mb_x++) { if ( (get_bits_count(&s->gb) + 7) >= s->gb.size_in_bits && - ((get_bits_count(&s->gb) & 7) == 0 || show_bits (&s->gb, (-get_bits_count(&s->gb) & 7)) == 0)) { + ((get_bits_count(&s->gb) & 7) == 0 || show_bits (&s->gb, (-get_bits_count(&s->gb) & 7)) == 0)) { - skip_bits(&s->gb, h->next_slice_index - get_bits_count(&s->gb)); - s->gb.size_in_bits = 8*buf_size; + skip_bits(&s->gb, h->next_slice_index - get_bits_count(&s->gb)); + s->gb.size_in_bits = 8*buf_size; - if (svq3_decode_slice_header (h)) - return -1; + if (svq3_decode_slice_header (h)) + return -1; - /* TODO: support s->mb_skip_run */ + /* TODO: support s->mb_skip_run */ } mb_type = svq3_get_ue_golomb (&s->gb); if (s->pict_type == I_TYPE) { - mb_type += 8; + mb_type += 8; } else if (s->pict_type == B_TYPE && mb_type >= 4) { - mb_type += 4; + mb_type += 4; } if (mb_type > 33 || svq3_decode_mb (h, mb_type)) { - av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding MB %d %d\n", s->mb_x, s->mb_y); - return -1; + av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding MB %d %d\n", s->mb_x, s->mb_y); + return -1; } if (mb_type != 0) { - hl_decode_mb (h); + hl_decode_mb (h); } if (s->pict_type != B_TYPE && !s->low_delay) { - s->current_picture.mb_type[s->mb_x + s->mb_y*s->mb_stride] = - (s->pict_type == P_TYPE && mb_type < 8) ? (mb_type - 1) : -1; + s->current_picture.mb_type[s->mb_x + s->mb_y*s->mb_stride] = + (s->pict_type == P_TYPE && mb_type < 8) ? (mb_type - 1) : -1; } } @@ -983,7 +990,7 @@ MPV_frame_end(s); if (s->pict_type == B_TYPE || s->low_delay) { - *(AVFrame *) data = *(AVFrame *) &s->current_picture; + *(AVFrame *) data = *(AVFrame *) &s->current_picture; } else { *(AVFrame *) data = *(AVFrame *) &s->last_picture; } @@ -992,9 +999,9 @@ /* dont output the last pic after seeking */ if (s->last_picture_ptr || s->low_delay) { - *data_size = sizeof(AVFrame); + *data_size = sizeof(AVFrame); } - + return buf_size; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <h_y...@us...> - 2006-09-30 03:45:49
|
Revision: 296 http://svn.sourceforge.net/ffdshow-tryout/?rev=296&view=rev Author: h_yamagata Date: 2006-09-29 20:45:43 -0700 (Fri, 29 Sep 2006) Log Message: ----------- show error message if the source filter did not provide for necessary information to decode SVQ3. Modified Paths: -------------- src/ffmpeg/libavcodec/svq3.c Modified: src/ffmpeg/libavcodec/svq3.c =================================================================== --- src/ffmpeg/libavcodec/svq3.c 2006-09-30 03:20:35 UTC (rev 295) +++ src/ffmpeg/libavcodec/svq3.c 2006-09-30 03:45:43 UTC (rev 296) @@ -42,6 +42,7 @@ * @file svq3.c * svq3 decoder. */ +#include "windows.h" #define FULLPEL_MODE 1 #define HALFPEL_MODE 2 @@ -785,6 +786,7 @@ return 0; } +static int first_svq3_error; static int svq3_decode_frame (AVCodecContext *avctx, void *data, int *data_size, uint8_t *buf, int buf_size) { @@ -799,6 +801,7 @@ s->unrestricted_mv = 1; if (!s->context_initialized) { + first_svq3_error=1; s->width = avctx->width; s->height = avctx->height; h->pred4x4[DIAG_DOWN_LEFT_PRED] = pred4x4_down_left_svq3_c; @@ -830,6 +833,11 @@ s->low_delay = 1; h->unknown_svq3_flag =0; avctx->has_b_frames = !s->low_delay; + if(first_svq3_error) + { + first_svq3_error= 0; + MessageBox(NULL,"The splitter filter did not provide for necessary information to decode SVQ3.\nPlease try alternative source filter.","ffdshow error",MB_ICONERROR|MB_OK); + } } else if (!memcmp (extradata, "SEQH", 4)) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <h_y...@us...> - 2006-09-29 13:03:23
|
Revision: 292 http://svn.sourceforge.net/ffdshow-tryout/?rev=292&view=rev Author: h_yamagata Date: 2006-09-29 06:03:10 -0700 (Fri, 29 Sep 2006) Log Message: ----------- after build registration for developers Modified Paths: -------------- bin/distrib/ffdshow.nsi bin/register.bat ffdshow.vcproj ffdshow_2005.vcproj src/Tconfig.cpp src/Tconfig.h Modified: bin/distrib/ffdshow.nsi =================================================================== --- bin/distrib/ffdshow.nsi 2006-09-29 12:54:00 UTC (rev 291) +++ bin/distrib/ffdshow.nsi 2006-09-29 13:03:10 UTC (rev 292) @@ -5,7 +5,7 @@ !verbose 3 Name "ffdshow" -!define FFDSHOW_VERSION "20060927-rev268" +!define FFDSHOW_VERSION "20060929-rev289" ; For those who use MSVC8 for their products, ; it is strongly recommended to define MSVCRT8 @@ -421,6 +421,7 @@ ; Write the installation path into the registry WriteRegStr HKLM SOFTWARE\GNU\ffdshow "pth" "$INSTDIR" + DeleteRegValue HKLM SOFTWARE\GNU\ffdshow "pthPriority" ; Write the uninstall keys for Windows WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ffdshow" "DisplayName" "ffdshow" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ffdshow" "UninstallString" '"$INSTDIR\uninstall.exe"' @@ -977,6 +978,7 @@ Delete "$INSTDIR\ff_mpeg2enc.dll" Delete "$INSTDIR\ff_theora.dll" Delete "$INSTDIR\ff_wmv9.dll" + Delete "$INSTDIR\ff_x264.dll" Delete "$INSTDIR\ff_liba52.dll" Delete "$INSTDIR\ff_libdts.dll" Delete "$INSTDIR\ff_libfaad2.dll" @@ -1093,6 +1095,7 @@ Delete "$INSTDIR\help\Video+encoder+features.html" Delete "$INSTDIR\help\VirtualDub.html" Delete "$INSTDIR\help\Warpsharp.html" + Delete "$INSTDIR\help\x264.html" Delete "$INSTDIR\help\XviD.html" RMDir "$INSTDIR\help" Delete "$INSTDIR\dict\Czech.dic" Modified: bin/register.bat =================================================================== --- bin/register.bat 2006-09-29 12:54:00 UTC (rev 291) +++ bin/register.bat 2006-09-29 13:03:10 UTC (rev 292) @@ -1,9 +1,9 @@ @echo off echo Windows Registry Editor Version 5.00 > ffdshow.reg echo. >> ffdshow.reg -echo [HKEY_CURRENT_USER\SOFTWARE\GNU\ffdshow] >> ffdshow.reg +echo [HKEY_LOCAL_MACHINE\SOFTWARE\GNU\ffdshow] >> ffdshow.reg set FFPATH=%~dp0% -echo "pth"="%FFPATH:\=\\%" >> ffdshow.reg +echo "pthPriority"="%FFPATH:\=\\%" >> ffdshow.reg regedit /s ffdshow.reg -start regsvr32 ffdshow.ax /s +start regsvr32 %FFPATH%ffdshow.ax /s del ffdshow.reg \ No newline at end of file Modified: ffdshow.vcproj =================================================================== --- ffdshow.vcproj 2006-09-29 12:54:00 UTC (rev 291) +++ ffdshow.vcproj 2006-09-29 13:03:10 UTC (rev 292) @@ -48,7 +48,7 @@ Name="VCCustomBuildTool"/> <Tool Name="VCLinkerTool" - RegisterOutput="TRUE" + RegisterOutput="FALSE" IgnoreImportLibrary="TRUE" AdditionalOptions="/MACHINE:I386" AdditionalDependencies="msvcrtd.lib msvcprtd.lib winmm.lib comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib dinput.lib dxguid.lib oldnames.lib shlwapi.lib $(NOINHERIT)" @@ -68,7 +68,10 @@ TargetEnvironment="1" TypeLibraryName=".\Debug/ffdshow.tlb"/> <Tool - Name="VCPostBuildEventTool"/> + Name="VCPostBuildEventTool" + Description="Registering output..." + CommandLine="bin/register.bat" + /> <Tool Name="VCPreBuildEventTool"/> <Tool @@ -131,7 +134,7 @@ Name="VCCustomBuildTool"/> <Tool Name="VCLinkerTool" - RegisterOutput="TRUE" + RegisterOutput="FALSE" IgnoreImportLibrary="TRUE" AdditionalOptions="/MACHINE:I386" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib msvcrt.lib msvcprt.lib winmm.lib comctl32.lib dinput.lib dxguid.lib oldnames.lib shlwapi.lib $(NOINHERIT)" @@ -153,7 +156,10 @@ TargetEnvironment="1" TypeLibraryName=".\Release/ffdshow.tlb"/> <Tool - Name="VCPostBuildEventTool"/> + Name="VCPostBuildEventTool" + Description="Registering output..." + CommandLine="bin/register.bat" + /> <Tool Name="VCPreBuildEventTool"/> <Tool @@ -210,7 +216,7 @@ Name="VCCustomBuildTool"/> <Tool Name="VCLinkerTool" - RegisterOutput="TRUE" + RegisterOutput="FALSE" IgnoreImportLibrary="TRUE" AdditionalOptions="/MACHINE:I386" AdditionalDependencies="msvcrtd.lib msvcprtd.lib winmm.lib comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib dinput.lib dxguid.lib oldnames.lib shlwapi.lib $(NOINHERIT)" @@ -230,7 +236,10 @@ TargetEnvironment="1" TypeLibraryName=".\Debug/ffdshow.tlb"/> <Tool - Name="VCPostBuildEventTool"/> + Name="VCPostBuildEventTool" + Description="Registering output..." + CommandLine="bin/register.bat" + /> <Tool Name="VCPreBuildEventTool"/> <Tool @@ -294,7 +303,7 @@ Name="VCCustomBuildTool"/> <Tool Name="VCLinkerTool" - RegisterOutput="TRUE" + RegisterOutput="FALSE" IgnoreImportLibrary="TRUE" AdditionalOptions="/MACHINE:I386" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib msvcrt.lib msvcprt.lib winmm.lib comctl32.lib dinput.lib dxguid.lib oldnames.lib shlwapi.lib $(NOINHERIT)" @@ -316,7 +325,10 @@ TargetEnvironment="1" TypeLibraryName=".\Release/ffdshow.tlb"/> <Tool - Name="VCPostBuildEventTool"/> + Name="VCPostBuildEventTool" + Description="Registering output..." + CommandLine="bin/register.bat" + /> <Tool Name="VCPreBuildEventTool"/> <Tool Modified: ffdshow_2005.vcproj =================================================================== --- ffdshow_2005.vcproj 2006-09-29 12:54:00 UTC (rev 291) +++ ffdshow_2005.vcproj 2006-09-29 13:03:10 UTC (rev 292) @@ -93,7 +93,7 @@ /> <Tool Name="VCLinkerTool" - RegisterOutput="true" + RegisterOutput="false" IgnoreImportLibrary="true" AdditionalDependencies="msvcrtd.lib msvcprtd.lib winmm.lib comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib dinput.lib dxguid.lib oldnames.lib shlwapi.lib $(NOINHERIT)" OutputFile="bin\ffdshow.ax" @@ -130,6 +130,8 @@ /> <Tool Name="VCPostBuildEventTool" + Description="Registering output..." + CommandLine="bin/register.bat" /> </Configuration> <Configuration @@ -242,6 +244,8 @@ /> <Tool Name="VCPostBuildEventTool" + Description="Registering output..." + CommandLine="bin/register.bat" /> </Configuration> <Configuration @@ -319,7 +323,7 @@ /> <Tool Name="VCLinkerTool" - RegisterOutput="true" + RegisterOutput="false" IgnoreImportLibrary="true" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib msvcrt.lib msvcprt.lib winmm.lib comctl32.lib dinput.lib dxguid.lib oldnames.lib shlwapi.lib $(NOINHERIT)" OutputFile="bin\ffdshow.ax" @@ -358,6 +362,8 @@ /> <Tool Name="VCPostBuildEventTool" + Description="Registering output..." + CommandLine="bin/register.bat" /> </Configuration> <Configuration @@ -474,6 +480,8 @@ /> <Tool Name="VCPostBuildEventTool" + Description="Registering output..." + CommandLine="bin/register.bat" /> </Configuration> <Configuration @@ -549,7 +557,7 @@ /> <Tool Name="VCLinkerTool" - RegisterOutput="true" + RegisterOutput="false" IgnoreImportLibrary="true" AdditionalDependencies="msvcrtd.lib msvcprtd.lib winmm.lib comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib dinput.lib dxguid.lib oldnames.lib shlwapi.lib $(NOINHERIT)" OutputFile="bin\ffdshow.ax" @@ -586,6 +594,8 @@ /> <Tool Name="VCPostBuildEventTool" + Description="Registering output..." + CommandLine="bin/register.bat" /> </Configuration> <Configuration @@ -699,6 +709,8 @@ /> <Tool Name="VCPostBuildEventTool" + Description="Registering output..." + CommandLine="bin/register.bat" /> </Configuration> <Configuration @@ -777,7 +789,7 @@ /> <Tool Name="VCLinkerTool" - RegisterOutput="true" + RegisterOutput="false" IgnoreImportLibrary="true" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib msvcrt.lib msvcprt.lib winmm.lib comctl32.lib dinput.lib dxguid.lib oldnames.lib shlwapi.lib $(NOINHERIT)" OutputFile="bin\ffdshow.ax" @@ -816,6 +828,8 @@ /> <Tool Name="VCPostBuildEventTool" + Description="Registering output..." + CommandLine="bin/register.bat" /> </Configuration> <Configuration @@ -933,6 +947,8 @@ /> <Tool Name="VCPostBuildEventTool" + Description="Registering output..." + CommandLine="bin/register.bat" /> </Configuration> </Configurations> Modified: src/Tconfig.cpp =================================================================== --- src/Tconfig.cpp 2006-09-29 12:54:00 UTC (rev 291) +++ src/Tconfig.cpp 2006-09-29 13:03:10 UTC (rev 292) @@ -153,14 +153,23 @@ void Tconfig::load(void) { + savePth= false; char_t sysdir[MAX_PATH];GetSystemDirectory(sysdir,MAX_PATH); TregOpRegRead t(HKEY_LOCAL_MACHINE,FFDSHOW_REG_PARENT _l("\\") FFDSHOW); - t._REG_OP_S(0,_l("pth"),pth,MAX_PATH,sysdir); + t._REG_OP_S(0,_l("pthPriority"),pth,MAX_PATH,_l("")); + if (pth[0]=='\0') + { + t._REG_OP_S(0,_l("pth"),pth,MAX_PATH,sysdir); + savePth= true; + } } void Tconfig::save(void) { - TregOpRegWrite t(HKEY_LOCAL_MACHINE,FFDSHOW_REG_PARENT _l("\\") FFDSHOW); - t._REG_OP_S(0,_l("pth"),pth,MAX_PATH,_l("")); + if(savePth) + { + TregOpRegWrite t(HKEY_LOCAL_MACHINE,FFDSHOW_REG_PARENT _l("\\") FFDSHOW); + t._REG_OP_S(0,_l("pth"),pth,MAX_PATH,_l("")); + } } #ifndef WIN64 Modified: src/Tconfig.h =================================================================== --- src/Tconfig.h 2006-09-29 12:54:00 UTC (rev 291) +++ src/Tconfig.h 2006-09-29 13:03:10 UTC (rev 292) @@ -32,6 +32,7 @@ ~Tconfig(); void init1(HINSTANCE hi),init2(void),load(void),save(void); char_t pth[MAX_PATH],epth[MAX_PATH]; + bool savePth; const char_t *getExeflnm(void) const; static bool winNT; static int available_cpu_flags,cpu_flags,lavc_cpu_flags,sws_cpu_flags; //suppose that CPU capabilities won't change per instance This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <h_y...@us...> - 2006-09-29 12:54:07
|
Revision: 291 http://svn.sourceforge.net/ffdshow-tryout/?rev=291&view=rev Author: h_yamagata Date: 2006-09-29 05:54:00 -0700 (Fri, 29 Sep 2006) Log Message: ----------- cosmetics Modified Paths: -------------- src/ffdshow.rc Modified: src/ffdshow.rc =================================================================== --- src/ffdshow.rc 2006-09-29 11:47:06 UTC (rev 290) +++ src/ffdshow.rc 2006-09-29 12:54:00 UTC (rev 291) @@ -169,13 +169,13 @@ LTEXT "Error concealment:",IDC_LBL_ERROR_CONCEALMENT,129,93,119,8 COMBOBOX IDC_CBX_ERROR_CONCEALMENT,127,102,122,103,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP GROUPBOX "Quality control",IDC_GRP_H264OUALITYCONTROL,0,119,253,45 - CONTROL "Drop frame on delay",IDC_CHB_DROP_ON_DELAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,130,77,10 - EDITTEXT IDC_ED_DROP_ON_DELAY_TIME,87,128,23,12,ES_AUTOHSCROLL - LTEXT "ms",IDC_TXT_MS,111,130,10,8 + CONTROL "Drop frame on delay",IDC_CHB_DROP_ON_DELAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,130,100,10 + EDITTEXT IDC_ED_DROP_ON_DELAY_TIME,121,128,23,12,ES_AUTOHSCROLL + LTEXT "ms",IDC_TXT_MS,148,130,10,8 CONTROL "Skip H264 deblocking on delay",IDC_CHB_H264_SKIP_ON_DELAY, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,145,108,9 - EDITTEXT IDC_ED_H264SKIP_ON_DELAY_TIME,116,143,26,12,ES_AUTOHSCROLL - LTEXT "ms",IDC_TXT_MS2,143,145,10,8 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,145,123,9 + EDITTEXT IDC_ED_H264SKIP_ON_DELAY_TIME,121,143,26,12,ES_AUTOHSCROLL + LTEXT "ms",IDC_TXT_MS2,148,145,10,8 END IDD_QUEUE DIALOGEX 0, 0, 254, 165 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <h_y...@us...> - 2006-09-28 13:25:19
|
Revision: 287 http://svn.sourceforge.net/ffdshow-tryout/?rev=287&view=rev Author: h_yamagata Date: 2006-09-28 06:25:12 -0700 (Thu, 28 Sep 2006) Log Message: ----------- Minor fix of rev 283 Revision Links: -------------- http://svn.sourceforge.net/ffdshow-tryout/?rev=283&view=rev Modified Paths: -------------- src/imgFilters/TffPict.cpp Modified: src/imgFilters/TffPict.cpp =================================================================== --- src/imgFilters/TffPict.cpp 2006-09-28 11:41:23 UTC (rev 286) +++ src/imgFilters/TffPict.cpp 2006-09-28 13:25:12 UTC (rev 287) @@ -391,9 +391,9 @@ size+=stride[i]*(((rectFull.dy+1)>>cspInfo.shiftY[i])+edge); // rectFull.dy should be added by 1 when rectFull.dy is odd number. buf.alloc(size); data[0]=buf; - data[1]=data[0]+stride[0]*((rectFull.dy>>cspInfo.shiftY[0])+edge); - data[2]=data[1]+stride[1]*((rectFull.dy>>cspInfo.shiftY[1])+edge); - data[3]=data[2]+stride[2]*((rectFull.dy>>cspInfo.shiftY[2])+edge); + data[1]=data[0]+stride[0]*(((rectFull.dy+1)>>cspInfo.shiftY[0])+edge); + data[2]=data[1]+stride[1]*(((rectFull.dy+1)>>cspInfo.shiftY[1])+edge); + data[3]=data[2]+stride[2]*(((rectFull.dy+1)>>cspInfo.shiftY[2])+edge); } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <h_y...@us...> - 2006-09-28 11:19:21
|
Revision: 285 http://svn.sourceforge.net/ffdshow-tryout/?rev=285&view=rev Author: h_yamagata Date: 2006-09-28 04:19:15 -0700 (Thu, 28 Sep 2006) Log Message: ----------- Bug fix : black out in only one frame movie Modified Paths: -------------- src/TffdshowDecVideoOutputPin.cpp src/TffdshowDecVideoOutputPin.h Modified: src/TffdshowDecVideoOutputPin.cpp =================================================================== --- src/TffdshowDecVideoOutputPin.cpp 2006-09-28 10:35:45 UTC (rev 284) +++ src/TffdshowDecVideoOutputPin.cpp 2006-09-28 11:19:15 UTC (rev 285) @@ -14,7 +14,7 @@ TffdshowDecVideo *Ifdv, HRESULT * phr, LPCWSTR pName) - :CTransformOutputPin(pObjectName, Ifdv, phr, pName), fdv(Ifdv), queue(NULL), oldSettingOfMultiThread(-1), m_IsQueueListedApp(-1) + :CTransformOutputPin(pObjectName, Ifdv, phr, pName), fdv(Ifdv), queue(NULL), oldSettingOfMultiThread(-1), m_IsQueueListedApp(-1), isFirstFrame(true) { DPRINTF(_l("TffdshowDecVideoOutputPin::Constructor")); } @@ -41,9 +41,10 @@ { if(m_pInputPin == NULL) return VFW_E_NOT_CONNECTED; - if(fdv->m_aboutToFlash == true) + if(!isFirstFrame && fdv->m_aboutToFlash == true) return S_FALSE; + isFirstFrame= false; if(fdv->m_IsOldVideoRenderer==false && fdv->presetSettings->multiThread && m_IsQueueListedApp) { oldSettingOfMultiThread= fdv->presetSettings->multiThread; @@ -137,6 +138,7 @@ if (m_Connected == NULL) return VFW_E_NOT_CONNECTED; + isFirstFrame= true; if(fdv->m_IsOldVideoRenderer==false && oldSettingOfMultiThread && m_IsQueueListedApp) { DPRINTF(_l("queue->NewSegment")); Modified: src/TffdshowDecVideoOutputPin.h =================================================================== --- src/TffdshowDecVideoOutputPin.h 2006-09-28 10:35:45 UTC (rev 284) +++ src/TffdshowDecVideoOutputPin.h 2006-09-28 11:19:15 UTC (rev 285) @@ -22,6 +22,7 @@ COutputQueue* queue; strings queuelistList; int m_IsQueueListedApp; // -1: first run, 0: false, 1: true + bool isFirstFrame; public: TffdshowDecVideoOutputPin( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <h_y...@us...> - 2006-09-28 10:35:51
|
Revision: 284 http://svn.sourceforge.net/ffdshow-tryout/?rev=284&view=rev Author: h_yamagata Date: 2006-09-28 03:35:45 -0700 (Thu, 28 Sep 2006) Log Message: ----------- Bug fix : color space conversion(TffPict::convertCSP) : A video with odd number lines often crashes when you use some filter, like swscaler gaussian blur. Color space conversion is used everywhere. Modified Paths: -------------- src/imgFilters/TffPict.cpp Modified: src/imgFilters/TffPict.cpp =================================================================== --- src/imgFilters/TffPict.cpp 2006-09-28 05:55:43 UTC (rev 283) +++ src/imgFilters/TffPict.cpp 2006-09-28 10:35:45 UTC (rev 284) @@ -388,7 +388,7 @@ } size_t size=0; for (unsigned int i=0;i<cspInfo.numPlanes;i++) - size+=stride[i]*((rectFull.dy>>cspInfo.shiftY[i])+edge); + size+=stride[i]*(((rectFull.dy+1)>>cspInfo.shiftY[i])+edge); // rectFull.dy should be added by 1 when rectFull.dy is odd number. buf.alloc(size); data[0]=buf; data[1]=data[0]+stride[0]*((rectFull.dy>>cspInfo.shiftY[0])+edge); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dre...@us...> - 2006-09-28 05:55:49
|
Revision: 283 http://svn.sourceforge.net/ffdshow-tryout/?rev=283&view=rev Author: drevil_xxl Date: 2006-09-27 22:55:43 -0700 (Wed, 27 Sep 2006) Log Message: ----------- (ffmpeg 6365) Handle case of get_bits(0). Modified Paths: -------------- src/ffmpeg/libavcodec/wavpack.c Modified: src/ffmpeg/libavcodec/wavpack.c =================================================================== --- src/ffmpeg/libavcodec/wavpack.c 2006-09-27 23:53:26 UTC (rev 282) +++ src/ffmpeg/libavcodec/wavpack.c 2006-09-28 05:55:43 UTC (rev 283) @@ -142,7 +142,7 @@ if(k<1 || k>65535)return 0; p = av_log2_16bit(k); e = (1 << (p + 1)) - k - 1; - res = get_bits(gb, p); + res = p ? get_bits(gb, p) : 0; if(res >= e){ res = (res<<1) - e + get_bits1(gb); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cl...@us...> - 2006-09-27 12:21:35
|
Revision: 275 http://svn.sourceforge.net/ffdshow-tryout/?rev=275&view=rev Author: clsid2 Date: 2006-09-27 05:11:35 -0700 (Wed, 27 Sep 2006) Log Message: ----------- indentation Modified Paths: -------------- src/ffmpeg/libavcodec/adpcm.c Modified: src/ffmpeg/libavcodec/adpcm.c =================================================================== --- src/ffmpeg/libavcodec/adpcm.c 2006-09-27 11:55:17 UTC (rev 274) +++ src/ffmpeg/libavcodec/adpcm.c 2006-09-27 12:11:35 UTC (rev 275) @@ -165,8 +165,8 @@ switch(avctx->codec->id) { case CODEC_ID_ADPCM_CT: - c->status[0].step = c->status[1].step = 511; - break; + c->status[0].step = c->status[1].step = 511; + break; default: break; } @@ -232,16 +232,16 @@ predictor = c->predictor; /* predictor update is not so trivial: predictor is multiplied on 254/256 before updating */ if(sign) - predictor = ((predictor * 254) >> 8) - diff; + predictor = ((predictor * 254) >> 8) - diff; else - predictor = ((predictor * 254) >> 8) + diff; + predictor = ((predictor * 254) >> 8) + diff; /* calculate new step and clamp it to range 511..32767 */ new_step = (ct_adpcm_table[nibble & 7] * c->step) >> 8; c->step = new_step; if(c->step < 511) - c->step = 511; + c->step = 511; if(c->step > 32767) - c->step = 32767; + c->step = 32767; CLAMP_TO_SHORT(predictor); c->predictor = predictor; @@ -464,7 +464,7 @@ cs->predictor = (int16_t)(src[0] + (src[1]<<8)); src+=2; - // XXX: is this correct ??: *samples++ = cs->predictor; + // XXX: is this correct ??: *samples++ = cs->predictor; cs->step_index = *src++; if (cs->step_index > 88){ @@ -481,9 +481,9 @@ for(i=0; i<=st; i++) *samples++ = adpcm_ima_expand_nibble(&c->status[i], src[4*i] >> 4 , 3); src++; + } + src += 4*st; } - src += 4*st; - } break; case CODEC_ID_ADPCM_4XM: cs = &(c->status[0]); @@ -500,13 +500,13 @@ m= (buf_size - (src - buf))>>st; for(i=0; i<m; i++) { - *samples++ = adpcm_ima_expand_nibble(&c->status[0], src[i] & 0x0F, 4); + *samples++ = adpcm_ima_expand_nibble(&c->status[0], src[i] & 0x0F, 4); if (st) *samples++ = adpcm_ima_expand_nibble(&c->status[1], src[i+m] & 0x0F, 4); *samples++ = adpcm_ima_expand_nibble(&c->status[0], src[i] >> 4, 4); - if (st) + if (st) *samples++ = adpcm_ima_expand_nibble(&c->status[1], src[i+m] >> 4, 4); - } + } src += m<<st; @@ -719,7 +719,7 @@ } break; case CODEC_ID_ADPCM_CT: - while (src < buf + buf_size) { + while (src < buf + buf_size) { if (st) { *samples++ = adpcm_ct_expand_nibble(&c->status[0], (src[0] >> 4) & 0x0F); @@ -731,7 +731,7 @@ *samples++ = adpcm_ct_expand_nibble(&c->status[0], src[0] & 0x0F); } - src++; + src++; } break; case CODEC_ID_ADPCM_SBPRO_4: @@ -778,19 +778,19 @@ break; case CODEC_ID_ADPCM_SWF: { - GetBitContext gb; - const int *table; - int k0, signmask; - int size = buf_size*8; + GetBitContext gb; + const int *table; + int k0, signmask; + int size = buf_size*8; - init_get_bits(&gb, buf, size); + init_get_bits(&gb, buf, size); - // first frame, read bits & inital values - if (!c->nb_bits) - { - c->nb_bits = get_bits(&gb, 2)+2; -// av_log(NULL,AV_LOG_INFO,"nb_bits: %d\n", c->nb_bits); - } + // first frame, read bits & inital values + if (!c->nb_bits) + { + c->nb_bits = get_bits(&gb, 2)+2; +// av_log(NULL,AV_LOG_INFO,"nb_bits: %d\n", c->nb_bits); + } table = swf_index_tables[c->nb_bits-2]; k0 = 1 << (c->nb_bits-2); @@ -804,47 +804,47 @@ // wrap around at every 4096 samples... if ((c->nb_samples & 0xfff) == 1) { - for (i = 0; i <= st; i++) - { - *samples++ = c->status[i].predictor = get_sbits(&gb, 16); - c->status[i].step_index = get_bits(&gb, 6); - } + for (i = 0; i <= st; i++) + { + *samples++ = c->status[i].predictor = get_sbits(&gb, 16); + c->status[i].step_index = get_bits(&gb, 6); + } } // similar to IMA adpcm for (i = 0; i <= st; i++) { - int delta = get_bits(&gb, c->nb_bits); - int step = step_table[c->status[i].step_index]; - long vpdiff = 0; // vpdiff = (delta+0.5)*step/4 - int k = k0; + int delta = get_bits(&gb, c->nb_bits); + int step = step_table[c->status[i].step_index]; + long vpdiff = 0; // vpdiff = (delta+0.5)*step/4 + int k = k0; - do { - if (delta & k) + do { + if (delta & k) + vpdiff += step; + step >>= 1; + k >>= 1; + } while(k); vpdiff += step; - step >>= 1; - k >>= 1; - } while(k); - vpdiff += step; - if (delta & signmask) - c->status[i].predictor -= vpdiff; - else - c->status[i].predictor += vpdiff; + if (delta & signmask) + c->status[i].predictor -= vpdiff; + else + c->status[i].predictor += vpdiff; - c->status[i].step_index += table[delta & (~signmask)]; + c->status[i].step_index += table[delta & (~signmask)]; - c->status[i].step_index = clip(c->status[i].step_index, 0, 88); - c->status[i].predictor = clip(c->status[i].predictor, -32768, 32767); + c->status[i].step_index = clip(c->status[i].step_index, 0, 88); + c->status[i].predictor = clip(c->status[i].predictor, -32768, 32767); - *samples++ = c->status[i].predictor; - } - } + *samples++ = c->status[i].predictor; + } + } -// src += get_bits_count(&gb)*8; - src += size; +// src += get_bits_count(&gb)*8; + src += size; - break; + break; } case CODEC_ID_ADPCM_YAMAHA: while (src < buf + buf_size) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cl...@us...> - 2006-09-27 11:55:23
|
Revision: 274 http://svn.sourceforge.net/ffdshow-tryout/?rev=274&view=rev Author: clsid2 Date: 2006-09-27 04:55:17 -0700 (Wed, 27 Sep 2006) Log Message: ----------- indentation Modified Paths: -------------- src/ffmpeg/libavcodec/ac3enc.c Modified: src/ffmpeg/libavcodec/ac3enc.c =================================================================== --- src/ffmpeg/libavcodec/ac3enc.c 2006-09-27 11:00:52 UTC (rev 273) +++ src/ffmpeg/libavcodec/ac3enc.c 2006-09-27 11:55:17 UTC (rev 274) @@ -830,12 +830,12 @@ /* number of channels */ if (channels < 1 || channels > 6) - return -1; - s->acmod = avctx->ac3mode; - s->lfe = avctx->ac3lfe; + return -1; + s->acmod = avctx->ac3mode; /* intentional diff from ffmpeg */ + s->lfe = avctx->ac3lfe; /* intentional diff from ffmpeg */ s->nb_all_channels = channels; - s->nb_channels = s->lfe?channels-1:channels; //channels > 5 ? 5 : channels; - s->lfe_channel = s->lfe?channels-1:-1; //s->lfe ? 5 : -1; + s->nb_channels = s->lfe?channels-1:channels; //channels > 5 ? 5 : channels; /* intentional diff from ffmpeg */ + s->lfe_channel = s->lfe?channels-1:-1; //s->lfe ? 5 : -1; /* intentional diff from ffmpeg */ /* frequency */ for(i=0;i<3;i++) { @@ -875,7 +875,7 @@ s->nb_coefs[ch] = ((s->chbwcod[ch] + 12) * 3) + 37; } if (s->lfe) { - s->nb_coefs[s->lfe_channel] = 7; /* fixed */ + s->nb_coefs[s->lfe_channel] = 7; /* fixed */ } /* initial snr offset */ s->csnroffst = 40; @@ -909,9 +909,9 @@ put_bits(&s->pb, 3, s->bsmod); put_bits(&s->pb, 3, s->acmod); if ((s->acmod & 0x01) && s->acmod != 0x01) - put_bits(&s->pb, 2, 1); /* XXX -4.5 dB */ + put_bits(&s->pb, 2, 1); /* XXX -4.5 dB */ if (s->acmod & 0x04) - put_bits(&s->pb, 2, 1); /* XXX -6 dB */ + put_bits(&s->pb, 2, 1); /* XXX -6 dB */ if (s->acmod == 0x02) put_bits(&s->pb, 2, 0); /* surround not indicated */ put_bits(&s->pb, 1, s->lfe); /* LFE */ @@ -997,20 +997,20 @@ if (s->acmod == 2) { - if(block_num==0) - { - /* first block must define rematrixing (rematstr) */ - put_bits(&s->pb, 1, 1); + if(block_num==0) + { + /* first block must define rematrixing (rematstr) */ + put_bits(&s->pb, 1, 1); - /* dummy rematrixing rematflg(1:4)=0 */ - for (rbnd=0;rbnd<4;rbnd++) - put_bits(&s->pb, 1, 0); - } - else - { - /* no matrixing (but should be used in the future) */ - put_bits(&s->pb, 1, 0); - } + /* dummy rematrixing rematflg(1:4)=0 */ + for (rbnd=0;rbnd<4;rbnd++) + put_bits(&s->pb, 1, 0); + } + else + { + /* no matrixing (but should be used in the future) */ + put_bits(&s->pb, 1, 0); + } } #if defined(DEBUG) @@ -1025,7 +1025,7 @@ } if (s->lfe) { - put_bits(&s->pb, 1, exp_strategy[s->lfe_channel]); + put_bits(&s->pb, 1, exp_strategy[s->lfe_channel]); } for(ch=0;ch<s->nb_channels;ch++) { @@ -1049,7 +1049,7 @@ group_size = 4; break; } - nb_groups = (s->nb_coefs[ch] + (group_size * 3) - 4) / (3 * group_size); + nb_groups = (s->nb_coefs[ch] + (group_size * 3) - 4) / (3 * group_size); p = encoded_exp[ch]; /* first exponent */ @@ -1077,8 +1077,8 @@ put_bits(&s->pb, 7, ((delta0 * 5 + delta1) * 5) + delta2); } - if (ch != s->lfe_channel) - put_bits(&s->pb, 2, 0); /* no gain range info */ + if (ch != s->lfe_channel) + put_bits(&s->pb, 2, 0); /* no gain range info */ } /* bit allocation info */ @@ -1210,11 +1210,11 @@ case 0: break; case 1: - if (q != 128) + if (q != 128) put_bits(&s->pb, 5, q); break; case 2: - if (q != 128) + if (q != 128) put_bits(&s->pb, 7, q); break; case 3: @@ -1357,7 +1357,7 @@ /* compute input samples */ memcpy(input_samples, s->last_samples[ch], N/2 * sizeof(int16_t)); sinc = s->nb_all_channels; - sptr = samples + (sinc * (N/2) * i) + avctx->ac3channels[ch]; + sptr = samples + (sinc * (N/2) * i) + avctx->ac3channels[ch]; /* intentional diff from ffmpeg */ for(j=0;j<N/2;j++) { v = *sptr; input_samples[j + N/2] = v; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <h_y...@us...> - 2006-09-27 11:00:58
|
Revision: 273 http://svn.sourceforge.net/ffdshow-tryout/?rev=273&view=rev Author: h_yamagata Date: 2006-09-27 04:00:52 -0700 (Wed, 27 Sep 2006) Log Message: ----------- Compilation fix for GCC Modified Paths: -------------- src/dialog/Cfont.cpp src/subtitles/TfontSettings.cpp Modified: src/dialog/Cfont.cpp =================================================================== --- src/dialog/Cfont.cpp 2006-09-27 09:20:50 UTC (rev 272) +++ src/dialog/Cfont.cpp 2006-09-27 11:00:52 UTC (rev 273) @@ -21,6 +21,8 @@ #include "TfontSettings.h" #include "IffdshowParamsEnum.h" #include "reg.h" +#include <tchar.h> +#include <string.h> int CALLBACK TfontPage::EnumFamCallBackCharsets(CONST LOGFONT *lpelf,CONST TEXTMETRIC *lpntm,DWORD FontType,LPARAM lParam) { @@ -130,7 +132,7 @@ TregOpRegRead tNSI(HKEY_LOCAL_MACHINE,FFDSHOW_REG_PARENT _l("\\") FFDSHOW); char_t langId[MAX_PATH]; tNSI._REG_OP_S(0,_l("lang"),langId,MAX_PATH,_l("1033")); - if(_tcsnccmp(langId,_l("1041"),4)==0) + if(_tcsncmp(langId,_l("1041"),4)==0) {lang[0]='J';lang[1]='P';} } Modified: src/subtitles/TfontSettings.cpp =================================================================== --- src/subtitles/TfontSettings.cpp 2006-09-27 09:20:50 UTC (rev 272) +++ src/subtitles/TfontSettings.cpp 2006-09-27 11:00:52 UTC (rev 273) @@ -103,7 +103,7 @@ TregOpRegRead tNSI(HKEY_LOCAL_MACHINE,FFDSHOW_REG_PARENT _l("\\") FFDSHOW); char_t langId[MAX_PATH]; tNSI._REG_OP_S(0,_l("lang"),langId,MAX_PATH,_l("1033")); - if(_tcsnccmp(langId,_l("1041"),4)==0) + if(_tcsncmp(langId,_l("1041"),4)==0) {lang[0]='J';lang[1]='P';} } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dre...@us...> - 2006-09-27 09:20:54
|
Revision: 272 http://svn.sourceforge.net/ffdshow-tryout/?rev=272&view=rev Author: drevil_xxl Date: 2006-09-27 02:20:50 -0700 (Wed, 27 Sep 2006) Log Message: ----------- (ffmpeg 6351) free memory before return. Modified Paths: -------------- src/ffmpeg/libavcodec/jpeg_ls.c Modified: src/ffmpeg/libavcodec/jpeg_ls.c =================================================================== --- src/ffmpeg/libavcodec/jpeg_ls.c 2006-09-27 09:18:56 UTC (rev 271) +++ src/ffmpeg/libavcodec/jpeg_ls.c 2006-09-27 09:20:50 UTC (rev 272) @@ -459,6 +459,8 @@ } } else if(ilv == 2) { /* sample interleaving */ av_log(s->avctx, AV_LOG_ERROR, "Sample interleaved images are not supported.\n"); + av_free(state); + av_free(zero); return -1; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dre...@us...> - 2006-09-27 09:19:06
|
Revision: 271 http://svn.sourceforge.net/ffdshow-tryout/?rev=271&view=rev Author: drevil_xxl Date: 2006-09-27 02:18:56 -0700 (Wed, 27 Sep 2006) Log Message: ----------- (ffmpeg 6346) fix decoding of bastard1.rm (rv ver=0x10003001 ver0=0x8000000) (ffmpeg 6349) fix decoding of bastard3.rm (ver=0x10003001 ver0=0x9000000) Modified Paths: -------------- src/ffmpeg/libavcodec/rv10.c Modified: src/ffmpeg/libavcodec/rv10.c =================================================================== --- src/ffmpeg/libavcodec/rv10.c 2006-09-27 09:15:50 UTC (rev 270) +++ src/ffmpeg/libavcodec/rv10.c 2006-09-27 09:18:56 UTC (rev 271) @@ -534,7 +534,7 @@ break; case 0x10003001: s->rv10_version= 3; - s->h263_long_vectors=0; + s->h263_long_vectors= !!(*(uint32_t*)avctx->extradata & 0x1000000); s->low_delay=1; break; default: @@ -596,7 +596,7 @@ uint8_t *buf, int buf_size) { MpegEncContext *s = avctx->priv_data; - int mb_count, mb_pos, left; + int mb_count, mb_pos, left, start_mb_x; init_get_bits(&s->gb, buf, buf_size*8); if(s->codec_id ==CODEC_ID_RV10) @@ -640,9 +640,10 @@ if(s->codec_id== CODEC_ID_RV10){ if(s->mb_y==0) s->first_slice_line=1; }else{ - s->first_slice_line=1; + s->first_slice_line=1; + s->resync_mb_x= s->mb_x; } - s->resync_mb_x= s->mb_x; + start_mb_x= s->mb_x; s->resync_mb_y= s->mb_y; if(s->h263_aic){ s->y_dc_scale_table= @@ -701,7 +702,7 @@ if(ret == SLICE_END) break; } - ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x-1, s->mb_y, AC_END|DC_END|MV_END); + ff_er_add_slice(s, start_mb_x, s->resync_mb_y, s->mb_x-1, s->mb_y, AC_END|DC_END|MV_END); return buf_size; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dre...@us...> - 2006-09-27 09:15:56
|
Revision: 270 http://svn.sourceforge.net/ffdshow-tryout/?rev=270&view=rev Author: drevil_xxl Date: 2006-09-27 02:15:50 -0700 (Wed, 27 Sep 2006) Log Message: ----------- (ffmpeg 6350) bump lavc version for WavPack decoder. Modified Paths: -------------- src/ffmpeg/libavcodec/avcodec.h Modified: src/ffmpeg/libavcodec/avcodec.h =================================================================== --- src/ffmpeg/libavcodec/avcodec.h 2006-09-27 09:09:08 UTC (rev 269) +++ src/ffmpeg/libavcodec/avcodec.h 2006-09-27 09:15:50 UTC (rev 270) @@ -26,8 +26,8 @@ #define AV_STRINGIFY(s) AV_TOSTRING(s) #define AV_TOSTRING(s) #s -#define LIBAVCODEC_VERSION_INT ((51<<16)+(15<<8)+0) -#define LIBAVCODEC_VERSION 51.15.0 +#define LIBAVCODEC_VERSION_INT ((51<<16)+(16<<8)+0) +#define LIBAVCODEC_VERSION 51.16.0 #define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT #define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <h_y...@us...> - 2006-09-27 09:09:18
|
Revision: 269 http://svn.sourceforge.net/ffdshow-tryout/?rev=269&view=rev Author: h_yamagata Date: 2006-09-27 02:09:08 -0700 (Wed, 27 Sep 2006) Log Message: ----------- Don't use ffdshow in explorer.exe by default for more stability. Modified Paths: -------------- src/settings/TglobalSettings.cpp Modified: src/settings/TglobalSettings.cpp =================================================================== --- src/settings/TglobalSettings.cpp 2006-09-27 08:46:56 UTC (rev 268) +++ src/settings/TglobalSettings.cpp 2006-09-27 09:09:08 UTC (rev 269) @@ -49,7 +49,7 @@ IDFF_multipleInstances,&TglobalSettingsBase::multipleInstances,0,4,_l(""),0, _l("multipleInstances"),TintOption::DEF_DYN, IDFF_isBlacklist ,&TglobalSettingsBase::isBlacklist ,0,0,_l(""),0, - _l("isBlacklist"),0, + _l("isBlacklist"),1, IDFF_addToROT ,&TglobalSettingsBase::addToROT ,0,0,_l(""),0, _l("addToROT"),0, IDFF_allowedCpuFlags ,&TglobalSettingsBase::allowedCPUflags ,1,1,_l(""),0, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <h_y...@us...> - 2006-09-27 08:47:00
|
Revision: 268 http://svn.sourceforge.net/ffdshow-tryout/?rev=268&view=rev Author: h_yamagata Date: 2006-09-27 01:46:56 -0700 (Wed, 27 Sep 2006) Log Message: ----------- ff_vfw.dll should not be compiled by MSVC8 for now. Private assembly loading fails. Modified Paths: -------------- bin/distrib/ffdshow.nsi Modified: bin/distrib/ffdshow.nsi =================================================================== --- bin/distrib/ffdshow.nsi 2006-09-27 08:43:32 UTC (rev 267) +++ bin/distrib/ffdshow.nsi 2006-09-27 08:46:56 UTC (rev 268) @@ -5,7 +5,7 @@ !verbose 3 Name "ffdshow" -!define FFDSHOW_VERSION "20060924-rev237" +!define FFDSHOW_VERSION "20060927-rev268" ; For those who use MSVC8 for their products, ; it is strongly recommended to define MSVCRT8 @@ -37,7 +37,7 @@ !ifdef MSVCRT8 !define AX_BY_VC8 !define MAKEAVIS_BY_VC8 - !define FF_VFW_BY_VC8 + ;!define FF_VFW_BY_VC8 # don't do this. should be compiled by GCC or MSVC7. private assembly loading fails !endif ;!define AUDX This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <h_y...@us...> - 2006-09-27 08:43:37
|
Revision: 267 http://svn.sourceforge.net/ffdshow-tryout/?rev=267&view=rev Author: h_yamagata Date: 2006-09-27 01:43:32 -0700 (Wed, 27 Sep 2006) Log Message: ----------- Updated Japanese translations Modified Paths: -------------- bin/languages/ffdshow.1041.ja bin/languages/ffdshow.1041.jp Modified: bin/languages/ffdshow.1041.ja =================================================================== (Binary files differ) Modified: bin/languages/ffdshow.1041.jp =================================================================== --- bin/languages/ffdshow.1041.jp 2006-09-27 08:42:53 UTC (rev 266) +++ bin/languages/ffdshow.1041.jp 2006-09-27 08:43:32 UTC (rev 267) @@ -575,7 +575,7 @@ 1270=\x83~\x83\x8A\x95b 1954=\x83L\x83\x85\x81[ 1365=\x82\xBB\x82̑\xBC -1143=\x8Fo\x97͂\xF0\x83L\x83\x85\x81[\x82ɓ\xFC\x82\xEA\x82\xE9\r\n \x83L\x83\x85\x81[\x82̖ړI\x82̓R\x83}\x97\x8E\x82\xBF\x82\xF0\x8C\xB8\x82炷\x82\xB1\x82Ƃł\xB7\x81B\r\n CPU\x82̕\x89\x89ׂ\xAA\x8D\x82\x82\xAD\x8E\x9E\x81X\x83R\x83}\x97\x8E\x82\xBF\x82\xAA\x94\xAD\x90\xB6\x82\xB7\x82\xE9\x82悤\x82ȏŌ\xF8\x89ʂ\xAA\x82\xA0\x82\xE8\x82܂\xB7\x81B\r\n \x8F\x88\x97\x9D\x82\xAA\x91\xAC\x82\xAD\x8Dς\xF1\x82ŕ\\x8E\xA6\x82܂Ŏ\x9E\x8AԂ\xAA\x82\xA0\x82\xE9\x82Ƃ\xAB\x82ɂ\xBB\x82̎\x9E\x8AԂ\xE0\x82\xB5\x81A\r\n \x8F\x88\x97\x9D\x82\xAA\x92x\x82ꂽ\x8E\x9E\x82ɂ\xBB\x82̎\x9E\x8AԂ\xF0\x8Eg\x82\xA2\x82܂\xB7\x81B\r\n \x83r\x83f\x83I\x83\x8C\x83\x93\x83_\x83\x89\x82\xF0\x95ʃX\x83\x8C\x83b\x83h\x82Ŏ\xC0\x8Ds\x82\xB7\x82邽\x82\xDFPentium4HT\x82\xE2\x83f\x83\x85\x83A\x83\x8B\x83R\x83ACPU\r\n \x82ł͌\xF8\x89ʂ\xAA\x82\xB3\x82\xE7\x82ɑ傫\x82\xAD\x82Ȃ\xE8\x82܂\xB7\x81B\r\n\r\n\x89E\x82̃A\x83v\x83\x8A\x82̂݃L\x83\x85\x81[\x82\xF0\x8Eg\x97p\r\n \x88\xC0\x92萫\x82̖\xE2\x91肩\x82\xE7Media Player Classic\x88ȊO\x82ł̓f\x83t\x83H\x83\x8B\x83g\x82ŃL\x83\x85\x81[\x82\xCD\r\n \x83I\x83t\x82ɂȂ\xC1\x82Ă\xA2\x82܂\xB7\x81B\r\n \x82\xA0\x82\xA6\x82Ď\x8E\x82\xB5\x82Ă݂\xBD\x82\xA2\x95\xFB\x82̓`\x83F\x83b\x83N\x82\xF0\x8AO\x82\xB7\x82\xA9\x81A\x83A\x83v\x83\x8A\x83P\x81[\x83V\x83\x87\x83\x93\x82̎\xC0\x8Ds\x83t\x83@\x83C\x83\x8B\x96\xBC\x82\xF0\r\n \x83Z\x83~\x83R\x83\x8D\x83\x93;\x82ŋ\xE6\x90\xC1\x82ċL\x8Dڂ\xB5\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2\x81B +1143=\x8Fo\x97͂\xF0\x83L\x83\x85\x81[\x82ɓ\xFC\x82\xEA\x82\xE9\r\n \x83L\x83\x85\x81[\x82̖ړI\x82̓R\x83}\x97\x8E\x82\xBF\x82\xF0\x8C\xB8\x82炷\x82\xB1\x82Ƃł\xB7\x81B\r\n CPU\x82̕\x89\x89ׂ\xAA\x8D\x82\x82\xAD\x8E\x9E\x81X\x83R\x83}\x97\x8E\x82\xBF\x82\xAA\x94\xAD\x90\xB6\x82\xB7\x82\xE9\x82悤\x82ȏŌ\xF8\x89ʂ\xAA\x82\xA0\x82\xE8\x82܂\xB7\x81B\r\n \x8F\x88\x97\x9D\x82\xAA\x91\xAC\x82\xAD\x8Dς\xF1\x82ŕ\\x8E\xA6\x82܂Ŏ\x9E\x8AԂ\xAA\x82\xA0\x82\xE9\x82Ƃ\xAB\x82ɂ\xBB\x82̎\x9E\x8AԂ\xE0\x82\xB5\x81A\r\n \x8F\x88\x97\x9D\x82\xAA\x92x\x82ꂽ\x8E\x9E\x82ɂ\xBB\x82̎\x9E\x8AԂ\xF0\x8Eg\x82\xA2\x82܂\xB7\x81B\r\n \x83r\x83f\x83I\x83\x8C\x83\x93\x83_\x83\x89\x82\xF0\x95ʃX\x83\x8C\x83b\x83h\x82Ŏ\xC0\x8Ds\x82\xB7\x82邽\x82\xDFPentium4HT\x82\xE2\x83f\x83\x85\x83A\x83\x8B\x83R\x83ACPU\r\n \x82ł͌\xF8\x89ʂ\xAA\x82\xB3\x82\xE7\x82ɑ傫\x82\xAD\x82Ȃ\xE8\x82܂\xB7\x81B\r\n\r\n \x89E\x82̃A\x83v\x83\x8A\x82̂݃L\x83\x85\x81[\x82\xF0\x8Eg\x97p\r\n \x88\xC0\x92萫\x82̖\xE2\x91肩\x82\xE7Media Player Classic\x88ȊO\x82ł̓f\x83t\x83H\x83\x8B\x83g\x82ŃL\x83\x85\x81[\x82\xCD\r\n \x83I\x83t\x82ɂȂ\xC1\x82Ă\xA2\x82܂\xB7\x81B\r\n \x82\xA0\x82\xA6\x82Ď\x8E\x82\xB5\x82Ă݂\xBD\x82\xA2\x95\xFB\x82̓`\x83F\x83b\x83N\x82\xF0\x8AO\x82\xB7\x82\xA9\x81A\x83A\x83v\x83\x8A\x83P\x81[\x83V\x83\x87\x83\x93\x82̎\xC0\x8Ds\x83t\x83@\x83C\x83\x8B\x96\xBC\x82\xF0\r\n \x83Z\x83~\x83R\x83\x8D\x83\x93;\x82ŋ\xE6\x90\xC1\x82ċL\x8Dڂ\xB5\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2\x81B\r\n\r\n\x82\xBB\x82̑\xBC\r\n \x89f\x91\x9C\x82̒x\x89\x84\r\n \x83X\x83s\x81[\x83J\x81[\x82\xAA\x8E\x8B\x92\xAE\x88ʒu\x82\xA9\x82牓\x82\xA2\x8E\x9E\x82Ɏ\x8E\x82\xB5\x82Ă݂ĉ\xBA\x82\xB3\x82\xA2(3ms/m)\x81B [125] 0=\x89掿\x82̃v\x83\x8D\x83p\x83e\x83B 1017=\x8BP\x93x\x82̃Q\x83C\x83\x93 (\x83R\x83\x93\x83g\x83\x89\x83X\x83g): @@ -620,6 +620,7 @@ 1216=\x8D\x82\x95i\x8E\xBF 1217=\x8D\x82\x95i\x8E\xBF\x83u\x83\x8D\x83b\x83N\x83t\x83B\x83\x8B\x83^\x83\x8A\x83\x93\x83O 1069=SwScaler +1143=\x82w\x83V\x83\x83\x81[\x83v\x89\xBB\r\n\x82\xB1\x82̃t\x83B\x83\x8B\x83^\x81[\x82͔ȁA\x82\xB5\x82\xA9\x82\xB5\x97L\x8C\xF8\x82ȃV\x83\x83\x81[\x83v\x89\xBB\x82\xF0\x8Ds\x82\xA2\x82܂\xB7\x81B\x92\x86\x90S\x82̃s\x83N\x83Z\x83\x8B\x82́i\x82\xB5\x82\xAB\x82\xA2\x92l\x82̐ݒ\xE8\x82ɂ\xE6\x82\xE8\x81j\x82\xBB\x82̂܂ܖ\xB3\x8F\x88\x97\x9D\x82Œʉ߂\xB7\x82邩\x81A\x82܂\xBD\x82͂\xBB\x82\xEA\x82ɗאڂ\xB7\x82\xE98\x82̃s\x83N\x83Z\x83\x8B\x82̂\xA4\x82\xBF\x8Dł\xE0\x96\xBE\x82邢\x82\xE0\x82̂\xA9\x8Dł\xE0\x88Â\xA2\x82\xE0\x82̂̂\xA4\x82\xBF\x92\x86\x90S\x82̃s\x83N\x83Z\x83\x8B\x82̖\xBE\x82邳\x82ɋ߂\xA2\x82ق\xA4\x82ɒu\x82\xAB\x8A\xB7\x82\xA6\x82\xE7\x82\xEA\x82܂\xB7\x81B\x92\x86\x90S\x82̃s\x83N\x83Z\x83\x8B\x82\xAA\x92u\x82\xAB\x8A\xB7\x82\xA6\x82\xE7\x82ꂽ\x8Fꍇ\x81A\x8B\xAD\x82\xB3\x82̐ݒ\xE8\x82Ɋ\xEE\x82Â\xA2\x82Č\xB3\x82̉摜\x82ƃA\x83\x8B\x83t\x83@\x83u\x83\x8C\x83\x93\x83h\x82\xB3\x82\xEA\x82܂\xB7\x81B\x82\xBB\x82̌\x8B\x89ʁA\x83m\x83C\x83Y\x82̑\x9D\x95\x9D\x82\xF0\x96h\x82\xAE\x82\xBE\x82\xAF\x82łȂ\xAD\x81A\x83m\x83C\x83Y\x82\xF0\x8Cy\x8C\xB8\x82\xB7\x82\xE9\x8CX\x8C\xFC\x82ɓ\xAD\x82\xAD\x83V\x83\x83\x81[\x83v\x89\xBB\x82\xAA\x93\xBE\x82\xE7\x82\xEA\x82܂\xB7\x81B\r\n\r\n\x83A\x83\x93\x83V\x83\x83\x81[\x83v\x83}\x83X\x83N\r\n\x82\xB1\x82̃t\x83B\x83\x8B\x83^\x81[\x82͂悭\x92m\x82\xE7\x82ꂽ\x83R\x83\x93\x83g\x83\x89\x83X\x83g\x91\x9D\x8B\xAD\x81A\x83V\x83\x83\x81[\x83v\x89\xBB\x82̃e\x83N\x83j\x83b\x83N\x82\xF0\x8E\xC0\x91\x95\x82\xB5\x82܂\xB7\x81B\x8A\xEE\x96{\x93I\x82ȍl\x82\xA6\x95\xFB\x82͌\xB3\x82̉摜\x82\xF0\x82ڂ\xA9\x82\xB5\x82\xBD\x82\xE0\x82̂\xF0\x8D\xEC\x82\xC1\x82āA\x8C\xB3\x82̉摜\x82\xA9\x82猸\x8EZ\x82\xB7\x82邱\x82Ƃł\xB7\x81B\x8C\x8B\x89ʂ͒P\x8F\x83\x82ȏ\xF4\x82ݍ\x9E\x82݃J\x81[\x83l\x83\x8B\x82\xE2\x83n\x83C\x83p\x83X\x83u\x81[\x83X\x83g\x82\xE6\x82\xE8\x97D\x82\xEA\x81A\x91\xE5\x95ϋC\x8E\x9D\x82\xBF\x82̂悢\x83V\x83\x83\x81[\x83v\x89\xBB\x82ł\xB7\x81B\r\n\r\n\x82l\x83V\x83\x83\x81[\x83v\x89\xBB\r\n\x83m\x83C\x83Y\x82\xAD\x82\xB7\x82邱\x82ƂȂ\xAD\x89摜\x82̒\x86\x82̏d\x97v\x82ȃG\x83b\x83W\x82\xF0\x83V\x83\x83\x81[\x83v\x89\xBB\x82\xB5\x82܂\xB7\x81B\x82\xB1\x82̃t\x83B\x83\x8B\x83^\x81[\x82̓G\x83b\x83W\x82\xF0\x8C\xA9\x82\xAF\x81A\x83G\x83b\x83W\x82̂Ƃ\xB1\x82\xEB\x82ɂ\xBE\x82\xAFsharpening kernel\x82\xF0\x93K\x97p\x82\xB5\x82܂\xB7\x81B\r\n\r\n\x82\xB1\x82\xEA\x82\xE7\x82̋L\x8Dڂ\xCDAviSynth \x82\xC6 VirtualDub \x83t\x83B\x83\x8B\x83^\x81[\x82̃h\x83L\x83\x85\x83\x81\x83\x93\x83g\x82\xA9\x82\xE7\x83R\x83s\x81[\x82\xB5\x82\xBD\x82\xE0\x82̂ł\xB7\x81B\r\n(C) Donald Graft [128] 0=\x82ڂ\xA9\x82\xB5\x82ƃm\x83C\x83Y\x83\x8A\x83_\x83N\x83V\x83\x87\x83\x93 1134=\x82ڂ\xA9\x82\xB5\x82ƃm\x83C\x83Y\x83\x8A\x83_\x83N\x83V\x83\x87\x83\x93 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <h_y...@us...> - 2006-09-27 08:43:00
|
Revision: 266 http://svn.sourceforge.net/ffdshow-tryout/?rev=266&view=rev Author: h_yamagata Date: 2006-09-27 01:42:53 -0700 (Wed, 27 Sep 2006) Log Message: ----------- Updated helpQueue.txt Modified Paths: -------------- src/helpQueue.txt Modified: src/helpQueue.txt =================================================================== --- src/helpQueue.txt 2006-09-27 08:42:09 UTC (rev 265) +++ src/helpQueue.txt 2006-09-27 08:42:53 UTC (rev 266) @@ -1,9 +1,16 @@ Queue output samples The objective of the queue is to reduce frame drops. It is effective when CPU load is high and dropping a few frames/sec. - It deposits the time when CPU has finished work early and use the time when delayed. - Because video renderer is executed on another thead, the effect is greater if you have Pentium4HT or dual core CPU. + It deposits the time when CPU has finished work early and use the time + when delayed. + Because video renderer is executed on another thead, the effect is + greater if you have Pentium4HT or dual core CPU. -Use queue only in: - Queue is disabled by default because of stability problem. - If you dare try it, uncheck or add the execute file name of the video applications, separated by semicolons. + Use queue only in: + Queue is disabled by default because of stability problem. + If you dare try it, uncheck or add the execute file name of the video + applications, separated by semicolons. + +Other controls + video delay: + If your speaker is far from listening point, you may want to try this. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <h_y...@us...> - 2006-09-27 08:42:14
|
Revision: 265 http://svn.sourceforge.net/ffdshow-tryout/?rev=265&view=rev Author: h_yamagata Date: 2006-09-27 01:42:09 -0700 (Wed, 27 Sep 2006) Log Message: ----------- Compilation fix (broken since rev 247) Revision Links: -------------- http://svn.sourceforge.net/ffdshow-tryout/?rev=247&view=rev Modified Paths: -------------- src/mplayer/postproc/w32thread.c Modified: src/mplayer/postproc/w32thread.c =================================================================== --- src/mplayer/postproc/w32thread.c 2006-09-26 19:13:09 UTC (rev 264) +++ src/mplayer/postproc/w32thread.c 2006-09-27 08:42:09 UTC (rev 265) @@ -151,30 +151,3 @@ CPUCount= si.dwNumberOfProcessors; return CPUCount; } - -/* - * Copied from libavcodec/utils.c(av_mallocz,av_freep) - * Copyright (c) 2001 Fabrice Bellard. - * Copyright (c) 2002-2004 Michael Niedermayer <mic...@gm...> - */ -void *av_mallocz(unsigned int size) -{ - void *ptr; - - ptr = av_malloc(size); - if (!ptr) - return NULL; - memset(ptr, 0, size); - return ptr; -} - -/** - * Frees memory and sets the pointer to NULL. - * @param arg pointer to the pointer which should be freed - */ -void av_freep(void *arg) -{ - void **ptr= (void**)arg; - av_free(*ptr); - *ptr = NULL; -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |