]> git.sesse.net Git - vlc/blobdiff - modules/codec/a52.c
Implement plugin support for OS/2
[vlc] / modules / codec / a52.c
index d2768a46fb4d92bc6ec671fa5a09763ae00061b3..554b00789b7486a38c381f3d137de3a45e5a47f5 100644 (file)
@@ -39,6 +39,8 @@
 
 #include "a52.h"
 
+#include "../packetizer/packetizer_helper.h"
+
 /*****************************************************************************
  * Module descriptor
  *****************************************************************************/
@@ -85,20 +87,10 @@ struct decoder_sys_t
     vlc_a52_header_t frame;
 };
 
-enum {
-
-    STATE_NOSYNC,
-    STATE_SYNC,
-    STATE_HEADER,
-    STATE_NEXT_SYNC,
-    STATE_GET_DATA,
-    STATE_SEND_DATA
-};
-
 /****************************************************************************
  * Local prototypes
  ****************************************************************************/
-static void *DecodeBlock  ( decoder_t *, block_t ** );
+static block_t *DecodeBlock  ( decoder_t *, block_t ** );
 
 static uint8_t       *GetOutBuffer ( decoder_t *, block_t ** );
 static aout_buffer_t *GetAoutBuffer( decoder_t * );
@@ -150,11 +142,9 @@ static int OpenCommon( vlc_object_t *p_this, bool b_packetizer )
 
     /* Set callback */
     if( b_packetizer )
-        p_dec->pf_packetize    = (block_t *(*)(decoder_t *, block_t **))
-            DecodeBlock;
+        p_dec->pf_packetize    = DecodeBlock;
     else
-        p_dec->pf_decode_audio = (aout_buffer_t *(*)(decoder_t *, block_t **))
-            DecodeBlock;
+        p_dec->pf_decode_audio = DecodeBlock;
     return VLC_SUCCESS;
 }
 
@@ -176,7 +166,7 @@ static int OpenPacketizer( vlc_object_t *p_this )
  ****************************************************************************
  * This function is called just after the thread is launched.
  ****************************************************************************/
-static void *DecodeBlock( decoder_t *p_dec, block_t **pp_block )
+static block_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block )
 {
     decoder_sys_t *p_sys = p_dec->p_sys;
     uint8_t p_header[VLC_A52_HEADER_SIZE];
@@ -326,8 +316,6 @@ static void *DecodeBlock( decoder_t *p_dec, block_t **pp_block )
             return p_out_buffer;
         }
     }
-
-    return NULL;
 }
 
 /*****************************************************************************
@@ -394,14 +382,14 @@ static uint8_t *GetOutBuffer( decoder_t *p_dec, block_t **pp_out_buffer )
 static aout_buffer_t *GetAoutBuffer( decoder_t *p_dec )
 {
     decoder_sys_t *p_sys = p_dec->p_sys;
-    aout_buffer_t *p_buf;
-
-    p_buf = decoder_NewAudioBuffer( p_dec, p_sys->frame.i_samples );
-    if( p_buf == NULL ) return NULL;
 
-    p_buf->i_pts = date_Get( &p_sys->end_date );
-    p_buf->i_length = date_Increment( &p_sys->end_date,
-                                      p_sys->frame.i_samples ) - p_buf->i_pts;
+    aout_buffer_t *p_buf = decoder_NewAudioBuffer( p_dec, p_sys->frame.i_samples );
+    if( p_buf )
+    {
+        p_buf->i_pts = date_Get( &p_sys->end_date );
+        p_buf->i_length = date_Increment( &p_sys->end_date,
+                                          p_sys->frame.i_samples ) - p_buf->i_pts;
+    }
 
     return p_buf;
 }
@@ -412,15 +400,14 @@ static aout_buffer_t *GetAoutBuffer( decoder_t *p_dec )
 static block_t *GetSoutBuffer( decoder_t *p_dec )
 {
     decoder_sys_t *p_sys = p_dec->p_sys;
-    block_t *p_block;
-
-    p_block = block_New( p_dec, p_sys->frame.i_size );
-    if( p_block == NULL ) return NULL;
 
-    p_block->i_pts = p_block->i_dts = date_Get( &p_sys->end_date );
-
-    p_block->i_length =
-        date_Increment( &p_sys->end_date, p_sys->frame.i_samples ) - p_block->i_pts;
+    block_t *p_block = block_New( p_dec, p_sys->frame.i_size );
+    if( p_block )
+    {
+        p_block->i_pts = p_block->i_dts = date_Get( &p_sys->end_date );
+        p_block->i_length =
+            date_Increment( &p_sys->end_date, p_sys->frame.i_samples ) - p_block->i_pts;
+    }
 
     return p_block;
 }