> this is odd, i thought the interleaving code from write_frame was causing it,
> anyway, its somewhat difficult to follow your explanations, you should
> concentrate on finding a minimum case that fails not show us 5 cases with
> comments saying what all doesnt solve it.

Ok, this is the minimum case:

AVFormatContext *input;
AVPacket pkt;
AVFormatParameters ap;

 input=av_alloc_format_context();
 input->iformat=av_find_input_format("mpegts");

 bio_buffer=(unsigned char *)malloc(bio_buffer_size); //=188
 input->pb=av_alloc_put_byte(bio_buffer,bio_buffer_size,
           0,this,linsys_read,NULL,NULL);
 input->pb->is_streamed=1;
 input->pb->max_packet_size=188;
 input->flags|=AVFMT_NOFILE|AVFMT_FLAG_IGNIDX;
 input->max_index_size=1024*50;
 input->max_picture_buffer=1024*100;

 memset(&ap, 0, sizeof(ap));
 ap.prealloced_context=1;
        
 int r=av_open_input_stream(&input,input->pb,"linsys",input->iformat,&ap);
 r=av_find_stream_info(input);

 while(!is_exiting()){
  av_read_frame(input,pkt);

  av_free_packet(pkt);
 }
 
According to the Windows' Task Manager, the program occupies ~7Mb initially, 
and ~8.6Mb after 5 min of work. The number, taskman shows, is not constant, it 
changes every second, growing up or falling down, but overall trend is growing.

> i assume they havnt removed write() and fwrite() from windows so you can store
> the data to disk and try ffmpeg on it.

I have a success in reading data from a card and writing them to the stdout and 
feeding ffmpeg.exe through the pipe.

The main cycle in my program is following.

uint8_t buf[10340];
int readed;

while(!is_exiting()){
  readed=linsys_read(this,buf,10340); //pointer to this function is also
  fwrite(buf,readed,1,stdout);
}
return 0;

d:\>main.exe > nul

gives that the program consumes less than 4.5Mb, and this number doesn't grow.

Now, feeding ffmpeg.exe

D:\>main.exe| ffmpeg.exe -y -f mpegts -i - a.mpg
FFmpeg version SVN-r12810, Copyright (c) 2000-2008 Fabrice Bellard, et al.
  configuration: --enable-memalign-hack --enable-static --disable-shared --
disable-stripping --enable-w32threads --extra-cflags=-ggdb3 -D 
EPROTONOSUPPORT=43 --cpu=i686 --cross-prefix=i586-mingw32msvc- --enable-cross-
compile --target-os=mingw32 --prefix=/home/wl/mingw32
  libavutil version: 49.6.0
  libavcodec version: 51.54.0
  libavformat version: 52.13.0
  libavdevice version: 52.0.0
  built on Apr 14 2008 17:32:12, gcc: 4.2.1-sjlj (mingw32-2)
