[haiku-commits] haiku: hrev47595 - src/add-ons/media/plugins/ffmpeg

  • From: coling@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 29 Jul 2014 17:59:34 +0200 (CEST)

hrev47595 adds 1 changeset to branch 'master'
old head: ca21718e149f9be487052745d51f8312dd682664
new head: f345d82773c0fb926f4740e5f851f5790a0d8d97
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=f345d82+%5Eca21718

----------------------------------------------------------------------------

f345d82: FFMPEG Plugin: Code styles, typos and code deduplication.
  
  - Kudos to stippi for taking the time pointing those out :)
    
//www.freelists.org/post/haiku-commits/haiku-hrev47576-srcaddonsmediapluginsffmpeg,1
  - No functional change intended.
  
  Signed-off-by: Colin Günther <coling@xxxxxx>

                                           [ Colin Günther <coling@xxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev47595
Commit:      f345d82773c0fb926f4740e5f851f5790a0d8d97
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f345d82
Author:      Colin Günther <coling@xxxxxx>
Date:        Tue Jul 29 15:39:00 2014 UTC

----------------------------------------------------------------------------

2 files changed, 97 insertions(+), 88 deletions(-)
.../media/plugins/ffmpeg/AVCodecDecoder.cpp      | 183 ++++++++++---------
.../media/plugins/ffmpeg/AVCodecDecoder.h        |   2 +

----------------------------------------------------------------------------

diff --git a/src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.cpp 
b/src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.cpp
index 7fa1aab..e305500 100644
--- a/src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.cpp
+++ b/src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.cpp
@@ -254,9 +254,7 @@ AVCodecDecoder::SeekedTo(int64 frame, bigtime_t time)
        // Reset the FFmpeg codec to flush buffers, so we keep the sync
        if (fCodecInitDone) {
                avcodec_flush_buffers(fContext);
-               av_init_packet(&fTempPacket);
-               fTempPacket.size = 0;
-               fTempPacket.data = NULL;
+               _ResetTempPacket();
        }
 
        // Flush internal buffers as well.
@@ -318,6 +316,15 @@ AVCodecDecoder::Decode(void* outBuffer, int64* 
outFrameCount,
 // #pragma mark -
 
 
+void
+AVCodecDecoder::_ResetTempPacket()
+{
+       av_init_packet(&fTempPacket);
+       fTempPacket.size = 0;
+       fTempPacket.data = NULL;
+}
+
+
 status_t
 AVCodecDecoder::_NegotiateAudioOutputFormat(media_format* inOutFormat)
 {
@@ -404,7 +411,7 @@ AVCodecDecoder::_NegotiateAudioOutputFormat(media_format* 
inOutFormat)
        fOutputBufferOffset = 0;
        fOutputBufferSize = 0;
 
-       av_init_packet(&fTempPacket);
+       _ResetTempPacket();
 
        inOutFormat->require_flags = 0;
        inOutFormat->deny_flags = B_MEDIA_MAUI_UNDEFINED_FLAGS;
@@ -435,7 +442,9 @@ AVCodecDecoder::_NegotiateVideoOutputFormat(media_format* 
inOutFormat)
        fContext->extradata = (uint8_t*)fExtraData;
        fContext->extradata_size = fExtraDataSize;
 
-       if (fCodec->capabilities & CODEC_CAP_TRUNCATED) {
+       bool codecCanHandleIncompleteFrames
+               = (fCodec->capabilities & CODEC_CAP_TRUNCATED) != 0;
+       if (codecCanHandleIncompleteFrames) {
                // Expect and handle video frames to be splitted across 
consecutive
                // data chunks.
                fContext->flags |= CODEC_FLAG_TRUNCATED;
@@ -522,9 +531,7 @@ AVCodecDecoder::_NegotiateVideoOutputFormat(media_format* 
inOutFormat)
        inOutFormat->require_flags = 0;
        inOutFormat->deny_flags = B_MEDIA_MAUI_UNDEFINED_FLAGS;
 
-       av_init_packet(&fTempPacket);
-       fTempPacket.size = 0;
-       fTempPacket.data = NULL;
+       _ResetTempPacket();
 
 #ifdef TRACE_AV_CODEC
        char buffer[1024];
@@ -736,7 +743,7 @@ AVCodecDecoder::_DecodeNextVideoFrame()
 
                if (fTempPacket.size == 0) {
                        // Our packet buffer is empty, so fill it now.
-                       status_t getNextChunkStatus     = 
GetNextChunk(&fChunkBuffer,
+                       status_t getNextChunkStatus = 
GetNextChunk(&fChunkBuffer,
                                &fChunkBufferSize, &chunkMediaHeader);
                        if (getNextChunkStatus != B_OK) {
                                TRACE("AVCodecDecoder::_DecodeNextVideoFrame(): 
error from "
@@ -885,7 +892,7 @@ AVCodecDecoder::_DecodeNextVideoFrame()
                   updated fHeader.
                4. There will be at maximumn only one decoded video frame in 
our cache
                   at any single point in time. Otherwise you couldn't tell to 
which
-                  cached decoded video frame te properties in fHeader relate 
to.
+                  cached decoded video frame the properties in fHeader relate 
to.
 */
 void
 AVCodecDecoder::_UpdateMediaHeaderForVideoFrame()
@@ -926,102 +933,102 @@ AVCodecDecoder::_UpdateMediaHeaderForVideoFrame()
 void
 AVCodecDecoder::_DeinterlaceAndColorConvertVideoFrame()
 {
-               int width = fOutputVideoFormat.display.line_width;
-               int height = fOutputVideoFormat.display.line_count;
-               AVPicture deinterlacedPicture;
-               bool useDeinterlacedPicture = false;
-
-               if (fRawDecodedPicture->interlaced_frame) {
-                       AVPicture rawPicture;
-                       rawPicture.data[0] = fRawDecodedPicture->data[0];
-                       rawPicture.data[1] = fRawDecodedPicture->data[1];
-                       rawPicture.data[2] = fRawDecodedPicture->data[2];
-                       rawPicture.data[3] = fRawDecodedPicture->data[3];
-                       rawPicture.linesize[0] = 
fRawDecodedPicture->linesize[0];
-                       rawPicture.linesize[1] = 
fRawDecodedPicture->linesize[1];
-                       rawPicture.linesize[2] = 
fRawDecodedPicture->linesize[2];
-                       rawPicture.linesize[3] = 
fRawDecodedPicture->linesize[3];
-
-                       avpicture_alloc(&deinterlacedPicture,
-                               fContext->pix_fmt, width, height);
-
-                       if (avpicture_deinterlace(&deinterlacedPicture, 
&rawPicture,
-                                       fContext->pix_fmt, width, height) < 0) {
-                               TRACE("[v] avpicture_deinterlace() - error\n");
-                       } else
-                               useDeinterlacedPicture = true;
-               }
+       int width = fOutputVideoFormat.display.line_width;
+       int height = fOutputVideoFormat.display.line_count;
+       AVPicture deinterlacedPicture;
+       bool useDeinterlacedPicture = false;
+
+       if (fRawDecodedPicture->interlaced_frame) {
+               AVPicture rawPicture;
+               rawPicture.data[0] = fRawDecodedPicture->data[0];
+               rawPicture.data[1] = fRawDecodedPicture->data[1];
+               rawPicture.data[2] = fRawDecodedPicture->data[2];
+               rawPicture.data[3] = fRawDecodedPicture->data[3];
+               rawPicture.linesize[0] = fRawDecodedPicture->linesize[0];
+               rawPicture.linesize[1] = fRawDecodedPicture->linesize[1];
+               rawPicture.linesize[2] = fRawDecodedPicture->linesize[2];
+               rawPicture.linesize[3] = fRawDecodedPicture->linesize[3];
+
+               avpicture_alloc(&deinterlacedPicture,
+                       fContext->pix_fmt, width, height);
+
+               if (avpicture_deinterlace(&deinterlacedPicture, &rawPicture,
+                               fContext->pix_fmt, width, height) < 0) {
+                       TRACE("[v] avpicture_deinterlace() - error\n");
+               } else
+                       useDeinterlacedPicture = true;
+       }
 
-               // Some decoders do not set pix_fmt until they have decoded 1 
frame
+       // Some decoders do not set pix_fmt until they have decoded 1 frame
 #if USE_SWS_FOR_COLOR_SPACE_CONVERSION
-               if (fSwsContext == NULL) {
-                       fSwsContext = sws_getContext(fContext->width, 
fContext->height,
-                               fContext->pix_fmt, fContext->width, 
fContext->height,
-                               
colorspace_to_pixfmt(fOutputVideoFormat.display.format),
-                               SWS_FAST_BILINEAR, NULL, NULL, NULL);
-               }
+       if (fSwsContext == NULL) {
+               fSwsContext = sws_getContext(fContext->width, fContext->height,
+                       fContext->pix_fmt, fContext->width, fContext->height,
+                       colorspace_to_pixfmt(fOutputVideoFormat.display.format),
+                       SWS_FAST_BILINEAR, NULL, NULL, NULL);
+       }
 #else
-               if (fFormatConversionFunc == NULL) {
-                       fFormatConversionFunc = resolve_colorspace(
-                               fOutputVideoFormat.display.format, 
fContext->pix_fmt,
-                               fContext->width, fContext->height);
-               }
+       if (fFormatConversionFunc == NULL) {
+               fFormatConversionFunc = resolve_colorspace(
+                       fOutputVideoFormat.display.format, fContext->pix_fmt,
+                       fContext->width, fContext->height);
+       }
 #endif
 
-               fDecodedDataSizeInBytes = avpicture_get_size(
-                       colorspace_to_pixfmt(fOutputVideoFormat.display.format),
-                       fContext->width, fContext->height);
+       fDecodedDataSizeInBytes = avpicture_get_size(
+               colorspace_to_pixfmt(fOutputVideoFormat.display.format),
+               fContext->width, fContext->height);
 
-               if (fDecodedData == NULL)
-                       fDecodedData
-                               = 
static_cast<uint8_t*>(malloc(fDecodedDataSizeInBytes));
+       if (fDecodedData == NULL)
+               fDecodedData
+                       = 
static_cast<uint8_t*>(malloc(fDecodedDataSizeInBytes));
 
-               fPostProcessedDecodedPicture->data[0] = fDecodedData;
-               fPostProcessedDecodedPicture->linesize[0]
-                       = fOutputVideoFormat.display.bytes_per_row;
+       fPostProcessedDecodedPicture->data[0] = fDecodedData;
+       fPostProcessedDecodedPicture->linesize[0]
+               = fOutputVideoFormat.display.bytes_per_row;
 
 #if USE_SWS_FOR_COLOR_SPACE_CONVERSION
-               if (fSwsContext != NULL) {
+       if (fSwsContext != NULL) {
 #else
-               if (fFormatConversionFunc != NULL) {
+       if (fFormatConversionFunc != NULL) {
 #endif
-                       if (useDeinterlacedPicture) {
-                               AVFrame deinterlacedFrame;
-                               deinterlacedFrame.data[0] = 
deinterlacedPicture.data[0];
-                               deinterlacedFrame.data[1] = 
deinterlacedPicture.data[1];
-                               deinterlacedFrame.data[2] = 
deinterlacedPicture.data[2];
-                               deinterlacedFrame.data[3] = 
deinterlacedPicture.data[3];
-                               deinterlacedFrame.linesize[0]
-                                       = deinterlacedPicture.linesize[0];
-                               deinterlacedFrame.linesize[1]
-                                       = deinterlacedPicture.linesize[1];
-                               deinterlacedFrame.linesize[2]
-                                       = deinterlacedPicture.linesize[2];
-                               deinterlacedFrame.linesize[3]
-                                       = deinterlacedPicture.linesize[3];
+               if (useDeinterlacedPicture) {
+                       AVFrame deinterlacedFrame;
+                       deinterlacedFrame.data[0] = deinterlacedPicture.data[0];
+                       deinterlacedFrame.data[1] = deinterlacedPicture.data[1];
+                       deinterlacedFrame.data[2] = deinterlacedPicture.data[2];
+                       deinterlacedFrame.data[3] = deinterlacedPicture.data[3];
+                       deinterlacedFrame.linesize[0]
+                               = deinterlacedPicture.linesize[0];
+                       deinterlacedFrame.linesize[1]
+                               = deinterlacedPicture.linesize[1];
+                       deinterlacedFrame.linesize[2]
+                               = deinterlacedPicture.linesize[2];
+                       deinterlacedFrame.linesize[3]
+                               = deinterlacedPicture.linesize[3];
 
 #if USE_SWS_FOR_COLOR_SPACE_CONVERSION
-                               sws_scale(fSwsContext, deinterlacedFrame.data,
-                                       deinterlacedFrame.linesize, 0, 
fContext->height,
-                                       fPostProcessedDecodedPicture->data,
-                                       fPostProcessedDecodedPicture->linesize);
+                       sws_scale(fSwsContext, deinterlacedFrame.data,
+                               deinterlacedFrame.linesize, 0, fContext->height,
+                               fPostProcessedDecodedPicture->data,
+                               fPostProcessedDecodedPicture->linesize);
 #else
-                               (*fFormatConversionFunc)(&deinterlacedFrame,
-                                       fPostProcessedDecodedPicture, width, 
height);
+                       (*fFormatConversionFunc)(&deinterlacedFrame,
+                               fPostProcessedDecodedPicture, width, height);
 #endif
-                       } else {
+               } else {
 #if USE_SWS_FOR_COLOR_SPACE_CONVERSION
-                               sws_scale(fSwsContext, fRawDecodedPicture->data,
-                                       fRawDecodedPicture->linesize, 0, 
fContext->height,
-                                       fPostProcessedDecodedPicture->data,
-                                       fPostProcessedDecodedPicture->linesize);
+                       sws_scale(fSwsContext, fRawDecodedPicture->data,
+                               fRawDecodedPicture->linesize, 0, 
fContext->height,
+                               fPostProcessedDecodedPicture->data,
+                               fPostProcessedDecodedPicture->linesize);
 #else
-                               (*fFormatConversionFunc)(fRawDecodedPicture,
-                                       fPostProcessedDecodedPicture, width, 
height);
+                       (*fFormatConversionFunc)(fRawDecodedPicture,
+                               fPostProcessedDecodedPicture, width, height);
 #endif
-                       }
                }
+       }
 
-               if (fRawDecodedPicture->interlaced_frame)
-                       avpicture_free(&deinterlacedPicture);
+       if (fRawDecodedPicture->interlaced_frame)
+               avpicture_free(&deinterlacedPicture);
 }
diff --git a/src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.h 
b/src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.h
index 87082d1..fc604c8 100644
--- a/src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.h
+++ b/src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.h
@@ -48,6 +48,8 @@ public:
 
 
 private:
+                       void                            _ResetTempPacket();
+
                        status_t                        
_NegotiateAudioOutputFormat(
                                                                        
media_format* inOutFormat);
 


Other related posts: