'Linux API'에 해당되는 글 140건

  1. 2015.03.26 vaapi vdpau uvd 6
  2. 2015.01.22 linux 최대 thread 갯수
  3. 2015.01.22 linux socket 관련
  4. 2014.11.26 alsa timestamp
  5. 2014.11.26 alsa async
  6. 2014.11.21 멀티캐스트 되는지 여부 확인
  7. 2014.11.19 getopt() / getopt_long()
  8. 2014.11.18 alsa debug function
  9. 2014.11.17 ALSA 드라이버 관련
  10. 2014.11.17 alsa 함수 - size / time
Linux API2015. 3. 26. 01:09

VAAPI(Video Acceleration API) - intel

VDPAU(Video Decode and Presentation API for Unix) - nvidia

UVD(Unified Video Decoder) - AMD


[링크 : http://en.wikipedia.org/wiki/Video_Acceleration_API]

[링크 : http://en.wikipedia.org/wiki/VDPAU]

[링크 : http://en.wikipedia.org/wiki/Unified_Video_Decoder]


XBMC 보다 보니 이런저런 가속 방법이 나와서 조사하니
3대 메이져 제조사에서 제공하는 API들의 이름이다.

[링크 : http://ubuntuforums.org/showthread.php?t=2177664]

[링크 : http://www.phoronix.com/scan.php?page=news_item&px=MTM1NDk]



'Linux API' 카테고리의 다른 글

system wait stdout  (0) 2018.10.22
lirc - linux IR Remote control  (0) 2015.03.31
linux 최대 thread 갯수  (0) 2015.01.22
getopt() / getopt_long()  (0) 2014.11.19
공유메모리  (0) 2014.09.02
Posted by 구차니
Linux API2015. 1. 22. 19:55

크게 제한은 없다.

단, 메모리의 영향을 받기 때문에 메모리가 적을수록 쓰레드의 숫자도 적어질수 밖에 없다.



cat /proc/sys/kernel/threads-max


number of threads = total virtual memory / (stack size*1024*1024)

Total Virtual Memory: ulimit -v (default is unlimited, thus you need to increase swap memory to increase this)

Total Stack Size: ulimit -s (default is 8Mb)


[링크 : http://stackoverflow.com/questions/344203/maximum-number-of-threads-per-process-in-linux]

'Linux API' 카테고리의 다른 글

lirc - linux IR Remote control  (0) 2015.03.31
vaapi vdpau uvd  (6) 2015.03.26
getopt() / getopt_long()  (0) 2014.11.19
공유메모리  (0) 2014.09.02
timeval, gettimeofday()  (0) 2013.08.20
Posted by 구차니
Linux API/network2015. 1. 22. 19:49


TCP Connection

UDP Connectionless


그래서 UDP는

socket()

bind()

recvfrom()

sendto()

close()

----

socket()

gethostbyname()

sento()

recvfrom()

close()

로 진행되고


TCP는

socket()

bind()

listen()

accept()

select()

recv()

send()

close()

----

socket()

gethostbyname()

connect()

sen()

recv()

close()

로 진행된다.


[링크 : http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_71/rzab6/connectionor.htm] TCP

[링크 : http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_71/rzab6/connectionless.htm] UDP


소켓은

32K 정도는 열수 있을 듯.

[링크 : http://stackoverflow.com/questions/3430474/max-number-of-socket-on-linux]


recvfrom

[링크 : http://forum.falinux.com/zbxe/index.php?document_srl=441147&mid=C_LIB]


'Linux API > network' 카테고리의 다른 글

리눅스 TCP 소켓  (0) 2019.05.24
linux udp cpp example  (0) 2019.05.16
멀티캐스트 되는지 여부 확인  (0) 2014.11.21
net tools 소스코드  (0) 2011.11.07
INADDR_ANY/INADDR_BROADCAST/INADDR_NONE 매크로  (0) 2011.09.29
Posted by 구차니
Linux API/alsa2014. 11. 26. 21:37

'Linux API > alsa' 카테고리의 다른 글

alsa 예제  (0) 2024.06.04
alsa 구조  (0) 2015.05.29
alsa async  (0) 2014.11.26
alsa debug function  (0) 2014.11.18
ALSA 드라이버 관련  (0) 2014.11.17
Posted by 구차니
Linux API/alsa2014. 11. 26. 21:32
ALSA에서도 비동기 처리가 가능하다는데.
polling을 쓰라는거 보면 무언가 좀 unsafe 한 부분이 있나 보다 싶긴한데..
공식 문서를 찾아볼 필요가 있을 듯.

[링크 : http://alsa.opensrc.org/HowTo_Asynchronous_Playback]
 

'Linux API > alsa' 카테고리의 다른 글

alsa 구조  (0) 2015.05.29
alsa timestamp  (0) 2014.11.26
alsa debug function  (0) 2014.11.18
ALSA 드라이버 관련  (0) 2014.11.17
alsa 함수 - size / time  (0) 2014.11.17
Posted by 구차니
Linux API/network2014. 11. 21. 09:21
윈도우에서는 서버관련 유틸로 msdn에 제공하는 것 같고..
리눅스는 우분투 에서 확인해보니.. 해당 프로그램이 존재하지 않는다 -_-
(버전이 낮아서 그런걸지도..)

omping 은 레드햇용인가...?
아무튼 커널설정에서 보는것 외에는
설정하고 나서 핑 날려 보는 게 전부인가.. -_ㅠ

[링크 : http://www.cisco.com/en/US/docs/ios/ipmulti/configuration/guide/imc_verify_op.html]
[링크 : http://technet.microsoft.com/en-us/library/cc787891(v=ws.10).aspx]
[링크 : http://www-01.ibm.com/.../SSPHQG_7.1.0/com.ibm.powerha.trgd/ha_trgd_test_multicast.htm
[링크 : http://serverfault.com/questions/137976/how-do-i-know-if-ip-multicasting-is-enabled-on-my-network]
[링크 : http://linux.die.net/man/8/omping ]

'Linux API > network' 카테고리의 다른 글

linux udp cpp example  (0) 2019.05.16
linux socket 관련  (0) 2015.01.22
net tools 소스코드  (0) 2011.11.07
INADDR_ANY/INADDR_BROADCAST/INADDR_NONE 매크로  (0) 2011.09.29
hton(), ntoh()  (0) 2011.09.26
Posted by 구차니
Linux API2014. 11. 19. 10:48
리눅스에서 옵션으로 -h 나 --help 같이 두가지 옵션으로 주는 것을 처리해주는 api 인데
직접 작성해 본게 아니라 일단.. 이정도만 정리...

struct option declared in <getopt.h> as

struct option {
    const char *name;
    int         has_arg;
    int        *flag;
    int         val;

extern char *optarg;
extern int optind, opterr, optopt;
 
int getopt_long(int argc, char * const argv[],
           const char *optstring,
           const struct option *longopts, int *longindex);

optstring is a string containing the legitimate option characters. If such a character is followed by a colon, the option requires an argument, so getopt() places a pointer to the following text in the same argv-element, or the text of the following argv-element, in optarg. Two colons mean an option takes an optional arg; if there is text in the current argv-element (i.e., in the same word as the option name itself, for example, "-oarg"), then it is returned in optarg, otherwise optarg is set to zero. This is a GNU extension. If optstring contains W followed by a semicolon, then -W foo is treated as the long option --foo. (The -W option is reserved by POSIX.2 for implementation extensions.) This behavior is a GNU extension, not available with libraries before glibc 2. 
 
[링크 : http://linux.die.net/man/3/getopt_long


-D 는 옵션을 필요로 하는 녀석이라 :가 붙게 되어 D:가 기재되고
optarg에 해당 문자의 포인터가 들어가게 되어 strdup나 atoi 등을 이용해서 인자를 사용하게 된다.
int main(int argc, char *argv[])
{
        struct option long_option[] =
        {
                {"help", 0, NULL, 'h'},
                {"device", 1, NULL, 'D'},
                {"rate", 1, NULL, 'r'},
                {"channels", 1, NULL, 'c'},
                {"frequency", 1, NULL, 'f'},
                {"buffer", 1, NULL, 'b'},
                {"period", 1, NULL, 'p'},
                {"method", 1, NULL, 'm'},
                {"format", 1, NULL, 'o'},
                {"verbose", 1, NULL, 'v'},
                {"noresample", 1, NULL, 'n'},
                {"pevent", 1, NULL, 'e'},
                {NULL, 0, NULL, 0},
        };
 
       while (1) {
                int c;
                if ((c = getopt_long(argc, argv, "hD:r:c:f:b:p:m:o:vne", long_option, NULL)) < 0)
                        break;
                switch (c) {
                case 'h':
                        morehelp++;
                        break;
                case 'D':
                        device = strdup(optarg);
                        break;
                case 'r':
                        rate = atoi(optarg);
                        rate = rate < 4000 ? 4000 : rate;
                        rate = rate > 196000 ? 196000 : rate;
                        break;
                }

[링크 : http://www.alsa-project.org/alsa-doc/alsa-lib/_2test_2pcm_8c-example.html

[링크 : http://forum.falinux.com/zbxe/?mid=C_LIB&page=3&document_srl=408382] getopt()
[링크 : http://forum.falinux.com/zbxe/index.php?document_srl=519764&mid=C_LIB] getopt_long()
[링크 : http://linux.die.net/man/3/getopt]
[링크 : http://linux.die.net/man/3/getopt_long]

'Linux API' 카테고리의 다른 글

lirc - linux IR Remote control  (0) 2015.03.31
vaapi vdpau uvd  (6) 2015.03.26
linux 최대 thread 갯수  (0) 2015.01.22
공유메모리  (0) 2014.09.02
timeval, gettimeofday()  (0) 2013.08.20
Posted by 구차니
Linux API/alsa2014. 11. 18. 10:35
alsa의 latency.c를 실행하다 보니
깔끔하게 상태를 출력해주는 녀석이 있어서 찾아보게 됨.

Hardware PCM card 0 'mxs-evk' device 0 subdevice 0
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 16000
  exact rate   : 16000 (16000/1)
  msbits       : 16
  buffer_size  : 128
  period_size  : 64
  period_time  : 4000
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 64
  period_event : 0
  start_threshold  : 2147483647
  stop_threshold   : 128
  silence_threshold: 0
  silence_size : 0
  boundary     : 1073741824 


snd_pcm_dump(phandle, output);
snd_pcm_dump(chandle, output);
fflush(stdout); 


[링크 : http://www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m___dump.html#...1d8d]

----


  state       : RUNNING
  trigger_time: 2130.83093753
  tstamp      : 2160.96375002
  delay       : 48
  avail       : 16
  avail_max   : 44 

snd_output_t *output = NULL;
err = snd_output_stdio_attach(&output, stdout, 0);
if (err < 0) {
        printf("Output failed: %s\n", snd_strerror(err));
        return 0;
}
 
void showstat(snd_pcm_t *handle, size_t frames)
{
        int err;
        snd_pcm_status_t *status;
        snd_pcm_status_alloca(&status);
        if ((err = snd_pcm_status(handle, status)) < 0) {
                printf("Stream status error: %s\n", snd_strerror(err));
                exit(0);
        }
        printf("*** frames = %li ***\n", (long)frames);
        snd_pcm_status_dump(status, output);
}

[링크 : http://www.alsa-project.org/alsa-doc/alsa-lib/_2test_2latency_8c-example.html]  


[링크 : http://www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m___dump.html#...a51]
[링크 : http://www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m___dump.html]

'Linux API > alsa' 카테고리의 다른 글

alsa timestamp  (0) 2014.11.26
alsa async  (0) 2014.11.26
ALSA 드라이버 관련  (0) 2014.11.17
alsa 함수 - size / time  (0) 2014.11.17
alsa low latency  (0) 2014.11.03
Posted by 구차니
Linux API/alsa2014. 11. 17. 17:45

'Linux API > alsa' 카테고리의 다른 글

alsa async  (0) 2014.11.26
alsa debug function  (0) 2014.11.18
alsa 함수 - size / time  (0) 2014.11.17
alsa low latency  (0) 2014.11.03
SALSA - Small ALSA  (0) 2014.10.24
Posted by 구차니
Linux API/alsa2014. 11. 17. 17:41
size는 frame 단위
time은 usec 단위


period던 buffer 던 동일한 단위로 설정이 된다. 

'Linux API > alsa' 카테고리의 다른 글

alsa debug function  (0) 2014.11.18
ALSA 드라이버 관련  (0) 2014.11.17
alsa low latency  (0) 2014.11.03
SALSA - Small ALSA  (0) 2014.10.24
alsa + ffmpeg 벤치마크(?)  (0) 2014.10.23
Posted by 구차니