[mpeg1video @ 007F0800]ac-tex damaged at 8 0
[mpeg1video @ 007F0800]ac-tex damaged at 12 2
[mpeg1video @ 007F0800]skipped MB in I frame at 5 3
[mpeg1video @ 007F0800]ac-tex damaged at 7 6
[mpeg1video @ 007F0800]ac-tex damaged at 4 7
[mpeg1video @ 007F0800]ac-tex damaged at 11 8
[mpeg1video @ 007F0800]ac-tex damaged at 14 12
[mpeg1video @ 007F0800]ac-tex damaged at 10 14
[mpeg1video @ 007F0800]ac-tex damaged at 1 16
[mpeg1video @ 007F0800]ac-tex damaged at 1 19
[mpeg1video @ 007F0800]skipped MB in I frame at 8 20
[mpeg1video @ 007F0800]ac-tex damaged at 6 22
[mpeg1video @ 007F0800]ac-tex damaged at 0 23
[mpeg1video @ 007F0800]ac-tex damaged at 5 24
[mpeg1video @ 007F0800]ac-tex damaged at 4 25
[mpeg1video @ 007F0800]invalid mb type in I Frame at 1 27
[mpeg1video @ 007F0800]ac-tex damaged at 0 33
[mpeg1video @ 007F0800]skipped MB in I frame at 3 34
[mpeg1video @ 007F0800]ac-tex damaged at 13 35
[mpeg1video @ 007F0800]Warning MVs not available
[mpeg1video @ 007F0800]concealing 1224 DC, 1224 AC, 1224 MV errors
[mpeg1video @ 007F0800]ac-tex damaged at 7 0
[mpeg1video @ 007F0800]skipped MB in I frame at 1 3
[mpeg1video @ 007F0800]skipped MB in I frame at 14 4
[mpeg1video @ 007F0800]skipped MB in I frame at 4 7
[mpeg1video @ 007F0800]skipped MB in I frame at 1 8
[mpeg1video @ 007F0800]skipped MB in I frame at 2 10
[mpeg1video @ 007F0800]skipped MB in I frame at 2 11
[mpeg1video @ 007F0800]ac-tex damaged at 18 13
[mpeg1video @ 007F0800]ac-tex damaged at 0 14
[mpeg1video @ 007F0800]ac-tex damaged at 1 17
[mpeg1video @ 007F0800]ac-tex damaged at 1 18
[mpeg1video @ 007F0800]invalid mb type in I Frame at 2 19
[mpeg1video @ 007F0800]ac-tex damaged at 9 22
[mpeg1video @ 007F0800]ac-tex damaged at 0 23
[mpeg1video @ 007F0800]ac-tex damaged at 8 25
[mpeg1video @ 007F0800]ac-tex damaged at 1 26
[mpeg1video @ 007F0800]skipped MB in I frame at 2 28
[mpeg1video @ 007F0800]skipped MB in I frame at 3 30
[mpeg1video @ 007F0800]ac-tex damaged at 12 33
[mpeg1video @ 007F0800]Warning MVs not available
[mpeg1video @ 007F0800]concealing 1501 DC, 1501 AC, 1501 MV errors
[mpeg2video @ 007F0800]ac-tex damaged at 7 0
[mpeg2video @ 007F0800]ac-tex damaged at 24 1
[mpeg2video @ 007F0800]skipped MB in I frame at 8 4
[mpeg2video @ 007F0800]ac-tex damaged at 26 6
[mpeg2video @ 007F0800]skipped MB in I frame at 4 7
[mpeg2video @ 007F0800]invalid mb type in I Frame at 0 12
[mpeg2video @ 007F0800]invalid mb type in I Frame at 9 12
[mpeg2video @ 007F0800]skipped MB in I frame at 7 13
[mpeg2video @ 007F0800]ac-tex damaged at 12 15
[mpeg2video @ 007F0800]ac-tex damaged at 10 17
[mpeg2video @ 007F0800]invalid mb type in I Frame at 7 18
[mpeg2video @ 007F0800]invalid mb type in I Frame at 4 20
[mpeg2video @ 007F0800]ac-tex damaged at 0 21
[mpeg2video @ 007F0800]skipped MB in I frame at 3 23
[mpeg2video @ 007F0800]ac-tex damaged at 21 26
[mpeg2video @ 007F0800]ac-tex damaged at 9 27
[mpeg2video @ 007F0800]skipped MB in I frame at 11 28
[mpeg2video @ 007F0800]skipped MB in I frame at 15 29
[mpeg2video @ 007F0800]ac-tex damaged at 33 31
[mpeg2video @ 007F0800]skipped MB in I frame at 11 33
[mpeg2video @ 007F0800]skipped MB in I frame at 14 34
[mpeg2video @ 007F0800]Warning MVs not available
[mpeg2video @ 007F0800]concealing 1620 DC, 1620 AC, 1620 MV errors
[mpeg1video @ 007F0800]ac-tex damaged at 0 0
[mpeg1video @ 007F0800]ac-tex damaged at 4 3
[mpeg1video @ 007F0800]ac-tex damaged at 1 4
[mpeg1video @ 007F0800]invalid mb type in I Frame at 2 5
[mpeg1video @ 007F0800]invalid mb type in I Frame at 14 6
[mpeg1video @ 007F0800]ac-tex damaged at 25 8
[mpeg1video @ 007F0800]ac-tex damaged at 10 11
[mpeg1video @ 007F0800]ac-tex damaged at 19 12
[mpeg1video @ 007F0800]invalid mb type in I Frame at 3 13
[mpeg1video @ 007F0800]ac-tex damaged at 14 14
[mpeg1video @ 007F0800]ac-tex damaged at 0 15
[mpeg1video @ 007F0800]ac-tex damaged at 13 16
[mpeg1video @ 007F0800]ac-tex damaged at 10 17
[mpeg1video @ 007F0800]skipped MB in I frame at 8 21
[mpeg1video @ 007F0800]skipped MB in I frame at 21 22
[mpeg1video @ 007F0800]ac-tex damaged at 12 24
[mpeg1video @ 007F0800]ac-tex damaged at 12 26
[mpeg1video @ 007F0800]slice mismatch
[mpeg1video @ 007F0800]invalid mb type in I Frame at 27 32
[mpeg1video @ 007F0800]ac-tex damaged at 3 33
[mpeg1video @ 007F0800]ac-tex damaged at 7 34
[mpeg1video @ 007F0800]ac-tex damaged at 17 35
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 1
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 2
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 3
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 4
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 6
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 13
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 15
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 19
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 20
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 22
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 24
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 25
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 26
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 28
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 29
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 30
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 35
[mpeg1video @ 007F0800]ac-tex damaged at 0 1
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 3
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 4
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 5
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 6
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 12
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 10
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 14
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 15
[mpeg1video @ 007F0800]ac-tex damaged at 2 16
[mpeg1video @ 007F0800]ac-tex damaged at 0 17
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 20
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 21
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 23
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 24
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 25
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 27
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 30
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 34
[mpeg1video @ 007F0800]Warning MVs not available
[mpeg1video @ 007F0800]concealing 1620 DC, 1620 AC, 1620 MV errors
[mpeg1video @ 007F0800]skipped MB in I frame at 2 0
[mpeg1video @ 007F0800]invalid mb type in I Frame at 2 2
[mpeg1video @ 007F0800]ac-tex damaged at 4 5
[mpeg1video @ 007F0800]skipped MB in I frame at 5 6
[mpeg1video @ 007F0800]skipped MB in I frame at 3 7
[mpeg1video @ 007F0800]ac-tex damaged at 4 8
[mpeg1video @ 007F0800]invalid mb type in I Frame at 0 12
[mpeg1video @ 007F0800]ac-tex damaged at 9 10
[mpeg1video @ 007F0800]ac-tex damaged at 4 11
[mpeg1video @ 007F0800]ac-tex damaged at 1 12
[mpeg1video @ 007F0800]ac-tex damaged at 1 15
[mpeg1video @ 007F0800]ac-tex damaged at 5 16
[mpeg1video @ 007F0800]skipped MB in I frame at 4 17
[mpeg1video @ 007F0800]ac-tex damaged at 2 20
[mpeg1video @ 007F0800]ac-tex damaged at 0 22
[mpeg1video @ 007F0800]ac-tex damaged at 5 23
[mpeg1video @ 007F0800]ac-tex damaged at 5 24
[mpeg1video @ 007F0800]ac-tex damaged at 5 25
[mpeg1video @ 007F0800]skipped MB in I frame at 3 26
[mpeg1video @ 007F0800]slice mismatch
[mpeg1video @ 007F0800]ac-tex damaged at 9 28
[mpeg1video @ 007F0800]ac-tex damaged at 5 30
[mpeg1video @ 007F0800]invalid mb type in I Frame at 1 31
[mpeg1video @ 007F0800]invalid mb type in I Frame at 5 34
[mpeg1video @ 007F0800]Warning MVs not available
[mpeg1video @ 007F0800]concealing 1620 DC, 1620 AC, 1620 MV errors

