주 메뉴 열기

wwiki β

바뀜

FFmpeg 개발

1,919 바이트 추가됨, 2020년 5월 31일 (일) 09:01
avcodec_send_packet
'''파라미터'''
* AVCodecContext * avctx 코덱 콘텍스트* const AVPacket * avpkt[in]
<blockquote>입력값. 일반적으로 단일 비디오 프레임이거나 몇 개의 완성된 오디오 프레임들이다. 패킷의 소유권은 호출한 곳에 유지되고, 디코더는 그 패킷의 값을 변경하지 않을 것이다. 디코더는 패킷 데이터에 대한 참조를 생성할 수 있다.(혹은 레퍼런스 카운트되지 않는다면 복사할 것이다.) 오래된 함수들과 다르게 패킷은 항상 전체가 소비되고, 패킷이 어떤 오디오 코덱처럼 여러 프레임들을 포함한다면 avcodec_receive_frame()함수를 여러 번 호출해야 할 것이다. avpkt가 NULL이거나 혹은 avpkt의 data가 NULL이거나 size가 0인 경우에는 스트림의 끝이라는 신호인 flush pakcet으로 간주된다. 처음 flush packet을 보내는 것은 성공을 반환한다. 다시 보내는 것은 불필요하고 AVERROR_EOF를 리턴할 것이다. 만약 디코더가 여전히 버퍼된 프레임을 가지고 있다면, flush packet을 보낸 후에 리턴한다.</blockquote>'''반환''': int<blockquote>성공이면 0, 그렇지 않으면 음수인 에러코드를 리턴한다. </blockquote>원시 패킷 데이터를 디코더에 입력으로 제공한다.
원시 패킷 데이터를 내부적으로 이 함수를 호출하면 각 패킷의 디코딩하는 것에 영향을 미치는 AVCodecContext의 관련된 필드를 복사할 것이다. 그리고 실제로 패킷이 디코딩되었을 때 적용한다.  '''경고'''  입력버퍼인 avpkt->data는 어떤 최적화된 bitstream reader는 끝을 넘어서 한번에 32비트나 64비트를 읽기 때문에 실제 읽은 바이트보다 AV_INPUT_BUFFER_PADDING_SIZE가 커야 한다.  동일한 AVCodecContext를 avcodec_decode_video2()와 같은 오래된 함수와 혼용하지 마라. 기대하지 않았던 값을 리턴할 것이다.  '''주의'''  [[AVCodecContext]]는 디코더에 입력으로 제공한다전달하기 전에 [[avcodec_open2]]()함수를 호출하여 열어야 한다.
==== Core functions/structures. ====
편집
2,431