hi, I am setting the thread_count as below:
code snippet: In example file - https://www.ffmpeg.org/doxygen/trunk/demuxing_decoding_8c-example.html -------------------------------------------------------- int main (int argc, char **argv) { int ret = 0, got_frame; //unsigned long start, end; int frame_count=0; char frameStart[50], frameEnd[50]; //FILE *fp; SimRoiStart(); //srand((unsigned int)time(NULL)); if (argc != 4 && argc != 5) { fprintf(stderr, "usage: %s [-refcount=<old|new_norefcount|new_refcount>] " "input_file video_output_file audio_output_file\n" "API example program to show how to read frames from an input file.\n" "This program reads frames from a file, decodes them, and writes decoded\n" "video frames to a rawvideo file named video_output_file, and decoded\n" "audio frames to a rawaudio file named audio_output_file.\n\n" "If the -refcount option is specified, the program use the\n" "reference counting frame system which allows keeping a copy of\n" "the data for longer than one decode call. If unset, it's using\n" "the classic old method.\n" "\n", argv[0]); exit(1); } if (argc == 5) { const char *mode = argv[1] + strlen("-refcount="); if (!strcmp(mode, "old")) api_mode = API_MODE_OLD; else if (!strcmp(mode, "new_norefcount")) api_mode = API_MODE_NEW_API_NO_REF_COUNT; else if (!strcmp(mode, "new_refcount")) api_mode = API_MODE_NEW_API_REF_COUNT; else { fprintf(stderr, "unknow mode '%s'\n", mode); exit(1); } argv++; } src_filename = argv[1]; video_dst_filename = argv[2]; audio_dst_filename = argv[3]; /* register all formats and codecs */ av_register_all(); /* open input file, and allocate format context */ if (avformat_open_input(&fmt_ctx, src_filename, NULL, NULL) < 0) { fprintf(stderr, "Could not open source file %s\n", src_filename); exit(1); } /* retrieve stream information */ if (avformat_find_stream_info(fmt_ctx, NULL) < 0) { fprintf(stderr, "Could not find stream information\n"); exit(1); } if (open_codec_context(&video_stream_idx, fmt_ctx, AVMEDIA_TYPE_VIDEO) >= 0) { video_stream = fmt_ctx->streams[video_stream_idx]; video_dec_ctx = video_stream->codec; *//set number of threads to be utilized for video decoding* * video_dec_ctx->thread_count = 7;* * video_dec_ctx->thread_type = FF_THREAD_SLICE; //multithreading method set to slice-based* video_dst_file = fopen(video_dst_filename, "wb"); if (!video_dst_file) { fprintf(stderr, "Could not open destination file %s\n", video_dst_filename); ret = 1; goto end; } ..................... --------------------------------------------------------------- and for compilation the command used is - gcc -o demuxing_decoding demuxing_decoding.c -lavutil -lavformat -lavcodec -lz -lavutil -lm -lpthread -lbz2 The threads are not getting created, I have set the thread_count to 7 to create 8 threads. I have also tried by setting the thread_count to 0 for automatic thread creation based on the no of cores. Any pointers will be helpful. Thanks, Ierum On Mon, Oct 27, 2014 at 9:48 PM, wm4 <[email protected]> wrote: > On Mon, 27 Oct 2014 16:08:33 +0530 > Ierum Shanaya <[email protected]> wrote: > > > Hi, > > > > I am trying to run ffmpeg video decoding by creating multiple threads. > The > > problem i am facing is that only one thread is created, irrespective of > > setting the thread_count to 0 or any no like say 2 , 4 etc. > > > > I did check the config as below: > > > > *it doesnt have --enable pthreads things.. Is this the issue??. * > > If so, how to set the --enable pthread again in ffmpeg?? Can someone > please > > help me understand. > > > > I have Ubuntu 12.4 on my system(64 bit) > > > > *Output:* > > ----------------------------------------------------------------- > > > > ierumshanaya@ubuntu:~/ffmpeg_sources/ffmpeg$ ffmpeg > > ffmpeg version git-2014-01-05-f5f6e59 Copyright (c) 2000-2014 the FFmpeg > > developers > > built on Jan 22 2014 19:00:25 with gcc 4.6 (Ubuntu/Linaro > 4.6.3-1ubuntu5) > > *configuration*: --prefix=/home/ierumshanaya/ffmpeg_build/lib/pkgconfig > > --extra-cflags=-I/home/ierumshanaya/ffmpeg_build/include > > --extra-ldflags=-L/home/ierumshanaya/ffmpeg_build/lib > > --bindir=/home/ierumshanaya/bin --extra-libs=-ldl --enable-gpl > > --enable-libass --enable-libfdk-aac --enable-libmp3lame > --enable-libtheora > > --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree > > --enable-x11grab > > libavutil 52. 60.100 / 52. 60.100 > > libavcodec 55. 47.100 / 55. 47.100 > > libavformat 55. 22.102 / 55. 22.102 > > libavdevice 55. 5.102 / 55. 5.102 > > libavfilter 4. 0.103 / 4. 0.103 > > libswscale 2. 5.101 / 2. 5.101 > > libswresample 0. 17.104 / 0. 17.104 > > libpostproc 52. 3.100 / 52. 3.100 > > Hyper fast Audio and Video encoder > > usage: ffmpeg [options] [[infile options] -i infile]... {[outfile > options] > > outfile}... > > Thanks, > > Ierum > > Are you setting the thread_count before "opening" the decoder? > _______________________________________________ > Libav-user mailing list > [email protected] > http://ffmpeg.org/mailman/listinfo/libav-user >
_______________________________________________ Libav-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/libav-user