Seems stream 30 codec frame rate differs from container frame rate: -1.#J (0/0) 
-> 25.00 (25/1)
Input #0, mpegts, from 'pipe:':
  Duration: N/A, start: 18285.182633, bitrate: 55702 kb/s
  Program 8292 Quadriga
  Program 1
Output #0, mpeg, to 'a.mpg':
    Stream #0.0: Video: mpeg1video, yuv420p, 720x576 [PAR 16:15 DAR 4:3], q=2-
31, 200 kb/s, 25.00 tb(c)
    Stream #0.1: Audio: mp2, 48000 Hz, stereo, 64 kb/s
Stream mapping:
  Stream #0.15 -> #0.0
  Stream #0.0 -> #0.1
[mpeg2video @ 007F0800]ac-tex damaged at 8 0
[mpeg2video @ 007F0800]ac-tex damaged at 12 2
[mpeg2video @ 007F0800]skipped MB in I frame at 5 3
[mpeg2video @ 007F0800]ac-tex damaged at 7 6
[mpeg2video @ 007F0800]ac-tex damaged at 4 7
[mpeg2video @ 007F0800]ac-tex damaged at 11 8
[mpeg2video @ 007F0800]ac-tex damaged at 14 12
[mpeg2video @ 007F0800]ac-tex damaged at 10 14
[mpeg2video @ 007F0800]ac-tex damaged at 1 16
[mpeg2video @ 007F0800]ac-tex damaged at 1 19
[mpeg2video @ 007F0800]skipped MB in I frame at 8 20
[mpeg2video @ 007F0800]ac-tex damaged at 6 22
[mpeg2video @ 007F0800]ac-tex damaged at 0 23
[mpeg2video @ 007F0800]ac-tex damaged at 5 24
[mpeg2video @ 007F0800]ac-tex damaged at 4 25
[mpeg2video @ 007F0800]invalid mb type in I Frame at 1 27
[mpeg2video @ 007F0800]ac-tex damaged at 0 33
[mpeg2video @ 007F0800]skipped MB in I frame at 3 34
[mpeg2video @ 007F0800]ac-tex damaged at 13 35
[mpeg2video @ 007F0800]Warning MVs not available
[mpeg2video @ 007F0800]concealing 1224 DC, 1224 AC, 1224 MV errors
[mpeg2video @ 007F0800]concealing 1224 DC, 1224 AC, 1224 MV errors
[mpeg2video @ 007F0800]concealing 1224 DC, 1224 AC, 1224 MV errors
[mpeg2video @ 007F0800]ac-tex damaged at 10 3
[mpeg2video @ 007F0800]00 motion_type at 10 5
[mpeg2video @ 007F0800]ac-tex damaged at 6 7
[mpeg2video @ 007F0800]ac-tex damaged at 9 8
[mpeg2video @ 007F0800]ac-tex damaged at 6 11
[mpeg2video @ 007F0800]00 motion_type at 11 13
[mpeg2video @ 007F0800]00 motion_type at 5 15
[mpeg2video @ 007F0800]invalid mb type in P Frame at 23 17
[mpeg2video @ 007F0800]ac-tex damaged at 7 18
[mpeg2video @ 007F0800]00 motion_type at 2 19
[mpeg2video @ 007F0800]00 motion_type at 8 21
[mpeg2video @ 007F0800]00 motion_type at 17 22
[mpeg2video @ 007F0800]ac-tex damaged at 13 24
[mpeg2video @ 007F0800]ac-tex damaged at 4 25
[mpeg2video @ 007F0800]mb incr damaged
[mpeg2video @ 007F0800]00 motion_type at 10 27
[mpeg2video @ 007F0800]ac-tex damaged at 18 28
[mpeg2video @ 007F0800]ac-tex damaged at 2 29
[mpeg2video @ 007F0800]invalid cbp at 4 32
[mpeg2video @ 007F0800]00 motion_type at 7 34
[mpeg2video @ 007F0800]Warning MVs not available
[mpeg2video @ 007F0800]concealing 1132 DC, 1132 AC, 1132 MV errors

Then taskman shows that main.exe occupies about 600Mb, and its occupation 
quickly grows. ffmpeg occupies about 35 Mb and this number also grows.

Messages about mpeg1video are weird, as I know for sure, there is no MPEG1 
Video in the stream.

> Anyway you also should learn how to use a debugger to obtain a backtrace
> from realloc(), i think you said it was realloc() which allocated huge
> amounts of memory.

Amounts were not huge per se, memory is leaking very slowly. This report from 
the leak detector was for the very short time.



_______________________________________________
libav-user mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/libav-user

Reply via email to