'잡동사니'에 해당되는 글 13661건

  1. 2025.08.31 claude mcp + freecad
  2. 2025.08.31 claude desktop
  3. 2025.08.30 오랫만에 회전초밥 4
  4. 2025.08.29 freeCAD + openFOAM
  5. 2025.08.29 ubuntu wacom express key 에 esc 등록하기
  6. 2025.08.29 freecad + MCP
  7. 2025.08.28 ubuntu에서 wacom 활성영역 설정하기
  8. 2025.08.28 SVE(Scalable Vector Extension)
  9. 2025.08.28 python simsimd
  10. 2025.08.27 gstreamer 기초
프로그램 사용/freecad2025. 8. 31. 20:09

claude 무료버전으로 시도함

 

cluade desktop 설치하고

[링크 : https://claude.ai/download]

 

freecad 설치하고

freecad 한번 실행해준 다음 << 요거 포인트

[링크 : https://www.freecad.org/downloads.php]

 

mcp를 다운로드 받고 (윈도우니 귀찮아서 zip으로 받음)

압축을 풀고는 addon -> FreeCADMCP 폴더만 콕! 찍어서

 

탐색기에서 %AppData% 입력하고 엔터치고

 

FreeCAD 아래에 Mod 디렉토리를 만들고 FreeCADMCP 디렉토리를 붙여넣는다.

C:\Users\user\AppData\Roaming\FreeCAD\Mod\FreeCADMCP

[링크 : https://github.com/neka-nat/freecad-mcp]

 

freecad를 재시작 혹은 시작하면

Part Design 이라고 써있는 부분을 클릭하면

 

MCP Addon이 추가된다.

 

MCP Addon을 클릭하면

스케치하기는 어디로 가버리고(!) FreeCAD MCP 메뉴가 생겨나는데, start RPC server를 누르란다.

그런데 티가 안나네..

 

claude desktop에서 - 계정 - 설정 - 개발자 - 구성편집

 

그러면 탐색기가 열리면서 claude_desktop_config.json이 선택되는데

우클릭해서 메모장에서 편집하면 괄호만 덩그러니 있는데

 

아래처럼 붙여넣고 저장!

 

git 도움말에는 오른쪽꺼가 토큰을 덜 먹는다고 하니 일단 이걸로!

{
  "mcpServers": {
    "freecad": {
      "command": "uvx",
      "args": [
        "freecad-mcp"
      ]
    }
  }
}
{
  "mcpServers": {
    "freecad": {
      "command": "uvx",
      "args": [
        "freecad-mcp",
        "--only-text-feedback"
      ]
    }
  }
}

 

파워셀을 열어서 하라는 대로 하면 설치 완료

PS C:\Users\user> powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Downloading uv 0.8.14 (x86_64-pc-windows-msvc)
Installing to C:\Users\user\.local\bin
  uv.exe
  uvx.exe
  uvw.exe
everything's installed!

To add C:\Users\user\.local\bin to your PATH, either restart your shell or run:

    set Path=C:\Users\user\.local\bin;%Path%   (cmd)
    $env:Path = "C:\Users\user\.local\bin;$env:Path"   (powershell)

PS C:\Users\user> $env:Path = "C:\Users\user\.local\bin;$env:Path"
PS C:\Users\user> uv
An extremely fast Python package manager.

Usage: uv.exe [OPTIONS] <COMMAND>

Commands:
  run      Run a command or script
  init     Create a new project
  add      Add dependencies to the project
  remove   Remove dependencies from the project
  version  Read or update the project's version
  sync     Update the project's environment
  lock     Update the project's lockfile
  export   Export the project's lockfile to an alternate format
  tree     Display the project's dependency tree
  format   Format Python code in the project
  tool     Run and install commands provided by Python packages
  python   Manage Python versions and installations
  pip      Manage Python packages with a pip-compatible interface
  venv     Create a virtual environment
  build    Build Python packages into source distributions and wheels
  publish  Upload distributions to an index
  cache    Manage uv's cache
  self     Manage the uv executable
  help     Display documentation for a command

Cache options:
  -n, --no-cache               Avoid reading from or writing to the cache, instead using a temporary directory for the
                               duration of the operation [env: UV_NO_CACHE=]
      --cache-dir <CACHE_DIR>  Path to the cache directory [env: UV_CACHE_DIR=]

Python options:
      --managed-python       Require use of uv-managed Python versions [env: UV_MANAGED_PYTHON=]
      --no-managed-python    Disable use of uv-managed Python versions [env: UV_NO_MANAGED_PYTHON=]
      --no-python-downloads  Disable automatic downloads of Python. [env: "UV_PYTHON_DOWNLOADS=never"]

Global options:
  -q, --quiet...
          Use quiet output
  -v, --verbose...
          Use verbose output
      --color <COLOR_CHOICE>
          Control the use of color in output [possible values: auto, always, never]
      --native-tls
          Whether to load TLS certificates from the platform's native certificate store [env: UV_NATIVE_TLS=]
      --offline
          Disable network access [env: UV_OFFLINE=]
      --allow-insecure-host <ALLOW_INSECURE_HOST>
          Allow insecure connections to a host [env: UV_INSECURE_HOST=]
      --no-progress
          Hide all progress outputs [env: UV_NO_PROGRESS=]
      --directory <DIRECTORY>
          Change to the given directory prior to running the command
      --project <PROJECT>
          Run the command within the given project directory [env: UV_PROJECT=]
      --config-file <CONFIG_FILE>
          The path to a `uv.toml` file to use for configuration [env: UV_CONFIG_FILE=]
      --no-config
          Avoid discovering configuration files (`pyproject.toml`, `uv.toml`) [env: UV_NO_CONFIG=]
  -h, --help
          Display the concise help for this command
  -V, --version
          Display the uv version

Use `uv help` for more details.

[링크 : https://docs.astral.sh/uv/getting-started/installation/#__tabbed_1_2]

 

재시작하고 커넥터를 보면 freecad 로컬 개발이라고 뜬다.

 

freecad에 오면

보기 - 패널 - python 콘솔을 눌러주면 Start RPC Server를 주구장창 누른 흔적이 ㅋㅋ

 

먼가 시키니까 처음이라서 권한을 달라고 한다.

 

먼가 열심히 한다 ㅋㅋ

 

어.. 내가 상상(?)한 pci ex 1 lane 보드는 이렇게 생긴게 아닌디...?!

 

 

아무튼(?!?!) 이렇게 날로먹는(!) claude.ai desktop + MCP + freeCAD 성공!

 

아래 동영상을 보고 시도할 생각을 함

[링크 : https://www.youtube.com/watch?v=qH08WX9YjMM]

'프로그램 사용 > freecad' 카테고리의 다른 글

gemini + freecad  (0) 2025.09.01
freeCAD + openFOAM  (0) 2025.08.29
freecad + MCP  (0) 2025.08.29
freecad on ubuntu 24.04  (0) 2025.05.18
freecad 예제  (0) 2024.11.09
Posted by 구차니
프로그램 사용/MCP ai2025. 8. 31. 19:36

 

[링크 : https://claude.ai/download]

 

 

아무데서나 ctrl-alt-space를 누르면 mac finder 였나? 그거 처럼 바로 뜬다.

'프로그램 사용 > MCP ai' 카테고리의 다른 글

gemini + claude MCP  (0) 2025.09.05
gemini + blender / freecad token  (0) 2025.09.02
csm.ai  (0) 2025.09.01
gemini + ubuntu + uvx 등등등.. 뻘기록  (0) 2025.09.01
Posted by 구차니

스시이안앤 다산점 방문해서 38 그릇 먹고옴

[링크 : https://place.map.kakao.com/772828279]

'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글

드라이브~  (0) 2025.08.24
애견미용이 비싸서!  (0) 2025.08.23
다시 돌아온 열대야  (0) 2025.08.19
하루 늦은.. 기절?  (0) 2025.08.17
시승(?)  (1) 2025.08.15
Posted by 구차니
프로그램 사용/freecad2025. 8. 29. 17:20

윈도우에서도 되는것 같으니 한번 테스트 해봐야겠다

 

[링크 : https://blog.naver.com/heennavi1004/222597357273]

[링크 : https://blog.naver.com/localid/222302561603]

'프로그램 사용 > freecad' 카테고리의 다른 글

gemini + freecad  (0) 2025.09.01
claude mcp + freecad  (0) 2025.08.31
freecad + MCP  (0) 2025.08.29
freecad on ubuntu 24.04  (0) 2025.05.18
freecad 예제  (0) 2024.11.09
Posted by 구차니
하드웨어/pen tablet2025. 8. 29. 15:36

영 귀찮아서(!) 등록하려니 gui로는 esc가 입력받을수 없는 키가 되어버려서 수동으로 등록

아래의 명령을 이용하면 가장 아래 버튼이 esc로 등록되는데 GUI 상으로는 키가 등록되지 않은것으로 나오니 주의가 필요하다.

$ xsetwacom set 14 Button 13 key esc

 

Seems simple enough, and it is really, except for the fact that the numbers of the buttons aren't really logical. To make a long story short, after a lot of trial and error I found that my buttons are numbered, from top to bottom:
2
3
8
9

1 (the big button in the middle of the Touch Ring)

10
11
12
13

[링크 : https://bartssolutions.blogspot.com/2015/02/how-to-configure-wacom-intuos-express.html]

[링크 : https://askubuntu.com/questions/776881/how-to-map-custom-key-combinations-on-wacom-bamboo-mte-450a]

'하드웨어 > pen tablet' 카테고리의 다른 글

cth-490 on ubuntu  (0) 2025.09.08
와콤 cth-490 지름  (2) 2025.09.06
ubuntu에서 wacom 활성영역 설정하기  (0) 2025.08.28
open tablet driver  (0) 2025.08.21
와콤 펜 종류  (0) 2025.08.18
Posted by 구차니
프로그램 사용/freecad2025. 8. 29. 13:48

이사님께서 키워드를 주셔서(!) 나온지 대략 반년만에 시도해볼 예정

 

[링크 : https://www.youtube.com/watch?v=qH08WX9YjMM]

[링크 : https://github.com/neka-nat/freecad-mcp]

'프로그램 사용 > freecad' 카테고리의 다른 글

claude mcp + freecad  (0) 2025.08.31
freeCAD + openFOAM  (0) 2025.08.29
freecad on ubuntu 24.04  (0) 2025.05.18
freecad 예제  (0) 2024.11.09
freecad touchpad  (0) 2024.09.25
Posted by 구차니
하드웨어/pen tablet2025. 8. 28. 17:55

테스트는 해봐야겠다.

 

I do not think that there is a graphical configuration interface. Nevertheless, you can do it via scripts...

Find the correct name of your device/input:

[romano:~/personal/varios] 1 % xsetwacom --list devices
Wacom Intuos PT S Finger touch      id: 12  type: TOUCH     
Wacom Intuos PT S Finger pad        id: 13  type: PAD       
Wacom Intuos PT S Pen stylus        id: 14  type: STYLUS    
Wacom Intuos PT S Pen eraser        id: 15  type: ERASER 
And now you can reduce for example to the top left corner:

xsetwacom --set "Wacom Intuos PT S Pen stylus" MapToOutput 500x400+0+0
or in a rectangle in the center (more or less):

xsetwacom --set "Wacom Intuos PT S Pen stylus" MapToOutput 500x400+500+500 
Go back by telling the full resolution:

xsetwacom --set "Wacom Intuos PT S Pen stylus" MapToOutput 1980x1080+0+0
There is a way to make the thing permanent, but I never tried it --- if you need it, the Arch page (as ever) is full of interesting info.

 

With MapToOutput you can specify a specific screen (e.g.: VGA) or screen size that can let you map the tablet area to two monitors.

If what you need is to force proportions or reduce the tablet area, then you can use the xsetwacom parameter Area:

$ xsetwacom list parameters | grep Area
Area             - Valid tablet area in device coordinates. 
ResetArea        - Resets the bounding coordinates to default in tablet units. 
For example, in my Bamboo tablet, I first reset the area and get its original device coordinates:

$ xsetwacom --set "Wacom Bamboo 2FG 4x5 Pen stylus" ResetArea
$ xsetwacom --get "Wacom Bamboo 2FG 4x5 Pen stylus" Area
0 0 14720 9200
Then I set them to get a smaller tablet area (1/4th of the tablet area):

$ xsetwacom --set "Wacom Bamboo 2FG 4x5 Pen stylus" Area 0 4600 7360 9200
so I can achieve that the bottom-left rectangle maps to the whole screen size.
This way, I can reach that whole area with less hand movement.

[링크 : https://askubuntu.com/questions/547990/how-to-configure-wacom-tablet-area-on-ubuntu-14-04]

 

 

+

2025.08.29

wayland 대신 x.org로 부팅하고 아래처럼 입력하니 좌상단에서 중앙까지의 영역만 사용하게 된다.

$ xsetwacom --list devices
Wacom Intuos Pro M Pen stylus    id: 9 type: STYLUS    
Wacom Intuos Pro M Pad pad       id: 10 type: PAD       
Wacom Intuos Pro M Finger touch  id: 11 type: TOUCH     
Wacom Intuos Pro M Pen eraser    id: 24 type: ERASER    
Wacom Intuos Pro M Pen cursor    id: 25 type: CURSOR    

$ xsetwacom --get "Wacom Intuos Pro M Pen stylus" Area
0 0 44704 27940
$ xsetwacom --set "Wacom Intuos Pro M Pen stylus" Area 0 0 22352 13970
$ xsetwacom --get "Wacom Intuos Pro M Pen stylus" Area
0 0 22352 13970

 

wayland 에서 하니 설정이 되지 않는다

$ xsetwacom --get "Wacom Intuos Pro M Pen stylus" Area
Wayland devices found but this tool is incompatible with Wayland. See
https://github.com/linuxwacom/xf86-input-wacom/wiki/Wayland

$ xsetwacom --set "Wacom Intuos Pro M Pen stylus" Area 0 0 22352 13970
Wayland devices found but this tool is incompatible with Wayland. See
https://github.com/linuxwacom/xf86-input-wacom/wiki/Wayland

'하드웨어 > pen tablet' 카테고리의 다른 글

와콤 cth-490 지름  (2) 2025.09.06
ubuntu wacom express key 에 esc 등록하기  (0) 2025.08.29
open tablet driver  (0) 2025.08.21
와콤 펜 종류  (0) 2025.08.18
wacom 진단  (0) 2025.08.18
Posted by 구차니
embeded/ARM2025. 8. 28. 14:18

armv7 까지는 NEON 이고 armv8 부터는 SVE 라고 이름이 달라지는 듯

 

Scalable Vector Extension (SVE) is a vector extension the A64 instruction set of the Armv8-A architecture. Armv9-A builds on SVE with the SVE2 extension. Unlike other SIMD architectures, SVE and SVE2 do not define the size of the vector registers, but constrains it to a range of possible values, from a minimum of 128 bits up to a maximum of 2048 in 128-bit wide units. Therefore, any CPU vendor can implement the extension by choosing the vector register size that better suits the workloads the CPU is targeting. The design of SVE and SVE2 guarantees that the same program can run on different implementations of the instruction set architecture without the need to recompile the code.

[링크 : https://developer.arm.com/Architectures/Scalable%20Vector%20Extensions]

[링크 : https://developer.arm.com/Architectures/SVE]

'embeded > ARM' 카테고리의 다른 글

emmc 파티션 정렬  (0) 2024.02.07
arm asm rev  (0) 2023.09.14
cortex-a53  (0) 2023.08.31
aarch64 vector register  (0) 2023.08.23
arm vsub operator  (0) 2023.08.09
Posted by 구차니

python 자체적으로 auto vectorization을 지원하는지 모르겠고

-O2 밖에 안되서 어떻게 될지 모르겠지만 혹시나 cython 이라던가 이쪽에서 지원하지 않을가 해서 검색해보니

먼가 하나 나와서 테스트 중

 

설치는 간단하고

# pip3 install simsimd
Collecting simsimd
  Downloading simsimd-6.5.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.metadata (70 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 70.5/70.5 kB 758.3 kB/s eta 0:00:00
Downloading simsimd-6.5.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (563 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 563.2/563.2 kB 4.6 MB/s eta 0:00:00
Installing collected packages: simsimd
Successfully installed simsimd-6.5.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

[링크 : https://pypi.org/project/simsimd/]

 

확인도 간단한데

그나저나.. arm aarch64 에서는 neon이 활성화 되는데

10세대 모바일 프로세서에서는 왜.. haswell 이라고 하나만 활성화 될까? skylake 정도는 활성화 되어야 하는거 아닌가?

imx8mp aarch64 i7-10510U x64
>>> import simsimd
>>> print(simsimd.get_capabilities())
{'serial': True, 'neon': True, 'sve': False, 'neon_f16': False, 'sve_f16': False, 'neon_bf16': False, 'sve_bf16': False, 'neon_i8': False, 'sve_i8': False, 'haswell': False, 'skylake': False, 'ice': False, 'genoa': False, 'sapphire': False, 'turin': False, 'sierra': False}
>>> import simsimd
>>> print(simsimd.get_capabilities())
{'serial': True, 'neon': False, 'sve': False, 'neon_f16': False, 'sve_f16': False, 'neon_bf16': False, 'sve_bf16': False, 'neon_i8': False, 'sve_i8': False, 'haswell': True, 'skylake': False, 'ice': False, 'genoa': False, 'sapphire': False, 'turin': False, 'sierra': False}
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities
vmx flags : vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest ple pml ept_mode_based_exec
bugs : spectre_v1 spectre_v2 spec_store_bypass swapgs itlb_multihit srbds mmio_stale_data retbleed eibrs_pbrsb gds bhi

 

그런데 dot 이랑 cosine이랑 무슨 차이지 계산한 값이 많이 다른 느낌인데..

simsimd.cos()는 1 에서 빼줘야 맞다.

Posted by 구차니

element는 gst-inspector로 확인하는 개별 기능(?)

pads는 대개 source, sink로 표현되는 입출력

bins는 모르겠고.. pipeline은 element(요소)들을 pads를 통해 데이터를 흐르도록 하는 연결의 모임 으로 보면 될 듯

 

element An element is the most important class of objects in GStreamer
pads Pads are an element's input and output, where you can connect other elements
bins A bin is a container for a collection of elements.
pipeline A pipeline is a top-level bin.

[링크 : https://gstreamer.freedesktop.org/documentation/application-development/introduction/basics.html?gi-language=c]

 

 

엘리먼트는 크게 세가지로 나누어 지는데

source만 있는 source element(v4l2src 등)

source와 sink가 있는 filter element, demuxer

sink만 있는 sink element(waylandsink, autoviedeosink 등) 이 있다.

 

또한 name 을 이용해서 named element로 사용할 수 있다.

source element Source elements generate data for use by a pipeline, for example reading from disk or from a sound card. 
Filters, convertors, demuxers, muxers and codecs Filters and filter-like elements have both input and outputs pads. 
 


Sink elements Sink elements are end points in a media pipeline.

[링크 : https://gstreamer.freedesktop.org/documentation/application-development/basics/elements.html?gi-language=c]

 

element에는 properties가 존재하는데

일부는 설정용도로 쓸 수 있고, 일부는 상태정보를 폴링(polling)으로 읽어갈 수 있다.

$ gst-inspect-1.0 autovideosink
Factory Details:
  Rank                     none (0)
  Long-name                Auto video sink
  Klass                    Sink/Video
  Description              Wrapper video sink for automatically detected video sink
  Author                   Jan Schmidt <thaytan@noraisin.net>

Plugin Details:
  Name                     autodetect
  Description              Plugin contains auto-detection plugins for video/audio in- and outputs
  Filename                 /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstautodetect.so
  Version                  1.20.3
  License                  LGPL
  Source module            gst-plugins-good
  Source release date      2022-06-15
  Binary package           GStreamer Good Plugins (Ubuntu)
  Origin URL               https://launchpad.net/distros/ubuntu/+source/gst-plugins-good1.0

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBin
                         +----GstAutoDetect
                               +----GstAutoVideoSink

Implemented Interfaces:
  GstChildProxy

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      ANY

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'

Element Properties:
  async-handling      : The bin will handle Asynchronous state changes
                        flags: readablewritable
                        Boolean. Default: false
  filter-caps         : Filter sink candidates using these caps.
                        flags: readable, writable, 0x2000
                                                   video/x-raw

  message-forward     : Forwards all children messages
                        flags: readable, writable
                        Boolean. Default: false
  name                : The name of the object
                        flags: readable, writable, 0x2000
                        String. Default: "autovideosink0"
  parent              : The parent of the object
                        flags: readable, writable, 0x2000
                        Object of type "GstObject"
  sync                : Sync on the clock
                        flags: readable, writable
                        Boolean. Default: true
  ts-offset           : Timestamp offset in nanoseconds
                        flags: readable, writable
                        Integer64. Range: -9223372036854775808 - 9223372036854775807 Default: 0 

 

Properties and values
Properties are used to describe extra information for capabilities. A property consists of a key (a string) and a value.

[링크 : https://gstreamer.freedesktop.org/documentation/application-development/basics/pads.html?gi-language=c]

 

주기적으로 읽는게 싫다면 signal을 제공하는 엘리먼트를 통해 이벤트 발생시 값을 수신할 수 있다.

$ gst-inspect-1.0 fpsdisplaysink
Factory Details:
  Rank                     none (0)
  Long-name                Measure and show framerate on videosink
  Klass                    Sink/Video
  Description              Shows the current frame-rate and drop-rate of the videosink as overlay or text on stdout
  Author                   Zeeshan Ali <zeeshan.ali@nokia.com>, Stefan Kost <stefan.kost@nokia.com>

Plugin Details:
  Name                     debugutilsbad
  Description              Collection of elements that may or may not be useful for debugging
  Filename                 /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstdebugutilsbad.so
  Version                  1.20.3
  License                  LGPL
  Source module            gst-plugins-bad
  Source release date      2022-06-15
  Binary package           GStreamer Bad Plugins (Ubuntu)
  Origin URL               https://launchpad.net/distros/ubuntu/+source/gst-plugins-bad1.0

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBin
                         +----GstFPSDisplaySink

Implemented Interfaces:
  GstChildProxy

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      ANY

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'

Element Properties:
  async-handling      : The bin will handle Asynchronous state changes
                        flags: readable, writable
                        Boolean. Default: false
  fps-update-interval : Time between consecutive frames per second measures and update  (in ms). Should be set on NULL state
                        flags: readable, writable
                        Integer. Range: 1 - 2147483647 Default: 500 
  frames-dropped      : Number of frames dropped by the sink
                        flags: readable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0 
  frames-rendered     : Number of frames rendered
                        flags: readable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0 
  last-message        : The message describing current status
                        flags: readable
                        String. Default: null
  max-fps             : Maximum fps rate measured. Reset when going from NULL to READY.-1 means no measurement has yet been done
                        flags: readable
                        Double. Range:              -1 -   1.797693e+308 Default:              -1 
  message-forward     : Forwards all children messages
                        flags: readable, writable
                        Boolean. Default: false
  min-fps             : Minimum fps rate measured. Reset when going from NULL to READY.-1 means no measurement has yet been done
                        flags: readable
                        Double. Range:              -1 -   1.797693e+308 Default:              -1 
  name                : The name of the object
                        flags: readable, writable, 0x2000
                        String. Default: "fpsdisplaysink0"
  parent              : The parent of the object
                        flags: readable, writable, 0x2000
                        Object of type "GstObject"
  signal-fps-measurements: If the fps-measurements signal should be emitted.
                        flags: readable, writable
                        Boolean. Default: false
  silent              : Don't produce last_message events
                        flags: readable, writable
                        Boolean. Default: false
  sync                : Sync on the clock (if the internally used sink doesn't have this property it will be ignored
                        flags: readable, writable
                        Boolean. Default: true
  text-overlay        : Whether to use text-overlay
                        flags: readable, writable
                        Boolean. Default: true
  video-sink          : Video sink to use (Must only be called on NULL state)
                        flags: readable, writable
                        Object of type "GstElement"

Element Signals:
  "fps-measurements" :  void user_function (GstElement* object,
                                            gdouble arg0,
                                            gdouble arg1,
                                            gdouble arg2,
                                            gpointer user_data);

 

Signals
GObject signals can be used to notify applications of events specific to this object. Note, however, that the application needs to be aware of signals and their meaning, so if you're looking for a generic way for application-element interaction, signals are probably not what you're looking for. In many cases, however, signals can be very useful. See the GObject documentation for all internals about signals.

[링크 : https://gstreamer.freedesktop.org/documentation/plugin-development/basics/signals.html?gi-language=c]

 

bin - pipeline의 하위라는데 알아서 해주는게 포인트라고 보면되나?

$ gst-inspect-1.0 | grep bin
camerabin:  camerabin: Camera Bin
camerabin:  viewfinderbin: Viewfinder Bin
camerabin:  wrappercamerabinsrc: Wrapper camera src element for camerabin2
closedcaption:  cccombiner: Closed Caption Combiner
cluttergst3:  clutterautovideosink: Generic bin
codecalpha:  alphacombine: Alpha Combiner
codecalpha:  vp8alphadecodebin: VP8 Alpha Decoder
codecalpha:  vp9alphadecodebin: VP9 Alpha Decoder
debugutilsbad:  testsrcbin: Generic bin
dvb:  dvbbasebin: DVB bin
encoding:  encodebin: Encoder Bin
encoding:  encodebin2: Encoder Bin
libav:  avdec_binkaudio_dct: libav Bink Audio (DCT) decoder
libav:  avdec_binkaudio_rdft: libav Bink Audio (RDFT) decoder
libav:  avdec_binkvideo: libav Bink video decoder
libav:  avdec_bintext: libav Binary text decoder
libav:  avdec_xbin: libav eXtended BINary text decoder
opengl:  glfilterbin: GL Filter Bin
opengl:  glmixerbin: OpenGL video_mixer empty bin
opengl:  glsinkbin: GL Sink Bin
opengl:  glsrcbin: GL Src Bin
opengl:  glstereomix: OpenGL stereo video combiner
opengl:  glvideomixer: OpenGL video_mixer bin
playback:  decodebin: Decoder Bin
playback:  decodebin3: Decoder Bin 3
playback:  parsebin: Parse Bin
playback:  playbin: Player Bin 2
playback:  playbin3: Player Bin 3
playback:  uridecodebin: URI Decoder
playback:  uridecodebin3: URI Decoder
playback:  urisourcebin: URI reader
resindvd:  rsndvdbin: rsndvdbin
rist:  roundrobin: Round Robin
rtpmanager:  rtpbin: RTP Bin
staticelements:  bin: Generic bin
switchbin:  switchbin: switchbin
transcode:  transcodebin: Transcode Bin
transcode:  uritranscodebin: URITranscode Bin
vaapi:  vaapidecodebin: VA-API Decode Bin
webrtc:  webrtcbin: WebRTC Bin

 

Play a media file using playbin (as in Basic tutorial 1: Hello world!):

gst-launch-1.0 playbin uri=https://gstreamer.freedesktop.org/data/media/sintel_trailer-480p.webm
A fully operation playback pipeline, with audio and video (more or less the same pipeline that playbin will create internally):

gst-launch-1.0 souphttpsrc location=https://gstreamer.freedesktop.org/data/media/sintel_trailer-480p.webm ! matroskademux name=d ! queue ! vp8dec ! videoconvert ! autovideosink d. ! queue ! vorbisdec ! audioconvert ! audioresample ! autoaudiosink

[링크 : https://gstreamer.freedesktop.org/documentation/tutorials/basic/hello-world.html?gi-language=c]

[링크 : https://gstreamer.freedesktop.org/documentation/tutorials/basic/gstreamer-tools.html?gi-language=c]

 

[링크 : http://ttps://medium.com/may-i-lab/gstreamer-gstreamer-기초-da5015f531fc]

[링크 : https://blog.may-i.io/tech-13/]

'프로그램 사용 > gstreamer' 카테고리의 다른 글

gstreamer pipeline  (0) 2025.08.22
gstreamer tee 예제  (0) 2025.08.21
gstreamer capsfilter  (0) 2025.08.21
gstreamer parse_launch  (0) 2024.01.11
nnstreamer  (0) 2023.12.20
Posted by 구차니