Am Montag, den 13.04.2015, 14:42 +0900 schrieb Pawel Osciak:
> Hi,
> Thanks for working on this!
>
> On Wed, Mar 25, 2015 at 2:46 AM, Philipp Zabel wrote:
> > From: Peter Seiderer
> >
> > This v4l2_buffer flag can be used by drivers to mark a capture buffer
> > as the last generated buffer, for example after a V4L2_DEC_CMD_STOP
> > command was issued.
> > The DocBook is updated to mention mem2mem codecs and the mem2mem draining
> > flow
> > signals in the VIDIOC_DECODER_CMD V4L2_DEC_CMD_STOP and VIDIOC_ENCODER_CMD
> > V4L2_ENC_CMD_STOP documentation.
> >
> > Signed-off-by: Peter Seiderer
> > Signed-off-by: Philipp Zabel
> > ---
> > Changes since v3:
> > - Added DocBook update mentioning V4L2_BUF_FLAG_LAST in the encoder/decoder
> >stop command documentation.
> > ---
> > Documentation/DocBook/media/v4l/io.xml | 10 ++
> > Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml | 6 +-
> > Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml | 5 -
> > include/trace/events/v4l2.h| 3 ++-
> > include/uapi/linux/videodev2.h | 2 ++
> > 5 files changed, 23 insertions(+), 3 deletions(-)
> >
> > diff --git a/Documentation/DocBook/media/v4l/io.xml
> > b/Documentation/DocBook/media/v4l/io.xml
> > index 1c17f80..f3b8bc0 100644
> > --- a/Documentation/DocBook/media/v4l/io.xml
> > +++ b/Documentation/DocBook/media/v4l/io.xml
> > @@ -1129,6 +1129,16 @@ in this buffer has not been created by the CPU but
> > by some DMA-capable unit,
> > in which case caches have not been used.
> >
> >
> > + V4L2_BUF_FLAG_LAST
> > + 0x0010
> > + Last buffer produced by the hardware. mem2mem codec
> > drivers
> > +set this flag on the capture queue for the last buffer when the
> > +VIDIOC_QUERYBUF or
> > +VIDIOC_DQBUF ioctl is called. After the
> > +queue is drained, the VIDIOC_DQBUF
> > ioctl will
>
> Perhaps just s/After the queue is drained, the/Any subsequent/ ? This
> would make it more clear I feel.
> DQBUF of LAST is the end of draining.
Concise, I like it.
> > +not block anymore, but return an &EPIPE;.
> > +
> > +
> > V4L2_BUF_FLAG_TIMESTAMP_MASK
> > 0xe000
> > Mask for timestamp types below. To test the
> > diff --git a/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml
> > b/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml
> > index 9215627..cbb7135 100644
> > --- a/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml
> > +++ b/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml
> > @@ -197,7 +197,11 @@ be muted when playing back at a non-standard speed.
> > this command does nothing. This command has two flags:
> > if V4L2_DEC_CMD_STOP_TO_BLACK is set, then the
> > decoder will
> > set the picture to black after it stopped decoding. Otherwise the last
> > image will
> > -repeat. If V4L2_DEC_CMD_STOP_IMMEDIATELY is set, then
> > the decoder
> > +repeat. mem2mem decoders will stop producing new frames altogether. They
> > will send
> > +a V4L2_EVENT_EOS event after the last frame was
> > decoded and
>
> s/was decoded/has been decoded and all frames are ready to be dequeued/
Yes.
> > +will set the V4L2_BUF_FLAG_LAST buffer flag when
> > there will
> > +be no new buffers produced to dequeue.
>
> To make the timing description more explicit, s/when there will be no
> new buffers produced to dequeue./on the final buffer being dequeued/
> perhaps?
> EOS indicates "no more buffers will be produced and all are ready to
> be dequeued", while LAST indicates "final buffer being dequeued".
Yes.
> > +If V4L2_DEC_CMD_STOP_IMMEDIATELY is set, then the
> > decoder
> > stops immediately (ignoring the pts value),
> > otherwise it
> > will keep decoding until timestamp >= pts or until the last of the pending
> > data from
> > its internal buffers was decoded.
> > diff --git a/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml
> > b/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml
> > index 0619ca5..e9cf601 100644
> > --- a/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml
> > +++ b/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml
> > @@ -129,7 +129,10 @@ this command.
> > encoding will continue until the end of the current Group
> > Of Pictures, otherwise encoding will stop immediately.
> > When the encoder is already stopped, this command does
> > -nothing.
> > +nothing. mem2mem encoders will send a V4L2_EVENT_EOS
> > event
> > +after the last frame was encoded and will set the
> > +V4L2_BUF_FLAG_LAST buffer flag on the capture queue
> > when
> > +there will be no new buffers produced to dequeue
>
> I'd propose the same here.
And yes. Thanks, I'll make those changes.
regards
Philipp
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majord